Module: MoreCoreExtensions::HashDeletes
- Defined in:
- lib/more_core_extensions/core_ext/hash/deletes.rb
Instance Method Summary collapse
-
#deep_delete(key) ⇒ Object
Deletes all keys and subkeys that match
key. -
#delete_blanks ⇒ Object
Deletes all keys where the value is blank.
-
#delete_nils ⇒ Object
Deletes all keys where the value is nil.
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_blanks ⇒ Object
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_nils ⇒ Object
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 |