Module: MoreCoreExtensions::HashDeletes

Defined in:
lib/more_core_extensions/core_ext/hash/deletes.rb

Instance Method Summary collapse

Instance Method Details

#deep_delete(key) ⇒ Object

Deletes all keys and subkeys that match key.

{:a => {:b => 2, :c => 3}}.deep_delete(:b) # => {:a => {:c => 3}}


25
26
27
28
29
# File 'lib/more_core_extensions/core_ext/hash/deletes.rb', line 25

def deep_delete(key)
  key = [key] unless key.kind_of?(Array)
  key.each { |k| delete(k) }
  each_value { |v| v.deep_delete(key) if v.respond_to?(:deep_delete) }
end

#delete_blanksObject

Deletes all keys where the value is blank

{:a => 1, :b => [], :c => nil}.delete_blanks # => {:a => 1}


17
18
19
# File 'lib/more_core_extensions/core_ext/hash/deletes.rb', line 17

def delete_blanks
  delete_if { |k, v| v.blank? }
end

#delete_nilsObject

Deletes all keys where the value is nil

{:a => 1, :b => [], :c => nil}.delete_nils # => {:a => 1, :b => []}


10
11
12
# File 'lib/more_core_extensions/core_ext/hash/deletes.rb', line 10

def delete_nils
  delete_if { |k, v| v.nil? }
end