Object#presenceが便利
ActiveSupport 2.3で導入されたObject#presenceが便利。
たとえば、
time = options[:timestamp].presence || Time.now
で初期値の代入に使えるし、
time = options[:timestamp].presence && Time.at(options[:timestamp])
で値がある場合に限って加工に使える。
組み合わせれば、
time = (options[:timestamp].presence && Time.at(options[:timestamp])) || Time.now
で値があれば加工して、なければ初期値を代入することができる。
でもこれはさすがにわかりづらいので、三項演算子を使って
time = options[:timestamp].present? ? Time.at(options[:timestamp]) : Time.now
としたほうがカッコが減ってわかりやすい。
ActiveSupportがないと生きていけないゆとりになってしまった…。