<p>How can I pass a variable number of args to a yield.
I don't want to pass an array (as the following code does), I'd actually like to pass them as a programmatic number of args to the block.</p>

<pre><code>def each_with_attributes(attributes, &amp;block)
  results[:matches].each_with_index do |match, index|
    yield self[index], attributes.collect { |attribute| (match[:attributes][attribute] || match[:attributes]["@#{attribute}"]) }
  end
end
</code></pre>

Asterisk will expand an array to individual arguments in ruby:
```
```
def test(a, b)
  puts "#{a} + #{b} = #{a + b}"
end

args = [1, 2]

test *args
```
```