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.

Parameters:

  • identifier (String)

    the Timezone identifier.

  • latitude (Rational)

    the latitude of the time zone.

  • longitude (Rational)

    the longitude of the time zone.

  • description (String) (defaults to: nil)

    an optional description of the time zone.


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.

Returns:

  • (String)

    an optional description of the time zone.


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

def description
  @description
end

#identifierString (readonly)

Returns the identifier of the Timezone being described.

Returns:

  • (String)

    the identifier of the Timezone being described.


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.

Returns:

  • (Rational)

    the latitude in degrees.


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.

Returns:

  • (Rational)

    the longitude in degrees.


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

Parameters:

  • ct (Object)

    the object to be compared.

Returns:

  • (TrueClass)

    true if ct is equal to the current instance.


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

Returns the #description if present, otherwise a human-readable representation of the identifier (using Timezone#friendly_identifier).

Returns:


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

Parameters:

  • ct (Object)

    the object to be compared.

Returns:

  • (Boolean)

    true if ct is equal to the current instance.


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

def eql?(ct)
  self == ct
end

#hashInteger

Returns:


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.

Returns:


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

def timezone
  Timezone.get_proxy(@identifier)
end