Skip to content

Instantly share code, notes, and snippets.

@chriseppstein
Created July 31, 2008 22:16
Show Gist options
  • Select an option

  • Save chriseppstein/3535 to your computer and use it in GitHub Desktop.

Select an option

Save chriseppstein/3535 to your computer and use it in GitHub Desktop.
module IgnoringDiff
def ignore_difference_for(key)
self.extend(Module.new do
define_method :diff do |*arguments|
returning(super(*arguments)) do |difference|
difference.delete(key)
end
end
end)
end
end
require 'ignoring_diff'
Hash.send(:include, IgnoringDiff)
h = {:foo => :bar}
h.diff({})
# => {:foo => :bar}
h.ignore_difference_for(:foo)
h.diff({})
# => {}
h.diff({:bar => :baz})
# => {:bar => :baz}
h.ignore_difference_for(:bar)
h.diff({:bar => :baz})
# => {}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment