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