毎日やったことを記録していく(2019/10/16 192日目)

今日やったこと

TOEIC® L&R テスト 文法問題 でる1000問
  • 回答数:10問
iKnow
  • 新規:0個
  • 復習:100個
スタディサプリENGLISH
  • クイックワードクイズ:1サブセクション

読書

Refactoring: Ruby Edition
  • 位置No: 1005〜1030

開発

danime-nico-tools
  • fixturesの更新

コミュニティ

Tokyo Rubyist Meetup
  • Pattern Matching - New feature in Ruby 2.7

知ったこと

Rubyのブロックの結合度

  • { .. }: 強
  • do .. end: 弱

下記はブロックがStandardErrorの引数として解釈されてしまう

rescue_from StandardError { render plain: 'NG', code: 200 }

なので、StandardErrorをかっこで囲むかdo .. end使う必要がある。

rescue_from(StandardError) { render plain: 'NG', code: 200 }

# or
rescue_from StandardError do render plain: 'NG', code: 200 end

rescue_fromのwithにlambdaを渡した場合

下記は通る。また、ブロック引数にexceptionが渡ってくる。

rescue_from StandardError, with: ->(exception) { render plain: 'NG', code: 500 }

なのでブロック引数を省略するとArgumentErrorが発生しそうだが省略しない場合と同じ挙動をする。

rescue_from StandardError, with: ->(exception) { render plain: 'NG', code: 500 }

これはActiveSupportが裏で、渡したProcの引数がある場合とない場合で処理を分けていてどちらも通るように実装されているから。

github.com

英語のカッコの呼び方

yutokyokutyo.hatenablog.com

パターンマッチング

rubykaigi.org

感想等

今日のTokyo Rubyist Meetupでリスニング(対日本人以外)とスピーキングが全然ダメだったのが今後の課題・・・。