qs 0.3.0 → 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.
Files changed (63) hide show
  1. data/bench/config.qs +4 -27
  2. data/bench/dispatcher.qs +24 -0
  3. data/bench/report.rb +80 -10
  4. data/bench/report.txt +10 -3
  5. data/bench/setup.rb +55 -0
  6. data/lib/qs.rb +75 -15
  7. data/lib/qs/client.rb +73 -22
  8. data/lib/qs/daemon.rb +21 -21
  9. data/lib/qs/daemon_data.rb +4 -4
  10. data/lib/qs/dispatch_job.rb +36 -0
  11. data/lib/qs/dispatch_job_handler.rb +79 -0
  12. data/lib/qs/dispatcher_queue.rb +19 -0
  13. data/lib/qs/error_handler.rb +12 -12
  14. data/lib/qs/event.rb +82 -0
  15. data/lib/qs/event_handler.rb +34 -0
  16. data/lib/qs/event_handler_test_helpers.rb +17 -0
  17. data/lib/qs/job.rb +19 -31
  18. data/lib/qs/job_handler.rb +6 -63
  19. data/lib/qs/{test_helpers.rb → job_handler_test_helpers.rb} +2 -2
  20. data/lib/qs/message.rb +29 -0
  21. data/lib/qs/message_handler.rb +84 -0
  22. data/lib/qs/payload.rb +98 -0
  23. data/lib/qs/payload_handler.rb +106 -54
  24. data/lib/qs/queue.rb +39 -6
  25. data/lib/qs/queue_item.rb +33 -0
  26. data/lib/qs/route.rb +7 -7
  27. data/lib/qs/runner.rb +6 -5
  28. data/lib/qs/test_runner.rb +41 -13
  29. data/lib/qs/version.rb +1 -1
  30. data/qs.gemspec +1 -1
  31. data/test/helper.rb +1 -1
  32. data/test/support/app_daemon.rb +77 -11
  33. data/test/support/factory.rb +34 -0
  34. data/test/system/daemon_tests.rb +146 -77
  35. data/test/system/queue_tests.rb +87 -0
  36. data/test/unit/client_tests.rb +184 -45
  37. data/test/unit/daemon_data_tests.rb +4 -4
  38. data/test/unit/daemon_tests.rb +32 -32
  39. data/test/unit/dispatch_job_handler_tests.rb +163 -0
  40. data/test/unit/dispatch_job_tests.rb +75 -0
  41. data/test/unit/dispatcher_queue_tests.rb +42 -0
  42. data/test/unit/error_handler_tests.rb +9 -9
  43. data/test/unit/event_handler_test_helpers_tests.rb +55 -0
  44. data/test/unit/event_handler_tests.rb +63 -0
  45. data/test/unit/event_tests.rb +162 -0
  46. data/test/unit/{test_helper_tests.rb → job_handler_test_helper_tests.rb} +13 -19
  47. data/test/unit/job_handler_tests.rb +17 -210
  48. data/test/unit/job_tests.rb +49 -79
  49. data/test/unit/message_handler_tests.rb +235 -0
  50. data/test/unit/message_tests.rb +64 -0
  51. data/test/unit/payload_handler_tests.rb +285 -86
  52. data/test/unit/payload_tests.rb +139 -0
  53. data/test/unit/qs_runner_tests.rb +6 -6
  54. data/test/unit/qs_tests.rb +167 -28
  55. data/test/unit/queue_item_tests.rb +51 -0
  56. data/test/unit/queue_tests.rb +126 -18
  57. data/test/unit/route_tests.rb +12 -13
  58. data/test/unit/runner_tests.rb +10 -10
  59. data/test/unit/test_runner_tests.rb +117 -24
  60. metadata +51 -21
  61. data/bench/queue.rb +0 -8
  62. data/lib/qs/redis_item.rb +0 -33
  63. data/test/unit/redis_item_tests.rb +0 -49
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: qs
3
3
  version: !ruby/object:Gem::Version
4
- hash: 19
4
+ hash: 15
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
- - 3
8
+ - 4
9
9
  - 0
