module TimezoneParser
TimezoneParser
module
Constants
- AllModules
Modules
which to use by default when no modules are specified- VERSION
Version
Public Class Methods
Locales
which will be used for TimezoneParser
methods if not specified there
Each locale is language identifier based on IETF BCP 47. Usually is either language identifier or language and country/region identifier @return [Array<String>] list containing locale identifiers @see en.wikipedia.org/wiki/IETF_language_tag @see unicode.org/reports/tr35/#Unicode_Language_and_Locale_Identifiers @see www.unicode.org/cldr/charts/latest/supplemental/language_territory_information.html @see msdn.microsoft.com/en-us/library/dd318693.aspx
# File lib/timezone_parser.rb, line 48 def self.Locales @@Locales end
Modules
which will be used for TimezoneParser
methods if not specified there @return [Array<Symbol>] list containing symbol names for modules to use @see AllModules
# File lib/timezone_parser.rb, line 26 def self.Modules @@Modules end
Regions
which will be used for TimezoneParser
methods if not specified there
Each region is either ISO 3166-1 alpha-2 code or CLDR
territory (UN M.49) @return [Array<String>] list containing region identifiers @see en.wikipedia.org/wiki/ISO_3166-1_alpha-2 @see www.unicode.org/cldr/charts/latest/supplemental/territory_containment_un_m_49.html
# File lib/timezone_parser.rb, line 36 def self.Regions @@Regions end
Get UTC offsets in seconds for given Timezone
name @param name [String] either Timezone
name or abbreviation @param toTime [DateTime] look for offsets which came into effect before this date, exclusive @param fromTime [DateTime] look for offsets which came into effect at this date, inclusive @param regions [Array<String>] look for offsets only for these regions @param locales [Array<String>] search Timezone
name only for these locales @param type [Symbol] specify whether offset should be :standard time or :daylight @param all [Boolean] specify whether should search for all offsets or return as soon as found any @param modules [Array<Symbol>] list of modules from which to search @return [Array<Fixnum>] list of timezone offsets in seconds @see Regions
@see Locales
@see Modules
@see AllModules
@see Abbreviation.getOffsets
@see Timezone.getOffsets
@see WindowsZone.getOffsets
@see RailsZone.getOffsets
# File lib/timezone_parser.rb, line 98 def self.getOffsets(name, toTime = nil, fromTime = nil, regions = @@Regions, locales = @@Locales, type = nil, all = true, modules = @@Modules) offsets = SortedSet.new modules = AllModules if modules.nil? or modules.empty? offsets += Abbreviation::getOffsets(name, toTime, fromTime, regions, type) if modules.include?(:Abbreviations) return offsets.to_a if not all and not offsets.empty? offsets += Timezone::getOffsets(name, toTime, fromTime, locales, regions) if modules.include?(:Timezones) return offsets.to_a if not all and not offsets.empty? offsets += WindowsZone::getOffsets(name, locales) if modules.include?(:WindowsZones) return offsets.to_a if not all and not offsets.empty? offsets += RailsZone::getOffsets(name, toTime, fromTime, locales) if modules.include?(:RailsZones) offsets.to_a end
Get Timezone
identifiers for given Timezone
name @param name [String] either Timezone
name or abbreviation @param toTime [DateTime] look for timezones which came into effect before this date, exclusive @param fromTime [DateTime] look for timezones which came into effect at this date, inclusive @param regions [Array<String>] look for timezones only for these regions @param locales [Array<String>] search Timezone
name only for these locales @param type [Symbol] specify whether timezones should be :standard time or :daylight @param all [Boolean] specify whether should search for all timezones or return as soon as found any @param modules [Array<Symbol>] list of modules from which to search @return [Array<String>] list of timezone identifiers @see Regions
@see Locales
@see Modules
@see AllModules
@see Abbreviation.getTimezones
@see Timezone.getTimezones
@see WindowsZone.getTimezones
@see RailsZone.getTimezones
# File lib/timezone_parser.rb, line 132 def self.getTimezones(name, toTime = nil, fromTime = nil, regions = @@Regions, locales = @@Locales, type = nil, all = true, modules = @@Modules) timezones = SortedSet.new modules = AllModules if modules.nil? or modules.empty? timezones += Abbreviation::getTimezones(name, toTime, fromTime, regions, type) if modules.include?(:Abbreviations) return timezones.to_a if not all and not timezones.empty? timezones += Timezone::getTimezones(name, toTime, fromTime, locales, regions) if modules.include?(:Timezones) return timezones.to_a if not all and not timezones.empty? timezones += WindowsZone::getTimezones(name, locales, regions) if modules.include?(:WindowsZones) return timezones.to_a if not all and not timezones.empty? timezones += RailsZone::getTimezones(name, locales) if modules.include?(:RailsZones) timezones.to_a end
Check if given Timezone
name is a valid timezone @param name [String] either Timezone
name or abbreviation @param locales [Array<String>] check only for these locales @param modules [Array<Symbol>] list of modules from which to check @return [Boolean] whether Timezone
is valid @see Locales
@see Modules
@see AllModules
@see Abbreviation.isValid?
@see Timezone.isValid?
@see WindowsZone.isValid?
@see RailsZone.isValid?
# File lib/timezone_parser.rb, line 64 def self.isValid?(name, locales = @@Locales, modules = @@Modules) valid = false modules = AllModules if modules.nil? or modules.empty? valid = Abbreviation::isValid?(name) if modules.include?(:Abbreviations) return valid if valid valid = Timezone::isValid?(name, locales) if modules.include?(:Timezones) return valid if valid valid = WindowsZone::isValid?(name, locales) if modules.include?(:WindowsZones) return valid if valid valid = RailsZone::isValid?(name, locales) if modules.include?(:RailsZones) valid end