qe 0.2.1 → 0.3.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 +7 -0
- data/Gemfile +5 -1
- data/Gemfile.lock +56 -53
- data/README.md +35 -0
- data/examples/workers.rb +2 -3
- data/lib/qe.rb +3 -0
- data/lib/qe/action_mailer.rb +22 -0
- data/lib/qe/version.rb +1 -1
- data/lib/qe/worker/instance_methods.rb +1 -1
- data/qe.gemspec +2 -0
- data/spec/qe/action_mailer_spec.rb +59 -0
- data/spec/qe/beanstalk_spec.rb +2 -2
- data/spec/qe/delayed_job_spec.rb +4 -4
- data/spec/qe/immediate_spec.rb +1 -1
- data/spec/qe/locale_spec.rb +1 -1
- data/spec/qe/qu_spec.rb +2 -2
- data/spec/qe/resque_spec.rb +2 -2
- data/spec/qe/sidekiq_spec.rb +2 -2
- data/spec/qe/worker_spec.rb +12 -5
- data/spec/spec_helper.rb +1 -2
- metadata +45 -53
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA1:
|
|
3
|
+
metadata.gz: 24925d0691189b9630c57dbce7ee24f17107fb6c
|
|
4
|
+
data.tar.gz: cb621b8762de804d541ae375627c31201127fadc
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: d4ca40ca8191277537bddef4fd7b29c0403d9cec5bdc3d30b2c3b07a8a9cf80b784d880fa7e022452ba28aafe0cda609a1b1fbc7eba9b9d4d71824ef3927df41
|
|
7
|
+
data.tar.gz: 91de3e84a38b61d045ccd3265a6e34d60a24c298498660e56986a3da0f43dc4cf8337ec2974d80543e7af843584f07a2eb0c3191076f7c78a6974c417ca51f0f
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
|
@@ -1,91 +1,93 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
qe (0.
|
|
4
|
+
qe (0.3.0)
|
|
5
|
+
activesupport
|
|
5
6
|
|
|
6
7
|
GEM
|
|
7
|
-
remote:
|
|
8
|
+
remote: https://rubygems.org/
|
|
8
9
|
specs:
|
|
9
|
-
activemodel (3.2.
|
|
10
|
-
activesupport (= 3.2.
|
|
10
|
+
activemodel (3.2.13)
|
|
11
|
+
activesupport (= 3.2.13)
|
|
11
12
|
builder (~> 3.0.0)
|
|
12
|
-
activerecord (3.2.
|
|
13
|
-
activemodel (= 3.2.
|
|
14
|
-
activesupport (= 3.2.
|
|
13
|
+
activerecord (3.2.13)
|
|
14
|
+
activemodel (= 3.2.13)
|
|
15
|
+
activesupport (= 3.2.13)
|
|
15
16
|
arel (~> 3.0.2)
|
|
16
17
|
tzinfo (~> 0.3.29)
|
|
17
|
-
activesupport (3.2.
|
|
18
|
-
i18n (
|
|
18
|
+
activesupport (3.2.13)
|
|
19
|
+
i18n (= 0.6.1)
|
|
19
20
|
multi_json (~> 1.0)
|
|
20
21
|
arel (3.0.2)
|
|
21
22
|
awesome_print (1.1.0)
|
|
22
|
-
backburner (0.3.
|
|
23
|
+
backburner (0.3.4)
|
|
23
24
|
beaneater (~> 0.3.0)
|
|
24
25
|
dante (~> 0.1.5)
|
|
25
26
|
beaneater (0.3.0)
|
|
26
27
|
builder (3.0.4)
|
|
27
|
-
celluloid (0.
|
|
28
|
-
facter (>= 1.6.12)
|
|
28
|
+
celluloid (0.14.1)
|
|
29
29
|
timers (>= 1.0.0)
|
|
30
|
-
coderay (1.0.
|
|
31
|
-
connection_pool (1.
|
|
30
|
+
coderay (1.0.9)
|
|
31
|
+
connection_pool (1.1.0)
|
|
32
32
|
dante (0.1.5)
|
|
33
|
-
delayed_job (
|
|
34
|
-
activesupport (
|
|
35
|
-
delayed_job_active_record (0.
|
|
36
|
-
activerecord (>=
|
|
37
|
-
delayed_job (
|
|
38
|
-
diff-lcs (1.
|
|
39
|
-
facter (1.6.17)
|
|
33
|
+
delayed_job (4.0.0.beta2)
|
|
34
|
+
activesupport (>= 3.0, < 4.1)
|
|
35
|
+
delayed_job_active_record (4.0.0.beta3)
|
|
36
|
+
activerecord (>= 3.0, < 4.1)
|
|
37
|
+
delayed_job (>= 3.0, < 4.1)
|
|
38
|
+
diff-lcs (1.2.4)
|
|
40
39
|
i18n (0.6.1)
|
|
40
|
+
json (1.8.0)
|
|
41
41
|
method_source (0.8.1)
|
|
42
|
-
|
|
43
|
-
|
|
42
|
+
mono_logger (1.1.0)
|
|
43
|
+
multi_json (1.7.6)
|
|
44
|
+
pry (0.9.12.2)
|
|
44
45
|
coderay (~> 1.0.5)
|
|
45
46
|
method_source (~> 0.8)
|
|
46
47
|
slop (~> 3.4)
|
|
47
48
|
qu (0.2.0)
|
|
48
49
|
multi_json
|
|
49
|
-
rack (1.5.
|
|
50
|
-
rack-protection (1.
|
|
50
|
+
rack (1.5.2)
|
|
51
|
+
rack-protection (1.5.0)
|
|
51
52
|
rack
|
|
52
|
-
redis (3.0.
|
|
53
|
-
redis-namespace (1.
|
|
53
|
+
redis (3.0.4)
|
|
54
|
+
redis-namespace (1.3.0)
|
|
54
55
|
redis (~> 3.0.0)
|
|
55
|
-
resque (1.
|
|
56
|
+
resque (1.24.1)
|
|
57
|
+
mono_logger (~> 1.0)
|
|
56
58
|
multi_json (~> 1.0)
|
|
57
|
-
redis-namespace (~> 1.
|
|
59
|
+
redis-namespace (~> 1.2)
|
|
58
60
|
sinatra (>= 0.9.2)
|
|
59
61
|
vegas (~> 0.1.2)
|
|
60
|
-
resque-scheduler (2.0.
|
|
62
|
+
resque-scheduler (2.0.1)
|
|
61
63
|
redis (>= 2.0.1)
|
|
62
64
|
resque (>= 1.20.0)
|
|
63
65
|
rufus-scheduler
|
|
64
|
-
rspec (2.
|
|
65
|
-
rspec-core (
|
|
66
|
-
rspec-expectations (
|
|
67
|
-
rspec-mocks (
|
|
68
|
-
rspec-core (2.
|
|
69
|
-
rspec-expectations (2.
|
|
70
|
-
diff-lcs (
|
|
71
|
-
rspec-mocks (2.
|
|
72
|
-
rufus-scheduler (2.0.
|
|
66
|
+
rspec (2.14.0.rc1)
|
|
67
|
+
rspec-core (= 2.14.0.rc1)
|
|
68
|
+
rspec-expectations (= 2.14.0.rc1)
|
|
69
|
+
rspec-mocks (= 2.14.0.rc1)
|
|
70
|
+
rspec-core (2.14.0.rc1)
|
|
71
|
+
rspec-expectations (2.14.0.rc1)
|
|
72
|
+
diff-lcs (>= 1.1.3, < 2.0)
|
|
73
|
+
rspec-mocks (2.14.0.rc1)
|
|
74
|
+
rufus-scheduler (2.0.19)
|
|
73
75
|
tzinfo (>= 0.3.23)
|
|
74
|
-
sidekiq (2.
|
|
75
|
-
celluloid (
|
|
76
|
-
connection_pool (
|
|
77
|
-
|
|
78
|
-
redis (
|
|
76
|
+
sidekiq (2.12.1)
|
|
77
|
+
celluloid (>= 0.14.1)
|
|
78
|
+
connection_pool (>= 1.0.0)
|
|
79
|
+
json
|
|
80
|
+
redis (>= 3.0)
|
|
79
81
|
redis-namespace
|
|
80
|
-
sinatra (1.
|
|
81
|
-
rack (~> 1.
|
|
82
|
-
rack-protection (~> 1.
|
|
83
|
-
tilt (~> 1.3, >= 1.3.
|
|
84
|
-
slop (3.4.
|
|
82
|
+
sinatra (1.4.2)
|
|
83
|
+
rack (~> 1.5, >= 1.5.2)
|
|
84
|
+
rack-protection (~> 1.4)
|
|
85
|
+
tilt (~> 1.3, >= 1.3.4)
|
|
86
|
+
slop (3.4.5)
|
|
85
87
|
sqlite3 (1.3.7)
|
|
86
|
-
tilt (1.
|
|
88
|
+
tilt (1.4.1)
|
|
87
89
|
timers (1.1.0)
|
|
88
|
-
tzinfo (0.3.
|
|
90
|
+
tzinfo (0.3.37)
|
|
89
91
|
vegas (0.1.11)
|
|
90
92
|
rack (>= 1.0.0)
|
|
91
93
|
|
|
@@ -96,12 +98,13 @@ DEPENDENCIES
|
|
|
96
98
|
activerecord
|
|
97
99
|
awesome_print
|
|
98
100
|
backburner
|
|
99
|
-
|
|
101
|
+
delayed_job (~> 4.0.0.beta2)
|
|
102
|
+
delayed_job_active_record (~> 4.0.0.beta3)
|
|
100
103
|
pry
|
|
101
104
|
qe!
|
|
102
105
|
qu
|
|
103
106
|
resque
|
|
104
107
|
resque-scheduler
|
|
105
|
-
rspec
|
|
108
|
+
rspec (~> 2.14.0.rc1)
|
|
106
109
|
sidekiq
|
|
107
110
|
sqlite3
|
data/README.md
CHANGED
|
@@ -137,6 +137,41 @@ class MailerWorker
|
|
|
137
137
|
end
|
|
138
138
|
```
|
|
139
139
|
|
|
140
|
+
This approach is good enough, but if you're using ActionMailer, try the `Qe::ActionMailer` instead, combining this extension as well.
|
|
141
|
+
|
|
142
|
+
### ActionMailer integration
|
|
143
|
+
|
|
144
|
+
Qe comes with an extension to send e-mails through ActionMailer. You can set the mailer and which mail will be sent.
|
|
145
|
+
|
|
146
|
+
```ruby
|
|
147
|
+
class Mailer < ActionMailer::Base
|
|
148
|
+
def welcome(options)
|
|
149
|
+
@options = options
|
|
150
|
+
mail :to => options[:email]
|
|
151
|
+
end
|
|
152
|
+
end
|
|
153
|
+
|
|
154
|
+
class MailerWorker
|
|
155
|
+
include Qe::Worker
|
|
156
|
+
include Qe::ActionMailer
|
|
157
|
+
include Qe::Locale
|
|
158
|
+
|
|
159
|
+
def mailer
|
|
160
|
+
Mailer
|
|
161
|
+
end
|
|
162
|
+
end
|
|
163
|
+
|
|
164
|
+
MailerWorker.enqueue(
|
|
165
|
+
:mail => :welcome,
|
|
166
|
+
:name => "John Doe",
|
|
167
|
+
:email => "john@example.org"
|
|
168
|
+
)
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
If the `mailer()` method isn't defined, the `Qe::ActionMailer::AbstractMethodError` exception will be raised.
|
|
172
|
+
|
|
173
|
+
If the `:mail` option isn't defined, the `Qe::ActionMailer::MissingMailNameError` exception will be raised.
|
|
174
|
+
|
|
140
175
|
### Development support
|
|
141
176
|
|
|
142
177
|
Qe comes with development support. Instead of starting up workers on development environment, you can use the `Qe::Immediate` adapter, which executes your worker right away!
|
data/examples/workers.rb
CHANGED
data/lib/qe.rb
CHANGED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
module Qe
|
|
2
|
+
module ActionMailer
|
|
3
|
+
MissingMailNameError = Class.new(StandardError)
|
|
4
|
+
AbstractMethodError = Class.new(StandardError)
|
|
5
|
+
|
|
6
|
+
def mail
|
|
7
|
+
raise MissingMailNameError,
|
|
8
|
+
"the :mail option is not defined" unless options[:mail]
|
|
9
|
+
|
|
10
|
+
mailer.public_send(options[:mail], options)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def mailer
|
|
14
|
+
raise AbstractMethodError,
|
|
15
|
+
"you must implement the mailer method"
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def perform
|
|
19
|
+
mail.deliver
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
data/lib/qe/version.rb
CHANGED
data/qe.gemspec
CHANGED
|
@@ -17,6 +17,8 @@ Gem::Specification.new do |s|
|
|
|
17
17
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
|
18
18
|
s.require_paths = ["lib"]
|
|
19
19
|
|
|
20
|
+
s.add_dependency "activesupport"
|
|
21
|
+
|
|
20
22
|
s.add_development_dependency "sidekiq"
|
|
21
23
|
s.add_development_dependency "qu"
|
|
22
24
|
s.add_development_dependency "delayed_job_active_record"
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
require "spec_helper"
|
|
2
|
+
|
|
3
|
+
describe Qe::ActionMailer do
|
|
4
|
+
let(:worker) {
|
|
5
|
+
Class.new do
|
|
6
|
+
include Qe::Worker
|
|
7
|
+
include Qe::ActionMailer
|
|
8
|
+
end
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
let(:mailer) { double(:mailer) }
|
|
12
|
+
|
|
13
|
+
subject(:job) {
|
|
14
|
+
worker.new(
|
|
15
|
+
:name => "John Doe",
|
|
16
|
+
:email => "john@example.org",
|
|
17
|
+
:mail => :hello
|
|
18
|
+
)
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
describe "#mail" do
|
|
22
|
+
it "raises error when have no :mail" do
|
|
23
|
+
job.options.delete(:mail)
|
|
24
|
+
|
|
25
|
+
expect {
|
|
26
|
+
job.mail
|
|
27
|
+
}.to raise_error(Qe::ActionMailer::MissingMailNameError)
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
it "returns object for :mail option" do
|
|
31
|
+
job.stub :mailer => mailer
|
|
32
|
+
|
|
33
|
+
mailer
|
|
34
|
+
.should_receive(:hello)
|
|
35
|
+
.with(job.options)
|
|
36
|
+
|
|
37
|
+
job.mail
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
describe "#mailer" do
|
|
42
|
+
it "raises error when method implemented" do
|
|
43
|
+
expect {
|
|
44
|
+
job.mailer
|
|
45
|
+
}.to raise_error(Qe::ActionMailer::AbstractMethodError)
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
describe "#perform" do
|
|
50
|
+
it "delivers e-mail" do
|
|
51
|
+
mail = double(:mail)
|
|
52
|
+
job.stub :mail => mail
|
|
53
|
+
|
|
54
|
+
mail.should_receive(:deliver)
|
|
55
|
+
|
|
56
|
+
job.perform
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
end
|
data/spec/qe/beanstalk_spec.rb
CHANGED
|
@@ -19,7 +19,7 @@ describe Qe::Beanstalk do
|
|
|
19
19
|
|
|
20
20
|
context "enqueuing" do
|
|
21
21
|
let(:worker) {
|
|
22
|
-
|
|
22
|
+
double("worker", :queue => "some_queue", :name => "SomeWorker")
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
before do
|
|
@@ -45,7 +45,7 @@ describe Qe::Beanstalk do
|
|
|
45
45
|
|
|
46
46
|
context "scheduling" do
|
|
47
47
|
let(:worker) {
|
|
48
|
-
|
|
48
|
+
double("worker", :queue => "some_queue", :name => "SomeWorker")
|
|
49
49
|
}
|
|
50
50
|
|
|
51
51
|
let(:date) { Time.parse("2012-12-05 02:00:00") }
|
data/spec/qe/delayed_job_spec.rb
CHANGED
|
@@ -22,7 +22,7 @@ describe Qe::DelayedJob do
|
|
|
22
22
|
|
|
23
23
|
context "enqueuing" do
|
|
24
24
|
let(:worker) {
|
|
25
|
-
|
|
25
|
+
double("worker", :queue => "some_queue", :name => "SomeWorker")
|
|
26
26
|
}
|
|
27
27
|
|
|
28
28
|
before do
|
|
@@ -46,7 +46,7 @@ describe Qe::DelayedJob do
|
|
|
46
46
|
end
|
|
47
47
|
|
|
48
48
|
it "enqueues job" do
|
|
49
|
-
job =
|
|
49
|
+
job = double("job")
|
|
50
50
|
Qe::DelayedJob::Worker.stub :new => job
|
|
51
51
|
|
|
52
52
|
Delayed::Job
|
|
@@ -59,7 +59,7 @@ describe Qe::DelayedJob do
|
|
|
59
59
|
|
|
60
60
|
context "scheduling" do
|
|
61
61
|
let(:worker) {
|
|
62
|
-
|
|
62
|
+
double("worker", :queue => "some_queue", :name => "SomeWorker")
|
|
63
63
|
}
|
|
64
64
|
|
|
65
65
|
let(:date) { Time.now }
|
|
@@ -85,7 +85,7 @@ describe Qe::DelayedJob do
|
|
|
85
85
|
end
|
|
86
86
|
|
|
87
87
|
it "schedules job" do
|
|
88
|
-
job =
|
|
88
|
+
job = double("job")
|
|
89
89
|
Qe::DelayedJob::Worker.stub :new => job
|
|
90
90
|
|
|
91
91
|
Delayed::Job
|
data/spec/qe/immediate_spec.rb
CHANGED
data/spec/qe/locale_spec.rb
CHANGED
data/spec/qe/qu_spec.rb
CHANGED
|
@@ -19,7 +19,7 @@ describe Qe::Qu do
|
|
|
19
19
|
|
|
20
20
|
context "enqueuing" do
|
|
21
21
|
let(:worker) {
|
|
22
|
-
|
|
22
|
+
double("worker", :queue => "some_queue", :name => "SomeWorker")
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
before do
|
|
@@ -43,7 +43,7 @@ describe Qe::Qu do
|
|
|
43
43
|
context "scheduling" do
|
|
44
44
|
it "raises exception" do
|
|
45
45
|
expect {
|
|
46
|
-
Qe::Qu.schedule(
|
|
46
|
+
Qe::Qu.schedule(double, Time.now, :a => 1)
|
|
47
47
|
}.to raise_error(Qe::UnsupportedFeatureError)
|
|
48
48
|
end
|
|
49
49
|
end
|
data/spec/qe/resque_spec.rb
CHANGED
|
@@ -19,7 +19,7 @@ describe Qe::Resque do
|
|
|
19
19
|
|
|
20
20
|
context "enqueuing" do
|
|
21
21
|
let(:worker) {
|
|
22
|
-
|
|
22
|
+
double("worker", :queue => "some_queue", :name => "SomeWorker")
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
before do
|
|
@@ -44,7 +44,7 @@ describe Qe::Resque do
|
|
|
44
44
|
let(:date) { Time.now }
|
|
45
45
|
|
|
46
46
|
let(:worker) {
|
|
47
|
-
|
|
47
|
+
double("worker", :queue => "some_queue", :name => "SomeWorker")
|
|
48
48
|
}
|
|
49
49
|
|
|
50
50
|
before do
|
data/spec/qe/sidekiq_spec.rb
CHANGED
|
@@ -23,7 +23,7 @@ describe Qe::Sidekiq do
|
|
|
23
23
|
|
|
24
24
|
context "enqueuing" do
|
|
25
25
|
let(:worker) {
|
|
26
|
-
|
|
26
|
+
double("worker", :queue => "some_queue", :name => "SomeWorker")
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
before do
|
|
@@ -49,7 +49,7 @@ describe Qe::Sidekiq do
|
|
|
49
49
|
|
|
50
50
|
context "scheduling" do
|
|
51
51
|
let(:worker) {
|
|
52
|
-
|
|
52
|
+
double("worker", :queue => "some_queue", :name => "SomeWorker")
|
|
53
53
|
}
|
|
54
54
|
|
|
55
55
|
before do
|
data/spec/qe/worker_spec.rb
CHANGED
|
@@ -8,11 +8,18 @@ describe Qe::Worker do
|
|
|
8
8
|
|
|
9
9
|
it "returns options" do
|
|
10
10
|
hello = HelloWorker.new(:a => 1)
|
|
11
|
-
expect(hello.options).to
|
|
11
|
+
expect(hello.options).to include(:a => 1)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
it "returns options as HashWithIndifferentAccess" do
|
|
15
|
+
hello = HelloWorker.new("a" => 1)
|
|
16
|
+
|
|
17
|
+
expect(hello.options[:a]).to eql(1)
|
|
18
|
+
expect(hello.options["a"]).to eql(1)
|
|
12
19
|
end
|
|
13
20
|
|
|
14
21
|
it "delegates #enqueue to adapter" do
|
|
15
|
-
adapter =
|
|
22
|
+
adapter = double("adapter")
|
|
16
23
|
adapter
|
|
17
24
|
.should_receive(:enqueue)
|
|
18
25
|
.with(HelloWorker, :a => 1)
|
|
@@ -23,7 +30,7 @@ describe Qe::Worker do
|
|
|
23
30
|
end
|
|
24
31
|
|
|
25
32
|
it "delegates scheduling to adapter" do
|
|
26
|
-
adapter =
|
|
33
|
+
adapter = double("adapter")
|
|
27
34
|
date = Time.now
|
|
28
35
|
adapter
|
|
29
36
|
.should_receive(:schedule)
|
|
@@ -35,7 +42,7 @@ describe Qe::Worker do
|
|
|
35
42
|
end
|
|
36
43
|
|
|
37
44
|
it "finds worker by its name" do
|
|
38
|
-
worker =
|
|
45
|
+
worker = double("worker")
|
|
39
46
|
stub_const "Some::Weird::Worker", worker
|
|
40
47
|
|
|
41
48
|
expect(Qe::Worker.find("Some::Weird::Worker")).to eql(worker)
|
|
@@ -55,7 +62,7 @@ describe Qe::Worker do
|
|
|
55
62
|
HelloWorker
|
|
56
63
|
.should_receive(:new)
|
|
57
64
|
.with(:a => 1)
|
|
58
|
-
.and_return(
|
|
65
|
+
.and_return(double.as_null_object)
|
|
59
66
|
|
|
60
67
|
Qe::Worker.perform("HelloWorker", :a => 1)
|
|
61
68
|
end
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
|
@@ -1,190 +1,181 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: qe
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
5
|
-
prerelease:
|
|
4
|
+
version: 0.3.0
|
|
6
5
|
platform: ruby
|
|
7
6
|
authors:
|
|
8
7
|
- Nando Vieira
|
|
9
8
|
autorequire:
|
|
10
9
|
bindir: bin
|
|
11
10
|
cert_chain: []
|
|
12
|
-
date: 2013-
|
|
11
|
+
date: 2013-06-07 00:00:00.000000000 Z
|
|
13
12
|
dependencies:
|
|
13
|
+
- !ruby/object:Gem::Dependency
|
|
14
|
+
name: activesupport
|
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
|
16
|
+
requirements:
|
|
17
|
+
- - '>='
|
|
18
|
+
- !ruby/object:Gem::Version
|
|
19
|
+
version: '0'
|
|
20
|
+
type: :runtime
|
|
21
|
+
prerelease: false
|
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
+
requirements:
|
|
24
|
+
- - '>='
|
|
25
|
+
- !ruby/object:Gem::Version
|
|
26
|
+
version: '0'
|
|
14
27
|
- !ruby/object:Gem::Dependency
|
|
15
28
|
name: sidekiq
|
|
16
29
|
requirement: !ruby/object:Gem::Requirement
|
|
17
|
-
none: false
|
|
18
30
|
requirements:
|
|
19
|
-
- -
|
|
31
|
+
- - '>='
|
|
20
32
|
- !ruby/object:Gem::Version
|
|
21
33
|
version: '0'
|
|
22
34
|
type: :development
|
|
23
35
|
prerelease: false
|
|
24
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
25
|
-
none: false
|
|
26
37
|
requirements:
|
|
27
|
-
- -
|
|
38
|
+
- - '>='
|
|
28
39
|
- !ruby/object:Gem::Version
|
|
29
40
|
version: '0'
|
|
30
41
|
- !ruby/object:Gem::Dependency
|
|
31
42
|
name: qu
|
|
32
43
|
requirement: !ruby/object:Gem::Requirement
|
|
33
|
-
none: false
|
|
34
44
|
requirements:
|
|
35
|
-
- -
|
|
45
|
+
- - '>='
|
|
36
46
|
- !ruby/object:Gem::Version
|
|
37
47
|
version: '0'
|
|
38
48
|
type: :development
|
|
39
49
|
prerelease: false
|
|
40
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
41
|
-
none: false
|
|
42
51
|
requirements:
|
|
43
|
-
- -
|
|
52
|
+
- - '>='
|
|
44
53
|
- !ruby/object:Gem::Version
|
|
45
54
|
version: '0'
|
|
46
55
|
- !ruby/object:Gem::Dependency
|
|
47
56
|
name: delayed_job_active_record
|
|
48
57
|
requirement: !ruby/object:Gem::Requirement
|
|
49
|
-
none: false
|
|
50
58
|
requirements:
|
|
51
|
-
- -
|
|
59
|
+
- - '>='
|
|
52
60
|
- !ruby/object:Gem::Version
|
|
53
61
|
version: '0'
|
|
54
62
|
type: :development
|
|
55
63
|
prerelease: false
|
|
56
64
|
version_requirements: !ruby/object:Gem::Requirement
|
|
57
|
-
none: false
|
|
58
65
|
requirements:
|
|
59
|
-
- -
|
|
66
|
+
- - '>='
|
|
60
67
|
- !ruby/object:Gem::Version
|
|
61
68
|
version: '0'
|
|
62
69
|
- !ruby/object:Gem::Dependency
|
|
63
70
|
name: backburner
|
|
64
71
|
requirement: !ruby/object:Gem::Requirement
|
|
65
|
-
none: false
|
|
66
72
|
requirements:
|
|
67
|
-
- -
|
|
73
|
+
- - '>='
|
|
68
74
|
- !ruby/object:Gem::Version
|
|
69
75
|
version: '0'
|
|
70
76
|
type: :development
|
|
71
77
|
prerelease: false
|
|
72
78
|
version_requirements: !ruby/object:Gem::Requirement
|
|
73
|
-
none: false
|
|
74
79
|
requirements:
|
|
75
|
-
- -
|
|
80
|
+
- - '>='
|
|
76
81
|
- !ruby/object:Gem::Version
|
|
77
82
|
version: '0'
|
|
78
83
|
- !ruby/object:Gem::Dependency
|
|
79
84
|
name: resque
|
|
80
85
|
requirement: !ruby/object:Gem::Requirement
|
|
81
|
-
none: false
|
|
82
86
|
requirements:
|
|
83
|
-
- -
|
|
87
|
+
- - '>='
|
|
84
88
|
- !ruby/object:Gem::Version
|
|
85
89
|
version: '0'
|
|
86
90
|
type: :development
|
|
87
91
|
prerelease: false
|
|
88
92
|
version_requirements: !ruby/object:Gem::Requirement
|
|
89
|
-
none: false
|
|
90
93
|
requirements:
|
|
91
|
-
- -
|
|
94
|
+
- - '>='
|
|
92
95
|
- !ruby/object:Gem::Version
|
|
93
96
|
version: '0'
|
|
94
97
|
- !ruby/object:Gem::Dependency
|
|
95
98
|
name: resque-scheduler
|
|
96
99
|
requirement: !ruby/object:Gem::Requirement
|
|
97
|
-
none: false
|
|
98
100
|
requirements:
|
|
99
|
-
- -
|
|
101
|
+
- - '>='
|
|
100
102
|
- !ruby/object:Gem::Version
|
|
101
103
|
version: '0'
|
|
102
104
|
type: :development
|
|
103
105
|
prerelease: false
|
|
104
106
|
version_requirements: !ruby/object:Gem::Requirement
|
|
105
|
-
none: false
|
|
106
107
|
requirements:
|
|
107
|
-
- -
|
|
108
|
+
- - '>='
|
|
108
109
|
- !ruby/object:Gem::Version
|
|
109
110
|
version: '0'
|
|
110
111
|
- !ruby/object:Gem::Dependency
|
|
111
112
|
name: activerecord
|
|
112
113
|
requirement: !ruby/object:Gem::Requirement
|
|
113
|
-
none: false
|
|
114
114
|
requirements:
|
|
115
|
-
- -
|
|
115
|
+
- - '>='
|
|
116
116
|
- !ruby/object:Gem::Version
|
|
117
117
|
version: '0'
|
|
118
118
|
type: :development
|
|
119
119
|
prerelease: false
|
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
|
121
|
-
none: false
|
|
122
121
|
requirements:
|
|
123
|
-
- -
|
|
122
|
+
- - '>='
|
|
124
123
|
- !ruby/object:Gem::Version
|
|
125
124
|
version: '0'
|
|
126
125
|
- !ruby/object:Gem::Dependency
|
|
127
126
|
name: awesome_print
|
|
128
127
|
requirement: !ruby/object:Gem::Requirement
|
|
129
|
-
none: false
|
|
130
128
|
requirements:
|
|
131
|
-
- -
|
|
129
|
+
- - '>='
|
|
132
130
|
- !ruby/object:Gem::Version
|
|
133
131
|
version: '0'
|
|
134
132
|
type: :development
|
|
135
133
|
prerelease: false
|
|
136
134
|
version_requirements: !ruby/object:Gem::Requirement
|
|
137
|
-
none: false
|
|
138
135
|
requirements:
|
|
139
|
-
- -
|
|
136
|
+
- - '>='
|
|
140
137
|
- !ruby/object:Gem::Version
|
|
141
138
|
version: '0'
|
|
142
139
|
- !ruby/object:Gem::Dependency
|
|
143
140
|
name: pry
|
|
144
141
|
requirement: !ruby/object:Gem::Requirement
|
|
145
|
-
none: false
|
|
146
142
|
requirements:
|
|
147
|
-
- -
|
|
143
|
+
- - '>='
|
|
148
144
|
- !ruby/object:Gem::Version
|
|
149
145
|
version: '0'
|
|
150
146
|
type: :development
|
|
151
147
|
prerelease: false
|
|
152
148
|
version_requirements: !ruby/object:Gem::Requirement
|
|
153
|
-
none: false
|
|
154
149
|
requirements:
|
|
155
|
-
- -
|
|
150
|
+
- - '>='
|
|
156
151
|
- !ruby/object:Gem::Version
|
|
157
152
|
version: '0'
|
|
158
153
|
- !ruby/object:Gem::Dependency
|
|
159
154
|
name: rspec
|
|
160
155
|
requirement: !ruby/object:Gem::Requirement
|
|
161
|
-
none: false
|
|
162
156
|
requirements:
|
|
163
|
-
- -
|
|
157
|
+
- - '>='
|
|
164
158
|
- !ruby/object:Gem::Version
|
|
165
159
|
version: '0'
|
|
166
160
|
type: :development
|
|
167
161
|
prerelease: false
|
|
168
162
|
version_requirements: !ruby/object:Gem::Requirement
|
|
169
|
-
none: false
|
|
170
163
|
requirements:
|
|
171
|
-
- -
|
|
164
|
+
- - '>='
|
|
172
165
|
- !ruby/object:Gem::Version
|
|
173
166
|
version: '0'
|
|
174
167
|
- !ruby/object:Gem::Dependency
|
|
175
168
|
name: sqlite3
|
|
176
169
|
requirement: !ruby/object:Gem::Requirement
|
|
177
|
-
none: false
|
|
178
170
|
requirements:
|
|
179
|
-
- -
|
|
171
|
+
- - '>='
|
|
180
172
|
- !ruby/object:Gem::Version
|
|
181
173
|
version: '0'
|
|
182
174
|
type: :development
|
|
183
175
|
prerelease: false
|
|
184
176
|
version_requirements: !ruby/object:Gem::Requirement
|
|
185
|
-
none: false
|
|
186
177
|
requirements:
|
|
187
|
-
- -
|
|
178
|
+
- - '>='
|
|
188
179
|
- !ruby/object:Gem::Version
|
|
189
180
|
version: '0'
|
|
190
181
|
description: A simple interface over several background job libraries like Resque,
|
|
@@ -217,6 +208,7 @@ files:
|
|
|
217
208
|
- examples/workers.rb
|
|
218
209
|
- lib/qe.rb
|
|
219
210
|
- lib/qe/action.rb
|
|
211
|
+
- lib/qe/action_mailer.rb
|
|
220
212
|
- lib/qe/beanstalk.rb
|
|
221
213
|
- lib/qe/delayed_job.rb
|
|
222
214
|
- lib/qe/immediate.rb
|
|
@@ -231,6 +223,7 @@ files:
|
|
|
231
223
|
- lib/qe/worker/class_methods.rb
|
|
232
224
|
- lib/qe/worker/instance_methods.rb
|
|
233
225
|
- qe.gemspec
|
|
226
|
+
- spec/qe/action_mailer_spec.rb
|
|
234
227
|
- spec/qe/action_spec.rb
|
|
235
228
|
- spec/qe/beanstalk_spec.rb
|
|
236
229
|
- spec/qe/delayed_job_spec.rb
|
|
@@ -246,27 +239,26 @@ files:
|
|
|
246
239
|
- spec/support/localized_worker.rb
|
|
247
240
|
homepage: http://rubygems.org/gems/qe
|
|
248
241
|
licenses: []
|
|
242
|
+
metadata: {}
|
|
249
243
|
post_install_message:
|
|
250
244
|
rdoc_options: []
|
|
251
245
|
require_paths:
|
|
252
246
|
- lib
|
|
253
247
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
254
|
-
none: false
|
|
255
248
|
requirements:
|
|
256
|
-
- -
|
|
249
|
+
- - '>='
|
|
257
250
|
- !ruby/object:Gem::Version
|
|
258
251
|
version: '0'
|
|
259
252
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
260
|
-
none: false
|
|
261
253
|
requirements:
|
|
262
|
-
- -
|
|
254
|
+
- - '>='
|
|
263
255
|
- !ruby/object:Gem::Version
|
|
264
256
|
version: '0'
|
|
265
257
|
requirements: []
|
|
266
258
|
rubyforge_project:
|
|
267
|
-
rubygems_version:
|
|
259
|
+
rubygems_version: 2.0.3
|
|
268
260
|
signing_key:
|
|
269
|
-
specification_version:
|
|
261
|
+
specification_version: 4
|
|
270
262
|
summary: A simple interface over several background job libraries like Resque, Sidekiq
|
|
271
263
|
and DelayedJob.
|
|
272
264
|
test_files: []
|