dynarex_cron 0.3.5 → 0.4.0

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: 0240dd41695ffbca0b1e1f7538b7222b113f418f
4
- data.tar.gz: 4039a7949854e964567b10c6b8c953f6d2d39cb7
3
+ metadata.gz: 5717175fe5d5b23e62eeca4725d6e85e1d962ba2
4
+ data.tar.gz: 7ee846c6a9c17a72c8f1e590cecc9b6b3bca0c5e
5
5
  SHA512:
6
- metadata.gz: 9b6ca45803f8f8835f0cdcb084ccb6f76d1cb66a2b42c910774c73b35b63817705b4b8ab71fe47229cc56caea651e3dee031db2ca8819864eefb7f4ee6fe9e04
7
- data.tar.gz: 240048b81f663266fb149bdc6d7101c248d12ab17f1dabea5b683b6c4a585db49fb9bfe6c4935d109d3d779db2540c1e1ddf1590dd8b59c72e0af44f70813d84
6
+ metadata.gz: 8deafaccb82911e8e3e40168fded8147ff4fd063205c457055f5f078adefc9b770d85b038df8810fd60471485cd5ce7adb8f959a6c66cc64c36b2494139182e5
7
+ data.tar.gz: 27114ae7285fcdbec494ac424e925d6e67cda017bb545aebedb614e6034a3520336f2aad327eabeaed99efc04b78d497bb185551b2bf73cdfdf0f0e6fba503dc
checksums.yaml.gz.sig CHANGED
Binary file
data/lib/dynarex_cron.rb CHANGED
@@ -17,7 +17,7 @@ class DynarexCron
17
17
  #
18
18
  def initialize(dynarex_file=nil, options={})
19
19
 
