dynamic_time_zone 0.3.1 → 0.6.0
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: 144d2486964c275f2f0ad745f47c0998bbeba7ca9fec93d1c20ce3c84907fe91
|
4
|
+
data.tar.gz: 348f7227a746af62cf47996951027a49be3e7ac51b8e0a5f4d384843b6d3a412
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5eeb14dfab601d17c8a4e792e460a4b6913ac93e03d29eb3e5c100521672c08d4d27509bcc69fda40e53d2ecef614d97d3881e789d52521499090f2aa3173e79
|
7
|
+
data.tar.gz: 20ac01f71d6163865095ce8a4db1c6ccfb661548e339ce4f12c8ea7cffd4d246803098eb2f36e6fb26dd08579d513f36ee907fce326d825450d318f1c0619899
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module TimePatch
|
4
|
+
def compare_with_coercion(other)
|
5
|
+
if DynamicTimeZone.enabled && other.is_a?(ActiveSupport::TimeWithZone) && other.using_dynamic_time_zone?
|
6
|
+
self.utc <=> other.utc
|
7
|
+
else
|
8
|
+
super
|
9
|
+
end
|
10
|
+
end
|
11
|
+
alias_method :<=>, :compare_with_coercion
|
12
|
+
end
|
13
|
+
|
14
|
+
Time.prepend(TimePatch)
|
@@ -9,7 +9,11 @@ module TimeWithZonePatch
|
|
9
9
|
alias_method :getlocal, :localtime
|
10
10
|
|
11
11
|
def formatted_offset(*args)
|
12
|
-
|
12
|
+
actual_formatted_offset = super
|
13
|
+
return actual_formatted_offset unless using_dynamic_time_zone?
|
14
|
+
|
15
|
+
seconds_in_24_hours = 24 * 60 * 60
|
16
|
+
utc_offset.abs > seconds_in_24_hours ? '+0000' : actual_formatted_offset
|
13
17
|
end
|
14
18
|
|
15
19
|
def using_dynamic_time_zone?
|
@@ -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,5 +23,6 @@ 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/time_patch'
|
24
27
|
require 'dynamic_time_zone/offset_format_convertor'
|
25
28
|
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.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Appfolio
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-03-15 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: []
|
@@ -55,6 +75,7 @@ files:
|
|
55
75
|
- lib/dynamic_time_zone/offset_format_convertor.rb
|
56
76
|
- lib/dynamic_time_zone/test_helper.rb
|
57
77
|
- lib/dynamic_time_zone/time_parser.rb
|
78
|
+
- lib/dynamic_time_zone/time_patch.rb
|
58
79
|
- lib/dynamic_time_zone/time_with_zone_patch.rb
|
59
80
|
- lib/dynamic_time_zone/time_zone_data_source.rb
|
60
81
|
- lib/dynamic_time_zone/validator.rb
|
@@ -77,7 +98,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
77
98
|
- !ruby/object:Gem::Version
|
78
99
|
version: '0'
|
79
100
|
requirements: []
|
80
|
-
rubygems_version: 3.
|
101
|
+
rubygems_version: 3.3.3
|
81
102
|
signing_key:
|
82
103
|
specification_version: 4
|
83
104
|
summary: Dynamically set the offset from UTC from timezone identifier
|