SnakyCamel
SnakyCamel is Rack middleware for Rails that automatically converts request parameter keys to snake_case and response keys to camelCase.
This is useful if you Rails app is being used as an API for a JavaScript frontend. In Ruby and Rails, the widely adopted naming convention is to use snake_case
for variables, keys etc. Popular JavaScript style guides (such as the Airbnb JavaScript Style Guide) tend to recommend camelCase. This gem allows you to use snake_case in all Ruby/Rails code and camelCase in JavaScript code without having to worry about converting the case of parameter names or having non-conventional names.
Installation
- Add this line to your application's Gemfile and execute
bundle install
:
gem 'snaky_camel'
- Add this line as the last config to
config/application.rb
:
config.middleware.use "SnakyCamel::Middleware"
Usage
Conversion is automatic. All parameter keys in RESTful requests to your Rails application are converted to snake_case. All JSON response keys from your Rails application are converted to camelCase.
Example:
- Your application receives a request to
yourapp.com/search?searchQuery=cobra
. In theparams
hash in your Rails controller, the param key name will besearch_query
. - You render JSON with your controller with this code:
render json: { search_results: ['dromedary'] }, status: :ok
. The actual response is converted to{ searchResults: ['dromedary'] }
.
Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/p4sh4/snaky_camel.
License
The gem is available as open source under the terms of the MIT License.