class Hash
Public Instance Methods
deep_fetch(*args, &block)
click to toggle source
# File lib/flyml/core_ext/hash.rb, line 29 def deep_fetch(*args, &block) return self if args.empty? value = fetch(args.shift, &block) if value.is_a?(Hash) value.deep_fetch(*args, &block) elsif value.is_a?(Array) && !args.empty? value = value[args.shift] value.deep_fetch(*args, &block) else value end end
recursive_symbolize_keys!()
click to toggle source
# File lib/flyml/core_ext/hash.rb, line 14 def recursive_symbolize_keys! symbolize_keys! # symbolize each hash in .values values.each { |h| h.recursive_symbolize_keys! if h.is_a?(Hash) } # symbolize each hash inside an array in .values values. select { |v| v.is_a?(Array) }. flatten. each { |h| h.recursive_symbolize_keys! if h.is_a?(Hash) } self end
symbolize_keys!()
click to toggle source
# File lib/flyml/core_ext/hash.rb, line 2 def symbolize_keys! keys.each do |key| new_key = begin key.to_sym rescue key end self[new_key] = delete(key) end end