On 3/20/07, Servando Garcia <garcia.servando / gmail.com> wrote:
>
> David
>     No Way that is to easy. My new question to you is how does this work.
> Where can I read the source code for this method

It's a combination of two things:

1. Hash.[] creates a hash from a comma separated even-length list

Hash[1,2,3,4,5,6] # => { 1=>2, 3=>4, 5=>6 }

2. *ary converts an array into a comma-separated list

def foo(a, b=nil, c=nil)
  p a
  p b
  p c
end

ary = [1,2,3]

def foo(a, b=nil, c=nil)
  p a
  p b
  p c
end

ary = [1,2,3]

irb> foo(ary)
[1, 2, 3]
nil
nil
=> nil
irb> foo(*ary)
1
2
3
=> nil

martin