Class: TimezoneParser::Timezone
- Defined in:
- lib/timezone_parser/timezone.rb
Overview
Timezone
Instance Attribute Summary collapse
-
#All ⇒ Object
Returns the value of attribute All.
-
#Locales ⇒ Object
Returns the value of attribute Locales.
-
#Regions ⇒ Object
Returns the value of attribute Regions.
Attributes inherited from ZoneInfo
Class Method Summary collapse
-
.getMetazones(timezone, toTime = nil, fromTime = nil, locales = nil, regions = nil, all = true) ⇒ Array<String>
Get Metazone identifiers for given Timezone name.
-
.getOffsets(timezone, toTime = nil, fromTime = nil, locales = nil, regions = nil, all = true) ⇒ Array<Fixnum>
Get UTC offsets in seconds for given Timezone name.
-
.getTimezones(timezone, toTime = nil, fromTime = nil, locales = nil, regions = nil, all = true) ⇒ Array<String>
Get Timezone identifiers for given Timezone name.
-
.isValid?(timezone, locales = nil) ⇒ Boolean
Check if given Timezone name is a valid timezone.
-
.Locales ⇒ Array<String>
Locales which will be used for Timezone methods if not specified there.
-
.Regions ⇒ Array<String>
Regions which will be used for Timezone methods if not specified there.
Instance Method Summary collapse
-
#getData ⇒ Data
Abbreviation data.
-
#getOffsets ⇒ Array<Fixnum>
Get UTC offsets in seconds.
-
#initialize(timezone) ⇒ Timezone
constructor
Timezone instance.
-
#isValid? ⇒ Boolean
Check if timezone is valid.
-
#set(locales = nil, regions = nil, all = true) ⇒ Timezone
Set locales, regions and all.
Methods inherited from ZoneInfo
#getMetazones, #getTimezones, #getTypes, #setTime
Constructor Details
Instance Attribute Details
#All ⇒ Object
Returns the value of attribute All.
34 35 36 |
# File 'lib/timezone_parser/timezone.rb', line 34 def All @All end |
#Locales ⇒ Object
Returns the value of attribute Locales.
32 33 34 |
# File 'lib/timezone_parser/timezone.rb', line 32 def Locales @Locales end |
#Regions ⇒ Object
Returns the value of attribute Regions.
33 34 35 |
# File 'lib/timezone_parser/timezone.rb', line 33 def Regions @Regions end |
Class Method Details
.getMetazones(timezone, toTime = nil, fromTime = nil, locales = nil, regions = nil, all = true) ⇒ Array<String>
Get Metazone identifiers for given Timezone name
155 156 157 |
# File 'lib/timezone_parser/timezone.rb', line 155 def self.getMetazones(timezone, toTime = nil, fromTime = nil, locales = nil, regions = nil, all = true) self.new(timezone).setTime(toTime, fromTime).set(locales, regions, all).getMetazones end |
.getOffsets(timezone, toTime = nil, fromTime = nil, locales = nil, regions = nil, all = true) ⇒ Array<Fixnum>
Get UTC offsets in seconds for given Timezone name
127 128 129 |
# File 'lib/timezone_parser/timezone.rb', line 127 def self.getOffsets(timezone, toTime = nil, fromTime = nil, locales = nil, regions = nil, all = true) self.new(timezone).setTime(toTime, fromTime).set(locales, regions, all).getOffsets end |
.getTimezones(timezone, toTime = nil, fromTime = nil, locales = nil, regions = nil, all = true) ⇒ Array<String>
Get Timezone identifiers for given Timezone name
141 142 143 |
# File 'lib/timezone_parser/timezone.rb', line 141 def self.getTimezones(timezone, toTime = nil, fromTime = nil, locales = nil, regions = nil, all = true) self.new(timezone).setTime(toTime, fromTime).set(locales, regions, all).getTimezones end |
.isValid?(timezone, locales = nil) ⇒ Boolean
Check if given Timezone name is a valid timezone
113 114 115 |
# File 'lib/timezone_parser/timezone.rb', line 113 def self.isValid?(timezone, locales = nil) self.new(timezone).set(locales).isValid? end |
.Locales ⇒ Array<String>
Locales which will be used for Timezone methods if not specified there
Each locale is language identifier based on IETF BCP 47
19 20 21 |
# File 'lib/timezone_parser/timezone.rb', line 19 def self.Locales @@Locales end |
.Regions ⇒ Array<String>
Regions which will be used for Timezone methods if not specified there
Each region is CLDR territory (UN M.49)
28 29 30 |
# File 'lib/timezone_parser/timezone.rb', line 28 def self.Regions @@Regions end |
Instance Method Details
#getData ⇒ Data
Abbreviation data
77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
# File 'lib/timezone_parser/timezone.rb', line 77 def getData unless @Loaded @Loaded = true @Valid = false locales = @Locales locales = Data::Storage.Timezones.keys if locales.empty? locales.each do |locale| next unless Data::Storage.Timezones.has_key?(locale) entry = Data::Storage.Timezones[locale][@Timezone] if entry @Data.processEntry(entry, @ToTime, @FromTime, @Regions) @Valid = true return @Data unless @All end end end @Data end |
#getOffsets ⇒ Array<Fixnum>
Get UTC offsets in seconds
98 99 100 101 102 103 104 105 106 |
# File 'lib/timezone_parser/timezone.rb', line 98 def getOffsets if not @Offsets and not getTimezones.empty? types = [@Type] if @Type @Offsets = @Data.findOffsets(@ToTime, @FromTime, @Regions, types).to_a else super end @Offsets end |
#isValid? ⇒ Boolean
Check if timezone is valid
60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'lib/timezone_parser/timezone.rb', line 60 def isValid? if @Valid.nil? locales = @Locales locales = Data::Storage.Timezones.keys if locales.empty? locales.each do |locale| next unless Data::Storage.Timezones.has_key?(locale) if Data::Storage.Timezones[locale].has_key?(@Timezone) @Valid = true return @Valid end end end @Valid = false end |
#set(locales = nil, regions = nil, all = true) ⇒ Timezone
Set locales, regions and all
51 52 53 54 55 56 |
# File 'lib/timezone_parser/timezone.rb', line 51 def set(locales = nil, regions = nil, all = true) @Locales = locales unless locales.nil? @Regions = regions unless regions.nil? @All = all ? true : false self end |