Class: TZInfo::Country
| Relationships & Source Files | |
| Super Chains via Extension / Inclusion / Inheritance | |
|
Instance Chain:
self,
Comparable
|
|
| Inherits: | Object |
| Defined in: | lib/tzinfo/country.rb |
Overview
The Country class represents an ISO 3166-1 country. It can be used to
obtain a list of time zones observed by a country. For example:
united_states = Country.get('US')
united_states.zone_identifiers
united_states.zones
united_states.zone_info
The Country class is thread-safe. It is safe to use class and instance
methods of Country in concurrently executing threads. Instances of
Country can be shared across thread boundaries.
Country information available through ::TZInfo is intended as an aid for
users, to help them select time zone data appropriate for their practical
needs. It is not intended to take or endorse any position on legal or
territorial claims.
Class Method Summary
-
._load(data) ⇒ Country
Loads a
Countryfrom the serialized representation returned by #_dump. - .all ⇒ Array<Country>
- .all_codes ⇒ Array<String>
-
.get(code) ⇒ Country
Gets a
Countryby its ISO 3166-1 alpha-2 code. -
.new(info) ⇒ Country
constructor
Initializes a new
Countrybased upon aDataSources::CountryInfoinstance. - .data_source ⇒ DataSource private
Instance Method Summary
-
#<=>(c) ⇒ Integer
Compares this
Countrywith another based on their #code. -
#=~(regexp) ⇒ Integer
Matches
regexpagainst the #code of thisCountry. -
#_dump(limit) ⇒ String
Returns a serialized representation of this
Country. - #code ⇒ String
- #eql?(c) ⇒ Boolean
- #hash ⇒ Integer
- #inspect ⇒ String
- #name ⇒ String
- #to_s ⇒ String
-
#zone_identifiers ⇒ Array<String>
(also: #zone_names)
Returns an
Arraycontaining the identifier for each time zone observed by the country. -
#zone_info ⇒ Array<CountryTimezone>
Returns a frozen
Arraycontaining aCountryTimezoneinstance for each time zone observed by the country. -
#zone_names
Alias for #zone_identifiers.
-
#zones ⇒ Array<Timezone>
Returns An
Arraycontaining aTimezoneinstance for each time zone observed by the country.
Constructor Details
.new(info) ⇒ Country
Initializes a new Country based upon a DataSources::CountryInfo
instance.
Country instances should not normally be constructed directly. Use
the .get method to obtain instances instead.
# File 'lib/tzinfo/country.rb', line 72
def initialize(info) @info = info end
Class Method Details
._load(data) ⇒ Country
Loads a Country from the serialized representation returned by #_dump.
This is method is called when using Marshal.load or Marshal.restore
to restore a serialized Country.
# File 'lib/tzinfo/country.rb', line 204
def self._load(data) Country.get(data) end
.all ⇒ Array<Country>
# File 'lib/tzinfo/country.rb', line 52
def all data_source.country_codes.collect {|code| get(code)} end
.all_codes ⇒ Array<String>
# File 'lib/tzinfo/country.rb', line 46
def all_codes data_source.country_codes end
.data_source ⇒ DataSource (private)
# File 'lib/tzinfo/country.rb', line 59
def data_source DataSource.get end
.get(code) ⇒ Country
Gets a Country by its ISO 3166-1 alpha-2 code.
The .all_codes method can be used to obtain a list of valid ISO 3166-1 alpha-2 codes.
# File 'lib/tzinfo/country.rb', line 40
def get(code) Country.new(data_source.get_country_info(code)) end
Instance Method Details
#<=>(c) ⇒ Integer
Compares this Country with another based on their #code.
#=~(regexp) ⇒ Integer
Matches regexp against the #code of this Country.
# File 'lib/tzinfo/country.rb', line 185
def =~(regexp) regexp =~ code end
#_dump(limit) ⇒ String
Returns a serialized representation of this Country. This method is
called when using Marshal.dump with an instance of Country.
# File 'lib/tzinfo/country.rb', line 194
def _dump(limit) code end
#code ⇒ String
# File 'lib/tzinfo/country.rb', line 77
def code @info.code end
#eql?(c) ⇒ Boolean
# File 'lib/tzinfo/country.rb', line 170
def eql?(c) self == c end
#hash ⇒ Integer
# File 'lib/tzinfo/country.rb', line 175
def hash code.hash end
#inspect ⇒ String
# File 'lib/tzinfo/country.rb', line 94
def inspect "#<#{self.class}: #{@info.code}>" end
#name ⇒ String
# File 'lib/tzinfo/country.rb', line 82
def name @info.name end
#to_s ⇒ String
# File 'lib/tzinfo/country.rb', line 88
def to_s name end
#zone_identifiers ⇒ Array<String>
Also known as: #zone_names
Returns an Array containing the identifier for each time zone observed
by the country. These are in an order that
- makes some geographical sense, and
- puts the most populous zones first, where that does not contradict 1.
Returned zone identifiers may refer to cities and regions outside of the country. This will occur if the zone covers multiple countries. Any zones referring to a city or region in a different country will be listed after those relating to this country.
# File 'lib/tzinfo/country.rb', line 111
def zone_identifiers zone_info.map(&:identifier) end
#zone_info ⇒ Array<CountryTimezone>
Returns a frozen Array containing a CountryTimezone instance for each
time zone observed by the country. These are in an order that
- makes some geographical sense, and
- puts the most populous zones first, where that does not contradict 1.
The CountryTimezone instances can be used to obtain the location and
descriptions of the observed time zones.
Identifiers and descriptions of the time zones returned may refer to cities and regions outside of the country. This will occur if the time zone covers multiple countries. Any zones referring to a city or region in a different country will be listed after those relating to this country.
# File 'lib/tzinfo/country.rb', line 152
def zone_info @info.zones end
#zone_names
Alias for #zone_identifiers.
# File 'lib/tzinfo/country.rb', line 114
alias zone_names zone_identifiers
#zones ⇒ Array<Timezone>
Returns An Array containing a Timezone instance for each time zone
observed by the country. These are in an order that
- makes some geographical sense, and
- puts the most populous zones first, where that does not contradict 1.
The identifiers of the time zones returned may refer to cities and regions outside of the country. This will occur if the time zone covers multiple countries. Any zones referring to a city or region in a different country will be listed after those relating to this country.
The results are actually instances of TimezoneProxy in order to defer
loading of the time zone transition data until it is first needed.
# File 'lib/tzinfo/country.rb', line 132
def zones zone_info.map(&:timezone) end