Parent

Files

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 Class Methods

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.

# File lib/tzinfo/country_timezone.rb, line 31
def new(identifier, latitude, longitude, description = nil)
  super(identifier, latitude, nil, longitude, nil, description)      
end
Also aliased as: new!
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 are specified as rationals - a numerator and denominator. For performance reasons, the numerators and denominators must be specified in their lowest form.

For use internally within TZInfo.

@!visibility private

Alias for: new

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
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

[Validate]

Generated with the Darkfish Rdoc Generator 2.