20
- opt = {sps_address: 'sps', sps_port: '59000', drb_port: nil, \
20
+ opt = {sps_address: 'sps', sps_port: '59000', \
21
21
  log: nil, time_offset: 0}.merge options
22
22
  @logger = Logger.new(opt[:log],'weekly') if opt[:log]
23
23
 
@@ -28,22 +28,17 @@ class DynarexCron
28
28
  @cron_entries, @cron_events = [], []
29
29
 
30
30
  @dynarex_file = dynarex_file
31
- load_entries() if @dynarex_file
32
- load_events() if @include_url
33
31
 
34
- @sps_address, @sps_port = opt[:sps_address], opt[:sps_port]
32
+ if @dynarex_file then
35
33
 
36
- if opt[:drb_port] then
34
+ dynarex = load_doc dynarex_file
35
+ load_entries(dynarex)
36
+ end
37
37
 
38
- Thread.new {
39
-
40
- # start up the DRb service
41
- DRb.start_service 'druby://:' + opt[:drb_port], self
38
+ load_events() if @include_url
39
+
40
+ @sps_address, @sps_port = opt[:sps_address], opt[:sps_port]
42
41
 
43
- # wait for the DRb service to finish before exiting
44
- DRb.thread.join
45
- }
46
- end
47
42
 
48
43
  end
49
44
 
@@ -60,8 +55,16 @@ class DynarexCron
60
55
  @ws = c.connect(params)
61
56
 
62
57
  EM.add_periodic_timer(60) do
58
+
63
59
  iterate @cron_entries
64
60
  iterate @cron_events
61
+
62
+ if @dynarex_file.is_a? String then
63
+
64
+ buffer, _ = RXFHelper.read(@dynarex_file)
65
+ reload_entries buffer if @buffer != buffer
66
+
67
+ end
65
68
  end
66
69
  end
67
70
 
@@ -73,35 +76,46 @@ class DynarexCron
73
76
  EM.stop_event_loop
74
77
  end
75
78
 
76
- def load_entries()
77
-
78
- dynarex = @dynarex_file.is_a?(Dynarex) ? @dynarex_file : \
79
- Dynarex.new(@dynarex_file)
80
-
79
+ private
80
+
81
+ def load_doc(dynarex_file)
82
+
83
+ if dynarex_file.is_a?(Dynarex) then
84
+ dynarex_file
85
+ else
86
+ @buffer, _ = RXFHelper.read(dynarex_file)
87
+ Dynarex.new @buffer
88
+ end
89
+
90
+ end
91
+
92
+ def load_entries(dynarex)
93
+
81
94
  @include_url = dynarex.summary[:include]
82
95
  @cron_entries = dynarex.to_h
83
96
  @cron_entries.each do |h|
84
97
  h[:cron] = ChronicCron.new(h[:expression], Time.now + @time_offset)
85
98
  end
86
- end
87
-
88
- alias refresh_entries load_entries
99
+ end
89
100
 
90
101
  def load_events()
91
102
 
92
103
  de = DynarexEvents.new(@include_url)
93
104
  @cron_events = de.to_a
94
- end
95
-
96
- alias refresh_events load_events
105
+ end
97
106
 
98
- private
107
+ def log(s, method_name=:debug)
108
+ return unless @logger
109
+ @logger.method(method_name).call s
110
+ end
99
111
 
100
112
  def iterate(cron_entries)
101
113
 
102
114
  cron_entries.each do |h|
103
115
 
104
116
  datetime = (Time.now + @time_offset).strftime(DF)
117
+ log "datetime: %s; crontime: %s" %
118
+ [datetime, h[:cron].to_time.strftime(DF)]
105
119
 
106
120
  if h[:cron].to_time.strftime(DF) == datetime then
107
121
 
@@ -117,11 +131,17 @@ class DynarexCron
117
131
 
118
132
  rescue
119
133
 
120
- @logger.debug h.inspect ' : ' + ($!) if @logger
134
+ log h.inspect ' : ' + ($!)
121
135
  end
122
136
 
123
137
  end
124
138
  end
139
+ end
140
+
141
+ def reload_entries(buffer)
142
+ load_entries Dynarex.new(buffer)
143
+ @buffer = buffer
144
+ log 'crontab reloaded', :info
125
145
  end
126
146
 
127
147
  end
@@ -192,4 +212,4 @@ class DynarexEvents < DynarexCron
192
212
  end
193
213
 
194
214
  end
195
- end
215
+ 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.3.5
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -12,97 +12,127 @@ cert_chain:
12
12
  -----BEGIN CERTIFICATE-----
13
13
  MIIDljCCAn6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBIMRIwEAYDVQQDDAlnZW1t
14
14
  YXN0ZXIxHjAcBgoJkiaJk/IsZAEZFg5qYW1lc3JvYmVydHNvbjESMBAGCgmSJomT
15
- 8ixkARkWAmV1MB4XDTEzMDcwODIyMzE1M1oXDTE0MDcwODIyMzE1M1owSDESMBAG
15
+ 8ixkARkWAmV1MB4XDTE0MTEyNDE3NDY1NloXDTE1MTEyNDE3NDY1NlowSDESMBAG
16
16
  A1UEAwwJZ2VtbWFzdGVyMR4wHAYKCZImiZPyLGQBGRYOamFtZXNyb2JlcnRzb24x
17
17
  EjAQBgoJkiaJk/IsZAEZFgJldTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
18
- ggEBAJ4KY2i+sTYPYRcQsF+YExgxM0fYcRrLGr+vhnBcjx3N5V0fEeDSAoKwi2E6
19
- Yp5y/jGZSfhrlL1P1A0FIMZVC7foJSrZVAd3isrtQNNzYnz3Xk2764qItxyQ5V5s
20
- 5MSa1jV3S9TIrPP99KrTtkR5Vf6dVxdtfWu3NxFSfOFS+qPpOzkf4Ou7ki9D/gUE
21
- UD2YWKeIkSu6K9gx8ZvrCoJzy5NvOTWM2IZ9jv8iu05uepRekQirsmy7hjdvj0g4
22
- GOY7Dv+G5BmpCd2owqOyXDp/JPvFOw6GxbNf+nSCP9/DG4jttfBxb7y4ThWecrCf
23
- 11TSiRWz5Yv6+bJ6xLGKDA7at5ECAwEAAaOBijCBhzAJBgNVHRMEAjAAMAsGA1Ud
24
- DwQEAwIEsDAdBgNVHQ4EFgQUueUwPJhKK+T5L8HTW0GN3zFqHOUwJgYDVR0RBB8w
18
+ ggEBAN+RJExLzsQFbxtOo8MBE3N/a6oZZ1MWH8DEcbuD/FCZKD/sf9nePt6mUN71
19
+ yHU/OXsr26hGtwEzMHuOoFZdwah67hIbI0/PlnH/3W8Ho1jVpxJ0PYGQNlpRWB9b
20
+ myxwdHOCc0Vr9yXCCsGJXOHVJowIlQI6bKQ3PMZU1wcaWloWVFVf6Ll2LIUJNied
21
+ Fx8w/Khz6e00meCXBY6P0LWse/bbEDS4hg6EAoPfqmw1LMk2YHnGvvetu9XiQWzr
22
+ j8x3jT6Nruk9209ibB23pHWNYPjfw6W+IW+VXG5hXqd1xEKrzqiGOOV2P/6q8wPQ
23
+ 782Tm67WEY4Oq0TnYz5xy82Z7I8CAwEAAaOBijCBhzAJBgNVHRMEAjAAMAsGA1Ud
24
+ DwQEAwIEsDAdBgNVHQ4EFgQUY336yXWSXPoICU2+r+DpzXRBQp8wJgYDVR0RBB8w
25
25
  HYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1h
26
- c3RlckBqYW1lc3JvYmVydHNvbi5ldTANBgkqhkiG9w0BAQUFAAOCAQEAGeUdZy7P
27
- EAtnoPFCDskd7hAb0DOK7rNOq9eWi4XyX+wHvAn0cO7VAiTytnOi+Bq9s+bruJyI
28
- A8N3FzDjxegv6ZZ2NORdbx6wsps5SFnkTTfWy4dZJOAPkNRhLRbAz+itQxIYDs1N
29
- rk6MsD+E5knixQJt9sDmiZXYSATnedTTqZZUk/5bldmc0EaroNto6bbJtJkREzEs
30
- jDUHPta+VDE8L5m+7zH/Leu5dfmim/nFNQNNkDVqChq7nCf9UyRNmP5r5bQvePSb
31
- y6cNz+NnybgoQfG28NcwV1e/31NTJk5VqdKHKnTfPcp/y35T9YoElNn5cSs93qc5
32
- U5VVkvsVQudaZw==
26
+ c3RlckBqYW1lc3JvYmVydHNvbi5ldTANBgkqhkiG9w0BAQUFAAOCAQEAtAHekYRZ
27
+ MjQ+dAhDWaMmoDjRskHrrCuLTxyj4br2Km6guyi9pCextPSnjO+mGQ21v3K6qCEL
28
+ rNO6QOnV1I2G7tRXcp4lj/lIkPdmkQCDeFriTF8HF216pbFbjhuNKc3E1Bks3UxD
29
+ mAyT/WgYZ0oMFhlXhGjnYN/pCl0+Jg/GpMq/QhpzLczrBdds4E8EiOUg1OvSauaH
30
+ McZceXPBBeJPivkAlUzWBmWsEO9kAXNKyrauouos4S7Novg5wsFfdzfokzPHCLhE
31
+ AYk47T0/8hx1QaR5nU5Db9LztjboHVugHlqfEKWwY2mURuQWP9iCCwiG3T1cC04z
32
+ WnpuryTBFz7cvg==
33
33
  -----END CERTIFICATE-----
34
- date: 2013-12-29 00:00:00.000000000 Z
34
+ date: 2014-11-24 00:00:00.000000000 Z
35
35
  dependencies:
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: dynarex
38
38
  requirement: !ruby/object:Gem::Requirement
39
39
  requirements:
40
+ - - "~>"
41
+ - !ruby/object:Gem::Version
42
+ version: '1.2'
40
43
  - - ">="
41
44
  - !ruby/object:Gem::Version
42
- version: '0'
45
+ version: 1.2.90
43
46
  type: :runtime
44
47
  prerelease: false
45
48
  version_requirements: !ruby/object:Gem::Requirement
46
49
  requirements:
50
+ - - "~>"
51
+ - !ruby/object:Gem::Version
52
+ version: '1.2'
47
53
  - - ">="
48
54
  - !ruby/object:Gem::Version
49
- version: '0'
55
+ version: 1.2.90
50
56
  - !ruby/object:Gem::Dependency
51
57
  name: chronic_cron
52
58
  requirement: !ruby/object:Gem::Requirement
53
59
  requirements:
60
+ - - "~>"
61
+ - !ruby/object:Gem::Version
62
+ version: '0.2'
54
63
  - - ">="
55
64
  - !ruby/object:Gem::Version
56
- version: '0'
65
+ version: 0.2.33
57
66
  type: :runtime
58
67
  prerelease: false
59
68
  version_requirements: !ruby/object:Gem::Requirement
60
69
  requirements:
70
+ - - "~>"
71
+ - !ruby/object:Gem::Version
72
+ version: '0.2'
61
73
  - - ">="
62
74
  - !ruby/object:Gem::Version
63
- version: '0'
75
+ version: 0.2.33
64
76
  - !ruby/object:Gem::Dependency
65
77
  name: websocket-eventmachine-client
66
78
  requirement: !ruby/object:Gem::Requirement
67
79
  requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '1.0'
68
83
  - - ">="
69
84
  - !ruby/object:Gem::Version
70
- version: '0'
85
+ version: 1.0.1
71
86
  type: :runtime
72
87
  prerelease: false
73
88
  version_requirements: !ruby/object:Gem::Requirement
74
89
  requirements:
90
+ - - "~>"
91
+ - !ruby/object:Gem::Version
92
+ version: '1.0'
75
93
  - - ">="
76
94
  - !ruby/object:Gem::Version
77
- version: '0'
95
+ version: 1.0.1
78
96
  - !ruby/object:Gem::Dependency
79
97
  name: rscript
80
98
  requirement: !ruby/object:Gem::Requirement
81
99
  requirements:
100
+ - - "~>"
101
+ - !ruby/object:Gem::Version
102
+ version: '0.1'
82
103
  - - ">="
83
104
  - !ruby/object:Gem::Version
84
- version: '0'
105
+ version: 0.1.25
85
106
  type: :runtime
86
107
  prerelease: false
87
108
  version_requirements: !ruby/object:Gem::Requirement
88
109
  requirements:
110
+ - - "~>"
111
+ - !ruby/object:Gem::Version
112
+ version: '0.1'
89
113
  - - ">="
90
114
  - !ruby/object:Gem::Version
91
- version: '0'
115
+ version: 0.1.25
92
116
  - !ruby/object:Gem::Dependency
93
117
  name: chronic_duration
94
118
  requirement: !ruby/object:Gem::Requirement
95
119
  requirements:
120
+ - - "~>"
121
+ - !ruby/object:Gem::Version
122
+ version: '0.10'
96
123
  - - ">="
97
124
  - !ruby/object:Gem::Version
98
- version: '0'
125
+ version: 0.10.4
99
126
  type: :runtime
100
127
  prerelease: false
101
128
  version_requirements: !ruby/object:Gem::Requirement
102
129
  requirements:
130
+ - - "~>"
131
+ - !ruby/object:Gem::Version
132
+ version: '0.10'
103
133
  - - ">="
104
134
  - !ruby/object:Gem::Version
105
- version: '0'
135
+ version: 0.10.4
106
136
  description:
107
137
  email: james@r0bertson.co.uk
108
138
  executables: []
@@ -122,7 +152,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
122
152
  requirements:
123
153
  - - ">="
124
154
  - !ruby/object:Gem::Version
125
- version: '0'
155
+ version: 2.1.2
126
156
  required_rubygems_version: !ruby/object:Gem::Requirement
127
157
  requirements:
128
158
  - - ">="
@@ -130,7 +160,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
130
160
  version: '0'
131
161
  requirements: []
132
162
  rubyforge_project:
133
- rubygems_version: 2.1.11
163
+ rubygems_version: 2.2.2
134
164
  signing_key:
135
165
  specification_version: 4
136
166
  summary: dynarex_cron
metadata.gz.sig CHANGED
@@ -1 +1 @@
1
- h�#6}��m�3V����!��zZ�x�����-����� m���+�N6HY�a��'��'g�k�`a��[����_H��R�NH ��:�OdKmDq1�,A��e�_�>@��~$$�̔��{�y^�u��� !��WJ3�N�u�������Y����g�}:E#!]�.��!���_��uCD�Sh�E،D�vS �qu��9`h�����xyq�B�٬�.��6h�(q�M݊Q�GT�� 5��0�Qߝ�
1
+ �!P��&���sVC����*wq��V��^��R3i9L"zz:�Y�/���~��6��,�#l%͋:�l4��G�͏p.o�.��D�7?��!��5