Ruby on Rails Link Slackで「なんでRubyの例外メッセージってbacktickとsingle quoteを使っているの?」という質問があって、私も気になったのでruby-jpで聞いてみた。
だいたいこのチケットにまとまっていそう。 昔からの記法で今は古くなってそうだけど、既存のプログラムとの互換性を考えると変えづらい、というところかなあ。
mrubyはbacktickを使わずにsingle quoteを使うようにしたらしい。
twitter.comRubyでclassの中からreturnしたい。自動生成したminitestのコードである行以降の def test_* は通らないことが分かっているから無視したい
— Pocke(ぽっけ) (@p_ck_) June 28, 2020
twitter.comend.tap do break
— Pocke(ぽっけ) (@p_ck_) June 28, 2020
という行を途中に入れると、その行以降を実行しなくなるぞ!
クラスの途中からreturn
したくなって、end.tap do break
を入れるhackを思いついた。つまりこう。
class Test < Minitest::Test # このテストは通るから実行したい def test_success assert true end # この行以降は実行しない end.tap do break # このテストからは通らないからひとまず実行したくない def test_failure assert false end end
end.itself do
みたいに、ブロックを受け取らない何もしないメソッドを呼んでも良いかもしれない。
ただ、break
を書けば警告が出るので、消し忘れに気がつけて便利なのでは。
などとruby-jpで言っていたら、end; if false
でいいじゃんと突っ込まれてしまった。たしかに…🦀
IO#write
とその周辺の型が間違っていたので直した。
Logger
の型をつける上で、IO#write
は何を受け取るのかが気になって調べていたら見つけたのだった。
loggerライブラリの型を足すPRをDraftとして作った。しばらく作業していく。
なんとなく見つけたからPRした。
正しく怖がる感染症、読み終わった。 COVID-19という現実を踏まえた上で読むと、注意せねばなあと言う気持ちになる。
自分がちゃんとワクチン接種を受けているかわからないので、COVID-19が落ち着いたら検査に行きたい。 というか今年の健康診断も行ってないのだよな、あんまり行きたくない…
狂犬病についての説明で、「致死率はほぼ100%」と言うからまあ1%ぐらい助かったりするのかなと予想していたら、「"ほぼ"というのは、これまで狂犬病を発症して助かったとされる人が"数人"いるためです。」などと書かれていてびびった。なるほど
さっくり読める本で2,3日で読み終わってしまった。Kindleは本の分厚さが体感できなくて不便…