dynamic_time_zone 0.5.0 → 0.6.2
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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7e159af46f59f20e48137d90de0dbc30e41163cf0a790a0c398f8dd1cbde528c
|
4
|
+
data.tar.gz: 46dd6830341e2df50d96edf63b0429babbb7a9db6e63516d436364800c6eec45
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3bc860e1965cf496fc683cb4a627ef06cd531a1d191425e2e1fa4140b549d2b23d4a549f57565c699bc28957080a236ffcd6c088558233ea1df2c960216a7da8
|
7
|
+
data.tar.gz: f9f7294ea3ee58f85822856f7e06df1575764fa8ff138fe1c62f54eaa42b98ed71c2371f7b5110aa2279109db63afeab45464706fe3928b949089151940514ba
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module DatePatch
|
4
|
+
def current
|
5
|
+
# Normally, Date.current ends up calling Time.zone.now which ends up passing the
|
6
|
+
# dynamic zone offset to Time which can raises out of range error. Here, we attempt
|
7
|
+
# to avoid that by grabbing the date out of time (which already works correctly with
|
8
|
+
# dynaminc time zones).
|
9
|
+
Time.current.to_date
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
Date.singleton_class.prepend(DatePatch)
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module DynamicTimeZone
|
4
|
-
class TimeZoneDataSource < TZInfo::ZoneinfoDataSource
|
4
|
+
class TimeZoneDataSource < TZInfo::DataSources::ZoneinfoDataSource
|
5
5
|
def load_timezone_info(identifier)
|
6
6
|
return super unless DynamicTimeZone.enabled
|
7
7
|
|
@@ -12,8 +12,8 @@ module DynamicTimeZone
|
|
12
12
|
offset_amount = offset_amount.to_i
|
13
13
|
offset_amount = 0 - offset_amount if sign == '-'
|
14
14
|
|
15
|
-
|
16
|
-
timezone_info.
|
15
|
+
offset = TZInfo::TimezoneOffset.new(offset_amount, 0, 'DynamicTimeZone')
|
16
|
+
timezone_info = TZInfo::DataSources::ConstantOffsetDataTimezoneInfo.new(identifier, offset)
|
17
17
|
timezone_info
|
18
18
|
end
|
19
19
|
end
|
data/lib/dynamic_time_zone.rb
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'time'
|
4
|
+
require 'rails'
|
5
|
+
require 'active_support'
|
4
6
|
require 'active_support/core_ext/date_time/conversions'
|
5
7
|
require 'active_support/time_with_zone'
|
6
8
|
require 'active_support/core_ext/time/zones'
|
@@ -21,6 +23,7 @@ require 'dynamic_time_zone/validator'
|
|
21
23
|
require 'dynamic_time_zone/identifier_builder'
|
22
24
|
require 'dynamic_time_zone/time_zone_data_source'
|
23
25
|
require 'dynamic_time_zone/time_with_zone_patch'
|
26
|
+
require 'dynamic_time_zone/date_patch'
|
24
27
|
require 'dynamic_time_zone/time_patch'
|
25
28
|
require 'dynamic_time_zone/offset_format_convertor'
|
26
29
|
require 'dynamic_time_zone/time_parser'
|
metadata
CHANGED
@@ -1,49 +1,69 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dynamic_time_zone
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Appfolio
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-09-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: activesupport
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '1
|
19
|
+
version: '6.1'
|
20
|
+
- - "<"
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '7.1'
|
20
23
|
type: :runtime
|
21
24
|
prerelease: false
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
23
26
|
requirements:
|
24
|
-
- - "
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '6.1'
|
30
|
+
- - "<"
|
25
31
|
- !ruby/object:Gem::Version
|
26
|
-
version: '1
|
32
|
+
version: '7.1'
|
27
33
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
34
|
+
name: railties
|
29
35
|
requirement: !ruby/object:Gem::Requirement
|
30
36
|
requirements:
|
31
37
|
- - ">="
|
32
38
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
39
|
+
version: '6.1'
|
34
40
|
- - "<"
|
35
41
|
- !ruby/object:Gem::Version
|
36
|
-
version: '
|
42
|
+
version: '7.1'
|
37
43
|
type: :runtime
|
38
44
|
prerelease: false
|
39
45
|
version_requirements: !ruby/object:Gem::Requirement
|
40
46
|
requirements:
|
41
47
|
- - ">="
|
42
48
|
- !ruby/object:Gem::Version
|
43
|
-
version: '
|
49
|
+
version: '6.1'
|
44
50
|
- - "<"
|
45
51
|
- !ruby/object:Gem::Version
|
46
|
-
version: '
|
52
|
+
version: '7.1'
|
53
|
+
- !ruby/object:Gem::Dependency
|
54
|
+
name: tzinfo
|
55
|
+
requirement: !ruby/object:Gem::Requirement
|
56
|
+
requirements:
|
57
|
+
- - "~>"
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
version: '2.0'
|
60
|
+
type: :runtime
|
61
|
+
prerelease: false
|
62
|
+
version_requirements: !ruby/object:Gem::Requirement
|
63
|
+
requirements:
|
64
|
+
- - "~>"
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: '2.0'
|
47
67
|
description:
|
48
68
|
email:
|
49
69
|
executables: []
|
@@ -51,6 +71,7 @@ extensions: []
|
|
51
71
|
extra_rdoc_files: []
|
52
72
|
files:
|
53
73
|
- lib/dynamic_time_zone.rb
|
74
|
+
- lib/dynamic_time_zone/date_patch.rb
|
54
75
|
- lib/dynamic_time_zone/identifier_builder.rb
|
55
76
|
- lib/dynamic_time_zone/offset_format_convertor.rb
|
56
77
|
- lib/dynamic_time_zone/test_helper.rb
|
@@ -78,7 +99,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
78
99
|
- !ruby/object:Gem::Version
|
79
100
|
version: '0'
|
80
101
|
requirements: []
|
81
|
-
rubygems_version: 3.
|
102
|
+
rubygems_version: 3.3.4
|
82
103
|
signing_key:
|
83
104
|
specification_version: 4
|
84
105
|
summary: Dynamically set the offset from UTC from timezone identifier
|