0.0
No commit activity in last 3 years
No release in over 3 years
ActionController::Parameters does not inherit Hash since Rails 5.0. This Gem will never cause an error even if you call Hash's method on ActionController::Parameters.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

>= 5.0.0

Runtime

>= 5.0.0
 Project Readme

Everlasting Build Status Gem Version

Enhance the behavior of Hash in the behavior of ActionController::Parameters.

ActionController::Parameters does not inherit Hash since Rails 5.0. This Gem will never cause an error even if you call Hash's method on ActionController::Parameters.

The aim of this Gem is to detect a Hash method calls to ActionController::Parameters without causing errors.

Installation

Add this line to your application's Gemfile:

group :production do
  gem 'everlasting'
end

🌟 Recommend you to enable it only in production environment. In other environments it is to detect errors with fail fast.

And then execute:

$ bundle install

Support version

  • Ruby 2.2.2 or higher.
  • Rails 5 or higher.

About behavior

It is a comparison of behavior when using this Gem and when not using it.

Plain Rails 5 application (Without this Gem)

params.symbolize_keys # => NoMethodError: undefined method `symbolize_keys' for #<ActionController::Parameters:0x00007ffd92632f30>

Rails 5 application with this Gem

params.symbolize_keys # => It outputs exception information to Rails.logger.error without error

It will output to the Rails log together with the backtrace as follows.

The Everlasting Gem detected a method that ActionController::Parameters does not know.
ActionController::Parameters does not inherit Hash since Rails 5.0.
Use `params.to_h.symbolize_keys' instead of `params.symbolize_keys'.

---backtrace---

(snip)

bin/rails:8:in `require'
bin/rails:8:in `<main>'

Development

After checking out the repo, run bin/setup to install dependencies. Then, run rake spec to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/koic/everlasting.

License

The gem is available as open source under the terms of the MIT License.