From: nobu@... Date: 2014-04-11T03:05:27+00:00 Subject: [ruby-core:61953] [ruby-trunk - Bug #9722] [Closed] Failure with multiple keyword arguments Issue #9722 has been updated by Nobuyoshi Nakada. Description updated Status changed from Open to Closed Backport changed from 2.0.0: UNKNOWN, 2.1: UNKNOWN to 2.0.0: DONTNEED, 2.1: REQUIRED ---------------------------------------- Bug #9722: Failure with multiple keyword arguments https://bugs.ruby-lang.org/issues/9722#change-46148 * 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: REQUIRED ---------------------------------------- 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/