resque_mailer 2.2.0 → 2.2.1
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.md +5 -0
- data/README.md +9 -0
- data/lib/resque_mailer.rb +18 -8
- data/lib/resque_mailer/version.rb +1 -1
- metadata +4 -4
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
### 2.2.1 / 2012-12-09
|
2
|
+
* Added optional support for synchronous fallback (Lee Edwards and
|
3
|
+
Peter Jaros)
|
4
|
+
* Added optional custom error_handler lambda support (Adam Bird)
|
5
|
+
|
1
6
|
### 2.2.0 / 2012-12-01
|
2
7
|
* Added logging for failed deliveries (Mike Swieton)
|
3
8
|
* Fixed / preserved exceptions for template renders (Sidharth Shanker)
|
data/README.md
CHANGED
@@ -45,6 +45,15 @@ name when starting your workers.
|
|
45
45
|
|
46
46
|
QUEUE=application_specific_mailer rake environment resque:work
|
47
47
|
|
48
|
+
Custom handling of errors that arise when sending a message is possible by
|
49
|
+
assigning a lambda to the `error_hander` attribute.
|
50
|
+
|
51
|
+
```ruby
|
52
|
+
Resque::Mailer.error_handler = lambda { |mailer, message, error|
|
53
|
+
# some custom error handling code here in which you optionally re-raise the error
|
54
|
+
}
|
55
|
+
```
|
56
|
+
|
48
57
|
### Using with Resque Scheduler
|
49
58
|
|
50
59
|
If [resque-scheduler](https://github.com/bvandenbos/resque-scheduler) is
|
data/lib/resque_mailer.rb
CHANGED
@@ -3,7 +3,7 @@ require 'resque_mailer/version'
|
|
3
3
|
module Resque
|
4
4
|
module Mailer
|
5
5
|
class << self
|
6
|
-
attr_accessor :default_queue_name, :default_queue_target, :current_env, :logger
|
6
|
+
attr_accessor :default_queue_name, :default_queue_target, :current_env, :logger, :fallback_to_synchronous, :error_handler
|
7
7
|
attr_reader :excluded_environments
|
8
8
|
|
9
9
|
def excluded_environments=(envs)
|
@@ -21,6 +21,7 @@ module Resque
|
|
21
21
|
self.excluded_environments = [:test]
|
22
22
|
|
23
23
|
module ClassMethods
|
24
|
+
|
24
25
|
def current_env
|
25
26
|
if defined?(Rails)
|
26
27
|
::Resque::Mailer.current_env || ::Rails.env
|
@@ -39,14 +40,19 @@ module Resque
|
|
39
40
|
|
40
41
|
def perform(action, *args)
|
41
42
|
begin
|
42
|
-
self.send(:new, action, *args).message
|
43
|
+
message = self.send(:new, action, *args).message
|
44
|
+
message.deliver
|
43
45
|
rescue Exception => ex
|
44
|
-
if
|
45
|
-
|
46
|
-
|
46
|
+
if Mailer.error_handler
|
47
|
+
Mailer.error_handler.call(self, message, ex)
|
48
|
+
else
|
49
|
+
if logger
|
50
|
+
logger.error "Unable to deliver email [#{action}]: #{ex}"
|
51
|
+
logger.error ex.backtrace.join("\n\t")
|
52
|
+
end
|
53
|
+
|
54
|
+
raise ex
|
47
55
|
end
|
48
|
-
|
49
|
-
raise ex
|
50
56
|
end
|
51
57
|
end
|
52
58
|
|
@@ -104,7 +110,11 @@ module Resque
|
|
104
110
|
return deliver! if environment_excluded?
|
105
111
|
|
106
112
|
if @mailer_class.deliver?
|
107
|
-
|
113
|
+
begin
|
114
|
+
resque.enqueue(@mailer_class, @method_name, *@args)
|
115
|
+
rescue Errno::ECONNREFUSED
|
116
|
+
deliver!
|
117
|
+
end
|
108
118
|
end
|
109
119
|
end
|
110
120
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: resque_mailer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.2.
|
4
|
+
version: 2.2.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-12-
|
12
|
+
date: 2012-12-09 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: actionmailer
|
@@ -88,7 +88,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
88
88
|
version: '0'
|
89
89
|
segments:
|
90
90
|
- 0
|
91
|
-
hash:
|
91
|
+
hash: 1530888517799059977
|
92
92
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
93
93
|
none: false
|
94
94
|
requirements:
|
@@ -97,7 +97,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
97
97
|
version: '0'
|
98
98
|
segments:
|
99
99
|
- 0
|
100
|
-
hash:
|
100
|
+
hash: 1530888517799059977
|
101
101
|
requirements: []
|
102
102
|
rubyforge_project:
|
103
103
|
rubygems_version: 1.8.24
|