10
- version: 0.3.0
10
+ version: 0.4.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Kelly Redding
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2015-05-05 00:00:00 Z
19
+ date: 2015-08-04 00:00:00 Z
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
22
  requirement: &id001 !ruby/object:Gem::Requirement
@@ -29,9 +29,9 @@ dependencies:
29
29
  - 0
30
30
  - 5
31
31
  version: "0.5"
32
- version_requirements: *id001
33
32
  type: :runtime
34
33
  name: dat-worker-pool
34
+ version_requirements: *id001
35
35
  prerelease: false
36
36
  - !ruby/object:Gem::Dependency
37
37
  requirement: &id002 !ruby/object:Gem::Requirement
@@ -39,14 +39,14 @@ dependencies:
39
39
  requirements:
40
40
  - - ~>
41
41
  - !ruby/object:Gem::Version
42
- hash: 15
42
+ hash: 13
43
43
  segments:
44
44
  - 0
45
- - 2
46
- version: "0.2"
47
- version_requirements: *id002
45
+ - 3
46
+ version: "0.3"
48
47
  type: :runtime
49
48
  name: hella-redis
49
+ version_requirements: *id002
50
50
  prerelease: false
51
51
  - !ruby/object:Gem::Dependency
52
52
  requirement: &id003 !ruby/object:Gem::Requirement
@@ -59,9 +59,9 @@ dependencies:
59
59
  - 1
60
60
  - 1
61
61
  version: "1.1"
62
- version_requirements: *id003
63
62
  type: :runtime
64
63
  name: ns-options
64
+ version_requirements: *id003
65
65
  prerelease: false
66
66
  - !ruby/object:Gem::Dependency
67
67
  requirement: &id004 !ruby/object:Gem::Requirement
@@ -74,9 +74,9 @@ dependencies:
74
74
  - 1
75
75
  - 2
76
76
  version: "1.2"
77
- version_requirements: *id004
78
77
  type: :runtime
79
78
  name: SystemTimer
79
+ version_requirements: *id004
80
80
  prerelease: false
81
81
  - !ruby/object:Gem::Dependency
82
82
  requirement: &id005 !ruby/object:Gem::Requirement
@@ -89,9 +89,9 @@ dependencies:
89
89
  - 2
90
90
  - 14
91
91
  version: "2.14"
92
- version_requirements: *id005
93
92
  type: :development
94
93
  name: assert
94
+ version_requirements: *id005
95
95
  prerelease: false
96
96
  - !ruby/object:Gem::Dependency
97
97
  requirement: &id006 !ruby/object:Gem::Requirement
@@ -104,9 +104,9 @@ dependencies:
104
104
  - 2
105
105
  - 3
106
106
  version: "2.3"
107
- version_requirements: *id006
108
107
  type: :development
109
108
  name: scmd
109
+ version_requirements: *id006
110
110
  prerelease: false
111
111
  description: Define message queues. Process jobs and events. Profit.
112
112
  email:
@@ -125,9 +125,10 @@ files:
125
125
  - README.md
126
126
  - Rakefile
127
127
  - bench/config.qs
128
- - bench/queue.rb
128
+ - bench/dispatcher.qs
129
129
  - bench/report.rb
130
130
  - bench/report.txt
131
+ - bench/setup.rb
131
132
  - bin/qs
132
133
  - lib/qs.rb
133
134
  - lib/qs/cli.rb
@@ -135,21 +136,30 @@ files:
135
136
  - lib/qs/config_file.rb
136
137
  - lib/qs/daemon.rb
137
138
  - lib/qs/daemon_data.rb
139
+ - lib/qs/dispatch_job.rb
140
+ - lib/qs/dispatch_job_handler.rb
141
+ - lib/qs/dispatcher_queue.rb
138
142
  - lib/qs/error_handler.rb
143
+ - lib/qs/event.rb
144
+ - lib/qs/event_handler.rb
145
+ - lib/qs/event_handler_test_helpers.rb
139
146
  - lib/qs/io_pipe.rb
140
147
  - lib/qs/job.rb
141
148
  - lib/qs/job_handler.rb
149
+ - lib/qs/job_handler_test_helpers.rb
142
150
  - lib/qs/logger.rb
