class TZInfo::CountryTimezone
Information about a time zone used by a {Country}.
Attributes
A description of this time zone in relation to the country, e.g. “Eastern Time”. This is usually ‘nil` for countries that have a single time zone.
@return [String] an optional description of the time zone.
@return [String] the identifier of the {Timezone} being described.
The latitude of this time zone in degrees. Positive numbers are degrees north and negative numbers are degrees south.
Note that depending on the data source, the position given by {#latitude} and {#longitude} may not be within the country.
@return [Rational] the latitude in degrees.
The longitude of this time zone in degrees. Positive numbers are degrees east and negative numbers are degrees west.
Note that depending on the data source, the position given by {#latitude} and {#longitude} may not be within the country.
@return [Rational] the longitude in degrees.
Public Class Methods
Creates a new {CountryTimezone}.
The passed in identifier and description instances will be frozen.
{CountryTimezone} instances should normally only be constructed by implementations of {DataSource}.
@param identifier [String] the {Timezone} identifier. @param latitude [Rational] the latitude of the time zone. @param longitude [Rational] the longitude of the time zone. @param description [String] an optional description of the time zone.
# File lib/tzinfo/country_timezone.rb, line 44 def initialize(identifier, latitude, longitude, description = nil) @identifier = identifier.freeze @latitude = latitude @longitude = longitude @description = description && description.freeze end
Public Instance Methods
Tests if the given object is equal to the current instance (has the same identifier, latitude, longitude and description).
@param ct [Object] the object to be compared. @return [TrueClass] ‘true` if `ct` is equal to the current instance.
# File lib/tzinfo/country_timezone.rb, line 72 def ==(ct) ct.kind_of?(CountryTimezone) && identifier == ct.identifier && latitude == ct.latitude && longitude == ct.longitude && description == ct.description end
@return [String] the {description} if present, otherwise a human-readable
representation of the identifier (using {Timezone#friendly_identifier}).
# File lib/tzinfo/country_timezone.rb, line 63 def description_or_friendly_identifier description || timezone.friendly_identifier(true) end
Tests if the given object is equal to the current instance (has the same identifier, latitude, longitude and description).
@param ct [Object] the object to be compared. @return [Boolean] ‘true` if `ct` is equal to the current instance.
# File lib/tzinfo/country_timezone.rb, line 83 def eql?(ct) self == ct end
@return [Integer] a hash based on the {identifier}, {latitude}, {longitude} and {description}.
# File lib/tzinfo/country_timezone.rb, line 89 def hash [@identifier, @latitude, @longitude, @description].hash end
Returns the associated {Timezone}.
The result is actually an instance of {TimezoneProxy} in order to defer loading of the time zone transition data until it is first needed.
@return [Timezone] the associated {Timezone}.
# File lib/tzinfo/country_timezone.rb, line 57 def timezone Timezone.get_proxy(@identifier) end