module Anyway::Ext::Hash
Extend Hash
through refinements
Public Instance Methods
bury(val, *path)
click to toggle source
# File lib/anyway/ext/hash.rb, line 18 def bury(val, *path) raise ArgumentError, "No path specified" if path.empty? raise ArgumentError, "Path cannot contain nil" if path.compact.size != path.size last_key = path.pop hash = path.reduce(self) do |hash, k| hash[k] = {} unless hash.key?(k) && hash[k].is_a?(::Hash) hash[k] end hash[last_key] = val end
deep_transform_keys() { |key| ... }
click to toggle source
# File lib/anyway/ext/hash.rb, line 31 def deep_transform_keys(&block) each_with_object({}) do |(key, value), result| result[yield(key)] = value.is_a?(::Hash) ? value.deep_transform_keys(&block) : value end end
stringify_keys!()
click to toggle source
# File lib/anyway/ext/hash.rb, line 8 def stringify_keys! keys.each do |key| value = delete(key) value.stringify_keys! if value.is_a?(::Hash) self[key.to_s] = value end self end