Rubyのcaseって
同僚のコードで見たんだけど
case when t < Time.now.last_month.beginning_of_month '先月以前' when t < Time.now.beginning_of_month '今月以前' when t < Time.now.next_month.beginning_of_month '来月以前' else '未来' end
caseって対象オブジェクトなくてもいいんすね。驚いた。Rubyのパーサ空気読みすぎ。if/elsifでいいじゃん、というのは皆様に代わって私が突っ込んでおきました。
とりあえず比較対照が何か分からないと気持ち悪いので、これも試してみた。
case when NilClass 'nil' else 'not nil' end
結果は「nil」。ふむ、やはり。
ついでに、別の同僚に教えてもらったイディオム。
(t < Time.now.last_month.beginning_of_month) ? '先月以前' \ : (t < Time.now.beginning_of_month) ? '今月以前' \ : (t < Time.now.next_month.beginning_of_month) ? '来月以前' \ : '未来'
こっちの方が好きだな。
¥なしですんだらもっといいんだけど。