Class: Increments::Schedule::WinterVacationSchedule::NewYearVacation
- Inherits:
-
Struct
- Object
- Struct
- Increments::Schedule::WinterVacationSchedule::NewYearVacation
- Defined in:
- lib/increments/schedule.rb
Instance Method Summary collapse
- #days ⇒ Object
- #end_day ⇒ Object
- #first_sunday ⇒ Object
- #first_weekend_almost_adjoins_jan_3? ⇒ Boolean
- #jan_1 ⇒ Object
- #jan_3 ⇒ Object
Instance Method Details
#days ⇒ Object
113 114 115 |
# File 'lib/increments/schedule.rb', line 113 def days jan_1..end_day end |
#end_day ⇒ Object
117 118 119 120 121 122 123 124 125 |
# File 'lib/increments/schedule.rb', line 117 def end_day return jan_3 if first_sunday <= jan_3 if first_weekend_almost_adjoins_jan_3? first_sunday else jan_3 end end |
#first_sunday ⇒ Object
131 132 133 |
# File 'lib/increments/schedule.rb', line 131 def first_sunday @first_sunday ||= jan_1.find_next(&:sunday?) end |
#first_weekend_almost_adjoins_jan_3? ⇒ Boolean
127 128 129 |
# File 'lib/increments/schedule.rb', line 127 def first_weekend_almost_adjoins_jan_3? jan_3.next_day.upto(first_sunday).all? { |d| d.friday? || d.saturday? || d.sunday? } end |
#jan_1 ⇒ Object
135 136 137 |
# File 'lib/increments/schedule.rb', line 135 def jan_1 @jan_1 ||= Date.new(year, 1, 1) end |
#jan_3 ⇒ Object
139 140 141 |
# File 'lib/increments/schedule.rb', line 139 def jan_3 @jan_3 ||= Date.new(year, 1, 3) end |