Trans wrote: > Widdle it: > > def foo( required :bar, :baz ; optional :request=>'useless' ; named > :side, :meat=>'fish' ) > > def foo( bar, baz ; optional :request=>'useless' ; named :side, > :meat=>'fish' ) > > def foo( bar, baz, request='useless', keys: side, meat=>'fish' ) > > def foo( bar, baz, request='useless', side=>nil, meat=>'fish' ) > > T. > AAARGH! My eyes ;) def foo(a, b = "b", named c, named d = "d", **keys); end foo("a", :c => "c", :e => "e") -> a = "a", b = "b", c = "c", d = "d" -> keys = {:e => "e"} Of course you don't need to use the word "named", you could substitute it with something else. Cheers, Daniel