Method: Hash#-
- Defined in:
- lib/ext/hash.rb
#-(other) ⇒ Object
Extracted from Ruby Facets: Operator for remove hash paris. If another hash is given the pairs are only removed if both key and value are equal. If an array is given then matching keys are removed.
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/ext/hash.rb', line 12 def -(other) h = self.dup if other.respond_to?(:to_ary) other.to_ary.each do |k| h.delete(k) end else other.each do |k,v| if h.key?(k) h.delete(k) if v == h[k] end end end h end |