Sha256: c001128542c28e4da9a8b42a50f1f8bbb21e6311b3a637cf2c58c67b8f8022e1
Contents?: true
Size: 852 Bytes
Versions: 6
Compression:
Stored size: 852 Bytes
Contents
if !Hash.instance_methods.include?(:deep_merge) class Hash # copied from ActiveSupport::CoreExtensions::Hash::DeepMerge 2.3.8 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 end end if !Hash.instance_methods.include?(:slice) class Hash # copied from http://as.rubyonrails.org/classes/ActiveSupport/CoreExtensions/Hash/Slice.html 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 end end
Version data entries
6 entries across 6 versions & 1 rubygems