From: co000ri@... Date: 2016-02-16T14:56:32+00:00 Subject: [ruby-core:73847] [Ruby trunk Feature#12063] KeyError#receiver and KeyError#name Issue #12063 has been updated by Yuki Kurihara. I made a patch https://github.com/ruby/ruby/pull/1251 ---------------------------------------- Feature #12063: KeyError#receiver and KeyError#name https://bugs.ruby-lang.org/issues/12063#change-57020 * Author: Yuki Kurihara * Status: Open * Priority: Normal * Assignee: ---------------------------------------- I propose **KeyError#receiver** and **KeyError#name** (or KeyError#key) like NameError. I think these method help to debug. And will be able to find typo on did_you_mean gem. See also https://github.com/yuki24/did_you_mean/pull/71 ~~~ruby begin h = {foo: 1, bar: 2} h.fetch(:bax) rescue KeyError => e p e.receiver #=> {foo: 1, bar: 2} equal `h` p e.name #=> :bax end ~~~ ~~~ruby begin h = {foo: 1, bar: 2, baz: 3} h.fetch_values(:bar, :bax) rescue KeyError => e p e.receiver #=> {foo: 1, bar: 2, baz: 3} equal `h` p e.name #=> :bax end ~~~ ~~~ruby begin ENV.fetch("HOEM") rescue KeyError => e p e.receiver #=> ENV p e.name #=> "HOEM" end ~~~ ~~~ruby begin sprintf("%d", {fooo: 1}) rescue KeyError => e p e.receiver #=> {fooo: 1} p e.name #=> :foo end ~~~ -- https://bugs.ruby-lang.org/ Unsubscribe: