Files

TZInfo::RubyDataSource

A DataSource that loads data from the set of Ruby modules included in the TZInfo::Data library (tzinfo-data gem).

To have TZInfo use this DataSource, call TZInfo::DataSource.set as follows:

TZInfo::DataSource.set(:ruby)

Constants

REQUIRE_PATH

Base path for require.

Public Instance Methods

country_codes() click to toggle source

Returns an array of all the available ISO 3166-1 alpha-2 country codes.

# File lib/tzinfo/ruby_data_source.rb, line 78
def country_codes
  load_country_index
  Data::Indexes::Countries.countries.keys.freeze
end
data_timezone_identifiers() click to toggle source

Returns an array of all the available timezone identifiers for data timezones (i.e. those that actually contain definitions).

# File lib/tzinfo/ruby_data_source.rb, line 54
def data_timezone_identifiers
  load_timezone_index
  Data::Indexes::Timezones.data_timezones
end
linked_timezone_identifiers() click to toggle source

Returns an array of all the available timezone identifiers that are links to other timezones.

# File lib/tzinfo/ruby_data_source.rb, line 61
def linked_timezone_identifiers
  load_timezone_index
  Data::Indexes::Timezones.linked_timezones
end
load_country_info(code) click to toggle source

Returns a CountryInfo instance for the given ISO 3166-1 alpha-2 country code. Raises InvalidCountryCode if the country could not be found or the code is invalid.

# File lib/tzinfo/ruby_data_source.rb, line 69
def load_country_info(code)
  load_country_index
  info = Data::Indexes::Countries.countries[code]
  raise InvalidCountryCode, 'Invalid country code' unless info
  info
end
load_timezone_info(identifier) click to toggle source

Returns a TimezoneInfo instance for a given identifier. Raises InvalidTimezoneIdentifier if the timezone is not found or the identifier is invalid.

# File lib/tzinfo/ruby_data_source.rb, line 21
def load_timezone_info(identifier)
  raise InvalidTimezoneIdentifier, 'Invalid identifier' if identifier !~ /^[A-Za-z0-9\+\-_]+(\/[A-Za-z0-9\+\-_]+)*$/
  
  identifier = identifier.gsub(/-/, '__m__').gsub(/\+/, '__p__')
  
  # Untaint identifier after it has been reassigned to a new string. We
  # don't want to modify the original identifier. identifier may also be 
  # frozen and therefore cannot be untainted.
  identifier.untaint
  
  identifier = identifier.split('/')
  begin
    require_definition(identifier)
    
    m = Data::Definitions
    identifier.each {|part|
      m = m.const_get(part)
    }
    
    m.get
  rescue LoadError, NameError => e
    raise InvalidTimezoneIdentifier, e.message
  end
end
timezone_identifiers() click to toggle source

Returns an array of all the available timezone identifiers.

# File lib/tzinfo/ruby_data_source.rb, line 47
def timezone_identifiers
  load_timezone_index
  Data::Indexes::Timezones.timezones
end
to_s() click to toggle source

Returns the name of this DataSource.

# File lib/tzinfo/ruby_data_source.rb, line 84
def to_s
  "Ruby DataSource"
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.