Module: Furoshiki::Util
- Included in:
- Configuration
- Defined in:
- lib/furoshiki/util.rb
Instance Method Summary collapse
-
#deep_set_symbol_key(hash, key, value) ⇒ Hash
Ensure symbol keys, even in nested hashes.
- #deep_symbolize_keys(hash) ⇒ Object
-
#merge_with_symbolized_keys(defaults, hash) ⇒ Object
Assumes that defaults already has symbolized keys.
Instance Method Details
#deep_set_symbol_key(hash, key, value) ⇒ Hash
Ensure symbol keys, even in nested hashes
9 10 11 12 13 14 15 16 |
# File 'lib/furoshiki/util.rb', line 9 def deep_set_symbol_key(hash, key, value) if value.kind_of? Hash hash[key.to_sym] = value.inject({}) { |inner_hash, (inner_key, inner_value)| deep_set_symbol_key(inner_hash, inner_key, inner_value) } else hash[key.to_sym] = value end hash end |
#deep_symbolize_keys(hash) ⇒ Object
18 19 20 |
# File 'lib/furoshiki/util.rb', line 18 def deep_symbolize_keys(hash) merge_with_symbolized_keys({}, hash) end |
#merge_with_symbolized_keys(defaults, hash) ⇒ Object
Assumes that defaults already has symbolized keys
23 24 25 |
# File 'lib/furoshiki/util.rb', line 23 def merge_with_symbolized_keys(defaults, hash) hash.inject(defaults) { |symbolized, (k, v)| deep_set_symbol_key(symbolized, k, v) } end |