class TZInfo::CountryTimezone

Information about a time zone used by a {Country}.

Attributes

description[R]

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.

identifier[R]

@return [String] the identifier of the {Timezone} being described.

latitude[R]

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.

longitude[R]

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

new(identifier, latitude, longitude, description = nil) click to toggle source

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

==(ct) click to toggle source

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
description_or_friendly_identifier() click to toggle source

@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
eql?(ct) click to toggle source

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
hash() click to toggle source

@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
timezone() click to toggle source

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