class BabelDiff::HashFlattener
Public Instance Methods
flat_hash()
click to toggle source
# File lib/babel_diff/hash_flattener.rb, line 3 def flat_hash @_flat_hash ||= {} end
flatten(current_hash = hash, keys = [])
click to toggle source
# File lib/babel_diff/hash_flattener.rb, line 7 def flatten(current_hash = hash, keys = []) current_hash.each do |key, value| new_keys = keys.dup << key if value.is_a? Hash flatten(value, new_keys) else flat_hash[new_keys.join(".")] = value end end flat_hash end
unflatten()
click to toggle source
# File lib/babel_diff/hash_flattener.rb, line 19 def unflatten {}.tap do |unflattened_hash| hash.each do |k,v| keys = k.split(".") current_hash = unflattened_hash keys[0...-1].each { |key| current_hash = current_hash[key] ||= {} } current_hash[keys.last] = v end end end