Issue #12043 has been updated by Benoit Daloze.


The first error message is actually
"undefined method `method_that_does_not_exist' for main:Object".
But that does not help since anyway the error message below would be the same since it has "()" (and the same problem if it would have arguments)

"private_method_callable?" sounds like a specific private method would be callable.

Maybe e.private_call?
"Returns true if the call which generated the error was allowed to call private methods (because it had no receiver, was using self.assign= or used #send)"

----------------------------------------
Feature #12043: Add a method to NoMethodError that tells if private methods are callable at the time of 
https://bugs.ruby-lang.org/issues/12043#change-56842

* Author: Yuki Nishijima
* Status: Open
* Priority: Normal
* Assignee: 
----------------------------------------
I've briefly talked about this to Sasada-san, but also wanted to hear from other committers. I would like to add a method to `NoMethodError` that tells whether or not private methods are callable from the line where the exception is raised. An example would be like this:

```ruby
begin
  raies "Error" # 
rescue NoMethodError => no_method_error
  no_method_error.private_method_callable? # => true
end
```

The only use case I can think of is [the spell checker in the did_you_mean gem](https://github.com/yuki24/did_you_mean/blob/c4f0247/lib/did_you_mean/spell_checkers/method_name_checker.rb#L18) and I'm not actually sure how useful it would be for others.

Please let me know what you think, I'm open to suggestions.



-- 
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>