sidekiq_send_mail 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 +7 -0
- data/Gemfile +3 -0
- data/Rakefile +10 -0
- data/app/workers/sidekiq_send_mail.rb +17 -0
- data/bin/sk_send_mail +5 -0
- data/config/application.rb +20 -0
- data/config/boot.rb +2 -0
- data/config/environment.rb +3 -0
- data/lib/mail_interceptor.rb +16 -0
- data/lib/sidekiq_send_mail.rb +5 -0
- data/sidekiq_send_mail.gemspec +25 -0
- metadata +137 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: b5d107eefbbf2a9cacf18e13cb81d8e36b20c62d
|
4
|
+
data.tar.gz: 3d4ec0176deac87fd515c1b59a5018e02f622d10
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 7b417ccc96eb4b0df985141db7d85b388e24ed96afa5542d0390eda5a981b85494327cb81cab646e9b00cc08002b0ce8c50bbbacf7250037d9a82b67bef1f72f
|
7
|
+
data.tar.gz: 86c5224ebb3c1aca94d99c4b7cc320896a1ae292a9b26c10677da4bb6960a4db8346cf88b6ad075e9cf3262c639adbc18a977056bf8e96b28602a63e5d1fd522
|
data/Gemfile
ADDED
data/Rakefile
ADDED
@@ -0,0 +1,10 @@
|
|
1
|
+
require 'rspec/core/rake_task'
|
2
|
+
require 'bundler/gem_tasks'
|
3
|
+
|
4
|
+
# Default directory to look in is `/specs`
|
5
|
+
# Run with `rake spec`
|
6
|
+
RSpec::Core::RakeTask.new(:spec) do |task|
|
7
|
+
task.rspec_opts = ['--color', '--format', 'nested']
|
8
|
+
end
|
9
|
+
|
10
|
+
task :default => :spec
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module SidekiqSendMail
|
2
|
+
class Worker
|
3
|
+
include Sidekiq::Worker
|
4
|
+
sidekiq_options queue: :emails, retry: 0, backtrace: true
|
5
|
+
|
6
|
+
sidekiq_retry_in do |count|
|
7
|
+
60 * 1440 * 30 # 30 days
|
8
|
+
end
|
9
|
+
|
10
|
+
def perform(mail_yaml)
|
11
|
+
m = ::Mail::Message.from_yaml mail_yaml
|
12
|
+
m.deliver
|
13
|
+
# TODO check m.retryable?, set retry appropriately
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
data/bin/sk_send_mail
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..'))
|
2
|
+
|
3
|
+
require 'boot'
|
4
|
+
|
5
|
+
Bundler.require :default, ENV['RACK_ENV'] if defined?(Bundler) #unless $0 == 'irb'
|
6
|
+
|
7
|
+
require 'sidekiq'
|
8
|
+
|
9
|
+
# check if running inside Sidekiq worker process
|
10
|
+
load_workers = defined?(Sidekiq::CLI) || defined?(Sidekiq::Testing) ? true : false
|
11
|
+
|
12
|
+
puts "SidekiqSendMail - check if should load worker - #{load_workers}"
|
13
|
+
if load_workers
|
14
|
+
require 'mail'
|
15
|
+
Dir[File.expand_path('../../app/**/*.rb', __FILE__)].each { |f| require f }
|
16
|
+
end
|
17
|
+
|
18
|
+
if defined?(ActionMailer)
|
19
|
+
require File.expand_path('../../lib/mail_interceptor.rb', __FILE__)
|
20
|
+
end
|
data/config/boot.rb
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
module SidekiqSendMail
|
2
|
+
class MailInterceptor
|
3
|
+
def self.delivering_email(message)
|
4
|
+
unless deliver?(message)
|
5
|
+
Sidekiq::Client.push 'queue' => 'emails', 'class' => 'SidekiqSendMail::Worker', 'args' => [message.to_yaml]
|
6
|
+
message.perform_deliveries = false
|
7
|
+
puts "Mail routed to Sidekiq (#{message.subject})!"
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
def self.deliver?(message)
|
12
|
+
defined?(Sidekiq::CLI) #Rails.env.development?
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# Add to load path
|
2
|
+
$:.push File.expand_path('../lib', __FILE__)
|
3
|
+
|
4
|
+
# Describe your gem and declare its dependencies:
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = 'sidekiq_send_mail'
|
7
|
+
s.version = '0.1.0'
|
8
|
+
s.authors = ['Paul Geraghty']
|
9
|
+
s.email = 'muse@appsthatcould.be'
|
10
|
+
s.homepage = 'https://github.com/pgeraghty/sidekiq_send_mail'
|
11
|
+
s.summary = 'SidekiqSendMail'
|
12
|
+
s.description = 'Render mail then send it in the background with Sidekiq with or without Rails.'
|
13
|
+
s.license = 'MIT'
|
14
|
+
|
15
|
+
s.files = Dir['{app,bin,config,lib,test}/**/*'] + %w(Gemfile Rakefile sidekiq_send_mail.gemspec) # MIT-LICENSE Rakefile README.md
|
16
|
+
#s.test_files = Dir['spec/**/*']
|
17
|
+
s.executables << 'sk_send_mail'
|
18
|
+
|
19
|
+
s.add_dependency 'sidekiq', '>= 3.0', '< 3.3'
|
20
|
+
s.add_dependency 'mail', '>= 2.5.4', '< 2.7'
|
21
|
+
|
22
|
+
s.add_development_dependency 'rake', '>= 0'
|
23
|
+
s.add_development_dependency 'rspec', '>= 0'
|
24
|
+
s.add_development_dependency 'rails', '>= 3.2'
|
25
|
+
end
|
metadata
ADDED
@@ -0,0 +1,137 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: sidekiq_send_mail
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Paul Geraghty
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-07-26 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: sidekiq
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '3.0'
|
20
|
+
- - "<"
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '3.3'
|
23
|
+
type: :runtime
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
requirements:
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '3.0'
|
30
|
+
- - "<"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '3.3'
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: mail
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - ">="
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: 2.5.4
|
40
|
+
- - "<"
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: '2.7'
|
43
|
+
type: :runtime
|
44
|
+
prerelease: false
|
45
|
+
version_requirements: !ruby/object:Gem::Requirement
|
46
|
+
requirements:
|
47
|
+
- - ">="
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: 2.5.4
|
50
|
+
- - "<"
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: '2.7'
|
53
|
+
- !ruby/object:Gem::Dependency
|
54
|
+
name: rake
|
55
|
+
requirement: !ruby/object:Gem::Requirement
|
56
|
+
requirements:
|
57
|
+
- - ">="
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
version: '0'
|
60
|
+
type: :development
|
61
|
+
prerelease: false
|
62
|
+
version_requirements: !ruby/object:Gem::Requirement
|
63
|
+
requirements:
|
64
|
+
- - ">="
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: '0'
|
67
|
+
- !ruby/object:Gem::Dependency
|
68
|
+
name: rspec
|
69
|
+
requirement: !ruby/object:Gem::Requirement
|
70
|
+
requirements:
|
71
|
+
- - ">="
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
version: '0'
|
74
|
+
type: :development
|
75
|
+
prerelease: false
|
76
|
+
version_requirements: !ruby/object:Gem::Requirement
|
77
|
+
requirements:
|
78
|
+
- - ">="
|
79
|
+
- !ruby/object:Gem::Version
|
80
|
+
version: '0'
|
81
|
+
- !ruby/object:Gem::Dependency
|
82
|
+
name: rails
|
83
|
+
requirement: !ruby/object:Gem::Requirement
|
84
|
+
requirements:
|
85
|
+
- - ">="
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
version: '3.2'
|
88
|
+
type: :development
|
89
|
+
prerelease: false
|
90
|
+
version_requirements: !ruby/object:Gem::Requirement
|
91
|
+
requirements:
|
92
|
+
- - ">="
|
93
|
+
- !ruby/object:Gem::Version
|
94
|
+
version: '3.2'
|
95
|
+
description: Render mail then send it in the background with Sidekiq with or without
|
96
|
+
Rails.
|
97
|
+
email: muse@appsthatcould.be
|
98
|
+
executables:
|
99
|
+
- sk_send_mail
|
100
|
+
extensions: []
|
101
|
+
extra_rdoc_files: []
|
102
|
+
files:
|
103
|
+
- Gemfile
|
104
|
+
- Rakefile
|
105
|
+
- app/workers/sidekiq_send_mail.rb
|
106
|
+
- bin/sk_send_mail
|
107
|
+
- config/application.rb
|
108
|
+
- config/boot.rb
|
109
|
+
- config/environment.rb
|
110
|
+
- lib/mail_interceptor.rb
|
111
|
+
- lib/sidekiq_send_mail.rb
|
112
|
+
- sidekiq_send_mail.gemspec
|
113
|
+
homepage: https://github.com/pgeraghty/sidekiq_send_mail
|
114
|
+
licenses:
|
115
|
+
- MIT
|
116
|
+
metadata: {}
|
117
|
+
post_install_message:
|
118
|
+
rdoc_options: []
|
119
|
+
require_paths:
|
120
|
+
- lib
|
121
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
122
|
+
requirements:
|
123
|
+
- - ">="
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: '0'
|
126
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
127
|
+
requirements:
|
128
|
+
- - ">="
|
129
|
+
- !ruby/object:Gem::Version
|
130
|
+
version: '0'
|
131
|
+
requirements: []
|
132
|
+
rubyforge_project:
|
133
|
+
rubygems_version: 2.2.2
|
134
|
+
signing_key:
|
135
|
+
specification_version: 4
|
136
|
+
summary: SidekiqSendMail
|
137
|
+
test_files: []
|