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}}


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

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}


15
16
17
# File 'lib/more_core_extensions/core_ext/hash/deletes.rb', line 15

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 => []}


8
9
10
# File 'lib/more_core_extensions/core_ext/hash/deletes.rb', line 8

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