dynarex_cron 0.3.3 → 0.3.4

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