Skip to content

Instantly share code, notes, and snippets.

@timruffles
Created May 24, 2012 09:47
Show Gist options
  • Star 9 You must be signed in to star a gist
  • Fork 5 You must be signed in to fork a gist
  • Save timruffles/2780508 to your computer and use it in GitHub Desktop.
Save timruffles/2780508 to your computer and use it in GitHub Desktop.
rails hash formatter - hash/json to/from camel case and underscores
module HashConverter
class << self
def to_underscore hash
convert hash, :underscore
end
def to_camel_case hash
convert hash, :camelize, :lower
end
def convert obj, *method
case obj
when Hash
obj.inject({}) do |h,(k,v)|
v = convert v, *method
h[k.send(*method)] = v
h
end
when Array
obj.map {|m| convert m, *method }
else
obj
end
end
end
end
puts HashConverter.to_underscore({ "helloILikeThis" => { "recursesThrough" => [{"evenInto" => "arraysButNotVals"}] }})
puts HashConverter.to_camel_case({"hello_i_like_this"=>{"recurses_through"=>[{"even_into"=>"arrays_but_not_vals"}]}})
puts HashConverter.to_camel_case HashConverter.to_underscore({ "helloILikeThis" => { "recursesThrough" => [{"evenInto" => "arraysButNotVals"}] }})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment