How to create an infinite enumerable of Times?
I want to be able to have an object extend Enumerable in Ruby to be an infinite list of Mondays (for example). So it would yield: March 29, April 5, April 12...... etc How can I implement this in Ruby? In 1.9 (and probably previous versions using backports ), you can easily create enumerator: require 'date' def ndays_from(from, step=7) Enumerator.new {|y| loop { y.yield from from += step } } end e = ndays_from(Date.today) p e.take(5) #=> [#<Date: 2010-03-25 (4910561/2,0,2299161)>, #<Date: 2010-04-01 (4910575/2,0,2299161)>, #<Date: 2010-04-08 (4910589/2,0,2299161)>, #<Date: 2010-04-15 (4910603