Class: Mcal::Calendar
- Inherits:
-
Object
- Object
- Mcal::Calendar
- Defined in:
- lib/mcal/calendar.rb
Instance Method Summary collapse
-
#initialize(year) ⇒ Calendar
constructor
A new instance of Calendar.
- #monthly(month, &block) ⇒ Object
Constructor Details
#initialize(year) ⇒ Calendar
Returns a new instance of Calendar.
5 6 7 |
# File 'lib/mcal/calendar.rb', line 5 def initialize(year) @year = year end |
Instance Method Details
#monthly(month, &block) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/mcal/calendar.rb', line 9 def monthly(month, &block) block ||= lambda { |day| day.mday } by_day = Date.new(@year, month, -1) week = Array.new(7, nil) weeks = [] Date.new(@year, month).step(by_day).each do |day| if day.sunday? week[0] = block.call(day) else week[day.cwday] = block.call(day) end # End the current week and start a new one if day.saturday? weeks << week week = Array.new(7, nil) end end # Add leftover week (if we didn't end exactly on a Saturday) weeks << week if week.compact.any? weeks end |