dynarex_cron 0.3.3 → 0.3.4

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: dcd4c445c4891f04885ad7cb9f158bf7fc03cf05
4
- data.tar.gz: 8ca0c29688eb219e887b3aef685d221e366a588b
3
+ metadata.gz: 2cee6a9f450859a2e9c06757466a50b5cf46ec49
4
+ data.tar.gz: 3f3e70a1ed17a8727d04ef65dd6c12d04db15613
5
5
  SHA512:
6
- metadata.gz: 22b42c0fd9c936b758c70c51070e10f7ddd7230f0e1a16cca5bc094f0ef7ea7fb1317501384230edf190a4d0ebef13beacf017c9c31970763c5a5a8b5d43665f
7
- data.tar.gz: f73afe6073c469acd830be897a92b8b13ad4eb144f78e196c4d32ef6974599efa389b9495adf8608b21e16064657030d54737cf32b51f3103d52422dab4bc48f
6
+ metadata.gz: 092fc7315f2c6676acaf313e373218feae75fb61520efbb5994bd8d990716f6c68ee27c7d81d825dee0ba0b7ac70a91c124e945f3af9a6d258a4610765333138
7
+ data.tar.gz: 1c8211193e4a49bb3d30e9eecb58faaa151158d41ab0bcf7405f25c3284cb30e79ea18a59f3be2639b8931ac5b838196a88bc9037d4ace8ef829c99dfd6e643d
Binary file
data.tar.gz.sig CHANGED
Binary file
@@ -17,9 +17,13 @@ class DynarexCron
17
17
  #
18
18
  def initialize(dynarex_file=nil, options={})
19
19
 
20
- opt = {sps_address: nil, sps_port: '59000', drb_port: nil, log: nil}\
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.new @dynarex_file
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 {|h| h[:cron] = ChronicCron.new(h[:expression]) }
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
- if h[:cron].to_time.strftime(DF) == Time.now.strftime(DF) then
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
- h[:cron] = ChronicCron.new(h[:date])
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
- ChronicDuration.parse(h[:reminder])).to_s)
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.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-11-23 00:00:00.000000000 Z
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.0.0.rc.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