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 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
@@ -0,0 +1,3 @@
1
+ source 'http://rubygems.org'
2
+
3
+ gemspec
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,5 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ #$LOAD_PATH.unshift File.join(File.dirname(__FILE__), *%w[.. lib])
4
+
5
+ puts `bundle exec sidekiq -i 1 -r #{File.expand_path './lib/sidekiq_send_mail.rb'} -c 1 -t 20 -q emails -P sidekiq-emails.pid`
@@ -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,2 @@
1
+ require 'rubygems'
2
+ require 'bundler/setup'
@@ -0,0 +1,3 @@
1
+ ENV['RACK_ENV'] ||= ENV['RAILS_ENV'] || 'development' # RACK_ENV is set by -e param for sidekiq
2
+
3
+ require File.expand_path('../application', __FILE__)
@@ -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,5 @@
1
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'config'))
2
+ require File.expand_path('../../config/environment', __FILE__)
3
+
4
+ module SidekiqSendMail
5
+ end
@@ -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: []