パーフェクトRuby on Rails【増補改訂版】をレビュアー献本いただいた

パーフェクトRuby on Rails【増補改訂版】をレビュアー献本いただいた。出版おめでとうございます & 献本ありがとうございました。

以前、Ginza.rb のおりに netwillnet さんから「パ Rails の改訂版を書くにあたってレビュアーお願いできますか?」と声をいただいて、執筆パート担当の igaiga555 さんからのパスでレビュアーに加わらせていただいていた。

全体については仕事の速い tatsuoSakurai さんが書いている書評を見ていただくとして、RuboCop に関わるパートで出版後の変化について記しておこうと思う。

本編9章で rubocop -a を実行すると Style/FrozenStringLiteralComment cop によるマジックコメントが適用されるとあるのですが、RuboCop 0.87 以降では -a オプションでは適用されなくなりました。rubocop -a は安全な cop のみ自動修正するオプションという意味合いに変わったためです。

そのため安全でないとマークされている Style/FrozenStringLiteralComment cop を使った自動修正をするには rubocop -A (大文字の A ) を実行する必要があります (この変更が取り込まれたのは、おそらく脱稿して原稿が印刷所に行っているころ) 。

安全でない自動修正とは、例えば 'foo' << 'bar' のようなコードがあった場合に、frozen string リテラルのマジックコメントなしからありになると、FrozenError (can't modify frozen String) という挙動に変わりますが、このように互換性がない auto-correct になりうるものです (このケースで互換性を維持するためにはレシーバーを dup などする必要がある) 。

rubocop -arubocop -A について詳しくは以下のエントリを参照してください。

koic.hatenablog.com

技術を扱う書籍についてツールがアップデートされていくのは常ですが、レビュー時点ではこの変更への PR 自体も出ていなかったので 1ヶ月くらい時期がずれていれば ...といったライブラリアップデートに関する補完となります。

本書に戻ると Rails 6.0 対応で Docker や GitHub Actions にも触れられているので、これからの業務への知識のステップアップを目指す方などに適した一冊になるのではと思います。改めて執筆お疲れ様でした!