Skip to content

Instantly share code, notes, and snippets.

@yasaichi
Last active August 29, 2015 14:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save yasaichi/afd58a8fb9cb8e81f23b to your computer and use it in GitHub Desktop.
Save yasaichi/afd58a8fb9cb8e81f23b to your computer and use it in GitHub Desktop.
Hash#camelize_keys
require 'active_support/core_ext'
class Hash
unless method_defined?(:camelize_keys)
def camelize_keys(first_letter = :upper)
transform_keys { |key| key.camelize(first_letter) rescue key }
end
end
unless method_defined?(:camelize_keys!)
def camelize_keys!(first_letter = :upper)
transform_keys! { |key| key.camelize(first_letter) rescue key }
end
end
end
# UpperCamelCase (default)
{ 'item_id' => 1 }.camelize_keys #=> { 'ItemId' => 1 }
# lowerCamelCase
{ 'item_id' => 1 }.camelize_keys(:lower) #=> { 'itemId' => 1 }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment