Class: TZInfo::CountryTimezone

Inherits:
Object
  • Object
show all
Defined in:
lib/tzinfo/country_timezone.rb

Overview

Information about a time zone used by a Country.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(identifier, latitude, longitude, description = nil) ⇒ CountryTimezone

Creates a new TZInfo::CountryTimezone.

The passed in identifier and description instances will be frozen.

TZInfo::CountryTimezone instances should normally only be constructed by implementations of DataSource.



44
45
46
47
48
49
# 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

Instance Attribute Details

#descriptionString (readonly)

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.



31
32
33
# File 'lib/tzinfo/country_timezone.rb', line 31

def description
  @description
end

#identifierString (readonly)



7
8
9
# File 'lib/tzinfo/country_timezone.rb', line 7

def identifier
  @identifier
end

#latitudeRational (readonly)

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.



16
17
18
# File 'lib/tzinfo/country_timezone.rb', line 16

def latitude
  @latitude
end

#longitudeRational (readonly)

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.



25
26
27
# File 'lib/tzinfo/country_timezone.rb', line 25

def longitude
  @longitude
end

Instance Method Details

#==(ct) ⇒ TrueClass

Tests if the given object is equal to the current instance (has the same identifier, latitude, longitude and description).



72
73
74
75
76
# 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_identifierString



63
64
65
# File 'lib/tzinfo/country_timezone.rb', line 63

def description_or_friendly_identifier
  description || timezone.friendly_identifier(true)
end

#eql?(ct) ⇒ Boolean

Tests if the given object is equal to the current instance (has the same identifier, latitude, longitude and description).



83
84
85
# File 'lib/tzinfo/country_timezone.rb', line 83

def eql?(ct)
  self == ct
end

#hashInteger



89
90
91
# File 'lib/tzinfo/country_timezone.rb', line 89

def hash
  [@identifier, @latitude, @longitude, @description].hash
end

#timezoneTimezone

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.



57
58
59
# File 'lib/tzinfo/country_timezone.rb', line 57

def timezone
  Timezone.get_proxy(@identifier)
end