151
+ - lib/qs/message.rb
152
+ - lib/qs/message_handler.rb
153
+ - lib/qs/payload.rb
143
154
  - lib/qs/payload_handler.rb
144
155
  - lib/qs/pid_file.rb
145
156
  - lib/qs/process.rb
146
157
  - lib/qs/process_signal.rb
147
158
  - lib/qs/qs_runner.rb
148
159
  - lib/qs/queue.rb
149
- - lib/qs/redis_item.rb
160
+ - lib/qs/queue_item.rb
150
161
  - lib/qs/route.rb
151
162
  - lib/qs/runner.rb
152
- - lib/qs/test_helpers.rb
153
163
  - lib/qs/test_runner.rb
154
164
  - lib/qs/version.rb
155
165
  - log/.gitkeep
@@ -166,27 +176,37 @@ files:
166
176
  - test/support/pid_file_spy.rb
167
177
  - test/support/runner_spy.rb
168
178
  - test/system/daemon_tests.rb
179
+ - test/system/queue_tests.rb
169
180
  - test/unit/cli_tests.rb
170
181
  - test/unit/client_tests.rb
171
182
  - test/unit/config_file_tests.rb
172
183
  - test/unit/daemon_data_tests.rb
173
184
  - test/unit/daemon_tests.rb
185
+ - test/unit/dispatch_job_handler_tests.rb
186
+ - test/unit/dispatch_job_tests.rb
187
+ - test/unit/dispatcher_queue_tests.rb
174
188
  - test/unit/error_handler_tests.rb
189
+ - test/unit/event_handler_test_helpers_tests.rb
190
+ - test/unit/event_handler_tests.rb
191
+ - test/unit/event_tests.rb
175
192
  - test/unit/io_pipe_tests.rb
193
+ - test/unit/job_handler_test_helper_tests.rb
176
194
  - test/unit/job_handler_tests.rb
177
195
  - test/unit/job_tests.rb
178
196
  - test/unit/logger_tests.rb
197
+ - test/unit/message_handler_tests.rb
198
+ - test/unit/message_tests.rb
179
199
  - test/unit/payload_handler_tests.rb
200
+ - test/unit/payload_tests.rb
180
201
  - test/unit/pid_file_tests.rb
181
202
  - test/unit/process_signal_tests.rb
182
203
  - test/unit/process_tests.rb
183
204
  - test/unit/qs_runner_tests.rb
184
205
  - test/unit/qs_tests.rb
206
+ - test/unit/queue_item_tests.rb
185
207
  - test/unit/queue_tests.rb
186
- - test/unit/redis_item_tests.rb
187
208
  - test/unit/route_tests.rb
188
209
  - test/unit/runner_tests.rb
189
- - test/unit/test_helper_tests.rb
190
210
  - test/unit/test_runner_tests.rb
191
211
  - tmp/.gitkeep
192
212
  homepage: http://github.com/redding/qs
@@ -218,7 +238,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
218
238
  requirements: []
219
239
 
220
240
  rubyforge_project:
221
- rubygems_version: 1.8.29
241
+ rubygems_version: 1.8.25
222
242
  signing_key:
223
243
  specification_version: 3
224
244
  summary: Define message queues. Process jobs and events. Profit.
@@ -235,25 +255,35 @@ test_files:
235
255
  - test/support/pid_file_spy.rb
236
256
  - test/support/runner_spy.rb
237
257
  - test/system/daemon_tests.rb
258
+ - test/system/queue_tests.rb
238
259
  - test/unit/cli_tests.rb
239
260
  - test/unit/client_tests.rb
240
261
  - test/unit/config_file_tests.rb
241
262
  - test/unit/daemon_data_tests.rb
242
263
  - test/unit/daemon_tests.rb
264
+ - test/unit/dispatch_job_handler_tests.rb
265
+ - test/unit/dispatch_job_tests.rb
266
+ - test/unit/dispatcher_queue_tests.rb
243
267
  - test/unit/error_handler_tests.rb
268
+ - test/unit/event_handler_test_helpers_tests.rb
269
+ - test/unit/event_handler_tests.rb
270
+ - test/unit/event_tests.rb
244
271
  - test/unit/io_pipe_tests.rb
