tzinfo 1.2.10 → 1.2.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/CHANGES.md +6 -0
- data/LICENSE +1 -1
- data/lib/tzinfo/ruby_core_support.rb +16 -9
- data/lib/tzinfo/ruby_data_source.rb +2 -6
- data/lib/tzinfo/zoneinfo_data_source.rb +2 -10
- data/lib/tzinfo/zoneinfo_timezone_info.rb +1 -5
- data/test/tc_country.rb +6 -4
- data/test/tc_ruby_data_source.rb +6 -4
- data/test/tc_timezone.rb +4 -4
- data/test/tc_zoneinfo_data_source.rb +14 -11
- data/test/tc_zoneinfo_timezone_info.rb +1 -5
- data/test/test_utils.rb +19 -13
- data/test/ts_all_zoneinfo.rb +1 -1
- data/tzinfo.gemspec +1 -1
- data.tar.gz.sig +0 -0
- metadata +3 -3
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 0c5144874478331106359b387585793f77f3d3dfe8ae0fd86ffeceff71c86342
|
|
4
|
+
data.tar.gz: db94ffee0228f3afa5737b2c2003d258b23b2915919999e7349cf47c047c7cef
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 7aa784cba67cb6908503874be5a5c618052c2d508a6f3f2c76d5fc5339b09970cda98719ecc3cbc5fee743657cd9ca457705fc98fa01a3b79ee156dea3c9ddc9
|
|
7
|
+
data.tar.gz: 86f994ba37c3e1f38d343d828a58bada483d658544a5f8780b4ed0d28b3a8cadc5bd0a8729e07468fe2d69147ff04342faad614ffdc0dc03ced90dc6a11a3171
|
checksums.yaml.gz.sig
CHANGED
|
Binary file
|
data/CHANGES.md
CHANGED
data/LICENSE
CHANGED
|
@@ -153,16 +153,23 @@ module TZInfo
|
|
|
153
153
|
end
|
|
154
154
|
|
|
155
155
|
|
|
156
|
-
# Object#untaint is a
|
|
157
|
-
# 3.2.
|
|
158
|
-
# if needed.
|
|
156
|
+
# Object#untaint is deprecated and becomes a no-op in Ruby >= 2.7. It has
|
|
157
|
+
# been removed from Ruby 3.2.
|
|
159
158
|
if !Object.new.respond_to?(:untaint) || RUBY_VERSION =~ /\A(\d+)\.(\d+)(?:\.|\z)/ && ($1 == '2' && $2.to_i >= 7 || $1.to_i >= 3)
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
159
|
+
# Returns the supplied `Object`
|
|
160
|
+
#
|
|
161
|
+
# @param o [Object] the `Object` to untaint.
|
|
162
|
+
# @return [Object] `o`.
|
|
163
|
+
def self.untaint(o)
|
|
164
|
+
o
|
|
165
|
+
end
|
|
166
|
+
else
|
|
167
|
+
# Untaints and returns the supplied `Object`.
|
|
168
|
+
#
|
|
169
|
+
# @param o [Object] the `Object` to untaint.
|
|
170
|
+
# @return [Object] `o`.
|
|
171
|
+
def self.untaint(o)
|
|
172
|
+
o.untaint
|
|
166
173
|
end
|
|
167
174
|
end
|
|
168
175
|
end
|
|
@@ -1,8 +1,4 @@
|
|
|
1
1
|
module TZInfo
|
|
2
|
-
# Use send as a workaround for erroneous 'wrong number of arguments' errors
|
|
3
|
-
# with JRuby 9.0.5.0 when calling methods with Java implementations. See #114.
|
|
4
|
-
send(:using, RubyCoreSupport::UntaintExt) if RubyCoreSupport.const_defined?(:UntaintExt)
|
|
5
|
-
|
|
6
2
|
# A DataSource that loads data from the set of Ruby modules included in the
|
|
7
3
|
# TZInfo::Data library (tzinfo-data gem).
|
|
8
4
|
#
|
|
@@ -25,7 +21,7 @@ module TZInfo
|
|
|
25
21
|
data_file = File.join('', 'tzinfo', 'data.rb')
|
|
26
22
|
path = $".reverse_each.detect {|p| p.end_with?(data_file) }
|
|
27
23
|
if path
|
|
28
|
-
@base_path = File.join(File.dirname(path), 'data')
|
|
24
|
+
@base_path = RubyCoreSupport.untaint(File.join(File.dirname(path), 'data'))
|
|
29
25
|
else
|
|
30
26
|
@base_path = tzinfo_data
|
|
31
27
|
end
|
|
@@ -45,7 +41,7 @@ module TZInfo
|
|
|
45
41
|
# Untaint identifier after it has been reassigned to a new string. We
|
|
46
42
|
# don't want to modify the original identifier. identifier may also be
|
|
47
43
|
# frozen and therefore cannot be untainted.
|
|
48
|
-
|
|
44
|
+
RubyCoreSupport.untaint(identifier)
|
|
49
45
|
|
|
50
46
|
identifier = identifier.split('/')
|
|
51
47
|
begin
|
|
@@ -1,12 +1,4 @@
|
|
|
1
1
|
module TZInfo
|
|
2
|
-
# Use send as a workaround for an issue on JRuby 9.2.9.0 where using the
|
|
3
|
-
# refinement causes calls to RubyCoreSupport.file_open to fail to pass the
|
|
4
|
-
# block parameter.
|
|
5
|
-
#
|
|
6
|
-
# https://travis-ci.org/tzinfo/tzinfo/jobs/628812051#L1931
|
|
7
|
-
# https://github.com/jruby/jruby/issues/6009
|
|
8
|
-
send(:using, TZInfo::RubyCoreSupport::UntaintExt) if TZInfo::RubyCoreSupport.const_defined?(:UntaintExt)
|
|
9
|
-
|
|
10
2
|
# An InvalidZoneinfoDirectory exception is raised if the DataSource is
|
|
11
3
|
# set to a specific zoneinfo path, which is not a valid zoneinfo directory
|
|
12
4
|
# (i.e. a directory containing index files named iso3166.tab and zone.tab
|
|
@@ -229,7 +221,7 @@ module TZInfo
|
|
|
229
221
|
# Untaint path rather than identifier. We don't want to modify
|
|
230
222
|
# identifier. identifier may also be frozen and therefore cannot be
|
|
231
223
|
# untainted.
|
|
232
|
-
|
|
224
|
+
RubyCoreSupport.untaint(path)
|
|
233
225
|
|
|
234
226
|
begin
|
|
235
227
|
ZoneinfoTimezoneInfo.new(identifier, path, @posix_tz_parser)
|
|
@@ -388,7 +380,7 @@ module TZInfo
|
|
|
388
380
|
def enum_timezones(dir, exclude = [], &block)
|
|
389
381
|
Dir.foreach(dir ? File.join(@zoneinfo_dir, dir) : @zoneinfo_dir) do |entry|
|
|
390
382
|
unless entry =~ /\./ || exclude.include?(entry)
|
|
391
|
-
|
|
383
|
+
RubyCoreSupport.untaint(entry)
|
|
392
384
|
path = dir ? File.join(dir, entry) : entry
|
|
393
385
|
full_path = File.join(@zoneinfo_dir, path)
|
|
394
386
|
|
|
@@ -1,8 +1,4 @@
|
|
|
1
1
|
module TZInfo
|
|
2
|
-
# Use send as a workaround for erroneous 'wrong number of arguments' errors
|
|
3
|
-
# with JRuby 9.0.5.0 when calling methods with Java implementations. See #114.
|
|
4
|
-
send(:using, RubyCoreSupport::UntaintExt) if RubyCoreSupport.const_defined?(:UntaintExt)
|
|
5
|
-
|
|
6
2
|
# An InvalidZoneinfoFile exception is raised if an attempt is made to load an
|
|
7
3
|
# invalid zoneinfo file.
|
|
8
4
|
class InvalidZoneinfoFile < StandardError
|
|
@@ -351,7 +347,7 @@ module TZInfo
|
|
|
351
347
|
std_offset = 0
|
|
352
348
|
end
|
|
353
349
|
|
|
354
|
-
offset index, utc_offset, std_offset, offset[:abbr].
|
|
350
|
+
offset index, utc_offset, std_offset, RubyCoreSupport.untaint(offset[:abbr]).to_sym
|
|
355
351
|
end
|
|
356
352
|
|
|
357
353
|
# Parses a zoneinfo file and intializes the DataTimezoneInfo structures.
|
data/test/tc_country.rb
CHANGED
|
@@ -2,10 +2,6 @@ require File.join(File.expand_path(File.dirname(__FILE__)), 'test_utils')
|
|
|
2
2
|
|
|
3
3
|
include TZInfo
|
|
4
4
|
|
|
5
|
-
# Use send as a workaround for erroneous 'wrong number of arguments' errors with
|
|
6
|
-
# JRuby 9.0.5.0 when calling methods with Java implementations. See #114.
|
|
7
|
-
send(:using, TaintExt) if Module.const_defined?(:TaintExt)
|
|
8
|
-
|
|
9
5
|
class TCCountry < Minitest::Test
|
|
10
6
|
def setup
|
|
11
7
|
@orig_data_source = DataSource.get
|
|
@@ -48,6 +44,7 @@ class TCCountry < Minitest::Test
|
|
|
48
44
|
end
|
|
49
45
|
|
|
50
46
|
def test_get_tainted_loaded
|
|
47
|
+
skip_if_taint_is_undefined_or_no_op
|
|
51
48
|
Country.get('GB')
|
|
52
49
|
|
|
53
50
|
safe_test(:unavailable => :skip) do
|
|
@@ -60,6 +57,7 @@ class TCCountry < Minitest::Test
|
|
|
60
57
|
end
|
|
61
58
|
|
|
62
59
|
def test_get_tainted_and_frozen_loaded
|
|
60
|
+
skip_if_taint_is_undefined_or_no_op
|
|
63
61
|
Country.get('GB')
|
|
64
62
|
|
|
65
63
|
safe_test do
|
|
@@ -69,6 +67,8 @@ class TCCountry < Minitest::Test
|
|
|
69
67
|
end
|
|
70
68
|
|
|
71
69
|
def test_get_tainted_not_previously_loaded
|
|
70
|
+
skip_if_taint_is_undefined_or_no_op
|
|
71
|
+
|
|
72
72
|
safe_test(:unavailable => :skip) do
|
|
73
73
|
code = 'GB'.dup.taint
|
|
74
74
|
assert(code.tainted?)
|
|
@@ -79,6 +79,8 @@ class TCCountry < Minitest::Test
|
|
|
79
79
|
end
|
|
80
80
|
|
|
81
81
|
def test_get_tainted_and_frozen_not_previously_loaded
|
|
82
|
+
skip_if_taint_is_undefined_or_no_op
|
|
83
|
+
|
|
82
84
|
safe_test do
|
|
83
85
|
country = Country.get('GB'.dup.taint.freeze)
|
|
84
86
|
assert_equal('GB', country.code)
|
data/test/tc_ruby_data_source.rb
CHANGED
|
@@ -2,10 +2,6 @@ require File.join(File.expand_path(File.dirname(__FILE__)), 'test_utils')
|
|
|
2
2
|
|
|
3
3
|
include TZInfo
|
|
4
4
|
|
|
5
|
-
# Use send as a workaround for erroneous 'wrong number of arguments' errors with
|
|
6
|
-
# JRuby 9.0.5.0 when calling methods with Java implementations. See #114.
|
|
7
|
-
send(:using, TaintExt) if Module.const_defined?(:TaintExt)
|
|
8
|
-
|
|
9
5
|
class TCRubyDataSource < Minitest::Test
|
|
10
6
|
def setup
|
|
11
7
|
@data_source = RubyDataSource.new
|
|
@@ -81,6 +77,7 @@ class TCRubyDataSource < Minitest::Test
|
|
|
81
77
|
end
|
|
82
78
|
|
|
83
79
|
def test_load_timezone_info_tainted
|
|
80
|
+
skip_if_taint_is_undefined_or_no_op
|
|
84
81
|
skip_if_has_bug_14060
|
|
85
82
|
|
|
86
83
|
safe_test(:unavailable => :skip) do
|
|
@@ -93,6 +90,7 @@ class TCRubyDataSource < Minitest::Test
|
|
|
93
90
|
end
|
|
94
91
|
|
|
95
92
|
def test_load_timezone_info_tainted_and_frozen
|
|
93
|
+
skip_if_taint_is_undefined_or_no_op
|
|
96
94
|
skip_if_has_bug_14060
|
|
97
95
|
|
|
98
96
|
safe_test do
|
|
@@ -149,6 +147,8 @@ class TCRubyDataSource < Minitest::Test
|
|
|
149
147
|
end
|
|
150
148
|
|
|
151
149
|
def test_load_country_info_tainted
|
|
150
|
+
skip_if_taint_is_undefined_or_no_op
|
|
151
|
+
|
|
152
152
|
safe_test(:unavailable => :skip) do
|
|
153
153
|
code = 'NL'.dup.taint
|
|
154
154
|
assert(code.tainted?)
|
|
@@ -159,6 +159,8 @@ class TCRubyDataSource < Minitest::Test
|
|
|
159
159
|
end
|
|
160
160
|
|
|
161
161
|
def test_load_country_info_tainted_and_frozen
|
|
162
|
+
skip_if_taint_is_undefined_or_no_op
|
|
163
|
+
|
|
162
164
|
safe_test do
|
|
163
165
|
info = @data_source.load_country_info('NL'.dup.taint.freeze)
|
|
164
166
|
assert_equal('NL', info.code)
|
data/test/tc_timezone.rb
CHANGED
|
@@ -2,10 +2,6 @@ require File.join(File.expand_path(File.dirname(__FILE__)), 'test_utils')
|
|
|
2
2
|
|
|
3
3
|
include TZInfo
|
|
4
4
|
|
|
5
|
-
# Use send as a workaround for erroneous 'wrong number of arguments' errors with
|
|
6
|
-
# JRuby 9.0.5.0 when calling methods with Java implementations. See #114.
|
|
7
|
-
send(:using, TaintExt) if Module.const_defined?(:TaintExt)
|
|
8
|
-
|
|
9
5
|
class TCTimezone < Minitest::Test
|
|
10
6
|
|
|
11
7
|
class BlockCalled < StandardError
|
|
@@ -244,6 +240,7 @@ class TCTimezone < Minitest::Test
|
|
|
244
240
|
end
|
|
245
241
|
|
|
246
242
|
def test_get_tainted_loaded
|
|
243
|
+
skip_if_taint_is_undefined_or_no_op
|
|
247
244
|
Timezone.get('Europe/Andorra')
|
|
248
245
|
|
|
249
246
|
safe_test(:unavailable => :skip) do
|
|
@@ -256,6 +253,7 @@ class TCTimezone < Minitest::Test
|
|
|
256
253
|
end
|
|
257
254
|
|
|
258
255
|
def test_get_tainted_and_frozen_loaded
|
|
256
|
+
skip_if_taint_is_undefined_or_no_op
|
|
259
257
|
Timezone.get('Europe/Andorra')
|
|
260
258
|
|
|
261
259
|
safe_test do
|
|
@@ -265,6 +263,7 @@ class TCTimezone < Minitest::Test
|
|
|
265
263
|
end
|
|
266
264
|
|
|
267
265
|
def test_get_tainted_not_previously_loaded
|
|
266
|
+
skip_if_taint_is_undefined_or_no_op
|
|
268
267
|
skip_if_has_bug_14060
|
|
269
268
|
|
|
270
269
|
safe_test(:unavailable => :skip) do
|
|
@@ -277,6 +276,7 @@ class TCTimezone < Minitest::Test
|
|
|
277
276
|
end
|
|
278
277
|
|
|
279
278
|
def test_get_tainted_and_frozen_not_previously_loaded
|
|
279
|
+
skip_if_taint_is_undefined_or_no_op
|
|
280
280
|
skip_if_has_bug_14060
|
|
281
281
|
|
|
282
282
|
safe_test do
|
|
@@ -7,17 +7,8 @@ require 'tmpdir'
|
|
|
7
7
|
|
|
8
8
|
include TZInfo
|
|
9
9
|
|
|
10
|
-
# Use send as a workaround for an issue on JRuby 9.2.9.0 where using the
|
|
11
|
-
# refinement causes calls to RubyCoreSupport.file_open to fail to pass the block
|
|
12
|
-
# parameter.
|
|
13
|
-
#
|
|
14
|
-
# https://travis-ci.org/tzinfo/tzinfo/jobs/628812051#L1931
|
|
15
|
-
# https://github.com/jruby/jruby/issues/6009
|
|
16
|
-
send(:using, TZInfo::RubyCoreSupport::UntaintExt) if TZInfo::RubyCoreSupport.const_defined?(:UntaintExt)
|
|
17
|
-
send(:using, TaintExt) if Module.const_defined?(:TaintExt)
|
|
18
|
-
|
|
19
10
|
class TCZoneinfoDataSource < Minitest::Test
|
|
20
|
-
ZONEINFO_DIR = File.join(File.expand_path(File.dirname(__FILE__)), 'zoneinfo')
|
|
11
|
+
ZONEINFO_DIR = RubyCoreSupport.untaint(File.join(File.expand_path(File.dirname(__FILE__)), 'zoneinfo'))
|
|
21
12
|
|
|
22
13
|
def setup
|
|
23
14
|
@orig_search_path = ZoneinfoDataSource.search_path.clone
|
|
@@ -662,6 +653,8 @@ class TCZoneinfoDataSource < Minitest::Test
|
|
|
662
653
|
end
|
|
663
654
|
|
|
664
655
|
def test_load_timezone_info_tainted
|
|
656
|
+
skip_if_taint_is_undefined_or_no_op
|
|
657
|
+
|
|
665
658
|
safe_test(:unavailable => :skip) do
|
|
666
659
|
identifier = 'Europe/Amsterdam'.dup.taint
|
|
667
660
|
assert(identifier.tainted?)
|
|
@@ -672,6 +665,8 @@ class TCZoneinfoDataSource < Minitest::Test
|
|
|
672
665
|
end
|
|
673
666
|
|
|
674
667
|
def test_load_timezone_info_tainted_and_frozen
|
|
668
|
+
skip_if_taint_is_undefined_or_no_op
|
|
669
|
+
|
|
675
670
|
safe_test do
|
|
676
671
|
info = @data_source.load_timezone_info('Europe/Amsterdam'.dup.taint.freeze)
|
|
677
672
|
assert_equal('Europe/Amsterdam', info.identifier)
|
|
@@ -679,6 +674,8 @@ class TCZoneinfoDataSource < Minitest::Test
|
|
|
679
674
|
end
|
|
680
675
|
|
|
681
676
|
def test_load_timezone_info_tainted_zoneinfo_dir_safe_mode
|
|
677
|
+
skip_if_taint_is_undefined_or_no_op
|
|
678
|
+
|
|
682
679
|
safe_test(:unavailable => :skip) do
|
|
683
680
|
assert_raises(SecurityError) do
|
|
684
681
|
ZoneinfoDataSource.new(@data_source.zoneinfo_dir.dup.taint)
|
|
@@ -687,6 +684,8 @@ class TCZoneinfoDataSource < Minitest::Test
|
|
|
687
684
|
end
|
|
688
685
|
|
|
689
686
|
def test_load_timezone_info_tainted_zoneinfo_dir
|
|
687
|
+
skip_if_taint_is_undefined_or_no_op
|
|
688
|
+
|
|
690
689
|
data_source = ZoneinfoDataSource.new(@data_source.zoneinfo_dir.dup.taint)
|
|
691
690
|
info = data_source.load_timezone_info('Europe/London')
|
|
692
691
|
assert_kind_of(ZoneinfoTimezoneInfo, info)
|
|
@@ -697,7 +696,7 @@ class TCZoneinfoDataSource < Minitest::Test
|
|
|
697
696
|
entries = Dir.glob(File.join(directory, '**', '*'))
|
|
698
697
|
|
|
699
698
|
entries = entries.select do |file|
|
|
700
|
-
|
|
699
|
+
RubyCoreSupport.untaint(file)
|
|
701
700
|
File.file?(file)
|
|
702
701
|
end
|
|
703
702
|
|
|
@@ -868,6 +867,8 @@ class TCZoneinfoDataSource < Minitest::Test
|
|
|
868
867
|
end
|
|
869
868
|
|
|
870
869
|
def test_load_country_info_tainted
|
|
870
|
+
skip_if_taint_is_undefined_or_no_op
|
|
871
|
+
|
|
871
872
|
safe_test(:unavailable => :skip) do
|
|
872
873
|
code = 'NL'.dup.taint
|
|
873
874
|
assert(code.tainted?)
|
|
@@ -878,6 +879,8 @@ class TCZoneinfoDataSource < Minitest::Test
|
|
|
878
879
|
end
|
|
879
880
|
|
|
880
881
|
def test_load_country_info_tainted_and_frozen
|
|
882
|
+
skip_if_taint_is_undefined_or_no_op
|
|
883
|
+
|
|
881
884
|
safe_test do
|
|
882
885
|
info = @data_source.load_country_info('NL'.dup.taint.freeze)
|
|
883
886
|
assert_equal('NL', info.code)
|
|
@@ -5,10 +5,6 @@ require 'tempfile'
|
|
|
5
5
|
|
|
6
6
|
include TZInfo
|
|
7
7
|
|
|
8
|
-
# Use send as a workaround for erroneous 'wrong number of arguments' errors with
|
|
9
|
-
# JRuby 9.0.5.0 when calling methods with Java implementations. See #114.
|
|
10
|
-
send(:using, RubyCoreSupport::UntaintExt) if RubyCoreSupport.const_defined?(:UntaintExt)
|
|
11
|
-
|
|
12
8
|
class TCZoneinfoTimezoneInfo < Minitest::Test
|
|
13
9
|
class FakePosixTimeZoneParser
|
|
14
10
|
def initialize(&block)
|
|
@@ -1281,7 +1277,7 @@ class TCZoneinfoTimezoneInfo < Minitest::Test
|
|
|
1281
1277
|
|
|
1282
1278
|
tzif_test(offsets, []) do |path, format|
|
|
1283
1279
|
# untaint only required for Ruby 1.9.2
|
|
1284
|
-
|
|
1280
|
+
RubyCoreSupport.untaint(path)
|
|
1285
1281
|
|
|
1286
1282
|
safe_test do
|
|
1287
1283
|
info = ZoneinfoTimezoneInfo.new('Zone/three', path, @posix_tz_parser)
|
data/test/test_utils.rb
CHANGED
|
@@ -108,6 +108,25 @@ module Kernel
|
|
|
108
108
|
skip('Skipping test due to Ruby 2.4.4 being affected by Bug 14060 (see https://bugs.ruby-lang.org/issues/14060#note-5)')
|
|
109
109
|
end
|
|
110
110
|
end
|
|
111
|
+
|
|
112
|
+
# Object#taint is deprecated in Ruby >= 2.7 and will be removed in 3.2.
|
|
113
|
+
# 2.7 makes it a no-op with a warning.
|
|
114
|
+
# Define a method that will skip for use in tests that deal with tainted
|
|
115
|
+
# objects.
|
|
116
|
+
if Object.respond_to?(:taint)
|
|
117
|
+
if RUBY_VERSION >= '2.7'
|
|
118
|
+
def skip_if_taint_is_undefined_or_no_op
|
|
119
|
+
skip('Object#taint is a no-op')
|
|
120
|
+
end
|
|
121
|
+
else
|
|
122
|
+
def skip_if_taint_is_undefined_or_no_op
|
|
123
|
+
end
|
|
124
|
+
end
|
|
125
|
+
else
|
|
126
|
+
def skip_if_taint_is_undefined_or_no_op
|
|
127
|
+
skip('Object#taint is not defined')
|
|
128
|
+
end
|
|
129
|
+
end
|
|
111
130
|
|
|
112
131
|
def assert_array_same_items(expected, actual, msg = nil)
|
|
113
132
|
full_message = message(msg, '') { diff(expected, actual) }
|
|
@@ -184,19 +203,6 @@ module Kernel
|
|
|
184
203
|
end
|
|
185
204
|
|
|
186
205
|
|
|
187
|
-
# Object#taint is a deprecated no-op in Ruby 2.7 and outputs a warning. It will
|
|
188
|
-
# be removed in 3.2. Silence the warning or supply a replacement.
|
|
189
|
-
if TZInfo::RubyCoreSupport.const_defined?(:UntaintExt)
|
|
190
|
-
module TaintExt
|
|
191
|
-
refine Object do
|
|
192
|
-
def taint
|
|
193
|
-
self
|
|
194
|
-
end
|
|
195
|
-
end
|
|
196
|
-
end
|
|
197
|
-
end
|
|
198
|
-
|
|
199
|
-
|
|
200
206
|
# JRuby 1.7.5 to 1.7.9 consider DateTime instances that differ by less than
|
|
201
207
|
# 1 millisecond to be equivalent (https://github.com/jruby/jruby/issues/1311).
|
|
202
208
|
#
|
data/test/ts_all_zoneinfo.rb
CHANGED
|
@@ -3,7 +3,7 @@ require File.join(File.expand_path(File.dirname(__FILE__)), 'test_utils.rb')
|
|
|
3
3
|
# Use a zoneinfo directory containing files needed by the tests.
|
|
4
4
|
# The symlinks in this directory are set up in test_utils.rb.
|
|
5
5
|
zoneinfo_path = File.join(File.expand_path(File.dirname(__FILE__)), 'zoneinfo')
|
|
6
|
-
|
|
6
|
+
TZInfo.const_get(:RubyCoreSupport).untaint(zoneinfo_path) if RUBY_VERSION < '2.7'
|
|
7
7
|
TZInfo::DataSource.set(:zoneinfo, zoneinfo_path)
|
|
8
8
|
|
|
9
9
|
require File.join(File.expand_path(File.dirname(__FILE__)), 'ts_all.rb')
|
data/tzinfo.gemspec
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Gem::Specification.new do |s|
|
|
2
2
|
s.name = 'tzinfo'
|
|
3
|
-
s.version = '1.2.
|
|
3
|
+
s.version = '1.2.11'
|
|
4
4
|
s.summary = 'Daylight savings aware timezone library'
|
|
5
5
|
s.description = 'TZInfo provides daylight savings aware transformations between times in different time zones.'
|
|
6
6
|
s.author = 'Philip Ross'
|
data.tar.gz.sig
CHANGED
|
Binary file
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: tzinfo
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.2.
|
|
4
|
+
version: 1.2.11
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Philip Ross
|
|
@@ -29,7 +29,7 @@ cert_chain:
|
|
|
29
29
|
J3Zn/kSTjTekiaspyGbczC3PUaeJNxr+yCvR4sk71Xmk/GaKKGOHedJ1uj/LAXrA
|
|
30
30
|
MR0mpl7b8zCg0PFC1J73uw==
|
|
31
31
|
-----END CERTIFICATE-----
|
|
32
|
-
date:
|
|
32
|
+
date: 2023-01-28 00:00:00.000000000 Z
|
|
33
33
|
dependencies:
|
|
34
34
|
- !ruby/object:Gem::Dependency
|
|
35
35
|
name: thread_safe
|
|
@@ -191,7 +191,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
191
191
|
- !ruby/object:Gem::Version
|
|
192
192
|
version: '0'
|
|
193
193
|
requirements: []
|
|
194
|
-
rubygems_version: 3.
|
|
194
|
+
rubygems_version: 3.4.5
|
|
195
195
|
signing_key:
|
|
196
196
|
specification_version: 4
|
|
197
197
|
summary: Daylight savings aware timezone library
|
metadata.gz.sig
CHANGED
|
Binary file
|