In message "[ruby-talk:5634] Re: passing single or multiple strings."
    on 00/10/17, Hugh Sasse Staff Elec Eng <hgs / dmu.ac.uk> writes:
>> How about something(*["x", "y"]);
>> 
>>     def something(*bunch_of_args)
>>       bunch_of_args
>>     end
>> 
>>     p something(*["x", "y"]) #=> ["x", "y"]
>> 
>
>Not tried it on a right hand side really....:
>
>irb(main):001:0> x = [[[2.3],4,[5,6]]]
>[[[2.3], 4, [5, 6]]]
>irb(main):002:0> *x
>SyntaxError: compile error
>(irb):2: parse error
>(irb):2:in `irb_binding'
>irb(main):003:0> p *x
>[[2.3], 4, [5, 6]]
>nil
>irb(main):004:0> 
>
>Not sure why *x didn't work there...  So is there a method corresponding
>to this * prefixing? Methods does show a "*" method for Array:

I would beg apologies for my answer not suitable :<

The leading "*" is NOT a method. It is a feature of Syntax, that is,
"*var" on a rhs or an argument is used for the multiple substitution.
One could use this syntax to pass the whole of argument to another
method;

  class Foo
    def initialize(obj)
      @obj = obj
    end

    def method_missing(mid, *args, &blk)
      @obj.send(mid, *args, &blk)
    end
  end

  p foo = Foo.new("foo")  #=> #<Foo:0x80fa2e4 @obj="foo">
  p foo[1,2]              #=> "oo"

So, this is not a direct answer for your questioin but is a solution. 

On the other hand, Ruby would tries invoking "*obj.to_ary" when "*obj"
appears on a rhs or an argument and "to_ary" has to return an array as
its value.

  class Foo
    def to_ary; [1,2,3] end
  end

  a, b, c = *Foo.new.to_ary
  p [a, b, c]  #=> 1, 2, 3

Hope this helps,

-- gotoken