dynarex_cron 0.5.3 → 0.6.1
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 +2 -74
- metadata +1 -41
- 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: 420b00ecdd29552efc3582140a5532b874a51a0f
|
4
|
+
data.tar.gz: 28f95e9900e219d0abe42a763c7d4f0b4574f3ff
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b7c3c210391ab3bc54eed2760ce5e224492417716c273e72ab794aa6c76aabd2f81dd14f14fd8e5ba517cafb1d85c61821bb4392aafa2d805a8fddd298627e35
|
7
|
+
data.tar.gz: 534c6105d76475f2916f471e0b9273c361674ddf6037b3779a1352e81b09ae84697987c8ef491ed5d2c5c52dd886e28053ca86bf8ab3efe9b51cd45072fc01a7
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/lib/dynarex_cron.rb
CHANGED
@@ -4,8 +4,6 @@
|
|
4
4
|
|
5
5
|
require 'dynarex'
|
6
6
|
require 'chronic_cron'
|
7
|
-
require 'rscript'
|
8
|
-
require 'chronic_duration'
|
9
7
|
require 'logger'
|
10
8
|
require 'run_every'
|
11
9
|
require 'sps-pub'
|
@@ -27,7 +25,7 @@ class DynarexCron
|
|
27
25
|
# the time of each entry
|
28
26
|
@time_offset = opt[:time_offset].to_i
|
29
27
|
|
30
|
-
@cron_entries
|
28
|
+
@cron_entries = []
|
31
29
|
|
32
30
|
@dynarex_file = dynarex_file
|
33
31
|
|
@@ -37,8 +35,6 @@ class DynarexCron
|
|
37
35
|
load_entries(dynarex)
|
38
36
|
end
|
39
37
|
|
40
|
-
load_events() if @include_url and @include_url.length > 0
|
41
|
-
|
42
38
|
@sps_address, @sps_port = opt[:sps_address], opt[:sps_port]
|
43
39
|
|
44
40
|
|
@@ -53,11 +49,10 @@ class DynarexCron
|
|
53
49
|
RunEvery.new(seconds: 60) do
|
54
50
|
|
55
51
|
iterate @cron_entries
|
56
|
-
iterate @cron_events
|
57
52
|
|
58
53
|
if @dynarex_file.is_a? String then
|
59
54
|
|
60
|
-
# What happens
|
55
|
+
# What happens if the @dynarex_file is a URL and the web server is
|
61
56
|
# temporarily unavailable? i.e. 503 Service Temporarily Unavailable
|
62
57
|
begin
|
63
58
|
buffer, _ = RXFHelper.read(@dynarex_file)
|
@@ -91,8 +86,6 @@ class DynarexCron
|
|
91
86
|
end
|
92
87
|
|
93
88
|
def load_entries(dynarex)
|
94
|
-
|
95
|
-
@include_url = dynarex.summary[:include]
|
96
89
|
|
97
90
|
if dynarex.summary[:sps_address] then
|
98
91
|
@sps_address, @sps_port = dynarex.summary[:sps_address]\
|
@@ -105,12 +98,6 @@ class DynarexCron
|
|
105
98
|
end
|
106
99
|
end
|
107
100
|
|
108
|
-
def load_events()
|
109
|
-
|
110
|
-
de = DynarexEvents.new(@include_url)
|
111
|
-
@cron_events = de.to_a
|
112
|
-
end
|
113
|
-
|
114
101
|
def log(s, method_name=:debug)
|
115
102
|
return unless @logger
|
116
103
|
@logger.method(method_name).call s
|
@@ -148,63 +135,4 @@ class DynarexCron
|
|
148
135
|
@buffer = buffer
|
149
136
|
end
|
150
137
|
|
151
|
-
end
|
152
|
-
|
153
|
-
class DynarexEvents < DynarexCron
|
154
|
-
|
155
|
-
attr_reader :to_a
|
156
|
-
|
157
|
-
def initialize(dynarex_file=nil, options={})
|
158
|
-
|
159
|
-
opt = {sps_address: nil, time_offset: 0}.merge options
|
160
|
-
|
161
|
-
@time_offset = opt[:time_offset]
|
162
|
-
@cron_events = []
|
163
|
-
|
164
|
-
@dynarex_file = dynarex_file
|
165
|
-
load_events()
|
166
|
-
|
167
|
-
@sps_address = opt[:sps_address]
|
168
|
-
|
169
|
-
end
|
170
|
-
|
171
|
-
def load_events()
|
172
|
-
|
173
|
-
dynarex = Dynarex.new @dynarex_file
|
174
|
-
@entries = dynarex.to_h
|
175
|
-
@cron_events = self.to_a
|
176
|
-
end
|
177
|
-
|
178
|
-
alias refresh load_events
|
179
|
-
|
180
|
-
def start
|
181
|
-
|
182
|
-
@running = true
|
183
|
-
puts '[' + Time.now.strftime(DF) + '] DynarexEvents started'
|
184
|
-
params = {uri: "ws://%s:%s" % [@sps_address, @sps_port]}
|
185
|
-
|
186
|
-
RunEvery.new(seconds: 60) { iterate @cron_events }
|
187
|
-
|
188
|
-
end
|
189
|
-
|
190
|
-
def to_a()
|
191
|
-
|
192
|
-
@entries.inject([]) do |r,h|
|
193
|
-
|
194
|
-
time = Time.now + @time_offset
|
195
|
-
h[:cron] = ChronicCron.new(h[:date], time)
|
196
|
-
h[:fqm] = 'event: ' + h[:title]
|
197
|
-
|
198
|
-
if h[:reminder].length > 0 then
|
199
|
-
rmndr = {}
|
200
|
-
rmndr[:cron] = ChronicCron.new((Chronic.parse(h[:date]) -
|
201
|
-
ChronicDuration.parse(h[:reminder])).to_s, time)
|
202
|
-
rmndr[:fqm] = 'event: reminder ' + h[:title]
|
203
|
-
r << rmndr
|
204
|
-
end
|
205
|
-
|
206
|
-
r << h
|
207
|
-
end
|
208
|
-
|
209
|
-
end
|
210
138
|
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.
|
4
|
+
version: 0.6.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Robertson
|
@@ -53,26 +53,6 @@ dependencies:
|
|
53
53
|
- - ">="
|
54
54
|
- !ruby/object:Gem::Version
|
55
55
|
version: 0.2.33
|
56
|
-
- !ruby/object:Gem::Dependency
|
57
|
-
name: chronic_duration
|
58
|
-
requirement: !ruby/object:Gem::Requirement
|
59
|
-
requirements:
|
60
|
-
- - "~>"
|
61
|
-
- !ruby/object:Gem::Version
|
62
|
-
version: '0.10'
|
63
|
-
- - ">="
|
64
|
-
- !ruby/object:Gem::Version
|
65
|
-
version: 0.10.4
|
66
|
-
type: :runtime
|
67
|
-
prerelease: false
|
68
|
-
version_requirements: !ruby/object:Gem::Requirement
|
69
|
-
requirements:
|
70
|
-
- - "~>"
|
71
|
-
- !ruby/object:Gem::Version
|
72
|
-
version: '0.10'
|
73
|
-
- - ">="
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: 0.10.4
|
76
56
|
- !ruby/object:Gem::Dependency
|
77
57
|
name: dynarex
|
78
58
|
requirement: !ruby/object:Gem::Requirement
|
@@ -113,26 +93,6 @@ dependencies:
|
|
113
93
|
- - ">="
|
114
94
|
- !ruby/object:Gem::Version
|
115
95
|
version: 0.4.0
|
116
|
-
- !ruby/object:Gem::Dependency
|
117
|
-
name: rscript
|
118
|
-
requirement: !ruby/object:Gem::Requirement
|
119
|
-
requirements:
|
120
|
-
- - "~>"
|
121
|
-
- !ruby/object:Gem::Version
|
122
|
-
version: '0.1'
|
123
|
-
- - ">="
|
124
|
-
- !ruby/object:Gem::Version
|
125
|
-
version: 0.1.25
|
126
|
-
type: :runtime
|
127
|
-
prerelease: false
|
128
|
-
version_requirements: !ruby/object:Gem::Requirement
|
129
|
-
requirements:
|
130
|
-
- - "~>"
|
131
|
-
- !ruby/object:Gem::Version
|
132
|
-
version: '0.1'
|
133
|
-
- - ">="
|
134
|
-
- !ruby/object:Gem::Version
|
135
|
-
version: 0.1.25
|
136
96
|
- !ruby/object:Gem::Dependency
|
137
97
|
name: run_every
|
138
98
|
requirement: !ruby/object:Gem::Requirement
|
metadata.gz.sig
CHANGED
Binary file
|