272
+ - test/unit/job_handler_test_helper_tests.rb
245
273
  - test/unit/job_handler_tests.rb
246
274
  - test/unit/job_tests.rb
247
275
  - test/unit/logger_tests.rb
276
+ - test/unit/message_handler_tests.rb
277
+ - test/unit/message_tests.rb
248
278
  - test/unit/payload_handler_tests.rb
279
+ - test/unit/payload_tests.rb
249
280
  - test/unit/pid_file_tests.rb
250
281
  - test/unit/process_signal_tests.rb
251
282
  - test/unit/process_tests.rb
252
283
  - test/unit/qs_runner_tests.rb
253
284
  - test/unit/qs_tests.rb
285
+ - test/unit/queue_item_tests.rb
254
286
  - test/unit/queue_tests.rb
255
- - test/unit/redis_item_tests.rb
256
287
  - test/unit/route_tests.rb
257
288
  - test/unit/runner_tests.rb
258
- - test/unit/test_helper_tests.rb
259
289
  - test/unit/test_runner_tests.rb
@@ -1,8 +0,0 @@
1
- require 'qs'
2
- require 'json'
3
-
4
- BenchQueue = Qs::Queue.new do
5
- name 'bench'
6
-
7
- job 'multiply', 'BenchDaemon::Multiply'
8
- end
@@ -1,33 +0,0 @@
1
- module Qs
2
-
3
- class RedisItem
4
-
5
- attr_reader :queue_redis_key, :serialized_payload
6
- attr_accessor :started, :finished
7
- attr_accessor :job, :handler_class
8
- attr_accessor :exception, :time_taken
9
-
10
- def initialize(queue_redis_key, serialized_payload)
11
- @queue_redis_key = queue_redis_key
12
- @serialized_payload = serialized_payload
13
- @started = false
14
- @finished = false
15
-
16
- @job = nil
17
- @handler_class = nil
18
- @exception = nil
19
- @time_taken = nil
20
- end
21
-
22
- def ==(other)
23
- if other.kind_of?(self.class)
24
- self.queue_redis_key == other.queue_redis_key &&
25
- self.serialized_payload == other.serialized_payload
26
- else
27
- super
28
- end
29
- end
30
-
31
- end
32
-
33
- end
@@ -1,49 +0,0 @@
1
- require 'assert'
2
- require 'qs/redis_item'
3
-
4
- class Qs::RedisItem
5
-
6
- class UnitTests < Assert::Context
7
- desc "Qs::RedisItem"
8
- setup do
9
- @queue_redis_key = Factory.string
10
- @serialized_payload = Factory.string
11
- @redis_item = Qs::RedisItem.new(@queue_redis_key, @serialized_payload)
12
- end
13
- subject{ @redis_item }
14
-
15
- should have_readers :queue_redis_key, :serialized_payload
16
- should have_accessors :started, :finished
17
- should have_accessors :job, :handler_class
18
- should have_accessors :exception, :time_taken
19
-
20
- should "know its queue redis key and serialized payload" do
21
- assert_equal @queue_redis_key, subject.queue_redis_key
22
- assert_equal @serialized_payload, subject.serialized_payload
23
- end
24
-
25
- should "defaults its other attributes" do
26
- assert_false subject.started
27
- assert_false subject.finished
28
-
29
- assert_nil subject.job
30
- assert_nil subject.handler_class
31
- assert_nil subject.exception
32
- assert_nil subject.time_taken
33
- end
34
-
35
- should "know if it equals another item" do
36
- exp = Qs::RedisItem.new(@queue_redis_key, @serialized_payload)
37
- assert_equal exp, subject
38
-
39
- redis_key = Qs::Queue::RedisKey.new(Factory.string)
40
- exp = Qs::RedisItem.new(redis_key, @serialized_payload)
41
- assert_not_equal exp, subject
42
-
43
- exp = Qs::RedisItem.new(@queue_redis_key, Factory.string)
44
- assert_not_equal exp, subject
45
- end
46
-
47
- end
48
-
49
- end