Class: TZInfo::CountryTimezone
- Inherits:
-
Object
- Object
- TZInfo::CountryTimezone
- Defined in:
- lib/tzinfo/country_timezone.rb
Overview
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).
Instance Attribute Summary collapse
-
#description ⇒ Object
readonly
A description of this timezone in relation to the country, e.g.
-
#identifier ⇒ Object
readonly
The zone identifier.
Class Method Summary collapse
-
.new(identifier, latitude, longitude, description = nil) ⇒ Object
Creates a new CountryTimezone with a timezone identifier, latitude, longitude and description.
Instance Method Summary collapse
-
#==(ct) ⇒ Object
Returns true if and only if the given CountryTimezone is equal to the current CountryTimezone (has the same identifer, latitude, longitude and description).
-
#description_or_friendly_identifier ⇒ Object
if description is not nil, this method returns description; otherwise it returns timezone.friendly_identifier(true).
-
#eql?(ct) ⇒ Boolean
Returns true if and only if the given CountryTimezone is equal to the current CountryTimezone (has the same identifer, latitude, longitude and description).
-
#hash ⇒ Object
Returns a hash of this CountryTimezone.
-
#inspect ⇒ Object
Returns internal object state as a programmer-readable string.
-
#latitude ⇒ Object
The latitude of this timezone in degrees as a Rational.
-
#longitude ⇒ Object
The longitude of this timezone in degrees as a Rational.
-
#timezone ⇒ Object
The Timezone (actually a TimezoneProxy for performance reasons).
Instance Attribute Details
#description ⇒ Object (readonly)
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.
12 13 14 |
# File 'lib/tzinfo/country_timezone.rb', line 12 def description @description end |
#identifier ⇒ Object (readonly)
The zone identifier.
7 8 9 |
# File 'lib/tzinfo/country_timezone.rb', line 7 def identifier @identifier end |
Class Method Details
.new(identifier, latitude, longitude, description = nil) ⇒ Object
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.
31 32 33 |
# File 'lib/tzinfo/country_timezone.rb', line 31 def new(identifier, latitude, longitude, description = nil) super(identifier, latitude, nil, longitude, nil, description) end |
Instance Method Details
#==(ct) ⇒ Object
Returns true if and only if the given CountryTimezone is equal to the current CountryTimezone (has the same identifer, latitude, longitude and description).
97 98 99 100 101 |
# 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 ⇒ Object
if description is not nil, this method returns description; otherwise it returns timezone.friendly_identifier(true).
72 73 74 |
# File 'lib/tzinfo/country_timezone.rb', line 72 def description_or_friendly_identifier description || timezone.friendly_identifier(true) end |
#eql?(ct) ⇒ Boolean
Returns true if and only if the given CountryTimezone is equal to the current CountryTimezone (has the same identifer, latitude, longitude and description).
106 107 108 |
# File 'lib/tzinfo/country_timezone.rb', line 106 def eql?(ct) self == ct end |
#hash ⇒ Object
Returns a hash of this CountryTimezone.
111 112 113 114 115 116 |
# 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 ⇒ Object
Returns internal object state as a programmer-readable string.
119 120 121 |
# File 'lib/tzinfo/country_timezone.rb', line 119 def inspect "#<#{self.class}: #@identifier>" end |
#latitude ⇒ Object
The latitude of this timezone in degrees as a Rational.
77 78 79 80 81 82 83 |
# 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 ⇒ Object
The longitude of this timezone in degrees as a Rational.
86 87 88 89 90 91 92 |
# 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 |