class Hash
Extention methods for hash class
Public Instance Methods
deep_key_paths()
click to toggle source
# File lib/extentions/hash.rb, line 12 def deep_key_paths stack = map { |k, v| [[k], v] } key_map = [] until stack.empty? key, value = stack.pop key_map << key unless value.is_a? Hash next unless value.is_a? Hash value.map do |k, v| stack.push [key.dup << k, v] end end key_map.reverse end
deep_keys()
click to toggle source
# File lib/extentions/hash.rb, line 5 def deep_keys each_with_object([]) do |(k, v), keys| keys << k keys << v.deep_keys if v.respond_to?(:keys) end end
sanitize!(keys)
click to toggle source
# File lib/extentions/hash.rb, line 31 def sanitize!(keys) keep_if do |k, _v| keys.include?(k) end end