From: Trans Date: 2007-11-10T18:38:49+09:00 Subject: Re: Keyword Arguments OK. If this works in 1.9, then I think it's good enough. def foo(*args, keys) args #=> [1,2,3] keys #=> {:a=>1, :b=>2} end foo(1,2,3, a:=>1, :b=2} I got this from eigenclass - Changes in Ruby 1.9: Mandatory arguments after optional arguments allowed (ruby-dev:29014) def m(a, b=nil, *c, d) [a,b,c,d] end m(1,2) # => [1, nil, [], 2] The problem now of course is having to do: def foo(*args) keys = (Hash===args.last ? args.pop : {}) args #=> [1,2,3] keys #=> {:a=>1, :b=>2} end So if my first example works in 1.9, then I take it back. T.