毎日やったことを記録していく(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の引数がある場合とない場合で処理を分けていてどちらも通るように実装されているから。
英語のカッコの呼び方
パターンマッチング
感想等
今日のTokyo Rubyist Meetupでリスニング(対日本人以外)とスピーキングが全然ダメだったのが今後の課題・・・。