Phillip Hutchings wrote: > On 8/2/06, Harris Reynolds <hreynolds2 / yahoo.com> wrote: >> The ruby interpreter thinks that my single array is the parameter I >> am passing in; however, the array I am passing in contains 4 object >> that map directly to the 4 arguments the interpreter is looking for. >> Is there another way to accomplish this other than using >> method.call? Or am I using method.call incorrectly? > > Put a * before the array argument, it'll make Ruby expand it to fit > the arguments, eg: > > def test(one, two, three, four) > puts "#{one} #{two} #{three} #{four}" > end > > args = [1, 2, 3, 4] > m = method(:test) > m.call(*args) Note that you do not need to use Method#call to do this, it works for all methods (since the OP was asking if he had to use it). The above could have been (just for clarification): def test(one, two, three, four) puts "#{one} #{two} #{three} #{four}" end test(*[1, 2, 3, 4]) or args = [1,2,3,4] test(*args) -Justin