X-Git-Url: https://git.njae.me.uk/?a=blobdiff_plain;f=vendor%2Frails%2Factivesupport%2Flib%2Factive_support%2Fcore_ext%2Fhash%2Fdiff.rb;fp=vendor%2Frails%2Factivesupport%2Flib%2Factive_support%2Fcore_ext%2Fhash%2Fdiff.rb;h=6abd6788229acb599f9a14917a3c106cf56d3bd3;hb=437aa336c44c74a30aeea16a06743c32747ed661;hp=0000000000000000000000000000000000000000;hpb=97a0772b06264134cfe38e7494f9427efe0840a0;p=feedcatcher.git diff --git a/vendor/rails/activesupport/lib/active_support/core_ext/hash/diff.rb b/vendor/rails/activesupport/lib/active_support/core_ext/hash/diff.rb new file mode 100644 index 0000000..6abd678 --- /dev/null +++ b/vendor/rails/activesupport/lib/active_support/core_ext/hash/diff.rb @@ -0,0 +1,19 @@ +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module Hash #:nodoc: + module Diff + # Returns a hash that represents the difference between two hashes. + # + # Examples: + # + # {1 => 2}.diff(1 => 2) # => {} + # {1 => 2}.diff(1 => 3) # => {1 => 2} + # {}.diff(1 => 2) # => {1 => 2} + # {1 => 2, 3 => 4}.diff(1 => 2) # => {3 => 4} + def diff(h2) + self.dup.delete_if { |k, v| h2[k] == v }.merge(h2.dup.delete_if { |k, v| self.has_key?(k) }) + end + end + end + end +end