Method: Lit::Cache#nested_string_keys_to_hash
- Defined in:
- lib/lit/cache.rb
#nested_string_keys_to_hash(db_localizations) ⇒ Object
146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 |
# File 'lib/lit/cache.rb', line 146 def nested_string_keys_to_hash(db_localizations) # http://subtech.g.hatena.ne.jp/cho45/20061122 deep_proc = proc do |_k, s, o| if s.is_a?(Hash) && o.is_a?(Hash) next s.merge(o, &deep_proc) end next o end nested_keys = {} db_localizations.sort.each do |k, v| key_parts = k.to_s.split('.') converted = key_parts.reverse.reduce(v) { |a, n| { n => a } } nested_keys.merge!(converted, &deep_proc) end nested_keys end |