dynarex_cron 0.3.3 → 0.3.4
Sign up to get free protection for your applications and to get access to all the features.
- 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
|