[#77789] [Ruby trunk Feature#12012] Add Boolean method — prodis@...
Issue #12012 has been updated by Fernando Hamasaki de Amorim.
4 messages
2016/10/27
[ruby-core:77765] [Ruby trunk Feature#12063] KeyError#receiver and KeyError#name
From:
ferdinandrosario@...
Date:
2016-10-26 11:30:05 UTC
List:
ruby-core #77765
Issue #12063 has been updated by ferdinand rosario.
Assignee set to ruby-core
----------------------------------------
Feature #12063: KeyError#receiver and KeyError#name
https://bugs.ruby-lang.org/issues/12063#change-61071
* Author: Yuki Kurihara
* Status: Open
* Priority: Normal
* Assignee: ruby-core
----------------------------------------
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("%<foo>d", {fooo: 1})
rescue KeyError => e
p e.receiver #=> {fooo: 1}
p e.name #=> :foo
end
~~~
--
https://bugs.ruby-lang.org/
Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>