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 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