tom_queue 0.0.1.dev
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.
- data/lib/tom_queue.rb +56 -0
- data/lib/tom_queue/deferred_work_manager.rb +233 -0
- data/lib/tom_queue/deferred_work_set.rb +165 -0
- data/lib/tom_queue/delayed_job.rb +33 -0
- data/lib/tom_queue/delayed_job/external_messages.rb +56 -0
- data/lib/tom_queue/delayed_job/job.rb +365 -0
- data/lib/tom_queue/external_consumer.rb +136 -0
- data/lib/tom_queue/logging_helper.rb +19 -0
- data/lib/tom_queue/queue_manager.rb +264 -0
- data/lib/tom_queue/sorted_array.rb +69 -0
- data/lib/tom_queue/work.rb +62 -0
- data/spec/database.yml +14 -0
- data/spec/helper.rb +75 -0
- data/spec/tom_queue/deferred_work/deferred_work_manager_integration_spec.rb +186 -0
- data/spec/tom_queue/deferred_work/deferred_work_manager_spec.rb +134 -0
- data/spec/tom_queue/deferred_work/deferred_work_set_spec.rb +134 -0
- data/spec/tom_queue/delayed_job/delayed_job_integration_spec.rb +155 -0
- data/spec/tom_queue/delayed_job/delayed_job_spec.rb +818 -0
- data/spec/tom_queue/external_consumer_integration_spec.rb +225 -0
- data/spec/tom_queue/helper.rb +91 -0
- data/spec/tom_queue/logging_helper_spec.rb +152 -0
- data/spec/tom_queue/queue_manager_spec.rb +218 -0
- data/spec/tom_queue/sorted_array_spec.rb +160 -0
- data/spec/tom_queue/tom_queue_integration_spec.rb +296 -0
- data/spec/tom_queue/tom_queue_spec.rb +30 -0
- data/spec/tom_queue/work_spec.rb +35 -0
- data/tom_queue.gemspec +21 -0
- metadata +137 -0
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'tom_queue/helper'
|
2
|
+
|
3
|
+
describe TomQueue, "module functions" do
|
4
|
+
|
5
|
+
it "should not crash if TomQueue.bunny has not been set yet" do
|
6
|
+
# Required since our tests helpfully set TomQueue.bunny for us...
|
7
|
+
module TomQueue
|
8
|
+
remove_class_variable(:@@bunny)
|
9
|
+
end
|
10
|
+
TomQueue.bunny.should be_nil
|
11
|
+
end
|
12
|
+
|
13
|
+
it "should store and return a shared bunny instance" do
|
14
|
+
new_bunny = double(Bunny)
|
15
|
+
TomQueue.bunny = new_bunny
|
16
|
+
TomQueue.bunny.should == new_bunny
|
17
|
+
end
|
18
|
+
|
19
|
+
it "should default the default_prefix to nil" do
|
20
|
+
module TomQueue
|
21
|
+
remove_class_variable(:@@default_prefix) if defined?(@@default_prefix)
|
22
|
+
end
|
23
|
+
TomQueue.default_prefix.should be_nil
|
24
|
+
end
|
25
|
+
it "should store and return a default_prefix" do
|
26
|
+
TomQueue.default_prefix = "foobar"
|
27
|
+
TomQueue.default_prefix.should == "foobar"
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require 'tom_queue/helper'
|
2
|
+
|
3
|
+
describe TomQueue::Work do
|
4
|
+
|
5
|
+
let(:manager) { double("QueueManager") }
|
6
|
+
let(:work) { TomQueue::Work.new(manager, :response, {'headers' => true}, 'payload') }
|
7
|
+
|
8
|
+
it "should expose the queue manager" do
|
9
|
+
work.manager.should == manager
|
10
|
+
end
|
11
|
+
it "should expose the payload" do
|
12
|
+
work.payload.should == 'payload'
|
13
|
+
end
|
14
|
+
it "should expose the headers" do
|
15
|
+
work.headers.should == {'headers' => true}
|
16
|
+
end
|
17
|
+
it "should expose the amqp response object" do
|
18
|
+
work.response.should == :response
|
19
|
+
end
|
20
|
+
|
21
|
+
describe "ack! sugar function" do
|
22
|
+
before do
|
23
|
+
manager.stub(:ack => nil)
|
24
|
+
end
|
25
|
+
|
26
|
+
it "should call the queue_manager#ack(self)" do
|
27
|
+
manager.should_receive(:ack)
|
28
|
+
work.ack!
|
29
|
+
end
|
30
|
+
it "should return self" do
|
31
|
+
work.ack!.should == work
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
data/tom_queue.gemspec
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
|
3
|
+
Gem::Specification.new do |spec|
|
4
|
+
spec.add_dependency 'delayed_job_active_record'
|
5
|
+
spec.add_dependency 'bunny', '~> 0.9.0'
|
6
|
+
spec.authors = ["Thomas Haggett"]
|
7
|
+
spec.description = 'AMQP hook for Delayed Job, backed by ActiveRecord'
|
8
|
+
spec.email = ['thomas+gemfiles@freeagent.com']
|
9
|
+
spec.files = %w(tom_queue.gemspec)
|
10
|
+
spec.files += Dir.glob("lib/**/*.rb")
|
11
|
+
spec.files += Dir.glob("spec/**/*")
|
12
|
+
spec.homepage = 'http://github.com/fac/tom_queue'
|
13
|
+
spec.licenses = ['MIT']
|
14
|
+
spec.name = 'tom_queue'
|
15
|
+
spec.require_paths = ['lib']
|
16
|
+
spec.summary = 'AMQP hook for ActiveRecord backend for DelayedJob'
|
17
|
+
spec.test_files = Dir.glob("spec/**/*")
|
18
|
+
spec.version = '0.0.1.dev'
|
19
|
+
|
20
|
+
spec.add_development_dependency('rest-client')
|
21
|
+
end
|
metadata
ADDED
@@ -0,0 +1,137 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: tom_queue
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1.dev
|
5
|
+
prerelease: 6
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Thomas Haggett
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2013-09-12 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: delayed_job_active_record
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0'
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: bunny
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ~>
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: 0.9.0
|
38
|
+
type: :runtime
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ~>
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 0.9.0
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: rest-client
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ! '>='
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0'
|
54
|
+
type: :development
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
description: AMQP hook for Delayed Job, backed by ActiveRecord
|
63
|
+
email:
|
64
|
+
- thomas+gemfiles@freeagent.com
|
65
|
+
executables: []
|
66
|
+
extensions: []
|
67
|
+
extra_rdoc_files: []
|
68
|
+
files:
|
69
|
+
- tom_queue.gemspec
|
70
|
+
- lib/tom_queue/deferred_work_manager.rb
|
71
|
+
- lib/tom_queue/deferred_work_set.rb
|
72
|
+
- lib/tom_queue/delayed_job/external_messages.rb
|
73
|
+
- lib/tom_queue/delayed_job/job.rb
|
74
|
+
- lib/tom_queue/delayed_job.rb
|
75
|
+
- lib/tom_queue/external_consumer.rb
|
76
|
+
- lib/tom_queue/logging_helper.rb
|
77
|
+
- lib/tom_queue/queue_manager.rb
|
78
|
+
- lib/tom_queue/sorted_array.rb
|
79
|
+
- lib/tom_queue/work.rb
|
80
|
+
- lib/tom_queue.rb
|
81
|
+
- spec/database.yml
|
82
|
+
- spec/helper.rb
|
83
|
+
- spec/tom_queue/deferred_work/deferred_work_manager_integration_spec.rb
|
84
|
+
- spec/tom_queue/deferred_work/deferred_work_manager_spec.rb
|
85
|
+
- spec/tom_queue/deferred_work/deferred_work_set_spec.rb
|
86
|
+
- spec/tom_queue/delayed_job/delayed_job_integration_spec.rb
|
87
|
+
- spec/tom_queue/delayed_job/delayed_job_spec.rb
|
88
|
+
- spec/tom_queue/external_consumer_integration_spec.rb
|
89
|
+
- spec/tom_queue/helper.rb
|
90
|
+
- spec/tom_queue/logging_helper_spec.rb
|
91
|
+
- spec/tom_queue/queue_manager_spec.rb
|
92
|
+
- spec/tom_queue/sorted_array_spec.rb
|
93
|
+
- spec/tom_queue/tom_queue_integration_spec.rb
|
94
|
+
- spec/tom_queue/tom_queue_spec.rb
|
95
|
+
- spec/tom_queue/work_spec.rb
|
96
|
+
homepage: http://github.com/fac/tom_queue
|
97
|
+
licenses:
|
98
|
+
- MIT
|
99
|
+
post_install_message:
|
100
|
+
rdoc_options: []
|
101
|
+
require_paths:
|
102
|
+
- lib
|
103
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
104
|
+
none: false
|
105
|
+
requirements:
|
106
|
+
- - ! '>='
|
107
|
+
- !ruby/object:Gem::Version
|
108
|
+
version: '0'
|
109
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
110
|
+
none: false
|
111
|
+
requirements:
|
112
|
+
- - ! '>'
|
113
|
+
- !ruby/object:Gem::Version
|
114
|
+
version: 1.3.1
|
115
|
+
requirements: []
|
116
|
+
rubyforge_project:
|
117
|
+
rubygems_version: 1.8.24
|
118
|
+
signing_key:
|
119
|
+
specification_version: 3
|
120
|
+
summary: AMQP hook for ActiveRecord backend for DelayedJob
|
121
|
+
test_files:
|
122
|
+
- spec/database.yml
|
123
|
+
- spec/helper.rb
|
124
|
+
- spec/tom_queue/deferred_work/deferred_work_manager_integration_spec.rb
|
125
|
+
- spec/tom_queue/deferred_work/deferred_work_manager_spec.rb
|
126
|
+
- spec/tom_queue/deferred_work/deferred_work_set_spec.rb
|
127
|
+
- spec/tom_queue/delayed_job/delayed_job_integration_spec.rb
|
128
|
+
- spec/tom_queue/delayed_job/delayed_job_spec.rb
|
129
|
+
- spec/tom_queue/external_consumer_integration_spec.rb
|
130
|
+
- spec/tom_queue/helper.rb
|
131
|
+
- spec/tom_queue/logging_helper_spec.rb
|
132
|
+
- spec/tom_queue/queue_manager_spec.rb
|
133
|
+
- spec/tom_queue/sorted_array_spec.rb
|
134
|
+
- spec/tom_queue/tom_queue_integration_spec.rb
|
135
|
+
- spec/tom_queue/tom_queue_spec.rb
|
136
|
+
- spec/tom_queue/work_spec.rb
|
137
|
+
has_rdoc:
|