Skip to content

Instantly share code, notes, and snippets.

@railsfactory-kumaresan
Forked from timruffles/hash_converter.rb
Last active August 29, 2015 14:24
Show Gist options
  • Save railsfactory-kumaresan/a3068608eed0c3f0ce57 to your computer and use it in GitHub Desktop.
Save railsfactory-kumaresan/a3068608eed0c3f0ce57 to your computer and use it in GitHub Desktop.
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