backburner_mailer 0.0.1 → 0.1.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 +4 -4
- data/README.md +6 -0
- data/lib/backburner_mailer.rb +4 -3
- data/lib/backburner_mailer/version.rb +1 -1
- data/spec/backburner_mailer_spec.rb +10 -5
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b6ace74cc55ea8d6145df99777a14e97ba0ab23f
|
4
|
+
data.tar.gz: d5acc500943c36b0db1f517fa42ac7a4790cd133
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 09377489e757bfedb263cf93e1cd30c683f922a5f51977e2b1b3cd07c37b0b565fd92d9b79a88aec815a563cb07e13e42780f12c25c02c28ebdf293e86e2c0cf
|
7
|
+
data.tar.gz: d5fa7001f5c8a43aa415ec39e166be6430bc904e8bd3e5a2a85d638290f5ae634ac07ffbb84eda92aaea41105185adcea1175e360f3c698db74e4e911ceca07c
|
data/README.md
CHANGED
@@ -41,6 +41,12 @@ database-backed objects as parameters in your mailer and instead pass record
|
|
41
41
|
identifiers. Then, in your delivery method, you can look up the record from
|
42
42
|
the id and use it as needed.
|
43
43
|
|
44
|
+
If you want to pass options to backburner, you can specify them as arguments to deliver:
|
45
|
+
|
46
|
+
```ruby
|
47
|
+
MyMailer.subject_email(params).deliver(:delay => 60, :ttr => 120)
|
48
|
+
```
|
49
|
+
|
44
50
|
If you want to set a different default queue name for your mailer, you can
|
45
51
|
change the `default_queue_name` property like so:
|
46
52
|
|
data/lib/backburner_mailer.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require "backburner_mailer/version"
|
2
|
+
require "backburner"
|
2
3
|
|
3
4
|
module Backburner
|
4
5
|
module Mailer
|
@@ -17,7 +18,7 @@ module Backburner
|
|
17
18
|
end
|
18
19
|
|
19
20
|
self.logger = nil
|
20
|
-
self.default_queue_target = ::Backburner
|
21
|
+
self.default_queue_target = ::Backburner::Worker
|
21
22
|
self.default_queue_name = "mailer"
|
22
23
|
self.excluded_environments = []
|
23
24
|
|
@@ -114,12 +115,12 @@ module Backburner
|
|
114
115
|
@actual_message ||= @mailer_class.send(:new, @method_name, *@args).message
|
115
116
|
end
|
116
117
|
|
117
|
-
def deliver
|
118
|
+
def deliver(opts = {})
|
118
119
|
return deliver! if environment_excluded?
|
119
120
|
|
120
121
|
if @mailer_class.deliver?
|
121
122
|
begin
|
122
|
-
backburner.enqueue(@mailer_class, @method_name,
|
123
|
+
backburner.enqueue(@mailer_class, [@method_name].concat(@args), opts)
|
123
124
|
rescue Errno::ECONNREFUSED
|
124
125
|
deliver!
|
125
126
|
end
|
@@ -6,7 +6,7 @@ end
|
|
6
6
|
|
7
7
|
class Rails3Mailer < ActionMailer::Base
|
8
8
|
include Backburner::Mailer
|
9
|
-
default :from => "from@example.org", :subject => "Subject"
|
9
|
+
default :from => "from@example.org", :subject => "Subject", :body => "Body"
|
10
10
|
MAIL_PARAMS = { :to => "crafty@example.org" }
|
11
11
|
|
12
12
|
def test_mail(*params)
|
@@ -63,9 +63,14 @@ describe Backburner::Mailer do
|
|
63
63
|
end
|
64
64
|
|
65
65
|
it 'should place the deliver action on the Backburner "mailer" queue' do
|
66
|
-
backburner.should_receive(:enqueue).with(Rails3Mailer, :test_mail, Rails3Mailer::MAIL_PARAMS)
|
66
|
+
backburner.should_receive(:enqueue).with(Rails3Mailer, [:test_mail, Rails3Mailer::MAIL_PARAMS], {})
|
67
67
|
@delivery.call
|
68
68
|
end
|
69
|
+
|
70
|
+
it 'should send email with after 60 seconds delay using backburner options' do
|
71
|
+
backburner.should_receive(:enqueue).with(Rails3Mailer, [:test_mail, Rails3Mailer::MAIL_PARAMS], { :delay => 60 })
|
72
|
+
Rails3Mailer.test_mail(Rails3Mailer::MAIL_PARAMS).deliver(:delay => 60)
|
73
|
+
end
|
69
74
|
|
70
75
|
context "when current env is excluded" do
|
71
76
|
it 'should not deliver through Backburner for excluded environments' do
|
@@ -112,9 +117,9 @@ describe Backburner::Mailer do
|
|
112
117
|
end
|
113
118
|
|
114
119
|
context "when job fails" do
|
115
|
-
let(:message) {
|
116
|
-
let(:mailer) {
|
117
|
-
let(:logger) {
|
120
|
+
let(:message) { double(:message) }
|
121
|
+
let(:mailer) { double(:mailer, :message => message) }
|
122
|
+
let(:logger) { double(:logger, :error => nil) }
|
118
123
|
let(:exception) { Exception.new("An error") }
|
119
124
|
|
120
125
|
before(:each) do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: backburner_mailer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nathan Esquenazi
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-12-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: backburner
|
@@ -132,7 +132,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
132
132
|
version: '0'
|
133
133
|
requirements: []
|
134
134
|
rubyforge_project:
|
135
|
-
rubygems_version: 2.0.
|
135
|
+
rubygems_version: 2.0.6
|
136
136
|
signing_key:
|
137
137
|
specification_version: 4
|
138
138
|
summary: Plugin for sending asynchronous email with Backburner.
|