class LibTAD::Holidays::Holiday

A holiday event.

Attributes

country[R]

@return [::LibTAD::Models::Country] Country of the holiday instance.

date[R]

@return [::LibTAD::TADTime::TADTime] Date/time of the holiday instance. Most holidays do have a specific time – in this case the time components will be skipped. Some special events like equinoxes and solstices include the exact time of the event as well, in this case the timestamp will be in local time zone (including time zone data) (countries with multiple timezones: local time in capital city).

id[R]

@return [Integer] Identifier for the holiday definition. Please note that this id is not unique, not even with a single year – the same holiday event may be returned multiple time because it is observed on a different day, or because it is scheduled in a different calendar (Hebrew or Muslim calendar) and happens multiple times within a Gregorian year. Use the uid attribute for purposes where you need a unique identifier.

locations[R]

@return [String] Summary of locations where this holiday instance is valid. Element is only present if the holiday instance does not affect the whole country.

name[R]

@return [Hash<String, String>] Hash of languages with corresponding holiday/observance name.

oneliner[R]

@return [Hash<String, String>] Languages with corresponding holiday description.

states[R]

@return [Array<HolidayState>] States/subdivisions that are affected by this holiday instance. This element is only present if the holiday instance is not valid in the whole country.

types[R]

@return [Array<String>] Classification of the holiday. Most days have only one classification, but some have multiple types associated. This happens e.g. in conjunction with religious days that also are flag days.

Example: National Holiday

uid[R]

@return [String] Id for the shown holiday instance. The id is designed to be unique across all holiday instances generated by the timeanddate.com API services and respects different calendars and other reasons that may cause events to occurs multiple times within one Gregorian year.

Example: 0007d600000007db

url[R]

@return [String] Further information about the specific holiday. The URL points to the timeanddate.com web page.

Example: www.timeanddate.com/holidays/us/new-year-day

Public Class Methods

new(hash) click to toggle source
# File lib/types/holidays/holiday.rb, line 71
def initialize(hash)
  @id = hash.fetch('id', nil)
  @uid = hash.fetch('uid', nil)
  @name = hash.fetch('name', nil)
    &.map { |e| [ e['lang'], e['text'] ] }
    .to_h

  @date = ::LibTAD::TADTime::TADTime.new hash.fetch('date', nil)
  @url = hash.fetch('url', nil)
  @country = ::LibTAD::Places::Country.new hash['country'] unless !hash.key?('country')
  @locations = hash.fetch('locations', nil)
  @states = hash.fetch('states', nil)
    &.map { |e| HolidayState.new(e) }

  @oneliner = hash.fetch('oneliner', nil)
    &.map { |e| [ e['lang'], e['text'] ] }
    .to_h

  @types = hash.fetch('types', nil)
end