aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/lib/active_support
diff options
context:
space:
mode:
authorAkira Matsuda <ronnie@dio.jp>2017-10-21 17:24:18 +0900
committerAkira Matsuda <ronnie@dio.jp>2017-10-21 17:44:26 +0900
commit01ae39660243bc5f0a986e20f9c9bff312b1b5f8 (patch)
treed517118d32a12916ed97e5e9a64a6a1bd04d8867 /activesupport/lib/active_support
parentd6f3b91aaa4af88eda2344629afed64640d51e0f (diff)
downloadrails-01ae39660243bc5f0a986e20f9c9bff312b1b5f8.tar.gz
rails-01ae39660243bc5f0a986e20f9c9bff312b1b5f8.tar.bz2
rails-01ae39660243bc5f0a986e20f9c9bff312b1b5f8.zip
Let Hash#slice return a Hash
In order to keep this method compatible with the Ruby 2.5 version of Hash#slice. This bahavior is actually slightly incompatibile with previous versions of Active Support but it might not cause a real problem, since HWIA, the biggest use case of Hash subclassing here, already overrides `slice` to return another HWIA.
Diffstat (limited to 'activesupport/lib/active_support')
-rw-r--r--activesupport/lib/active_support/core_ext/hash/slice.rb2
1 files changed, 1 insertions, 1 deletions
diff --git a/activesupport/lib/active_support/core_ext/hash/slice.rb b/activesupport/lib/active_support/core_ext/hash/slice.rb
index ed6cd9609a..2bd0a56ea4 100644
--- a/activesupport/lib/active_support/core_ext/hash/slice.rb
+++ b/activesupport/lib/active_support/core_ext/hash/slice.rb
@@ -21,7 +21,7 @@ class Hash
# valid_keys = [:mass, :velocity, :time]
# search(options.slice(*valid_keys))
def slice(*keys)
- keys.each_with_object(self.class.new) { |k, hash| hash[k] = self[k] if has_key?(k) }
+ keys.each_with_object(Hash.new) { |k, hash| hash[k] = self[k] if has_key?(k) }
end unless method_defined?(:slice)
# Replaces the hash with only the given keys.