[#81492] [Ruby trunk Feature#13618] [PATCH] auto fiber schedule for rb_wait_for_single_fd and rb_waitpid — normalperson@...

Issue #13618 has been reported by normalperson (Eric Wong).

12 messages 2017/06/01

[ruby-core:81706] [Ruby trunk Feature#12063] KeyError#receiver and KeyError#name

From: matz@...
Date: 2017-06-16 08:23:14 UTC
List: ruby-core #81706
Issue #12063 has been updated by matz (Yukihiro Matsumoto).


Keys may not be names (strings and symbols), so I think `key` is a sufficient name for the method.

Matz.


----------------------------------------
Feature #12063: KeyError#receiver and KeyError#name
https://bugs.ruby-lang.org/issues/12063#change-65400

* Author: ksss (Yuki Kurihara)
* Status: Open
* Priority: Normal
* Assignee: 
* Target version: 
----------------------------------------
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>

In This Thread

Prev Next