Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

Dateクラスもstepが使える

Dateクラスもstepで飛ばし飛ばし実行可能です。
ゴールにはDateクラスを渡してあげます。

Date.new(2014,1,1).step(Date.new(2014,1,5),1){|i| p i.jisx0301}
#>> "H26.01.01"
#>> ...
#>> "H26.01.05"

というわけで...いつぞやの記事から何度か扱っているN月1日の曜日を調べるスクリプト
3年分出力したくなった場合もative_support/core_extを使ってあげる事で

Date.new(2014)
p year.step((year + 3.year).end_of_year).lazy.select{|i| i == i.beginning_of_month }.to_a

と書き換える事ができます。
前のバージョンと比べて長くなりました。
その分、年を跨いだ記述が楽です。
lazyがあるから無駄なオブジェクトも生成しませんしね。