dynarex_cron 0.2.0 → 0.2.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/lib/dynarex_cron.rb +68 -1
- data.tar.gz.sig +0 -0
- metadata +2 -2
- 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: 7976b155645775a05296c8a0090c67e53bf54adc
|
4
|
+
data.tar.gz: 72e3d6c7a27b798a592fa596c09f9cd55254e0f1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d5c3fed746d8ff967c841c22ccb49a80ac7423c6c29903bf69274d7f11cbf348332f9ff4a8b86f012c7b375416ff4d2e92dbbe010f42f37affe11489066400c9
|
7
|
+
data.tar.gz: 264722591ac8b8c2e8ba3abef9c9d00c6cfd5ef16251d7bad1afc2a6cc2dcf73263cfa756214237da3496d5e9ced26a0c3ee8b87cd9b554a68ae1df42ad9dc71
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/lib/dynarex_cron.rb
CHANGED
@@ -6,7 +6,7 @@ require 'dynarex'
|
|
6
6
|
require 'chronic_cron'
|
7
7
|
require 'simplepubsub'
|
8
8
|
require 'rscript'
|
9
|
-
require '
|
9
|
+
require 'chronic_duration'
|
10
10
|
|
11
11
|
DF = "%Y-%m-%d %H:%M"
|
12
12
|
|
@@ -115,3 +115,70 @@ class DynarexCron
|
|
115
115
|
end
|
116
116
|
|
117
117
|
end
|
118
|
+
|
119
|
+
class DynarexEvents < DynarexCron
|
120
|
+
|
121
|
+
attr_reader :to_a
|
122
|
+
|
123
|
+
def initialize(dynarex_file=nil, options={})
|
124
|
+
|
125
|
+
opt = {sps_address: nil, drb_server: false}.merge options
|
126
|
+
|
127
|
+
@cron_events = []
|
128
|
+
|
129
|
+
@dynarex_file = dynarex_file
|
130
|
+
load_events()
|
131
|
+
|
132
|
+
@sps_address = opt[:sps_address]
|
133
|
+
|
134
|
+
if opt[:drb_server] == true then
|
135
|
+
|
136
|
+
Thread.new {
|
137
|
+
|
138
|
+
# start up the DRb service
|
139
|
+
DRb.start_service 'druby://:57500', self
|
140
|
+
|
141
|
+
# wait for the DRb service to finish before exiting
|
142
|
+
DRb.thread.join
|
143
|
+
}
|
144
|
+
end
|
145
|
+
end
|
146
|
+
|
147
|
+
def load_events()
|
148
|
+
|
149
|
+
dynarex = Dynarex.new @dynarex_file
|
150
|
+
@entries = dynarex.to_h
|
151
|
+
@cron_events = self.to_a
|
152
|
+
end
|
153
|
+
|
154
|
+
alias refresh load_events
|
155
|
+
|
156
|
+
def start
|
157
|
+
@running = true
|
158
|
+
puts '[' + Time.now.strftime(DF) + '] DynarexEvents started'
|
159
|
+
|
160
|
+
while @running == true
|
161
|
+
iterate @cron_events
|
162
|
+
sleep 60 # wait for 60 seconds
|
163
|
+
end
|
164
|
+
end
|
165
|
+
|
166
|
+
def to_a()
|
167
|
+
|
168
|
+
@entries.inject([]) do |r,h|
|
169
|
+
|
170
|
+
h[:cron] = ChronicCron.new(h[:date])
|
171
|
+
h[:job] = 'pub event: ' + h[:title]
|
172
|
+
|
173
|
+
if h[:reminder].length > 0 then
|
174
|
+
rmndr = {}
|
175
|
+
rmndr[:cron] = ChronicCron.new((Chronic.parse(h[:date]) - ChronicDuration.parse(h[:reminder])).to_s)
|
176
|
+
rmndr[:job] = 'pub event: reminder ' + h[:title]
|
177
|
+
r << rmndr
|
178
|
+
end
|
179
|
+
|
180
|
+
r << h
|
181
|
+
end
|
182
|
+
|
183
|
+
end
|
184
|
+
end
|
data.tar.gz.sig
CHANGED
Binary file
|
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.2.
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Robertson
|
@@ -90,7 +90,7 @@ dependencies:
|
|
90
90
|
- !ruby/object:Gem::Version
|
91
91
|
version: '0'
|
92
92
|
- !ruby/object:Gem::Dependency
|
93
|
-
name:
|
93
|
+
name: chronic_duration
|
94
94
|
requirement: !ruby/object:Gem::Requirement
|
95
95
|
requirements:
|
96
96
|
- - '>='
|
metadata.gz.sig
CHANGED
Binary file
|