渋谷.rb[:20180221]

渋谷.rb[:20180221] に行った。会場は渋谷のピクスタさん。

shibuyarb.doorkeeper.jp

RubyKaigi 2018 の CFP を書きに行ったけれど、進捗はそれほどなく週末がんばりますといった気持ち。

CFP はひとりでも書けるけれど、対話はひとりではできないのでそんな感じで話していたうち、質問を受けて回答していたことを今後のポインタがてら記しておく。

依存 Gem で修正している内容を Rails アプリで確認する

Rails アプリが依存している Gem で問題があった際に、Gem のコードの変更を Rails アプリで確認する方法はいくつかあるのでそんな話。

まずローカルでの変更した Gem の動きを Rails アプリでを見るのが一番速く、その場合は Gemfile で path オプションを指定する。

gem 'foo', path: '~/path/to/dir'

この場合は foo gem に対するリポジトリgit clone あるいは ghq get したパスを path オプションに記して bundle install すると良い。

github オプションと branch オプションを使っても行うことができるが、リモートリポジトリに変更のたびに push して bundle install する必要があるので開発中はサイクルが遅くあまりオススメはしない。逆に Forked gem にするくらいに仕上がったときにはそういった指定にするものと思う。

gem 'foo', github: 'user/repo', branch: 'fix_branch'

日本語の Ruby リファレンスマニュアルから、ある Ruby バージョンから必要のなくなった記述を消したい

日本語の Ruby リファレンスマニュアルは rurema/doctree で管理されており、こちらは Ruby のバージョンごとにブランチが分かれているわけではなく、master 一本でメンテナンスされている Ruby バージョンすべてが管理されている。

このあたり Ruby のバージョンによって記述を変えたい場合は、ドキュメント中に #@since ... #@end と書いた範囲は指定バージョン以上のみ表示されて、#@until ... #@end と書いた範囲は指定バージョン以降は表示されなくなるといった記述をもちいて記していくことになる。以下、参考になると思う PR 。

t.co

ちなみに本家の Ruby のマニュアルは ruby/ruby のソースコメントを元に生成されている。つまりそれぞれの upstream は異なっている。

RuboCop

いくつかの多岐に渡った話だったので日記に記すには時間がとれず割愛。OSS パッチ会などで聞いてもらえれば答えられる範囲で答えます。

blog.agile.esm.co.jp

Ginza.rb 第56回

Ginza.rb 第56回 もうすぐやってくる!Rails5.2の細かいところも見ておこうに行った。会場は銀座の FiNC さん。

ginzarb.doorkeeper.jp

y-yagi さんによる安定のクオリティのスライド。

https://y-yagi.github.io/presen_rails_5_2_part2/#/

前回の Ginza.rb では Rails 5.2 の Major Features にフォーカスされていたが、今回はそれ以外ということで合わせて Rails 5.2 にアップグレードする際の考慮点みたいな感じで知見を得ることができた。例えば ActiveRecord::Base.cache_versioning の真偽値でキャッシュの互換が変わるので注意といったあたりも bin/rails app:updateconfig/load_defaults あたりとの兼ね合いを含めて設定値を確認のうえ上げていきましょうといったあたり、見落としが減るような情報を得ることができて勉強になりました。

当日参加よりは情報量が減ると思うこと、まだ安定リリースされていない時点 (といっても rc1 以降である) をベースにしているという点を差し引いても Rails 5.2 に向かう前に一読するのがおすすめ。

久しぶりにRuboCopのCIが落ちていた

久しぶりに落ちていたところ見ていたら Parser gem 2.5.0.0 へのアップグレードで落ちている分もあって、そちらはワークアラウンドで対処した。翌日起きて見たらその関係にあるものが Issue にも上がっていた模様で、あとで見ます。

github.com

Rails 6はRuby 2.4.1以上がサポート対象となる

以下の PR を参照のこと。2.4.0 では "symbol_from_string".to_sym.dup にバグがあるので、2.4.1 以上となっているらしい。

github.com

また、ラファエルとその周辺情報によると Rails 6 は来年リリースするお気持ちだから Ruby 2.5 以上ではなく現状では Ruby 2.4 以上としているらしい。

あとは、Oracle enhanced adapter の方で気が付いたけれど、JRuby の安定版である JRuby 9.1.15.0 は MRI 2.3.3 相当なので JRuby ユーザーは現在開発版となる JRuby 9.2.0.0 を視野に入れつつ動向をウォッチすると良いと思う。 github.com