Compare commits

..

No commits in common. "0633daaf8e0b0f7b3254a2b7f143040a3fb6327e" and "e9d5b75298c7cc65a8744d2cfbecc9cc83970376" have entirely different histories.

2 changed files with 6 additions and 17 deletions

View File

@ -342,11 +342,12 @@ module HTTPX
defaults.each do |k, v|
next if v.nil?
option_method_name = :"option_#{k}"
raise Error, "unknown option: #{k}" unless respond_to?(option_method_name)
value = __send__(option_method_name, v)
instance_variable_set(:"@#{k}", value)
begin
value = __send__(:"option_#{k}", v)
instance_variable_set(:"@#{k}", value)
rescue NoMethodError
raise Error, "unknown option: #{k}"
end
end
end
end

View File

@ -10,18 +10,6 @@ class OptionsTest < Minitest::Test
assert ex.message == "unknown option: foo", ex.message
end
def test_options_no_method_error_during_validation
custom_opt_class = Class.new(Options) do
def option_foo(value)
raise TypeError, ":foo must be a Hash" unless value.is_a(Hash)
value
end
end
ex = assert_raises(NoMethodError) { custom_opt_class.new(foo: "bar") }
assert_match("undefined method `is_a'", ex.message)
end
def test_options_body
opt1 = Options.new
assert opt1.body.nil?, "body shouldn't be set by default"