Method: Hash#slice!

Defined in:
activesupport/lib/active_support/core_ext/hash/slice.rb

#slice!(*keys) ⇒ Object

Replaces the hash with only the given keys. Returns a hash containing the removed key/value pairs.

hash = { a: 1, b: 2, c: 3, d: 4 }
hash.slice!(:a, :b)  # => {:c=>3, :d=>4}
hash                 # => {:a=>1, :b=>2}


10
11
12
13
14
15
16
17
# File 'activesupport/lib/active_support/core_ext/hash/slice.rb', line 10

def slice!(*keys)
  omit = slice(*self.keys - keys)
  hash = slice(*keys)
  hash.default      = default
  hash.default_proc = default_proc if default_proc
  replace(hash)
  omit
end