dynarex_cron 0.3.5 → 0.4.0

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