mirror of
https://github.com/pry/pry.git
synced 2022-11-09 12:35:05 -05:00
Merge pull request #2126 from pry/config-nil-on-unknown-option
config: return `nil` on unknown option instead of raising
This commit is contained in:
commit
9094b5f8d4
3 changed files with 11 additions and 5 deletions
|
@ -5,6 +5,12 @@
|
|||
* Fixed bug where on invalid input only the last syntax error is displayed
|
||||
(instead of all of them) ([#2117](https://github.com/pry/pry/pull/2117))
|
||||
|
||||
#### API changes
|
||||
|
||||
* `Pry::Config` returns `nil` on undefined option instead of raising
|
||||
`NoMethodError` (usually invoked via `Pry.config.foo_option` calls)
|
||||
([#2126](https://github.com/pry/pry/pull/2126))
|
||||
|
||||
### [v0.13.0][v0.13.0] (March 21, 2020)
|
||||
|
||||
#### Features
|
||||
|
|
|
@ -239,17 +239,17 @@ class Pry
|
|||
@custom_attrs[attr.to_s].call
|
||||
end
|
||||
|
||||
def method_missing(method_name, *args, &block)
|
||||
# rubocop:disable Style/MethodMissingSuper
|
||||
def method_missing(method_name, *args, &_block)
|
||||
name = method_name.to_s
|
||||
|
||||
if name.end_with?('=')
|
||||
self[name[0..-2]] = args.first
|
||||
elsif @custom_attrs.key?(name)
|
||||
self[name]
|
||||
else
|
||||
super
|
||||
end
|
||||
end
|
||||
# rubocop:enable Style/MethodMissingSuper
|
||||
|
||||
def respond_to_missing?(method_name, include_all = false)
|
||||
@custom_attrs.key?(method_name.to_s.tr('=', '')) || super
|
||||
|
|
|
@ -150,8 +150,8 @@ RSpec.describe Pry::Config do
|
|||
end
|
||||
|
||||
context "when invoked method is not an option" do
|
||||
it "raises NoMethodError" do
|
||||
expect { subject.foo }.to raise_error(NoMethodError)
|
||||
it "returns nil" do
|
||||
expect(subject.foo).to be_nil
|
||||
end
|
||||
end
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue