Skip to content

Instantly share code, notes, and snippets.

@bscott
Created May 14, 2013 16:58
Show Gist options
  • Select an option

  • Save bscott/5577573 to your computer and use it in GitHub Desktop.

Select an option

Save bscott/5577573 to your computer and use it in GitHub Desktop.
Hash unnest method
class Hash
def unnest
new_hash = {}
each do |key,val|
if val.is_a?(Hash)
new_hash.merge!(val.prefix_keys("#{key}."))
else
new_hash[key] = val
end
end
new_hash
end
def prefix_keys(prefix)
Hash[map{|key,val| [prefix + key, val]}].unnest
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment