こんにちは、shimadaです。 今日は、Rubyの特徴の一つであるブロックを引数にとるメソッドの書き方を説明します。 題材として、「あちこちに同じ順番で処理が並んでいる時のコードの整理」を取り上げたいと思います。 重要な処理を行う場合に、開始、終了、エラーが起こったときの詳細を記録しなければならない。 そんな時の処理は、だいたいこんな風になるのではないでしょうか。 class SimpleWorker def action(arg) logger = Application.logger begin logger.info("SimpleWorker.action", "start") do_something rescue => e logger.error("SimpleWorker.action", e.message + e.backtrace.join("¥n")) logge