diff --git a/lib/net/imap/config.rb b/lib/net/imap/config.rb index 33e81c89..87898e6f 100644 --- a/lib/net/imap/config.rb +++ b/lib/net/imap/config.rb @@ -281,7 +281,9 @@ def with(**attrs) def load_defaults(version) [Numeric, Symbol, String].any? { _1 === version } or raise ArgumentError, "expected number or symbol, got %p" % [version] - update(**Config[version].to_h.except(*DEFAULT_TO_INHERIT)) + config = Config[version] + defaults = config.to_h.reject {|k,v| DEFAULT_TO_INHERIT.include?(k) } + update(**defaults) end # :call-seq: to_h -> hash @@ -300,7 +302,7 @@ def to_h; data.members.to_h { [_1, send(_1)] } end @global = default.new version_defaults[0.4] = Config[ - default.to_h.except(*DEFAULT_TO_INHERIT) + default.to_h.reject {|k,v| DEFAULT_TO_INHERIT.include?(k) } ] version_defaults[0] = Config[0.4].dup.update( diff --git a/test/net/imap/test_config.rb b/test/net/imap/test_config.rb index df88f56d..403270f8 100644 --- a/test/net/imap/test_config.rb +++ b/test/net/imap/test_config.rb @@ -137,7 +137,7 @@ class ConfigTest < Test::Unit::TestCase test ".version_defaults are all frozen, and inherit debug from global" do Config.version_defaults.each do |name, config| - name => 0 | Float | Symbol + assert [0, Float, Symbol].any? { _1 === name } assert_kind_of Config, config assert config.frozen?, "#{name} isn't frozen" assert config.inherited?(:debug), "#{name} doesn't inherit debug"