sidekiq_mailer 0.0.6 → 0.0.8
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/.travis.yml +8 -0
- data/Gemfile +13 -0
- data/lib/sidekiq_mailer.rb +3 -1
- data/lib/sidekiq_mailer/proxy.rb +2 -2
- data/lib/sidekiq_mailer/version.rb +1 -1
- data/sidekiq_mailer.gemspec +3 -1
- data/test/sidekiq_mailer_test.rb +31 -11
- metadata +25 -6
data/.travis.yml
ADDED
data/Gemfile
CHANGED
@@ -2,3 +2,16 @@ source 'https://rubygems.org'
|
|
2
2
|
|
3
3
|
# Specify your gem's dependencies in sidekiq_mailer.gemspec
|
4
4
|
gemspec
|
5
|
+
|
6
|
+
rails_version = ENV["RAILS_VERSION"] || "default"
|
7
|
+
|
8
|
+
rails = case rails_version
|
9
|
+
when "master"
|
10
|
+
{github: "rails/rails"}
|
11
|
+
when "default"
|
12
|
+
"~> 3.2.0"
|
13
|
+
else
|
14
|
+
"~> #{rails_version}"
|
15
|
+
end
|
16
|
+
|
17
|
+
gem 'actionmailer', rails
|
data/lib/sidekiq_mailer.rb
CHANGED
@@ -4,12 +4,14 @@ require 'sidekiq_mailer/proxy'
|
|
4
4
|
|
5
5
|
module Sidekiq
|
6
6
|
module Mailer
|
7
|
+
@@excluded_environments = nil
|
8
|
+
|
7
9
|
def self.excluded_environments=(envs)
|
8
10
|
@@excluded_environments = [*envs].map { |e| e && e.to_sym }
|
9
11
|
end
|
10
12
|
|
11
13
|
def self.excluded_environments
|
12
|
-
@@excluded_environments
|
14
|
+
@@excluded_environments ||= []
|
13
15
|
end
|
14
16
|
|
15
17
|
def self.current_env
|
data/lib/sidekiq_mailer/proxy.rb
CHANGED
@@ -21,7 +21,7 @@ class Sidekiq::Mailer::Proxy
|
|
21
21
|
end
|
22
22
|
|
23
23
|
def deliver!
|
24
|
-
actual_message.deliver
|
24
|
+
actual_message.deliver
|
25
25
|
end
|
26
26
|
|
27
27
|
def method_missing(method_name, *args)
|
@@ -35,4 +35,4 @@ class Sidekiq::Mailer::Proxy
|
|
35
35
|
}
|
36
36
|
params.merge(@mailer_class.get_sidekiq_options)
|
37
37
|
end
|
38
|
-
end
|
38
|
+
end
|
data/sidekiq_mailer.gemspec
CHANGED
@@ -7,6 +7,7 @@ Gem::Specification.new do |gem|
|
|
7
7
|
gem.description = %q{Asynchronous mail delivery using sidekiq}
|
8
8
|
gem.summary = %q{Turning ActiveMailer deliveries asynchronous using the power of sidekiq}
|
9
9
|
gem.homepage = "http://github.com/andersondias/sidekiq_mailer"
|
10
|
+
gem.license = "MIT"
|
10
11
|
|
11
12
|
gem.files = `git ls-files`.split($\)
|
12
13
|
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
@@ -17,5 +18,6 @@ Gem::Specification.new do |gem|
|
|
17
18
|
|
18
19
|
gem.add_dependency("activesupport", ">= 3.0")
|
19
20
|
gem.add_dependency("actionmailer", ">= 3.0")
|
20
|
-
gem.add_dependency("sidekiq", "
|
21
|
+
gem.add_dependency("sidekiq", ">= 2.3")
|
22
|
+
gem.add_development_dependency('rake')
|
21
23
|
end
|
data/test/sidekiq_mailer_test.rb
CHANGED
@@ -31,6 +31,16 @@ class MailerInAnotherQueue < ActionMailer::Base
|
|
31
31
|
end
|
32
32
|
end
|
33
33
|
|
34
|
+
class PreventSomeEmails
|
35
|
+
def self.delivering_email(message)
|
36
|
+
if message.to.include?("foo@example.com")
|
37
|
+
message.perform_deliveries = false
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
ActionMailer::Base.register_interceptor(PreventSomeEmails)
|
43
|
+
|
34
44
|
class SidekiqMailerTest < Test::Unit::TestCase
|
35
45
|
def setup
|
36
46
|
Sidekiq::Mailer.excluded_environments = []
|
@@ -39,50 +49,60 @@ class SidekiqMailerTest < Test::Unit::TestCase
|
|
39
49
|
end
|
40
50
|
|
41
51
|
def test_queue_a_new_job
|
42
|
-
BasicMailer.hi('test@
|
52
|
+
BasicMailer.hi('test@example.com', 'Tester').deliver
|
43
53
|
|
44
54
|
job_args = Sidekiq::Mailer::Worker.jobs.first['args']
|
45
|
-
expected_args = ['BasicMailer', 'hi', ['test@
|
55
|
+
expected_args = ['BasicMailer', 'hi', ['test@example.com', 'Tester']]
|
46
56
|
assert_equal expected_args, job_args
|
47
57
|
end
|
48
58
|
|
49
59
|
def test_queues_at_mailer_queue_by_default
|
50
|
-
BasicMailer.welcome('test@
|
60
|
+
BasicMailer.welcome('test@example.com').deliver
|
51
61
|
assert_equal 'mailer', Sidekiq::Mailer::Worker.jobs.first['queue']
|
52
62
|
end
|
53
63
|
|
54
64
|
def test_default_sidekiq_options
|
55
|
-
BasicMailer.welcome('test@
|
65
|
+
BasicMailer.welcome('test@example.com').deliver
|
56
66
|
assert_equal 'mailer', Sidekiq::Mailer::Worker.jobs.first['queue']
|
57
67
|
assert_equal true, Sidekiq::Mailer::Worker.jobs.first['retry']
|
58
68
|
end
|
59
69
|
|
60
70
|
def test_enables_sidekiq_options_overriding
|
61
|
-
MailerInAnotherQueue.bye('test@
|
71
|
+
MailerInAnotherQueue.bye('test@example.com').deliver
|
62
72
|
assert_equal 'priority', Sidekiq::Mailer::Worker.jobs.first['queue']
|
63
73
|
assert_equal 'false', Sidekiq::Mailer::Worker.jobs.first['retry']
|
64
74
|
end
|
65
75
|
|
66
76
|
def test_delivers_asynchronously
|
67
|
-
BasicMailer.welcome('test@
|
77
|
+
BasicMailer.welcome('test@example.com').deliver
|
68
78
|
assert_equal 1, Sidekiq::Mailer::Worker.jobs.size
|
69
79
|
assert_equal 0, ActionMailer::Base.deliveries.size
|
70
80
|
end
|
71
81
|
|
72
82
|
def test_can_deliver_now
|
73
|
-
BasicMailer.welcome('test@
|
83
|
+
BasicMailer.welcome('test@example.com').deliver!
|
74
84
|
assert_equal 1, ActionMailer::Base.deliveries.size
|
75
85
|
end
|
76
86
|
|
77
|
-
def
|
78
|
-
Sidekiq::Mailer::Worker.new.perform('BasicMailer', 'welcome', 'test@
|
87
|
+
def test_really_delivers_email_when_performing_worker_job
|
88
|
+
Sidekiq::Mailer::Worker.new.perform('BasicMailer', 'welcome', 'test@example.com')
|
79
89
|
assert_equal 1, ActionMailer::Base.deliveries.size
|
80
90
|
end
|
81
91
|
|
82
92
|
def test_delivers_synchronously_if_running_in_a_excluded_environment
|
83
93
|
Sidekiq::Mailer.excluded_environments = [:test]
|
84
|
-
BasicMailer.welcome('test@
|
94
|
+
BasicMailer.welcome('test@example.com').deliver
|
85
95
|
assert_equal 0, Sidekiq::Mailer::Worker.jobs.size
|
86
96
|
assert_equal 1, ActionMailer::Base.deliveries.size
|
87
97
|
end
|
88
|
-
|
98
|
+
|
99
|
+
def test_does_not_ignore_interceptors_when_delivering_synchronously
|
100
|
+
BasicMailer.welcome('foo@example.com').deliver!
|
101
|
+
assert_equal 0, ActionMailer::Base.deliveries.size
|
102
|
+
end
|
103
|
+
|
104
|
+
def test_does_not_ignore_interceptors_when_delivering_asynchronously
|
105
|
+
Sidekiq::Mailer::Worker.new.perform('BasicMailer', 'welcome', 'foo@example.com')
|
106
|
+
assert_equal 0, ActionMailer::Base.deliveries.size
|
107
|
+
end
|
108
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sidekiq_mailer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.8
|
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:
|
12
|
+
date: 2014-06-06 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
@@ -48,7 +48,7 @@ dependencies:
|
|
48
48
|
requirement: !ruby/object:Gem::Requirement
|
49
49
|
none: false
|
50
50
|
requirements:
|
51
|
-
- -
|
51
|
+
- - ! '>='
|
52
52
|
- !ruby/object:Gem::Version
|
53
53
|
version: '2.3'
|
54
54
|
type: :runtime
|
@@ -56,9 +56,25 @@ dependencies:
|
|
56
56
|
version_requirements: !ruby/object:Gem::Requirement
|
57
57
|
none: false
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ! '>='
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '2.3'
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: rake
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
66
|
+
requirements:
|
67
|
+
- - ! '>='
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0'
|
70
|
+
type: :development
|
71
|
+
prerelease: false
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
62
78
|
description: Asynchronous mail delivery using sidekiq
|
63
79
|
email:
|
64
80
|
- andersondaraujo@gmail.com
|
@@ -67,6 +83,7 @@ extensions: []
|
|
67
83
|
extra_rdoc_files: []
|
68
84
|
files:
|
69
85
|
- .gitignore
|
86
|
+
- .travis.yml
|
70
87
|
- Gemfile
|
71
88
|
- LICENSE
|
72
89
|
- README.md
|
@@ -79,7 +96,8 @@ files:
|
|
79
96
|
- test/sidekiq_mailer_test.rb
|
80
97
|
- test/test_helper.rb
|
81
98
|
homepage: http://github.com/andersondias/sidekiq_mailer
|
82
|
-
licenses:
|
99
|
+
licenses:
|
100
|
+
- MIT
|
83
101
|
post_install_message:
|
84
102
|
rdoc_options: []
|
85
103
|
require_paths:
|
@@ -98,10 +116,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
98
116
|
version: '0'
|
99
117
|
requirements: []
|
100
118
|
rubyforge_project:
|
101
|
-
rubygems_version: 1.8.
|
119
|
+
rubygems_version: 1.8.23
|
102
120
|
signing_key:
|
103
121
|
specification_version: 3
|
104
122
|
summary: Turning ActiveMailer deliveries asynchronous using the power of sidekiq
|
105
123
|
test_files:
|
106
124
|
- test/sidekiq_mailer_test.rb
|
107
125
|
- test/test_helper.rb
|
126
|
+
has_rdoc:
|