module I18n::HashRefinements
Public Instance Methods
deep_merge!(data)
click to toggle source
deep_merge_hash! by Stefan Rusterholz, see www.ruby-forum.com/topic/142809
# File lib/i18n/core_ext/hash.rb, line 22 def deep_merge!(data) merger = lambda do |_key, v1, v2| Hash === v1 && Hash === v2 ? v1.merge(v2, &merger) : v2 end merge!(data, &merger) end
deep_symbolize_keys()
click to toggle source
# File lib/i18n/core_ext/hash.rb, line 14 def deep_symbolize_keys each_with_object({}) do |(key, value), result| result[symbolize_key(key)] = deep_symbolize_keys_in_object(value) result end end
deep_symbolize_keys_in_object(value)
click to toggle source
# File lib/i18n/core_ext/hash.rb, line 35 def deep_symbolize_keys_in_object(value) case value when Hash value.deep_symbolize_keys when Array value.map { |e| deep_symbolize_keys_in_object(e) } else value end end
except(*keys)
click to toggle source
# File lib/i18n/core_ext/hash.rb, line 5 def except(*keys) dup.except!(*keys) end
except!(*keys)
click to toggle source
# File lib/i18n/core_ext/hash.rb, line 9 def except!(*keys) keys.each { |key| delete(key) } self end
symbolize_key(key)
click to toggle source
# File lib/i18n/core_ext/hash.rb, line 29 def symbolize_key(key) key.respond_to?(:to_sym) ? key.to_sym : key end