From: nagachika00@... Date: 2014-05-18T15:38:39+00:00 Subject: [ruby-core:62663] [ruby-trunk - Bug #9722] Failure with multiple keyword arguments Issue #9722 has been updated by Tomoyuki Chikanaga. Backport changed from 2.0.0: DONTNEED, 2.1: REQUIRED to 2.0.0: DONTNEED, 2.1: DONE r45405 and r45408 were backported into `ruby_2_1` branch at r46005. ---------------------------------------- Bug #9722: Failure with multiple keyword arguments https://bugs.ruby-lang.org/issues/9722#change-46798 * Author: Thomas Cioppettini * Status: Closed * Priority: Normal * Assignee: * Category: core * Target version: current: 2.2.0 * ruby -v: ruby 2.1.1p76 (2014-02-24 revision 45161) [x86_64-darwin13.0] * Backport: 2.0.0: DONTNEED, 2.1: DONE ---------------------------------------- I am running ruby 2.1.1p76 (2014-02-24 revision 45161) [x86_64-darwin13.0] Given the following person class: ~~~ruby class Person attr_reader :name, :age def initialize name:, age: @name = name @age = age end end ~~~ There are a few cases of unexpected behavior when you instantiate a `Person` class given the above code. Failure 1: ~~~ruby person = Person.new(name: "Tom", age: 24) person.name # expect "Tom" => nil person.age # expect 24 => 24 ~~~ Failure 2: ~~~ruby person = Person.new(name: "Tom") # expect ArgumentError missing keyword age person.name => "Tom" person.age => "Tom" ~~~ If I were to just give an `age` keyword argument instantiation would fail as expected. -- https://bugs.ruby-lang.org/