rails-flog gem をアップデートした
at 2017-10-01 11:22 (UTC)
先日作成した pinzolo/spwd: Secret file based password management tool をアップデートしたついでにふと pinzolo/rails-flog: Rails log formatter for Parameters and SQL を覗いてみた。すると、なんか issue が 3 とかなってる。
んで compatibility for Rails5.1 · Issue #17 · pinzolo/rails-flog という issue が登録されている。あれ??そんなメールは Github から来た覚えないぞ??どうしてだ?
内容は Rails5.1 で動かないよって話。 alias_method_chain
が削除されるって話は知っていたので prepend
に書き直さなきゃなと思って忘れていた。
というわけで作業ログ
- まずは確実に動くRails.4.2環境に固定してテストが通ることを確認。#17 Fiv version for passing test · pinzolo/rails-flog@47f6197
alias_method_chain
やめてprepend
にする。#17 Use prepend insted of alias_method_chain. alias_method_chain is d… · pinzolo/rails-flog@c70a5f3- いろいろ警告が出ていたので対応。#17 Remove warning · pinzolo/rails-flog@85f5e02
- テストが通ったので master にマージするためバージョン指定を元に戻す。#17 Restore dependency version · pinzolo/rails-flog@bad5a46
- Rails5.0にバージョン指定。#17 Set rails version to 5.0.x · pinzolo/rails-flog@cff5d61
- Rails 5.0 に対応(1 commit にしてしまったので変更点を列挙)#17 Rails 5.0 compatible · pinzolo/rails-flog@973f3af
render nothing: true
は削除されるよって警告が出てきたのでhead
に変更。- テスト時に使用する
get
メソッドのパラメータ指定形式が変わるよっていうので対応したら、4.2で通らなくなったので苦肉の策で対応。 - Rails 5.0 になったらパラメータの順序が入れ替わったので、順序を気にしなくていいようにログの文字列から Hash を作って中身比較。
- テストが通ったので master にマージするためバージョン指定を元に戻す。#17 Restore rails version dependency · pinzolo/rails-flog@1f87c2b
- バージョン変更はコミットする必要ないことに気づく
- SQLがキャッシュの場合、以前は
event.payload[:name]
にCACHE
という文字列が入っていたが、Rails 5.1 ではevent.payload[:cached]
で判断すればよいみたい#17 cached query is judged by payload[:cached] instead of payload[:na… · pinzolo/rails-flog@c3123a3 - Tavis CI の設定変更。
prepend
の使用できない Ruby 1.9.3 はサヨウナラして新しい Ruby と Rails のバージョンに対応する。#17 Add new versions for CI · pinzolo/rails-flog@5cca348 - Ruby2.0以上だけのサポートになったのでマジックコメントはいらないRemove magic comment. #17 · pinzolo/rails-flog@2254330
- 珍しく一発で全パターンのCIが通ったのでバージョンを上げる#17 Up to v1.4.0 · pinzolo/rails-flog@a6a2919
bundle exec rake release
お疲れ様でした。