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)
Base path for require.
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
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
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
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
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
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
Returns the name of this DataSource.
# File lib/tzinfo/ruby_data_source.rb, line 84 def to_s "Ruby DataSource" end
Generated with the Darkfish Rdoc Generator 2.