Class: Mj::HashUtils

Inherits:
Object
  • 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

#deep_transform_keys(hash, &block) ⇒ Object



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