dynarex_cron 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 076ae88a768c151597d0bdda36be16d55c697ed5
4
- data.tar.gz: 18d8493b651c6f6c09a0d58b9b3bf29efc7efa9f
3
+ metadata.gz: 7976b155645775a05296c8a0090c67e53bf54adc
4
+ data.tar.gz: 72e3d6c7a27b798a592fa596c09f9cd55254e0f1
5
5
  SHA512:
6
- metadata.gz: 947ad1e25b48eb6036116938f696e0a3e17a1f5c1c6f4fd29bcda8b693c0782b41ec221fabf97449f1494c389deda25e0e8b96043ca90198c00bb3d53f5100f7
7
- data.tar.gz: 280e496fc0c6da71891efe6574cf2284b7454f4cbd6a98532a8a40fc73b998b50192f82dfba0ceff7b5ff7696387a54768fe4118b8866da33b776e01ae847a03
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 'dynarex-events'
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.0
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: dynarex-events
93
+ name: chronic_duration
94
94
  requirement: !ruby/object:Gem::Requirement
95
95
  requirements:
96
96
  - - '>='
metadata.gz.sig CHANGED
Binary file