Module: CodeCode::Common::Utils::Hash
- Defined in:
- lib/codecode/common/utils.rb
Overview
Utility methods for Hash manipulation
Instance Method Summary collapse
-
#except(hash, key) ⇒ Hash
Removes a key from the hash and return the modified hash.
- #recursive_key_symbolizer(object) ⇒ Object
- #recursive_key_symbolizer!(object) ⇒ Object
-
#select(hash, keys) ⇒ Hash
Return a new hash only with the specified keys.
-
#symbolize_keys(hash) ⇒ Hash
Convert Hash string keys to symbol keys.
-
#symbolize_keys!(hash) ⇒ Hash
BANG! Convert Hash string keys to symbol keys.
-
#symbolize_keys_of_hashs(array_of_hashs) ⇒ Object
Convert Hash Array with string keys to symbol keys.
-
#symbolize_keys_of_hashs!(array_of_hashs) ⇒ Object
BANG! Convert Hash Array with string keys to symbol keys.
Instance Method Details
#except(hash, key) ⇒ Hash
Removes a key from the hash and return the modified hash
80 81 82 |
# File 'lib/codecode/common/utils.rb', line 80 def except(hash, key) hash.delete(key) end |
#recursive_key_symbolizer(object) ⇒ Object
67 68 69 70 71 72 73 |
# File 'lib/codecode/common/utils.rb', line 67 def recursive_key_symbolizer(object) if object.class.eql? ::Array symbolize_keys_of_hashs object elsif object.class.eql? ::Hash symbolize_keys object end end |
#recursive_key_symbolizer!(object) ⇒ Object
59 60 61 62 63 64 65 |
# File 'lib/codecode/common/utils.rb', line 59 def recursive_key_symbolizer!(object) if object.class.eql? ::Array symbolize_keys_of_hashs! object elsif object.class.eql? ::Hash symbolize_keys! object end end |
#select(hash, keys) ⇒ Hash
Return a new hash only with the specified keys
89 90 91 |
# File 'lib/codecode/common/utils.rb', line 89 def select(hash, keys) hash.select { |k, v| keys.include?(k) } end |
#symbolize_keys(hash) ⇒ Hash
Convert Hash string keys to symbol keys
16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/codecode/common/utils.rb', line 16 def symbolize_keys(hash) hash.inject({}){ |memo, (k, v)| memo[k.to_sym] = v if v.class.eql? ::Hash memo[k.to_sym] = symbolize_keys v elsif v.class.eql? ::Array memo[k.to_sym] = symbolize_keys_of_hashs v end memo } end |
#symbolize_keys!(hash) ⇒ Hash
BANG! Convert Hash string keys to symbol keys
32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/codecode/common/utils.rb', line 32 def symbolize_keys!(hash) new_hash = hash.inject({}){ |memo, (k, v)| memo[k.to_sym] = v if v.class.eql? ::Hash memo[k.to_sym] = symbolize_keys! v elsif v.class.eql? ::Array memo[k.to_sym] = symbolize_keys_of_hashs! v end memo } hash.replace new_hash end |
#symbolize_keys_of_hashs(array_of_hashs) ⇒ Object
Convert Hash Array with string keys to symbol keys
48 49 50 |
# File 'lib/codecode/common/utils.rb', line 48 def symbolize_keys_of_hashs(array_of_hashs) array_of_hashs.collect{|hash| symbolize_keys(hash)} end |
#symbolize_keys_of_hashs!(array_of_hashs) ⇒ Object
BANG! Convert Hash Array with string keys to symbol keys
55 56 57 |
# File 'lib/codecode/common/utils.rb', line 55 def symbolize_keys_of_hashs!(array_of_hashs) array_of_hashs.collect!{|hash| symbolize_keys(hash)} end |