twitter_cldr 6.8.0 → 6.9.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/twitter_cldr/timezones/generic_location.rb +15 -15
- data/lib/twitter_cldr/timezones/gmt_location.rb +2 -2
- data/lib/twitter_cldr/timezones/iso8601_location.rb +2 -2
- data/lib/twitter_cldr/timezones/timezone.rb +11 -7
- data/lib/twitter_cldr/version.rb +1 -1
- data/spec/timezones/timezone_spec.rb +41 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c8aceda15c987295a62672bd4f7a78546b34eed2a83eb9178b58bd5a5efa49be
|
4
|
+
data.tar.gz: b179d63e855785bdd871b12dda0f7c0ecd67b91106510972d89f74ab93b8ec5d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 92f18ec12c13f8ed66b23a9453c9b932e502738266957b326a62493ef1062878ae29932d16f4963658f0b30591528de8415293f1e1c90e394a3e2b4fba2b1244
|
7
|
+
data.tar.gz: b34f99bbb5e5e37d3c95d63ce56d47c097d2aac14730ed56d72fc2f5e3c5a0db26b1ff0d20ea599a200d4e75bb3c38cd22ecf5321ece0a606967f0f49290738d
|
@@ -21,18 +21,18 @@ module TwitterCldr
|
|
21
21
|
Territories = TwitterCldr::Shared::Territories
|
22
22
|
Utils = TwitterCldr::Utils
|
23
23
|
|
24
|
-
def display_name_for(date, fmt = :generic_location)
|
24
|
+
def display_name_for(date, fmt = :generic_location, dst = TZInfo::Timezone.default_dst, &block)
|
25
25
|
case fmt
|
26
26
|
when :generic_location
|
27
27
|
generic_location_display_name
|
28
28
|
when :generic_short
|
29
|
-
generic_short_display_name(date) || generic_location_display_name
|
29
|
+
generic_short_display_name(date, dst, &block) || generic_location_display_name
|
30
30
|
when :generic_long
|
31
|
-
generic_long_display_name(date) || generic_location_display_name
|
31
|
+
generic_long_display_name(date, dst, &block) || generic_location_display_name
|
32
32
|
when :specific_short
|
33
|
-
specific_short_display_name(date)
|
33
|
+
specific_short_display_name(date, dst, &block)
|
34
34
|
when :specific_long
|
35
|
-
specific_long_display_name(date)
|
35
|
+
specific_long_display_name(date, dst, &block)
|
36
36
|
when :exemplar_location
|
37
37
|
exemplar_city
|
38
38
|
else
|
@@ -58,20 +58,20 @@ module TwitterCldr
|
|
58
58
|
end
|
59
59
|
end
|
60
60
|
|
61
|
-
def generic_short_display_name(date)
|
62
|
-
format_display_name(date, :generic, :short)
|
61
|
+
def generic_short_display_name(date, dst = TZInfo::Timezone.default_dst, &block)
|
62
|
+
format_display_name(date, :generic, :short, dst, &block)
|
63
63
|
end
|
64
64
|
|
65
|
-
def generic_long_display_name(date)
|
66
|
-
format_display_name(date, :generic, :long)
|
65
|
+
def generic_long_display_name(date, dst = TZInfo::Timezone.default_dst, &block)
|
66
|
+
format_display_name(date, :generic, :long, dst, &block)
|
67
67
|
end
|
68
68
|
|
69
|
-
def specific_short_display_name(date)
|
70
|
-
format_display_name(date, :specific, :short)
|
69
|
+
def specific_short_display_name(date, dst = TZInfo::Timezone.default_dst, &block)
|
70
|
+
format_display_name(date, :specific, :short, dst, &block)
|
71
71
|
end
|
72
72
|
|
73
|
-
def specific_long_display_name(date)
|
74
|
-
format_display_name(date, :specific, :long)
|
73
|
+
def specific_long_display_name(date, dst = TZInfo::Timezone.default_dst, &block)
|
74
|
+
format_display_name(date, :specific, :long, dst, &block)
|
75
75
|
end
|
76
76
|
|
77
77
|
# From ICU source, TimeZoneGenericNames.java, formatGenericNonLocationName():
|
@@ -86,9 +86,9 @@ module TwitterCldr
|
|
86
86
|
# 4. If a generic non-location string is not available, use generic location
|
87
87
|
# string.
|
88
88
|
#
|
89
|
-
def format_display_name(date, type, fmt)
|
89
|
+
def format_display_name(date, type, fmt, dst = TZInfo::Timezone.default_dst, &block)
|
90
90
|
date_int = date.strftime('%s').to_i
|
91
|
-
period = tz.period_for_local(date)
|
91
|
+
period = tz.period_for_local(date, dst, &block)
|
92
92
|
|
93
93
|
flavor = if type == :generic
|
94
94
|
:generic
|
@@ -10,8 +10,8 @@ module TwitterCldr
|
|
10
10
|
DEFAULT_FORMAT = :long_gmt
|
11
11
|
DEFAULT_GMT_ZERO_FORMAT = 'GMT'.freeze
|
12
12
|
|
13
|
-
def display_name_for(date, format = DEFAULT_FORMAT)
|
14
|
-
offset = tz.period_for_local(date).offset
|
13
|
+
def display_name_for(date, format = DEFAULT_FORMAT, dst = TZInfo::Timezone.default_dst, &block)
|
14
|
+
offset = tz.period_for_local(date, dst, &block).offset
|
15
15
|
offset_secs = offset.utc_offset + offset.std_offset
|
16
16
|
return gmt_zero_format if offset_secs == 0
|
17
17
|
|
@@ -27,8 +27,8 @@ module TwitterCldr
|
|
27
27
|
:iso_extended_local_full
|
28
28
|
].freeze
|
29
29
|
|
30
|
-
def display_name_for(date, fmt)
|
31
|
-
offset = tz.period_for_local(date).offset
|
30
|
+
def display_name_for(date, fmt, dst = TZInfo::Timezone.default_dst, &block)
|
31
|
+
offset = tz.period_for_local(date, dst, &block).offset
|
32
32
|
offset_secs = offset.utc_offset + offset.std_offset
|
33
33
|
|
34
34
|
case fmt
|
@@ -47,17 +47,17 @@ module TwitterCldr
|
|
47
47
|
@locale = locale
|
48
48
|
end
|
49
49
|
|
50
|
-
def display_name_for(date, format = :generic_location)
|
50
|
+
def display_name_for(date, format = :generic_location, dst = TZInfo::Timezone.default_dst, &block)
|
51
51
|
case format
|
52
52
|
when *GenericLocation::FORMATS
|
53
|
-
generic_location.display_name_for(date, format) ||
|
54
|
-
gmt_location.display_name_for(date, GENERIC_TO_GMT_MAP[format])
|
53
|
+
generic_location.display_name_for(date, format, dst, &block) ||
|
54
|
+
gmt_location.display_name_for(date, GENERIC_TO_GMT_MAP[format], dst, &block)
|
55
55
|
|
56
56
|
when *GmtLocation::FORMATS
|
57
|
-
gmt_location.display_name_for(date, format)
|
57
|
+
gmt_location.display_name_for(date, format, dst, &block)
|
58
58
|
|
59
59
|
when *Iso8601Location::FORMATS
|
60
|
-
iso_location.display_name_for(date, format)
|
60
|
+
iso_location.display_name_for(date, format, dst, &block)
|
61
61
|
|
62
62
|
when :zone_id
|
63
63
|
identifier
|
@@ -75,8 +75,12 @@ module TwitterCldr
|
|
75
75
|
tz.identifier
|
76
76
|
end
|
77
77
|
|
78
|
-
def period_for_local(
|
79
|
-
tz.period_for_local(
|
78
|
+
def period_for_local(*args, &block)
|
79
|
+
tz.period_for_local(*args, &block)
|
80
|
+
end
|
81
|
+
|
82
|
+
def period_for_utc(time)
|
83
|
+
tz.period_for_utc(time)
|
80
84
|
end
|
81
85
|
|
82
86
|
def transitions_up_to(date)
|
data/lib/twitter_cldr/version.rb
CHANGED
@@ -266,4 +266,45 @@ describe 'Timezones' do
|
|
266
266
|
end
|
267
267
|
end
|
268
268
|
end
|
269
|
+
|
270
|
+
describe '#display_name_for' do
|
271
|
+
let(:tz) { TwitterCldr::Timezones::Timezone.instance('America/New_York', :en) }
|
272
|
+
|
273
|
+
it 'accepts a dst argument', :aggregate_failures do
|
274
|
+
zoned_date = Time.new(2021, 11, 7, 1, 1, 23, -4 * 3600)
|
275
|
+
dst_date = Time.new(2021, 11, 7, 1, 1, 23, 0)
|
276
|
+
non_dst_date = Time.new(2021, 11, 7, 12, 1, 23, 0)
|
277
|
+
|
278
|
+
expect(tz.display_name_for(zoned_date, :specific_long, true)).to eq 'Eastern Daylight Time'
|
279
|
+
expect(tz.display_name_for(dst_date, :specific_long, true)).to eq 'Eastern Daylight Time'
|
280
|
+
expect(tz.display_name_for(non_dst_date, :specific_long, false)).to eq 'Eastern Standard Time'
|
281
|
+
expect(tz.display_name_for(zoned_date, :iso_extended_local_full, true)).to eq '-04:00'
|
282
|
+
expect(tz.display_name_for(dst_date, :iso_extended_local_full, true)).to eq '-04:00'
|
283
|
+
expect(tz.display_name_for(non_dst_date, :iso_extended_local_full, false)).to eq '-05:00'
|
284
|
+
end
|
285
|
+
|
286
|
+
it 'accepts a block to handle ambiguous times' do
|
287
|
+
# Known ambiguous time
|
288
|
+
time = Time.new(2021, 11, 7, 1, 1, 23, 0)
|
289
|
+
|
290
|
+
expect { tz.display_name_for(time, :generic_short) }.to raise_error(TZInfo::AmbiguousTime)
|
291
|
+
expect { tz.display_name_for(time, :generic_short, &:first) }.to_not raise_error
|
292
|
+
end
|
293
|
+
end
|
294
|
+
|
295
|
+
describe '#period_for_local' do
|
296
|
+
let(:tz) { TwitterCldr::Timezones::Timezone.instance('America/New_York', :en) }
|
297
|
+
# Known ambiguous time
|
298
|
+
let(:time) { Time.new(2021, 11, 7, 1, 1, 23, 0) }
|
299
|
+
|
300
|
+
it 'accepts a block to handle ambiguous times' do
|
301
|
+
expect { tz.period_for_local(time) }.to raise_error(TZInfo::AmbiguousTime)
|
302
|
+
expect { tz.period_for_local(time, &:first) }.to_not raise_error
|
303
|
+
end
|
304
|
+
|
305
|
+
it 'accepts a dst argument', :aggregate_failures do
|
306
|
+
expect(tz.period_for_local(time, false).dst?).to be false
|
307
|
+
expect(tz.period_for_local(time, true).dst?).to be true
|
308
|
+
end
|
309
|
+
end
|
269
310
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: twitter_cldr
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 6.
|
4
|
+
version: 6.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Cameron Dutro
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-12-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: camertron-eprun
|