backburner_mailer 0.0.1 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4f3d25f31dcf7eced42eebafe8bcabf23e236e3e
4
- data.tar.gz: 95c6e125cd82317ebffcf47514a04c2b23bb3de1
3
+ metadata.gz: b6ace74cc55ea8d6145df99777a14e97ba0ab23f
4
+ data.tar.gz: d5acc500943c36b0db1f517fa42ac7a4790cd133
5
5
  SHA512:
6
- metadata.gz: 46de06c89f64c4b1cb6c56a71724b97c6e30460e22c377e030942cfcd184aa37196518095472873be8d433a11cc8336aee50d59302407915e266757577c6c5f6
7
- data.tar.gz: ffe70fd203ca8fc943d326cf9206ef7cab3f97fef25d5163784a4fdbd90cf251ca7ac43154002916e56714367ea3ef7f950e91a1fccab764b3d96a0fc2d63c0f
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
 
@@ -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, *@args)
123
+ backburner.enqueue(@mailer_class, [@method_name].concat(@args), opts)
123
124
  rescue Errno::ECONNREFUSED
124
125
  deliver!
125
126
  end
@@ -1,3 +1,3 @@
1
1
  module BackburnerMailer
2
- VERSION = "0.0.1"
2
+ VERSION = "0.1.0"
3
3
  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) { mock(:message) }
116
- let(:mailer) { mock(:mailer, :message => message) }
117
- let(:logger) { mock(:logger, :error => nil) }
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.1
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-04-19 00:00:00.000000000 Z
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.2
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.