class TZInfo::Format2::CountryIndexDefiner
:nodoc:
@private
to allow countries and their time zones to be specified.
version of ‘TZInfo::Data::Indexes::Countries` by {CountryIndexDefinition}
Instances of {Format2::CountryIndexDefiner} are yielded to the format 2
def country(code, name)
- Yieldparam: definer - a {CountryDefiner}
Other tags:
- Yield: - yields (optional) to obtain the time zones for the
Parameters:
-
name
(String
) -- Then name of the country. -
code
(String
) -- The ISO 3166-1 alpha-2 code of the country.
def country(code, name) timezones = if block_given? definer = CountryDefiner.new(@shared_timezones, @identifier_deduper, @description_deduper) yield definer definer.timezones else [] end @countries[code.freeze] = DataSources::CountryInfo.new(code, name, timezones) end
def initialize(identifier_deduper, description_deduper)
-
description_deduper
(StringDeduper
) -- a {StringDeduper} instance to -
identifier_deduper
(StringDeduper
) -- a {StringDeduper} instance to
def initialize(identifier_deduper, description_deduper) @identifier_deduper = identifier_deduper @description_deduper = description_deduper @shared_timezones = {} @countries = {} end
def timezone(reference, identifier, latitude_numerator, latitude_denominator,
-
description
(String
) -- an optional description for the time zone. -
longitude_denominator
(Integer
) -- the denominator of the longitude. -
longitude_numerator
(Integer
) -- the numerator of the longitude. -
latitude_denominator
(Integer
) -- the denominator of the latitude. -
latitude_numerator
(Integer
) -- the numerator of the latitude. -
identifier
(String
) -- the time zone identifier. -
reference
(Symbol
) -- a unique reference for the time zone.
def timezone(reference, identifier, latitude_numerator, latitude_denominator, longitude_numerator, longitude_denominator, description = nil) # Dedupe non-frozen literals from format 1 on all Ruby versions and # format 2 on Ruby < 2.3 (without frozen_string_literal support). @shared_timezones[reference] = CountryTimezone.new(@identifier_deduper.dedupe(identifier), Rational(latitude_numerator, latitude_denominator), Rational(longitude_numerator, longitude_denominator), description && @description_deduper.dedupe(description)) end