class ConcreteHolidays

Attributes

holidays[R]

Public Class Methods

new() click to toggle source
# File lib/concrete_holidays.rb, line 7
def initialize
  @holidays = []
  initialize_cache
  default_holidays
end

Public Instance Methods

add_holiday(holiday) click to toggle source
# File lib/concrete_holidays.rb, line 17
def add_holiday(holiday)
  initialize_cache
  @holidays << holiday
end
default_holidays() click to toggle source
# File lib/concrete_holidays.rb, line 13
def default_holidays
  # override to set initial holidays
end
holiday?(date) click to toggle source
# File lib/concrete_holidays.rb, line 22
def holiday?(date)
  holidays_in_year(date.year).include?(date)
end

Private Instance Methods

holidays_in_year(year) click to toggle source
# File lib/concrete_holidays.rb, line 32
def holidays_in_year(year)
  @cache_by_year[year] ||= holidays.flat_map { |holiday| holiday.date(year) }
end
initialize_cache() click to toggle source
# File lib/concrete_holidays.rb, line 28
def initialize_cache
  @cache_by_year = {}
end