class FinnishHolidays::Year

Public Class Methods

new(year) click to toggle source
# File lib/finnish-holidays/classes/year.rb, line 6
def initialize(year)
  if year > 0
    @year = year
    @holidays = {}
    load_holidays()
  else
    raise "Invalid year: #{year}"
  end
end

Public Instance Methods

discard_weekends() click to toggle source
# File lib/finnish-holidays/classes/year.rb, line 20
def discard_weekends
  holidays = {}

  @holidays.each do |month, array|
    array.each do |holiday|
      if !FinnishHolidays::DateUtils.is_weekend(holiday['year'], holiday['month'], holiday['day'])
        if !holidays[month].is_a? Array
          holidays[month] = []
        end

        holidays[month].push(holiday)
      end
    end
  end

  @holidays = holidays
end
holidays() click to toggle source
# File lib/finnish-holidays/classes/year.rb, line 16
def holidays
  @holidays
end

Private Instance Methods

add_holiday(date, description) click to toggle source
# File lib/finnish-holidays/classes/year.rb, line 59
def add_holiday(date, description)
  year = FinnishHolidays::DateUtils.get_year_from_date(date)
  month = FinnishHolidays::DateUtils.get_month_from_date(date)
  day = FinnishHolidays::DateUtils.get_day_from_date(date)

  if !@holidays[month].is_a? Array
    @holidays[month] = []
  end

  holiday = {
    'year' => year,
    'month' => month,
    'day' => day,
    'description' => description
  }

  @holidays[month].push(holiday)
end
load_holidays() click to toggle source
# File lib/finnish-holidays/classes/year.rb, line 40
def load_holidays
  # Holidays must be added in order
  add_holiday(Date.new(@year, 1, 1), "New Year's Day")
  add_holiday(Date.new(@year, 1, 6), 'Epiphany')
  add_holiday(FinnishHolidays::DateUtils.good_friday(@year), 'Good Friday')
  add_holiday(FinnishHolidays::DateUtils.easter_sunday(@year), 'Easter Sunday')
  add_holiday(FinnishHolidays::DateUtils.easter_monday(@year), 'Easter Monday')
  add_holiday(Date.new(@year, 5, 1), 'May Day')
  add_holiday(FinnishHolidays::DateUtils.ascension_day(@year), 'Ascension Day')
  add_holiday(FinnishHolidays::DateUtils.pentecost(@year), 'Pentecost')
  add_holiday(FinnishHolidays::DateUtils.midsummer_eve(@year), 'Midsummer Eve') # unofficial
  add_holiday(FinnishHolidays::DateUtils.midsummer_day(@year), 'Midsummer Day')
  add_holiday(FinnishHolidays::DateUtils.all_saints_day(@year), "All Saints' Day")
  add_holiday(Date.new(@year, 12, 6), 'Independence Day')
  add_holiday(Date.new(@year, 12, 24), 'Christmas Eve') # unofficial
  add_holiday(Date.new(@year, 12, 25), 'Christmas Day')
  add_holiday(Date.new(@year, 12, 26), "St. Stephen's Day")
end