evt-clock 1.0.0.0 → 1.1.0.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 +4 -4
- data/lib/clock.rb +0 -3
- metadata +2 -18
- data/lib/clock/localized/timezone.rb +0 -60
- data/lib/clock/localized.rb +0 -60
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 18cd791a361b8dde3b2f16358da521edccbf60c0db2566d57129062ec97f6e61
|
4
|
+
data.tar.gz: 2163bbb923eabc2da8d0d439a9b8893e4d7df7c8635237bc9364637c93129ec3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 343481cf0000c466a2d0b745e1bf0d7f004f4e3b54ef5ce3a74cfac3da9d7209f5ed9d133d14c70e973d5aa597deb70c9f9f5cea9bc6938b6bb10b06881233d4
|
7
|
+
data.tar.gz: bd863fbe05b98c0641e405d80f2485c993ab6b732f342cb56a7934abee0f78e0d38be74585dc36ee00839f9dcc716510fe5367b2104e8a9de5683375d571217c
|
data/lib/clock.rb
CHANGED
metadata
CHANGED
@@ -1,29 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: evt-clock
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- The Eventide Project
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-12-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
-
- !ruby/object:Gem::Dependency
|
14
|
-
name: tzinfo
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - ">="
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '0'
|
20
|
-
type: :runtime
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - ">="
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '0'
|
27
13
|
- !ruby/object:Gem::Dependency
|
28
14
|
name: naught
|
29
15
|
requirement: !ruby/object:Gem::Requirement
|
@@ -64,8 +50,6 @@ files:
|
|
64
50
|
- lib/clock/controls/time.rb
|
65
51
|
- lib/clock/controls/time/offset.rb
|
66
52
|
- lib/clock/local.rb
|
67
|
-
- lib/clock/localized.rb
|
68
|
-
- lib/clock/localized/timezone.rb
|
69
53
|
- lib/clock/substitute.rb
|
70
54
|
- lib/clock/utc.rb
|
71
55
|
homepage: https://github.com/eventide-project/clock
|
@@ -1,60 +0,0 @@
|
|
1
|
-
module Clock
|
2
|
-
class Localized
|
3
|
-
class Timezone
|
4
|
-
attr_reader :tzinfo_timezone
|
5
|
-
attr_reader :utc_reference
|
6
|
-
|
7
|
-
def initialize(tzinfo_timezone, utc_reference)
|
8
|
-
@tzinfo_timezone = tzinfo_timezone
|
9
|
-
@utc_reference = utc_reference
|
10
|
-
end
|
11
|
-
|
12
|
-
def self.build(timezone_identifier=nil, utc_reference: nil)
|
13
|
-
utc_reference ||= Time.now.utc
|
14
|
-
|
15
|
-
timezone_identifier = Defaults.timezone_identifier(timezone_identifier)
|
16
|
-
tzinfo_timezone = TZInfo::Timezone.get(timezone_identifier)
|
17
|
-
|
18
|
-
new tzinfo_timezone, utc_reference
|
19
|
-
end
|
20
|
-
|
21
|
-
def period
|
22
|
-
tzinfo_timezone.period_for_utc utc_reference
|
23
|
-
end
|
24
|
-
|
25
|
-
def now(tzinfo_time=nil)
|
26
|
-
tzinfo_time ||= tzinfo_timezone.now
|
27
|
-
convert tzinfo_time
|
28
|
-
end
|
29
|
-
|
30
|
-
def utc_to_local(utc_time)
|
31
|
-
tzinfo_time = tzinfo_timezone.utc_to_local utc_time
|
32
|
-
convert tzinfo_time
|
33
|
-
end
|
34
|
-
|
35
|
-
def convert(tzinfo_time)
|
36
|
-
seconds = tzinfo_time.sec + tzinfo_time.subsec
|
37
|
-
|
38
|
-
Time.new(
|
39
|
-
tzinfo_time.year,
|
40
|
-
tzinfo_time.month,
|
41
|
-
tzinfo_time.day,
|
42
|
-
tzinfo_time.hour,
|
43
|
-
tzinfo_time.min,
|
44
|
-
seconds,
|
45
|
-
offset
|
46
|
-
)
|
47
|
-
end
|
48
|
-
|
49
|
-
def offset
|
50
|
-
total_offset = period.offset.utc_total_offset
|
51
|
-
|
52
|
-
hours, seconds = total_offset.abs.divmod 3600
|
53
|
-
minutes = seconds / 60
|
54
|
-
|
55
|
-
sign = total_offset > 0 ? '+' : '-'
|
56
|
-
offset = "#{sign}#{hours.to_s.rjust(2, '0')}:#{minutes.to_s.rjust(2, '0')}"
|
57
|
-
end
|
58
|
-
end
|
59
|
-
end
|
60
|
-
end
|
data/lib/clock/localized.rb
DELETED
@@ -1,60 +0,0 @@
|
|
1
|
-
module Clock
|
2
|
-
class Localized
|
3
|
-
include Clock
|
4
|
-
|
5
|
-
attr_reader :timezone
|
6
|
-
|
7
|
-
def initialize(timezone)
|
8
|
-
@timezone = timezone
|
9
|
-
end
|
10
|
-
|
11
|
-
def self.build(timezone_identifier=nil, utc_reference: nil)
|
12
|
-
timezone = Timezone.build timezone_identifier, utc_reference: utc_reference
|
13
|
-
new(timezone)
|
14
|
-
end
|
15
|
-
|
16
|
-
def self.configure(receiver, timezone_identifier=nil)
|
17
|
-
instance = build(timezone_identifier)
|
18
|
-
receiver.clock = instance
|
19
|
-
instance
|
20
|
-
end
|
21
|
-
|
22
|
-
def system_time
|
23
|
-
timezone
|
24
|
-
end
|
25
|
-
|
26
|
-
def self.canonize(time, system_time)
|
27
|
-
time = time.utc
|
28
|
-
system_time.utc_to_local time
|
29
|
-
end
|
30
|
-
|
31
|
-
def self.iso8601(time, precision: nil, system_time: nil)
|
32
|
-
time ||= now time, system_time: system_time
|
33
|
-
utc_time = time.utc
|
34
|
-
local_time = system_time.utc_to_local utc_time
|
35
|
-
local_time.iso8601 precision
|
36
|
-
end
|
37
|
-
|
38
|
-
module Defaults
|
39
|
-
def self.timezone_identifier(timezone_identifier)
|
40
|
-
env_identifier = ENV['TIMEZONE']
|
41
|
-
|
42
|
-
if env_identifier
|
43
|
-
timezone_identifier = env_identifier
|
44
|
-
end
|
45
|
-
|
46
|
-
unless timezone_identifier
|
47
|
-
timezone_identifier = 'America/Mexico_City'
|
48
|
-
end
|
49
|
-
|
50
|
-
timezone_identifier
|
51
|
-
end
|
52
|
-
end
|
53
|
-
|
54
|
-
module Substitute
|
55
|
-
def self.build
|
56
|
-
Clock::Substitute.new
|
57
|
-
end
|
58
|
-
end
|
59
|
-
end
|
60
|
-
end
|