class TZInfo::CountryTimezone

A Timezone within a Country. This contains extra information about the Timezone that is specific to the Country (a Timezone could be used by multiple countries).

Attributes

description[R]

A description of this timezone in relation to the country, e.g. “Eastern Time”. This is usually nil for countries having only a single Timezone.

identifier[R]

The zone identifier.

Public Instance Methods

==(ct) click to toggle source

Returns true if and only if the given CountryTimezone is equal to the current CountryTimezone (has the same identifer, latitude, longitude and description).

# File lib/tzinfo/country_timezone.rb, line 97
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

if description is not nil, this method returns description; otherwise it returns timezone.friendly_identifier(true).

# File lib/tzinfo/country_timezone.rb, line 72
def description_or_friendly_identifier
  description || timezone.friendly_identifier(true)
end
eql?(ct) click to toggle source

Returns true if and only if the given CountryTimezone is equal to the current CountryTimezone (has the same identifer, latitude, longitude and description).

# File lib/tzinfo/country_timezone.rb, line 106
def eql?(ct)
  self == ct
end
hash() click to toggle source

Returns a hash of this CountryTimezone.

# File lib/tzinfo/country_timezone.rb, line 111
def hash
  @identifier.hash ^ 
    (@latitude ? @latitude.numerator.hash ^ @latitude.denominator.hash : @latitude_numerator.hash ^ @latitude_denominator.hash) ^
    (@longitude ? @longitude.numerator.hash ^ @longitude.denominator.hash : @longitude_numerator.hash ^ @longitude_denominator.hash) ^
    @description.hash
end
inspect() click to toggle source

Returns internal object state as a programmer-readable string.

# File lib/tzinfo/country_timezone.rb, line 119
def inspect
  "#<#{self.class}: #@identifier>"
end
latitude() click to toggle source

The latitude of this timezone in degrees as a Rational.

# File lib/tzinfo/country_timezone.rb, line 77
def latitude
  # Thread-safety: It is possible that the value of @latitude may be 
  # calculated multiple times in concurrently executing threads. It is not 
  # worth the overhead of locking to ensure that @latitude is only 
  # calculated once.
  @latitude ||= RubyCoreSupport.rational_new!(@latitude_numerator, @latitude_denominator)
end
longitude() click to toggle source

The longitude of this timezone in degrees as a Rational.

# File lib/tzinfo/country_timezone.rb, line 86
def longitude
  # Thread-safety: It is possible that the value of @longitude may be 
  # calculated multiple times in concurrently executing threads. It is not 
  # worth the overhead of locking to ensure that @longitude is only 
  # calculated once.
  @longitude ||= RubyCoreSupport.rational_new!(@longitude_numerator, @longitude_denominator)
end
new(identifier, latitude, longitude, description = nil) click to toggle source

Creates a new CountryTimezone with a timezone identifier, latitude, longitude and description. The latitude and longitude must be specified as instances of Rational.

CountryTimezone instances should normally only be constructed when creating new DataSource implementations.

Calls superclass method
# File lib/tzinfo/country_timezone.rb, line 31
def new(identifier, latitude, longitude, description = nil)
  super(identifier, latitude, nil, longitude, nil, description)      
end
timezone() click to toggle source

The Timezone (actually a TimezoneProxy for performance reasons).

# File lib/tzinfo/country_timezone.rb, line 66
def timezone
  Timezone.get_proxy(@identifier)
end