Class: Hash

Inherits:
Object
  • Object
show all
Defined in:
lib/simple_utilities/hash.rb

Overview

hash.deep_keys = %i[a b c]

Instance Method Summary collapse

Instance Method Details

#deep_keysObject



26
27
28
29
30
# File 'lib/simple_utilities/hash.rb', line 26

def deep_keys
  reduce([]) do |memo, (k, v)|
    memo << (v.is_a?(Hash) ? [k, v.deep_keys] : k)
  end.flatten
end

#deep_transform_values(&block) ⇒ Object



13
14
15
16
17
# File 'lib/simple_utilities/hash.rb', line 13

def deep_transform_values(&block)
  transform_values do |v|
    v.is_a?(Hash) ? v.deep_transform_values(&block) : yield(v)
  end
end

#deep_transform_values!(&block) ⇒ Object



19
20
21
22
23
24
# File 'lib/simple_utilities/hash.rb', line 19

def deep_transform_values!(&block)
  each do |k, v|
    self[k] = v.is_a?(Hash) ? v.deep_transform_values!(&block) : yield(v)
  end
  self
end

#reject_emptyObject



32
33
34
# File 'lib/simple_utilities/hash.rb', line 32

def reject_empty
  reject { |_, v| v.to_s.empty? }
end

#reject_empty!Object



36
37
38
# File 'lib/simple_utilities/hash.rb', line 36

def reject_empty!
  reject! { |_, v| v.to_s.empty? }
end