TimezoneParser 0.1.2 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/timezone_parser/abbreviation.rb +11 -1
- data/lib/timezone_parser/data/storage.rb +2 -2
- data/lib/timezone_parser/version.rb +1 -1
- data/spec/abbreviation_spec.rb +16 -2
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 801e797d854babedd580bcf96aa98356e03e4923
|
4
|
+
data.tar.gz: d5d0f47184e279fd7628fe292c24778b8e044927
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 913e2b9eb391a6fdf900f0645f12914b39b68d819c6f89adff62d2bae24abaf278cebe6405ff23f2f08eb973b372f0d739929047209c215b443978d44d9dc094
|
7
|
+
data.tar.gz: 1bb4c8dba1a94a09eae70416a7e7149d1123ab47571df2d03745e251394f402e51d496d05ab854786f24affb9751db7182290c66987c9a4e9a3875db7e60e618
|
@@ -80,13 +80,23 @@ module TimezoneParser
|
|
80
80
|
@Offsets
|
81
81
|
end
|
82
82
|
|
83
|
-
# Check if given Timezone abbreviation is a valid timezone
|
83
|
+
# Check if given Timezone abbreviation (case-sensitive) is a valid timezone
|
84
84
|
# @param abbreviation [String] Timezone abbreviation
|
85
85
|
# @return [Boolean] whether Timezone is valid
|
86
86
|
def self.isValid?(abbreviation)
|
87
87
|
Data::Storage.Abbreviations.has_key?(abbreviation)
|
88
88
|
end
|
89
89
|
|
90
|
+
# Check if given Timezone abbreviation (case-insensitive) could be a valid timezone
|
91
|
+
# @param abbreviation [String] Timezone abbreviation to check for
|
92
|
+
# @return [Boolean] whether Timezone is valid
|
93
|
+
def self.couldBeValid?(abbreviation)
|
94
|
+
Data::Storage.Abbreviations.each_key do |abbr|
|
95
|
+
return true if abbr.casecmp(abbreviation).zero?
|
96
|
+
end
|
97
|
+
false
|
98
|
+
end
|
99
|
+
|
90
100
|
# Get UTC offsets in seconds for given Timezone abbreviation
|
91
101
|
# @param abbreviation [String] Timezone abbreviation
|
92
102
|
# @param toTime [DateTime] look for offsets which came into effect before this date, exclusive
|
@@ -21,7 +21,7 @@ module TimezoneParser
|
|
21
21
|
public
|
22
22
|
def self.Abbreviations
|
23
23
|
unless @@Abbreviations
|
24
|
-
@@Abbreviations = Marshal.load(File.open(Data::DataDir + 'abbreviations.dat'))
|
24
|
+
@@Abbreviations = Marshal.load(File.open(Data::DataDir + 'abbreviations.dat'))
|
25
25
|
@@Abbreviations.each do |abbr, data|
|
26
26
|
proccessData(data)
|
27
27
|
end
|
@@ -45,7 +45,7 @@ module TimezoneParser
|
|
45
45
|
|
46
46
|
def self.Metazones
|
47
47
|
unless @@Metazones
|
48
|
-
@@Metazones = Marshal.load(File.open(Data::DataDir + 'metazones.dat'))
|
48
|
+
@@Metazones = Marshal.load(File.open(Data::DataDir + 'metazones.dat'))
|
49
49
|
@@Metazones.each do |zone, data|
|
50
50
|
proccessData(data)
|
51
51
|
end
|
data/spec/abbreviation_spec.rb
CHANGED
@@ -18,8 +18,8 @@ describe TimezoneParser do
|
|
18
18
|
expect(TimezoneParser::Abbreviation.new('LOL').isValid?).to be false
|
19
19
|
end
|
20
20
|
|
21
|
-
it 'should be
|
22
|
-
expect(TimezoneParser::Abbreviation.new('Pst').isValid?).to be
|
21
|
+
it 'should be invalid case-insensitive abbreviation' do
|
22
|
+
expect(TimezoneParser::Abbreviation.new('Pst').isValid?).to be false
|
23
23
|
end
|
24
24
|
end
|
25
25
|
|
@@ -100,6 +100,20 @@ describe TimezoneParser do
|
|
100
100
|
end
|
101
101
|
end
|
102
102
|
|
103
|
+
describe '.couldBeValid?' do
|
104
|
+
it 'should be valid abbreviation' do
|
105
|
+
expect(TimezoneParser::Abbreviation.couldBeValid?('cet')).to be true
|
106
|
+
end
|
107
|
+
|
108
|
+
it 'should not be valid abbreviation' do
|
109
|
+
expect(TimezoneParser::Abbreviation.couldBeValid?('WZE')).to be false
|
110
|
+
end
|
111
|
+
|
112
|
+
it 'should be valid case-insensitive abbreviation' do
|
113
|
+
expect(TimezoneParser::Abbreviation.couldBeValid?('Pst')).to be true
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
103
117
|
describe '.getOffsets' do
|
104
118
|
it 'should return offsets for WGT abbreviation in GL region' do
|
105
119
|
expect(TimezoneParser::Abbreviation::getOffsets('WGT', DateTime.now, nil, ['GL'])).to eq([-10800])
|