dynarex_cron 0.3.3 → 0.3.4
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.tar.gz.sig +0 -0
- data/lib/dynarex_cron.rb +22 -10
- metadata +3 -3
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2cee6a9f450859a2e9c06757466a50b5cf46ec49
|
4
|
+
data.tar.gz: 3f3e70a1ed17a8727d04ef65dd6c12d04db15613
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 092fc7315f2c6676acaf313e373218feae75fb61520efbb5994bd8d990716f6c68ee27c7d81d825dee0ba0b7ac70a91c124e945f3af9a6d258a4610765333138
|
7
|
+
data.tar.gz: 1c8211193e4a49bb3d30e9eecb58faaa151158d41ab0bcf7405f25c3284cb30e79ea18a59f3be2639b8931ac5b838196a88bc9037d4ace8ef829c99dfd6e643d
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/lib/dynarex_cron.rb
CHANGED
@@ -17,9 +17,13 @@ class DynarexCron
|
|
17
17
|
#
|
18
18
|
def initialize(dynarex_file=nil, options={})
|
19
19
|
|
20
|
-
opt = {sps_address:
|
21
|
-
.merge options
|
20
|
+
opt = {sps_address: 'sps', sps_port: '59000', drb_port: nil, \
|
21
|
+
log: nil, time_offset: 0}.merge options
|
22
22
|
@logger = Logger.new(opt[:log],'weekly') if opt[:log]
|
23
|
+
|
24
|
+
# time_offset: used for testing a cron entry without having to change
|
25
|
+
# the time of each entry
|
26
|
+
@time_offset = opt[:time_offset].to_i
|
23
27
|
|
24
28
|
@cron_entries, @cron_events = [], []
|
25
29
|
|
@@ -46,7 +50,7 @@ class DynarexCron
|
|
46
50
|
def start
|
47
51
|
|
48
52
|
@running = true
|
49
|
-
puts '[' + Time.now.strftime(DF) + '] DynarexCron started'
|
53
|
+
puts '[' + (Time.now + @time_offset).strftime(DF) + '] DynarexCron started'
|
50
54
|
params = {uri: "ws://%s:%s" % [@sps_address, @sps_port]}
|
51
55
|
|
52
56
|
c = WebSocket::EventMachine::Client
|
@@ -71,11 +75,14 @@ class DynarexCron
|
|
71
75
|
|
72
76
|
def load_entries()
|
73
77
|
|
74
|
-
dynarex = Dynarex
|
78
|
+
dynarex = @dynarex_file.is_a?(Dynarex) ? @dynarex_file : \
|
79
|
+
Dynarex.new(@dynarex_file)
|
75
80
|
|
76
81
|
@include_url = dynarex.summary[:include]
|
77
82
|
@cron_entries = dynarex.to_h
|
78
|
-
@cron_entries.each
|
83
|
+
@cron_entries.each do |h|
|
84
|
+
h[:cron] = ChronicCron.new(h[:expression], Time.now + @time_offset)
|
85
|
+
end
|
79
86
|
end
|
80
87
|
|
81
88
|
alias refresh_entries load_entries
|
@@ -94,16 +101,20 @@ class DynarexCron
|
|
94
101
|
|
95
102
|
cron_entries.each do |h|
|
96
103
|
|
97
|
-
|
104
|
+
datetime = (Time.now + @time_offset).strftime(DF)
|
105
|
+
|
106
|
+
if h[:cron].to_time.strftime(DF) == datetime then
|
98
107
|
|
99
108
|
r = h[:job].match(/^pub(?:lish)?\s+([^:]+):(.*)/)
|
100
109
|
|
101
110
|
next unless r
|
102
|
-
topic, msg = r.captures
|
103
|
-
@ws.send "%s: %s" % [topic, msg]
|
104
111
|
|
105
112
|
begin
|
113
|
+
|
114
|
+
topic, msg = r.captures
|
115
|
+
@ws.send "%s: %s" % [topic, msg]
|
106
116
|
h[:cron].next # advances the time
|
117
|
+
|
107
118
|
rescue
|
108
119
|
|
109
120
|
@logger.debug h.inspect ' : ' + ($!) if @logger
|
@@ -164,13 +175,14 @@ class DynarexEvents < DynarexCron
|
|
164
175
|
|
165
176
|
@entries.inject([]) do |r,h|
|
166
177
|
|
167
|
-
|
178
|
+
time = Time.now + @time_offset
|
179
|
+
h[:cron] = ChronicCron.new(h[:date], time)
|
168
180
|
h[:job] = 'pub event: ' + h[:title]
|
169
181
|
|
170
182
|
if h[:reminder].length > 0 then
|
171
183
|
rmndr = {}
|
172
184
|
rmndr[:cron] = ChronicCron.new((Chronic.parse(h[:date]) -
|
173
|
-
|
185
|
+
ChronicDuration.parse(h[:reminder])).to_s, time)
|
174
186
|
rmndr[:job] = 'pub event: reminder ' + h[:title]
|
175
187
|
r << rmndr
|
176
188
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dynarex_cron
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Robertson
|
@@ -31,7 +31,7 @@ cert_chain:
|
|
31
31
|
y6cNz+NnybgoQfG28NcwV1e/31NTJk5VqdKHKnTfPcp/y35T9YoElNn5cSs93qc5
|
32
32
|
U5VVkvsVQudaZw==
|
33
33
|
-----END CERTIFICATE-----
|
34
|
-
date: 2013-
|
34
|
+
date: 2013-12-28 00:00:00.000000000 Z
|
35
35
|
dependencies:
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: dynarex
|
@@ -130,7 +130,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
130
130
|
version: '0'
|
131
131
|
requirements: []
|
132
132
|
rubyforge_project:
|
133
|
-
rubygems_version: 2.
|
133
|
+
rubygems_version: 2.1.11
|
134
134
|
signing_key:
|
135
135
|
specification_version: 4
|
136
136
|
summary: dynarex_cron
|
metadata.gz.sig
CHANGED
Binary file
|