Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

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があるから無駄なオブジェクトも生成しませんしね。