Class: Mj::HashUtils
- Inherits:
-
Object
show all
- Defined in:
- lib/mj/hash_utils.rb,
lib/mj/hash_utils/version.rb,
lib/mj/hash_utils/key_transformer.rb,
lib/mj/hash_utils/key_underscorer.rb,
lib/mj/hash_utils/deep_value_modifier.rb,
lib/mj/hash_utils/json_key_normalizer.rb
Defined Under Namespace
Classes: DeepValueModifier, JsonKeyNormalizer, KeyTransformer, KeyUnderscorer
Constant Summary
collapse
- VERSION =
"0.1.0"
Instance Method Summary
collapse
Instance Method Details
#compact(hash) ⇒ Object
36
37
38
39
40
|
# File 'lib/mj/hash_utils.rb', line 36
def compact(hash)
hash.reject do |_key, value|
!value || value == ""
end
end
|
#deep_modify_value(hash, &block) ⇒ Object
28
29
30
|
# File 'lib/mj/hash_utils.rb', line 28
def deep_modify_value(hash, &block)
DeepValueModifier.new.modify(hash, &block)
end
|
#deep_stringify_keys(hash) ⇒ Object
20
21
22
|
# File 'lib/mj/hash_utils.rb', line 20
def deep_stringify_keys(hash)
deep_transform_keys(hash, &:to_s)
end
|
#deep_symbolize_keys(hash) ⇒ Object
16
17
18
|
# File 'lib/mj/hash_utils.rb', line 16
def deep_symbolize_keys(hash)
deep_transform_keys(hash, &:to_sym)
end
|
24
25
26
|
# File 'lib/mj/hash_utils.rb', line 24
def deep_transform_keys(hash, &block)
KeyTransformer.new.transform(hash, &block)
end
|
#filter_keys(hash, *keys) ⇒ Object
11
12
13
14
|
# File 'lib/mj/hash_utils.rb', line 11
def filter_keys(hash, *keys)
keys = keys.flatten
hash.select { |key, _value| keys.include?(key) }
end
|
#normalize_json_keys(hash, &block) ⇒ Object
32
33
34
|
# File 'lib/mj/hash_utils.rb', line 32
def normalize_json_keys(hash, &block)
JsonKeyNormalizer.new.normalize(hash, &block)
end
|
#underscorize_keys(hash, &block) ⇒ Object
42
43
44
|
# File 'lib/mj/hash_utils.rb', line 42
def underscorize_keys(hash, &block)
KeyUnderscorer.new.underscorize(hash, &block)
end
|