Class: Lit::Services::LocalizationKeysToHashService
- Inherits:
-
Object
- Object
- Lit::Services::LocalizationKeysToHashService
- Defined in:
- lib/lit/services/localization_keys_to_hash_service.rb
Overview
Converts flat hash with localization_keys as keys and translations as values to nested hash by nesting on ‘.’ localization key dots
Class Method Summary collapse
Class Method Details
.call(db_localizations) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/lit/services/localization_keys_to_hash_service.rb', line 9 def self.call(db_localizations) deep_proc = proc do |_k, s, o| next s.merge(o, &deep_proc) if s.is_a?(Hash) && o.is_a?(Hash) 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 |