From: "nobu (Nobuyoshi Nakada)" Date: 2013-05-18T10:01:05+09:00 Subject: [ruby-core:55040] [ruby-trunk - Bug #8418][Rejected] when all params are optional, named arg hash maps to the first available param Issue #8418 has been updated by nobu (Nobuyoshi Nakada). Status changed from Open to Rejected That's the reason that keyword argument is introduced. ---------------------------------------- Bug #8418: when all params are optional, named arg hash maps to the first available param https://bugs.ruby-lang.org/issues/8418#change-39397 Author: rits (First Last) Status: Rejected Priority: Normal Assignee: Category: Target version: ruby -v: ruby 2.0.0p195 (2013-05-14 revision 40734) [i686-linux] Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN irb(main):028:0> def foo(arg = 1, options = {}); {arg: arg, options: options}; end; foo(a: 1) => {:arg=>{:a=>1}, :options=>{}} since positional args can't follow the named hash, perhaps the named hash should map to the last possible param? -- http://bugs.ruby-lang.org/