I just got the question of what does something like this means: some_method(*foo) This is the splat or expand operator (not a real operator), so if foo is an array, every element becomes an argument So some_method(*[1,2,3]) is equivalent to some_method(1,2,3) Or you can for example create an array from an element and another array: [1, *[2,3,4]] is equivalent to [1,2,3,4] def some_method(arg1, *args) end is used in parameters to implement variable number of arguments. Ruby matches normal parameters, then parameters with defaults and the rest goes to the array argument. If you call some_method(1,2,3,4) -> arg1=1 args=[2,3,4] You can read about this in Ruby Programming Language, section 6.4.3 http://books.google.de/books?id=jcUbTcr5XWwC&pg=PA187&lpg=PA187&dq=ruby+array+*+operator+expand&source=bl&ots=fHFlAeataD&sig=G63Cwe_RTaea_aN2KzKfEJvx540&hl=de&ei=vWbcSrOTEcePsAaH4snDDw&sa=X&oi=book_result&ct=result&resnum=1&ved=0CAgQ6AEwAA#v=onepage&q=&f=false Duncan -- To unsubscribe, e-mail: opensuse-ruby+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-ruby+help@opensuse.org