Class: Hash
- Inherits:
-
Object
- Object
- Hash
- Defined in:
- lib/monkeypatches/hash.rb,
lib/monkeypatches/hash.rb
Instance Method Summary collapse
-
#deep_merge(other_hash) ⇒ Object
copied from ActiveSupport::CoreExtensions::Hash::DeepMerge 2.3.8.
- #slice(*keys) ⇒ Object
Instance Method Details
#deep_merge(other_hash) ⇒ Object
copied from ActiveSupport::CoreExtensions::Hash::DeepMerge 2.3.8
4 5 6 7 8 9 10 |
# File 'lib/monkeypatches/hash.rb', line 4 def deep_merge(other_hash) self.merge(other_hash) do |key, oldval, newval| oldval = oldval.to_hash if oldval.respond_to?(:to_hash) newval = newval.to_hash if newval.respond_to?(:to_hash) oldval.class.to_s == 'Hash' && newval.class.to_s == 'Hash' ? oldval.deep_merge(newval) : newval end end |
#slice(*keys) ⇒ Object
17 18 19 20 21 22 |
# File 'lib/monkeypatches/hash.rb', line 17 def slice(*keys) allowed = Set.new(respond_to?(:convert_key) ? keys.map { |key| convert_key(key) } : keys) hash = {} allowed.each { |k| hash[k] = self[k] if has_key?(k) } hash end |