qmore 0.6.2 → 0.6.3
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/CHANGELOG +7 -0
- data/README.md +19 -7
- data/lib/qmore.rb +30 -3
- data/lib/qmore/attributes.rb +12 -85
- data/lib/qmore/configuration.rb +74 -0
- data/lib/qmore/job_reserver.rb +11 -6
- data/lib/qmore/persistence.rb +105 -0
- data/lib/qmore/server.rb +27 -7
- data/lib/qmore/version.rb +1 -1
- data/qmore.gemspec +1 -0
- data/spec/attributes_spec.rb +11 -74
- data/spec/configuration_spec.rb +112 -0
- data/spec/job_reserver_spec.rb +86 -9
- data/spec/persistance_spec.rb +57 -0
- data/spec/server_spec.rb +96 -85
- data/spec/spec_helper.rb +1 -1
- metadata +80 -45
- checksums.yaml +0 -7
@@ -0,0 +1,57 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe "Qmore::Persistence::Monitor" do
|
4
|
+
before(:each) do
|
5
|
+
Qmore.client.redis.flushall
|
6
|
+
end
|
7
|
+
|
8
|
+
it "updates periodically based on the interval" do
|
9
|
+
persistence = Qmore::Persistence::Redis.new(Qmore.client.redis)
|
10
|
+
persistence.should_receive(:load).at_least(3)
|
11
|
+
monitor = Qmore::Persistence::Monitor.new(persistence, 1)
|
12
|
+
monitor.start
|
13
|
+
sleep 4
|
14
|
+
monitor.stop
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
describe "Qmore::Persistence::Redis" do
|
19
|
+
before(:each) do
|
20
|
+
Qmore.client.redis.flushall
|
21
|
+
end
|
22
|
+
|
23
|
+
|
24
|
+
context "dynamic queues" do
|
25
|
+
it "can read/write dynamic queues to redis" do
|
26
|
+
queues = {
|
27
|
+
"key_a" => ["foo"],
|
28
|
+
"key_b" => ["bar"],
|
29
|
+
"key_c" => ["foo", "bar"]
|
30
|
+
}
|
31
|
+
|
32
|
+
configuration = Qmore::Configuration.new
|
33
|
+
configuration.dynamic_queues = queues
|
34
|
+
persistence = Qmore::Persistence::Redis.new(Qmore.client.redis)
|
35
|
+
persistence.write(configuration)
|
36
|
+
|
37
|
+
actual_configuration = persistence.load
|
38
|
+
|
39
|
+
configuration.dynamic_queues.should == actual_configuration.dynamic_queues
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
context "priorities" do
|
44
|
+
it "can read/write priorities to redis" do
|
45
|
+
priorities = [{'pattern' => 'foo*', 'fairly' => false},{'pattern' => 'default', 'fairly' => false}]
|
46
|
+
configuration = Qmore::Configuration.new
|
47
|
+
configuration.priority_buckets = priorities
|
48
|
+
|
49
|
+
persistence = Qmore::Persistence::Redis.new(Qmore.client.redis)
|
50
|
+
persistence.write(configuration)
|
51
|
+
|
52
|
+
actual_configuration = persistence.load
|
53
|
+
configuration.priority_buckets.should == actual_configuration.priority_buckets
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
data/spec/server_spec.rb
CHANGED
@@ -9,7 +9,7 @@ require 'orderedhash'
|
|
9
9
|
Sinatra::Base.set :environment, :test
|
10
10
|
|
11
11
|
describe "Qmore Server" do
|
12
|
-
|
12
|
+
|
13
13
|
include Rack::Test::Methods
|
14
14
|
include Qmore::Attributes
|
15
15
|
|
@@ -19,219 +19,230 @@ describe "Qmore Server" do
|
|
19
19
|
|
20
20
|
before(:each) do
|
21
21
|
Qmore.client.redis.flushall
|
22
|
+
Qmore.configuration = Qmore::Configuration.new
|
22
23
|
end
|
23
24
|
|
24
25
|
context "DynamicQueue" do
|
25
|
-
|
26
|
+
|
26
27
|
context "existence in application" do
|
27
|
-
|
28
|
+
|
28
29
|
it "should respond to it's url" do
|
29
30
|
get "/dynamicqueues"
|
30
31
|
last_response.should be_ok
|
31
32
|
end
|
32
|
-
|
33
|
+
|
33
34
|
it "should display its tab" do
|
34
35
|
get "/queues"
|
35
36
|
last_response.body.should include "<a href='/dynamicqueues'>DynamicQueues</a>"
|
36
37
|
end
|
37
|
-
|
38
|
+
|
38
39
|
end
|
39
|
-
|
40
|
+
|
40
41
|
context "show dynamic queues table" do
|
41
|
-
|
42
|
+
|
42
43
|
it "should shows default queue when nothing set" do
|
43
44
|
get "/dynamicqueues"
|
44
|
-
|
45
|
+
|
45
46
|
last_response.body.should include 'default'
|
46
47
|
end
|
47
|
-
|
48
|
+
|
48
49
|
it "should shows names of queues" do
|
49
|
-
|
50
|
-
|
51
|
-
|
50
|
+
Qmore.configuration.dynamic_queues["key_one"] = ["foo"]
|
51
|
+
Qmore.configuration.dynamic_queues["key_two"] = ["bar"]
|
52
|
+
Qmore.persistence.write(Qmore.configuration)
|
53
|
+
|
52
54
|
get "/dynamicqueues"
|
53
|
-
|
55
|
+
|
54
56
|
last_response.body.should include 'key_one'
|
55
57
|
last_response.body.should include 'key_two'
|
56
58
|
end
|
57
|
-
|
59
|
+
|
58
60
|
it "should shows values of queues" do
|
59
|
-
|
60
|
-
|
61
|
-
|
61
|
+
Qmore.configuration.dynamic_queues["key_one"] = ["foo"]
|
62
|
+
Qmore.configuration.dynamic_queues["key_two"] = ["bar", "baz"]
|
63
|
+
Qmore.persistence.write(Qmore.configuration)
|
64
|
+
|
62
65
|
get "/dynamicqueues"
|
63
|
-
|
66
|
+
|
64
67
|
last_response.body.should include 'foo'
|
65
68
|
last_response.body.should include 'bar, baz'
|
66
69
|
end
|
67
|
-
|
70
|
+
|
68
71
|
end
|
69
|
-
|
72
|
+
|
70
73
|
context "remove queue link" do
|
71
|
-
|
74
|
+
|
72
75
|
it "should show remove link for queue" do
|
73
|
-
|
74
|
-
|
76
|
+
Qmore.configuration.dynamic_queues["key_one"] = ["foo"]
|
77
|
+
Qmore.persistence.write(Qmore.configuration)
|
78
|
+
|
75
79
|
get "/dynamicqueues"
|
76
|
-
|
80
|
+
|
77
81
|
last_response.body.should match /<a .*href=['"]#remove['"].*>/
|
78
82
|
end
|
79
|
-
|
83
|
+
|
80
84
|
it "should show add link" do
|
81
85
|
get "/dynamicqueues"
|
82
|
-
|
86
|
+
|
83
87
|
last_response.body.should match /<a .*href=['"]#add['"].*>/
|
84
88
|
end
|
85
|
-
|
89
|
+
|
86
90
|
end
|
87
|
-
|
91
|
+
|
88
92
|
context "form to edit queues" do
|
89
|
-
|
93
|
+
|
90
94
|
it "should have form to edit queues" do
|
91
95
|
get "/dynamicqueues"
|
92
|
-
|
96
|
+
|
93
97
|
last_response.body.should match /<form action="\/dynamicqueues"/
|
94
98
|
end
|
95
|
-
|
99
|
+
|
96
100
|
it "should show input fields" do
|
97
|
-
|
98
|
-
|
101
|
+
Qmore.configuration.dynamic_queues["key_one"] = ["foo"]
|
102
|
+
Qmore.configuration.dynamic_queues["key_two"] = ["bar", "baz"]
|
103
|
+
Qmore.persistence.write(Qmore.configuration)
|
104
|
+
|
99
105
|
get "/dynamicqueues"
|
100
|
-
|
106
|
+
|
101
107
|
last_response.body.should match /<input type="text" id="input-0-name" name="queues\[\]\[name\]" value="key_one"/
|
102
108
|
last_response.body.should match /<input type="text" id="input-0-value" name="queues\[\]\[value\]" value="foo"/
|
103
109
|
last_response.body.should match /<input type="text" id="input-1-name" name="queues\[\]\[name\]" value="key_two"/
|
104
110
|
last_response.body.should match /<input type="text" id="input-1-value" name="queues\[\]\[value\]" value="bar, baz"/
|
105
111
|
end
|
106
|
-
|
112
|
+
|
107
113
|
it "should delete queues on empty queue submit" do
|
108
|
-
|
114
|
+
Qmore.configuration.dynamic_queues["key_two"] = ["bar", "baz"]
|
115
|
+
Qmore.persistence.write(Qmore.configuration)
|
116
|
+
Qmore.persistence.load.dynamic_queues.has_key?("key_two").should == true
|
117
|
+
|
109
118
|
post "/dynamicqueues", {'queues' => [{'name' => "key_two", "value" => ""}]}
|
110
|
-
|
119
|
+
|
111
120
|
last_response.should be_redirect
|
112
121
|
last_response['Location'].should match /dynamicqueues/
|
113
|
-
|
122
|
+
Qmore.configuration.dynamic_queues.has_key?("key_two").should == false
|
114
123
|
end
|
115
|
-
|
124
|
+
|
116
125
|
it "should create queues" do
|
117
126
|
post "/dynamicqueues", {'queues' => [{'name' => "key_two", "value" => " foo, bar ,baz "}]}
|
118
|
-
|
127
|
+
|
119
128
|
last_response.should be_redirect
|
120
129
|
last_response['Location'].should match /dynamicqueues/
|
121
|
-
|
130
|
+
Qmore.configuration.dynamic_queues["key_two"].should == %w{foo bar baz}
|
122
131
|
end
|
123
|
-
|
132
|
+
|
124
133
|
it "should update queues" do
|
125
|
-
|
134
|
+
Qmore.configuration.dynamic_queues["key_two"] = ["bar", "baz"]
|
135
|
+
Qmore.persistence.write(Qmore.configuration)
|
136
|
+
|
126
137
|
post "/dynamicqueues", {'queues' => [{'name' => "key_two", "value" => "foo,bar,baz"}]}
|
127
|
-
|
138
|
+
|
128
139
|
last_response.should be_redirect
|
129
140
|
last_response['Location'].should match /dynamicqueues/
|
130
|
-
|
141
|
+
Qmore.configuration.dynamic_queues["key_two"].should == %w{foo bar baz}
|
131
142
|
end
|
132
|
-
|
143
|
+
|
133
144
|
end
|
134
145
|
|
135
146
|
end
|
136
|
-
|
147
|
+
|
137
148
|
context "QueuePriority" do
|
138
149
|
|
139
150
|
context "existence in application" do
|
140
|
-
|
151
|
+
|
141
152
|
it "should respond to it's url" do
|
142
153
|
get "/queuepriority"
|
143
154
|
last_response.should be_ok
|
144
155
|
end
|
145
|
-
|
156
|
+
|
146
157
|
it "should display its tab" do
|
147
158
|
get "/queues"
|
148
159
|
last_response.body.should include "<a href='/queuepriority'>QueuePriority</a>"
|
149
160
|
end
|
150
|
-
|
161
|
+
|
151
162
|
end
|
152
|
-
|
163
|
+
|
153
164
|
context "show queue priority table" do
|
154
|
-
|
165
|
+
|
155
166
|
before(:each) do
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
167
|
+
Qmore.configuration.priority_buckets = [{'pattern' => 'foo', 'fairly' => false},
|
168
|
+
{'pattern' => 'default', 'fairly' => false},
|
169
|
+
{'pattern' => 'bar', 'fairly' => true}]
|
170
|
+
Qmore.persistence.write(Qmore.configuration)
|
160
171
|
end
|
161
|
-
|
172
|
+
|
162
173
|
it "should shows pattern input fields" do
|
163
174
|
get "/queuepriority"
|
164
|
-
|
175
|
+
|
165
176
|
last_response.body.should match /<input type="text" id="input-0-pattern" name="priorities\[\]\[pattern\]" value="foo"/
|
166
177
|
last_response.body.should match /<input type="text" id="input-1-pattern" name="priorities\[\]\[pattern\]" value="default"/
|
167
178
|
last_response.body.should match /<input type="text" id="input-2-pattern" name="priorities\[\]\[pattern\]" value="bar"/
|
168
179
|
end
|
169
|
-
|
180
|
+
|
170
181
|
it "should show fairly checkboxes" do
|
171
182
|
get "/queuepriority"
|
172
|
-
|
183
|
+
|
173
184
|
last_response.body.should match /<input type="checkbox" id="input-0-fairly" name="priorities\[\]\[fairly\]" value="true" *\/>/
|
174
185
|
last_response.body.should match /<input type="checkbox" id="input-1-fairly" name="priorities\[\]\[fairly\]" value="true" *\/>/
|
175
186
|
last_response.body.should match /<input type="checkbox" id="input-2-fairly" name="priorities\[\]\[fairly\]" value="true" checked *\/>/
|
176
187
|
end
|
177
|
-
|
188
|
+
|
178
189
|
end
|
179
|
-
|
190
|
+
|
180
191
|
context "edit links" do
|
181
|
-
|
192
|
+
|
182
193
|
before(:each) do
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
194
|
+
Qmore.configuration.priority_buckets = [{'pattern' => 'foo', 'fairly' => false},
|
195
|
+
{'pattern' => 'default', 'fairly' => false},
|
196
|
+
{'pattern' => 'bar', 'fairly' => true}]
|
197
|
+
Qmore.persistence.write(Qmore.configuration)
|
187
198
|
end
|
188
|
-
|
199
|
+
|
189
200
|
it "should show remove link for queue" do
|
190
201
|
get "/queuepriority"
|
191
|
-
|
202
|
+
|
192
203
|
last_response.body.should match /<a href="#remove"/
|
193
204
|
end
|
194
|
-
|
205
|
+
|
195
206
|
it "should show up link for queue" do
|
196
207
|
get "/queuepriority"
|
197
|
-
|
208
|
+
|
198
209
|
last_response.body.should match /<a href="#up"/
|
199
210
|
end
|
200
|
-
|
211
|
+
|
201
212
|
it "should show down link for queue" do
|
202
213
|
get "/queuepriority"
|
203
|
-
|
214
|
+
|
204
215
|
last_response.body.should match /<a href="#down"/
|
205
216
|
end
|
206
|
-
|
217
|
+
|
207
218
|
end
|
208
|
-
|
219
|
+
|
209
220
|
context "form to edit queues" do
|
210
|
-
|
221
|
+
|
211
222
|
it "should have form to edit queues" do
|
212
223
|
get "/queuepriority"
|
213
|
-
|
224
|
+
|
214
225
|
last_response.body.should match /<form action="\/queuepriority"/
|
215
226
|
end
|
216
|
-
|
227
|
+
|
217
228
|
it "should update queues" do
|
218
|
-
|
219
|
-
|
229
|
+
Qmore.configuration.priority_buckets.should == [{'pattern' => 'default'}]
|
230
|
+
|
220
231
|
params = {'priorities' => [
|
221
232
|
OrderedHash["pattern", "foo"],
|
222
233
|
OrderedHash["pattern", "default"],
|
223
234
|
OrderedHash["pattern", "bar", "fairly", "true"]
|
224
235
|
]}
|
225
|
-
post "/queuepriority", params
|
226
|
-
|
236
|
+
post "/queuepriority", params
|
237
|
+
|
227
238
|
last_response.should be_redirect
|
228
239
|
last_response['Location'].should match /queuepriority/
|
229
|
-
|
240
|
+
Qmore.configuration.priority_buckets.should == [{"pattern" => "foo"},
|
230
241
|
{"pattern" => "default"},
|
231
242
|
{"pattern" => "bar", "fairly" => "true"}]
|
232
243
|
end
|
233
|
-
|
244
|
+
|
234
245
|
end
|
235
|
-
|
246
|
+
|
236
247
|
end
|
237
248
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -6,7 +6,7 @@ Coveralls.wear!
|
|
6
6
|
require 'qmore'
|
7
7
|
|
8
8
|
redis_configs_directory = File.join(File.dirname(File.expand_path(__FILE__)), "redis")
|
9
|
-
redis_configs = Dir.entries(redis_configs_directory).select{|f| !File.directory? f}
|
9
|
+
redis_configs = Dir.entries(redis_configs_directory).select{|f| !File.directory?(f) && f.end_with?(".conf")}
|
10
10
|
|
11
11
|
redis_configs.each do |config|
|
12
12
|
redis_cmd = "redis-server #{redis_configs_directory}/#{config}"
|
metadata
CHANGED
@@ -1,113 +1,144 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: qmore
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.3
|
5
|
+
prerelease:
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
8
|
- Matt Conway
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date: 2014-
|
12
|
+
date: 2014-06-13 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
15
|
+
prerelease: false
|
14
16
|
name: qless
|
17
|
+
type: :runtime
|
15
18
|
requirement: !ruby/object:Gem::Requirement
|
16
19
|
requirements:
|
17
|
-
- -
|
20
|
+
- - ~>
|
18
21
|
- !ruby/object:Gem::Version
|
19
22
|
version: '0.9'
|
20
|
-
|
21
|
-
prerelease: false
|
23
|
+
none: false
|
22
24
|
version_requirements: !ruby/object:Gem::Requirement
|
23
25
|
requirements:
|
24
|
-
- -
|
26
|
+
- - ~>
|
25
27
|
- !ruby/object:Gem::Version
|
26
28
|
version: '0.9'
|
29
|
+
none: false
|
27
30
|
- !ruby/object:Gem::Dependency
|
31
|
+
prerelease: false
|
28
32
|
name: multi_json
|
33
|
+
type: :runtime
|
29
34
|
requirement: !ruby/object:Gem::Requirement
|
30
35
|
requirements:
|
31
|
-
- -
|
36
|
+
- - ~>
|
32
37
|
- !ruby/object:Gem::Version
|
33
38
|
version: '1.7'
|
34
|
-
|
35
|
-
prerelease: false
|
39
|
+
none: false
|
36
40
|
version_requirements: !ruby/object:Gem::Requirement
|
37
41
|
requirements:
|
38
|
-
- -
|
42
|
+
- - ~>
|
39
43
|
- !ruby/object:Gem::Version
|
40
44
|
version: '1.7'
|
45
|
+
none: false
|
41
46
|
- !ruby/object:Gem::Dependency
|
42
|
-
|
47
|
+
prerelease: false
|
48
|
+
name: gem_logger
|
49
|
+
type: :runtime
|
43
50
|
requirement: !ruby/object:Gem::Requirement
|
44
51
|
requirements:
|
45
|
-
- -
|
52
|
+
- - ! '>='
|
46
53
|
- !ruby/object:Gem::Version
|
47
54
|
version: '0'
|
48
|
-
|
55
|
+
none: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
requirements:
|
58
|
+
- - ! '>='
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: '0'
|
61
|
+
none: false
|
62
|
+
- !ruby/object:Gem::Dependency
|
49
63
|
prerelease: false
|
64
|
+
name: rake
|
65
|
+
type: :development
|
66
|
+
requirement: !ruby/object:Gem::Requirement
|
67
|
+
requirements:
|
68
|
+
- - ! '>='
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
version: '0'
|
71
|
+
none: false
|
50
72
|
version_requirements: !ruby/object:Gem::Requirement
|
51
73
|
requirements:
|
52
|
-
- -
|
74
|
+
- - ! '>='
|
53
75
|
- !ruby/object:Gem::Version
|
54
76
|
version: '0'
|
77
|
+
none: false
|
55
78
|
- !ruby/object:Gem::Dependency
|
79
|
+
prerelease: false
|
56
80
|
name: rspec
|
81
|
+
type: :development
|
57
82
|
requirement: !ruby/object:Gem::Requirement
|
58
83
|
requirements:
|
59
|
-
- -
|
84
|
+
- - ! '>='
|
60
85
|
- !ruby/object:Gem::Version
|
61
86
|
version: '0'
|
62
|
-
|
63
|
-
prerelease: false
|
87
|
+
none: false
|
64
88
|
version_requirements: !ruby/object:Gem::Requirement
|
65
89
|
requirements:
|
66
|
-
- -
|
90
|
+
- - ! '>='
|
67
91
|
- !ruby/object:Gem::Version
|
68
92
|
version: '0'
|
93
|
+
none: false
|
69
94
|
- !ruby/object:Gem::Dependency
|
95
|
+
prerelease: false
|
70
96
|
name: rack-test
|
97
|
+
type: :development
|
71
98
|
requirement: !ruby/object:Gem::Requirement
|
72
99
|
requirements:
|
73
|
-
- -
|
100
|
+
- - ! '>='
|
74
101
|
- !ruby/object:Gem::Version
|
75
102
|
version: '0'
|
76
|
-
|
77
|
-
prerelease: false
|
103
|
+
none: false
|
78
104
|
version_requirements: !ruby/object:Gem::Requirement
|
79
105
|
requirements:
|
80
|
-
- -
|
106
|
+
- - ! '>='
|
81
107
|
- !ruby/object:Gem::Version
|
82
108
|
version: '0'
|
109
|
+
none: false
|
83
110
|
- !ruby/object:Gem::Dependency
|
111
|
+
prerelease: false
|
84
112
|
name: pry
|
113
|
+
type: :development
|
85
114
|
requirement: !ruby/object:Gem::Requirement
|
86
115
|
requirements:
|
87
|
-
- -
|
116
|
+
- - ! '>='
|
88
117
|
- !ruby/object:Gem::Version
|
89
118
|
version: '0'
|
90
|
-
|
91
|
-
prerelease: false
|
119
|
+
none: false
|
92
120
|
version_requirements: !ruby/object:Gem::Requirement
|
93
121
|
requirements:
|
94
|
-
- -
|
122
|
+
- - ! '>='
|
95
123
|
- !ruby/object:Gem::Version
|
96
124
|
version: '0'
|
125
|
+
none: false
|
97
126
|
- !ruby/object:Gem::Dependency
|
127
|
+
prerelease: false
|
98
128
|
name: orderedhash
|
129
|
+
type: :development
|
99
130
|
requirement: !ruby/object:Gem::Requirement
|
100
131
|
requirements:
|
101
|
-
- -
|
132
|
+
- - ! '>='
|
102
133
|
- !ruby/object:Gem::Version
|
103
134
|
version: '0'
|
104
|
-
|
105
|
-
prerelease: false
|
135
|
+
none: false
|
106
136
|
version_requirements: !ruby/object:Gem::Requirement
|
107
137
|
requirements:
|
108
|
-
- -
|
138
|
+
- - ! '>='
|
109
139
|
- !ruby/object:Gem::Version
|
110
140
|
version: '0'
|
141
|
+
none: false
|
111
142
|
description: Qmore allows one to specify the queues a worker processes by the use
|
112
143
|
of wildcards, negations, or dynamic look up from redis. It also allows one to specify
|
113
144
|
the relative priority between queues (rather than within a single queue). It plugs
|
@@ -118,8 +149,8 @@ executables: []
|
|
118
149
|
extensions: []
|
119
150
|
extra_rdoc_files: []
|
120
151
|
files:
|
121
|
-
-
|
122
|
-
-
|
152
|
+
- .gitignore
|
153
|
+
- .travis.yml
|
123
154
|
- CHANGELOG
|
124
155
|
- Gemfile
|
125
156
|
- LICENSE
|
@@ -129,46 +160,50 @@ files:
|
|
129
160
|
- lib/qmore-server.rb
|
130
161
|
- lib/qmore.rb
|
131
162
|
- lib/qmore/attributes.rb
|
163
|
+
- lib/qmore/configuration.rb
|
132
164
|
- lib/qmore/job_reserver.rb
|
165
|
+
- lib/qmore/persistence.rb
|
133
166
|
- lib/qmore/server.rb
|
134
167
|
- lib/qmore/server/views/dynamicqueues.erb
|
135
168
|
- lib/qmore/server/views/priorities.erb
|
136
169
|
- lib/qmore/version.rb
|
137
170
|
- qmore.gemspec
|
138
171
|
- spec/attributes_spec.rb
|
172
|
+
- spec/configuration_spec.rb
|
139
173
|
- spec/job_reserver_spec.rb
|
174
|
+
- spec/persistance_spec.rb
|
140
175
|
- spec/redis/qless01-test.conf
|
141
176
|
- spec/redis/qless02-test.conf
|
142
177
|
- spec/server_spec.rb
|
143
178
|
- spec/spec_helper.rb
|
144
179
|
homepage: ''
|
145
180
|
licenses: []
|
146
|
-
metadata: {}
|
147
181
|
post_install_message:
|
148
182
|
rdoc_options: []
|
149
183
|
require_paths:
|
150
184
|
- lib
|
151
185
|
required_ruby_version: !ruby/object:Gem::Requirement
|
152
186
|
requirements:
|
153
|
-
- -
|
187
|
+
- - ! '>='
|
154
188
|
- !ruby/object:Gem::Version
|
155
189
|
version: '0'
|
190
|
+
segments:
|
191
|
+
- 0
|
192
|
+
hash: -593121205799441535
|
193
|
+
none: false
|
156
194
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
157
195
|
requirements:
|
158
|
-
- -
|
196
|
+
- - ! '>='
|
159
197
|
- !ruby/object:Gem::Version
|
160
198
|
version: '0'
|
199
|
+
segments:
|
200
|
+
- 0
|
201
|
+
hash: -593121205799441535
|
202
|
+
none: false
|
161
203
|
requirements: []
|
162
204
|
rubyforge_project: qmore
|
163
|
-
rubygems_version:
|
205
|
+
rubygems_version: 1.8.23
|
164
206
|
signing_key:
|
165
|
-
specification_version:
|
207
|
+
specification_version: 3
|
166
208
|
summary: A qless plugin that gives more control over how queues are processed
|
167
|
-
test_files:
|
168
|
-
- spec/attributes_spec.rb
|
169
|
-
- spec/job_reserver_spec.rb
|
170
|
-
- spec/redis/qless01-test.conf
|
171
|
-
- spec/redis/qless02-test.conf
|
172
|
-
- spec/server_spec.rb
|
173
|
-
- spec/spec_helper.rb
|
174
|
-
has_rdoc:
|
209
|
+
test_files: []
|