Class: Increments::Schedule::WinterVacationSchedule::NewYearVacation

Inherits:
Struct
  • Object
show all
Defined in:
lib/increments/schedule.rb

Instance Method Summary collapse

Instance Method Details

#daysObject



113
114
115
# File 'lib/increments/schedule.rb', line 113

def days
  jan_1..end_day
end

#end_dayObject



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_sundayObject



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

Returns:

  • (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_1Object



135
136
137
# File 'lib/increments/schedule.rb', line 135

def jan_1
  @jan_1 ||= Date.new(year, 1, 1)
end

#jan_3Object



139
140
141
# File 'lib/increments/schedule.rb', line 139

def jan_3
  @jan_3 ||= Date.new(year, 1, 3)
end