summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/hashie/extensions/ruby_version_check.rb6
-rw-r--r--lib/hashie/mash.rb28
2 files changed, 19 insertions, 15 deletions
diff --git a/lib/hashie/extensions/ruby_version_check.rb b/lib/hashie/extensions/ruby_version_check.rb
index bcd3436..b287230 100644
--- a/lib/hashie/extensions/ruby_version_check.rb
+++ b/lib/hashie/extensions/ruby_version_check.rb
@@ -9,7 +9,11 @@ module Hashie
module ClassMethods
def with_minimum_ruby(version)
- yield if RubyVersion.new(RUBY_VERSION) >= RubyVersion.new(version)
+ yield if with_minimum_ruby?(version)
+ end
+
+ def with_minimum_ruby?(version)
+ RubyVersion.new(RUBY_VERSION) >= RubyVersion.new(version)
end
end
end
diff --git a/lib/hashie/mash.rb b/lib/hashie/mash.rb
index 194a6f8..96b24c9 100644
--- a/lib/hashie/mash.rb
+++ b/lib/hashie/mash.rb
@@ -207,20 +207,7 @@ module Hashie
alias include? key?
alias member? key?
- # Performs a deep_update on a duplicate of the
- # current mash.
- def deep_merge(other_hash, &blk)
- dup.deep_update(other_hash, &blk)
- end
-
- # Recursively merges this mash with the passed
- # in hash, merging each hash in the hierarchy.
- def deep_update(other_hash, &blk)
- _deep_update(other_hash, &blk)
- self
- end
-
- with_minimum_ruby('2.6.0') do
+ if with_minimum_ruby?('2.6.0')
# Performs a deep_update on a duplicate of the
# current mash.
def deep_merge(*other_hashes, &blk)
@@ -235,6 +222,19 @@ module Hashie
end
self
end
+ else
+ # Performs a deep_update on a duplicate of the
+ # current mash.
+ def deep_merge(other_hash, &blk)
+ dup.deep_update(other_hash, &blk)
+ end
+
+ # Recursively merges this mash with the passed
+ # in hash, merging each hash in the hierarchy.
+ def deep_update(other_hash, &blk)
+ _deep_update(other_hash, &blk)
+ self
+ end
end
# Alias these lexically so they get the correctly defined