Pixel 3が昨晩から充電が全然されなくなってしまったので、修理依頼を出した。 直近で出かける予定はないし、少し不便だけどあまり困らなさそう。
SMSを受け取れないのは少し困るかもしれない。
買って1年以上経っているのでGoogleの保証が受けられなくて代理店になってしまうのが悲しい
I18n-tasksを見ていたら、いらなさそうなコードが見つかったので消した。
なお、背後にはI18n-tasksからhighlineを消したいという野望がある。とりあえず雑なPRを出して様子見をしている。 https://github.com/pocke/i18n-tasks/commit/479a137fd6e49491c3fcb8f087a035d653be14a0 パッチはあるのだけど、理由が弱いかなあと思って一旦pending。
highlineを使ってRainbowを消すこともできると思うのだけど、それはあまり意味がない(どうせRuboCopが依存しているので)から、まあhighlineを消したいなあ。
なんか気になったのでRuby 2.7のkeyword argument対応をした。
I18n.t('foo.bar', option)
がダメで、I18n.t('foo.bar', **option)
にしなきゃいけないのに結構ハマった。
これRails appでハマる人多そうだなあ
しばらく考えていたら、次のようなコードが原因でI18n.t
が問題だと中々気がつけずにいたということに気がついた。
capture_stderr do I18n.t('foo.bar', option) end
capture_stderr
メソッドがstderrを文字列にしてしまうので警告は画面に表示されなくて、2.7では何も起きなくて2.8では突然死ぬ、みたいな地獄ができていた。
しかもI18n.t
はrest引数を受け取って無視するので、I18n.t('foo.bar', option)
は2.8では素通りしてしまう(単にoption
がrestに吸収されて無視される)という極悪ぶり。
https://github.com/ruby-i18n/i18n/commit/5eeaad7fb35f9a30f654e3bdeb6933daa7fd421d#diff-14d9864ac07456d554843dc2a3b174a4R179
コケていたのは次のテストでした。
メソッド呼び出しの最後にcurly braces付きのHashリテラルが付いていると怒るCopを消したいという気持ちを表明した。 以前から嫌いだったのだけど、消せる口実ができて気分がいい。
とはいえ正しい方向に矯正するCopが欲しいような気がしていて、そこはrubocop-typedとかでなんとかできないだろうかと考えていたりする。
rubygemsのドキュメントを読んでいたら不思議なことになっているのを見つけたので報告した。