Rails 5 で ActionController::Parameters が Hash (ActiveSupport::HashWithIndifferentAccess) を継承しなくなったことで作った Gem となる。
Rails 4 系から Rails 5 系にアップグレードしたアプリケーションで、AC::Parameters に対して Hash のメソッド呼び出しをしているコードが残っている可能性がある場合を想定している。
自動テスト、手動テストなどで見つかったものは良いが、本番環境まで見逃してエラーが発生するとたいへん悲しい気持ちになる。そこでこの Gem では従来のように Hash のメソッド呼び出しがあった場合には、その処理を続行しつつエラーログを出力するようになる。アプリケーションとしてエラーになることなくなるので、裏でログ検知の仕組みを入れて未対応分のコードを直す土台にするといった使われ方を想定している。
Rails プラギンとしていて Gemfile に gem "everlasting"
として bundle install
すれば、いまのところ特に設定は不要。ログは error レベルで出すようにしている。
裏側の実装としては、AC::Parameters に method_missing
を定義して、Hash が respond_to?
で対応できるメソッドの呼び出しであれば to_h
して send
とロギングをするといったシンプルなものになる。
本質的には望んで使いたい Gem ではないので、一定期間の導入で問題となるログがなければ外すと良い。
Gem の名前は当初 hashnize_parameters などといった名前を考えていたりして悩んでいたが、ちょうどオフィスに向かう電車で聴いていた楽曲の曲名が『EVERLASTING』だったのでそこから拝借したのと、エラーで終わるなることなく続いていくということから命名した。Gem 名はモジュールの名前空間になったりするのでワンワードが好ましいと思っていることも決定の理由だけれど、名付け難しい。
- アーティスト: GALNERYUS
- 出版社/メーカー: バップ
- 発売日: 2007/08/22
- メディア: CD
- クリック: 3回
- この商品を含むブログ (4件) を見る