mongo_mailer 0.0.0 → 0.1.3

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.

Potentially problematic release.


This version of mongo_mailer might be problematic. Click here for more details.

Files changed (39) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +10 -13
  3. data/.travis.yml +6 -0
  4. data/Gemfile +1 -1
  5. data/Gemfile.lock +112 -61
  6. data/README.md +112 -0
  7. data/Rakefile +7 -4
  8. data/bin/console +7 -0
  9. data/bin/mongo_mailer +11 -0
  10. data/bin/worker +6 -0
  11. data/config/boot.rb +12 -0
  12. data/config/mongo_mailer.yml.example +38 -0
  13. data/lib/generators/mongo_mailer/mongo_mailer_generator.rb +10 -0
  14. data/lib/generators/mongo_mailer/templates/mongo_mailer.yml +38 -0
  15. data/lib/mongo_mailer.rb +9 -2
  16. data/lib/mongo_mailer/capistrano.rb +33 -0
  17. data/lib/mongo_mailer/capistrano3.rb +49 -0
  18. data/lib/mongo_mailer/common/deliveries_counter.rb +18 -0
  19. data/lib/mongo_mailer/common/has_mongo_collection.rb +36 -0
  20. data/lib/mongo_mailer/common/mail_queue.rb +49 -0
  21. data/lib/mongo_mailer/configuration.rb +127 -0
  22. data/lib/mongo_mailer/core_ext/hash.rb +12 -0
  23. data/lib/mongo_mailer/delivery_methods/mongo_queue.rb +28 -0
  24. data/lib/mongo_mailer/delivery_methods/test.rb +38 -0
  25. data/lib/mongo_mailer/rails.rb +5 -0
  26. data/lib/mongo_mailer/standalone.rb +6 -0
  27. data/lib/mongo_mailer/standalone/final_deliverer.rb +35 -0
  28. data/lib/mongo_mailer/standalone/worker.rb +23 -0
  29. data/lib/mongo_mailer/version.rb +3 -0
  30. data/log/.gitkeep +0 -0
  31. data/mongo_mailer.gemspec +25 -26
  32. data/spec/lib/common/deliveries_counter_spec.rb +22 -0
  33. data/spec/lib/common/mail_queue_spec.rb +68 -0
  34. data/spec/lib/configuration_spec.rb +26 -0
  35. data/spec/lib/standalone/final_deliverer_spec.rb +40 -0
  36. data/spec/rails/delivery_methods/mongo_queue_spec.rb +33 -0
  37. data/spec/spec_helper.rb +29 -0
  38. metadata +97 -44
  39. data/LICENSE +0 -21
@@ -0,0 +1,5 @@
1
+ require 'mongo_mailer'
2
+ require 'mongo_mailer/delivery_methods/mongo_queue'
3
+ require 'action_mailer'
4
+
5
+ ActionMailer::Base.add_delivery_method :mongo_queue, MongoMailer::DeliveryMethods::MongoQueue
@@ -0,0 +1,6 @@
1
+ require 'mongo_mailer'
2
+ require 'mongo_mailer/delivery_methods/test'
3
+
4
+ Dir[File.expand_path('../standalone/*', __FILE__)].each do |lib|
5
+ require lib
6
+ end
@@ -0,0 +1,35 @@
1
+ module MongoMailer
2
+ class FinalDeliverer
3
+ attr_reader :mail, :configuration, :counter
4
+
5
+ def initialize(encoded)
6
+ @encoded = encoded
7
+ @mail = Mail.new(@encoded)
8
+ @configuration = Configuration.instance
9
+ @counter = DeliveriesCounter.instance
10
+ end
11
+
12
+ def deliver!
13
+ begin
14
+ configuration.logger.info("[delivery][base] #{mail.inspect}")
15
+ mail.delivery_method *base_delivery
16
+ mail.deliver!
17
+ counter.increment(:base)
18
+ rescue => e
19
+ configuration.log_error(e)
20
+ configuration.logger.warn("[delivery][emergency] #{mail.inspect}")
21
+ mail.delivery_method *emergency_delivery
22
+ mail.deliver!
23
+ counter.increment(:emergency)
24
+ end
25
+ end
26
+
27
+ def base_delivery
28
+ Configuration.instance.base_delivery
29
+ end
30
+
31
+ def emergency_delivery
32
+ Configuration.instance.emergency_delivery
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,23 @@
1
+ module MongoMailer
2
+ class Worker
3
+ attr_reader :configuration, :name
4
+
5
+ def initialize
6
+ @configuration = Configuration.instance
7
+ @name = "mongo_mailer_worker"
8
+ end
9
+
10
+ def run!
11
+ app_group = Daemons.run_proc(name, configuration.full_daemon_options) do
12
+ mail_queue = MailQueue.instance
13
+
14
+ loop do
15
+ mail_queue.find_and_deliver!
16
+ sleep(0.1)
17
+ end
18
+ end
19
+
20
+ puts app_group.find_applications_by_app_name(name).map{ |app| app.pid.pid }.join("\n")
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,3 @@
1
+ module MongoMailer
2
+ VERSION = "0.1.3"
3
+ end
data/log/.gitkeep ADDED
File without changes
data/mongo_mailer.gemspec CHANGED
@@ -1,32 +1,31 @@
1
- Gem::Specification.new do |spec|
2
- spec.name = 'mongo_mailer'
3
- spec.version = '0.0.0'
4
- spec.authors = ['Krzysztof Knapik']
5
- spec.email = ['knapo@knapo.net']
1
+ # encoding: utf-8
2
+ require File.expand_path('../lib/mongo_mailer/version', __FILE__)
6
3
 
7
- spec.summary = 'Sending emails asynchronously with mongodb'
8
- spec.homepage = 'https://github.com/knapo/'
9
- spec.license = 'MIT'
4
+ Gem::Specification.new do |gem|
5
+ gem.authors = ['Krzysztof Knapik', 'inFakt DevTeam']
6
+ gem.email = ['knapo@knapo.net', 'devteam@infakt.pl']
7
+ gem.description = %q{Rails plugin for sending asynchronous email with mongodb}
8
+ gem.summary = %q{Rails plugin for sending asynchronous email with mongodb}
9
+ gem.homepage = 'https://github.com/infakt/mongo_mailer'
10
+ gem.license = 'MIT'
10
11
 
11
- spec.metadata['homepage_uri'] = 'https://github.com/knapo/'
12
- spec.metadata['source_code_uri'] = 'https://github.com/knapo/'
12
+ gem.files = `git ls-files`.split($\)
13
+ gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
14
+ gem.test_files = gem.files.grep(%r{^(spec)/})
15
+ gem.name = 'mongo_mailer'
16
+ gem.require_paths = ['lib']
13
17
 
14
- spec.files = Dir.chdir(__dir__) do
15
- `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(bin/|spec/|test_app/|\.rub)}) }
16
- end
17
- spec.bindir = 'exe'
18
- spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
19
- spec.require_paths = ['lib']
18
+ gem.add_dependency 'activesupport', '>= 4.2.8'
19
+ gem.add_dependency 'mail', '~> 2.5.5'
20
+ gem.add_dependency 'mongo', '~> 1.9.2'
21
+ gem.add_dependency 'bson_ext', '~> 1.9.2'
22
+ gem.add_dependency 'daemons', '~> 1.1.9'
20
23
 
21
- spec.required_ruby_version = '>= 2.7'
24
+ gem.add_development_dependency 'rake', '>= 10.0.4'
25
+ gem.add_development_dependency 'rspec', '>= 2.14.0'
26
+ gem.add_development_dependency 'coveralls'
27
+ gem.add_development_dependency 'actionmailer', '>= 4.2.8'
22
28
 
23
- spec.add_dependency 'mail'
24
- spec.add_dependency 'mongo', '~> 2.15'
25
-
26
- spec.add_development_dependency 'pry'
27
- spec.add_development_dependency 'rake'
28
- spec.add_development_dependency 'rspec'
29
- spec.add_development_dependency 'rubocop'
30
- spec.add_development_dependency 'rubocop-rake'
31
- spec.add_development_dependency 'rubocop-rspec'
29
+ gem.version = MongoMailer::VERSION
32
30
  end
31
+
@@ -0,0 +1,22 @@
1
+ require File.expand_path('../../../spec_helper', __FILE__)
2
+
3
+ describe MongoMailer::DeliveriesCounter do
4
+ subject { described_class.instance }
5
+
6
+ before(:all) {
7
+ described_class.instance.collection.drop
8
+ }
9
+
10
+ describe '#increment' do
11
+ before {
12
+ subject.increment(:base)
13
+ subject.increment(:base)
14
+ subject.increment(:emergency)
15
+ }
16
+ it {
17
+ expect(subject.by_type(:base)['value']).to eq(2)
18
+ expect(subject.by_type(:emergency)['value']).to eq(1)
19
+ expect(subject.all.size).to eq(2)
20
+ }
21
+ end
22
+ end
@@ -0,0 +1,68 @@
1
+ require File.expand_path('../../../spec_helper', __FILE__)
2
+
3
+ describe MongoMailer::MailQueue do
4
+ let(:mail) { Mail.new(from: 'joe@infakt.pl', to: 'joe@infakt.pl', subject: 'Hello', body: 'hello') }
5
+
6
+ let(:item1) { {encoded: mail.encoded, uuid: ::SecureRandom.hex} }
7
+ let(:item2) { {encoded: mail.encoded, uuid: ::SecureRandom.hex} }
8
+ let(:deliveries) { MongoMailer::DeliveryMethods::Test1Mailer.deliveries }
9
+
10
+ before {
11
+ subject.collection.remove
12
+ MongoMailer::DeliveryMethods::Test1Mailer.deliveries.clear
13
+ }
14
+
15
+ subject { described_class.instance }
16
+
17
+ describe '#get_oldest' do
18
+ before {
19
+ subject.collection.insert(item1)
20
+ sleep(0.01)
21
+ subject.collection.insert(item2)
22
+ }
23
+ after {
24
+ # clear queue
25
+ subject.get_oldest
26
+ }
27
+ specify {
28
+ expect(subject.get_oldest['uuid']).to eq(item1[:uuid])
29
+ }
30
+ end
31
+
32
+ describe '#find_and_deliver!' do
33
+ context 'with item in queue' do
34
+ before {
35
+ subject.collection.insert(item1)
36
+ subject.collection.insert(item2)
37
+ }
38
+ after {
39
+ # clear queue
40
+ subject.get_oldest
41
+ subject.get_oldest
42
+ }
43
+ context 'success' do
44
+ specify {
45
+ expect(subject.find_and_deliver!).to eq(true)
46
+ expect(deliveries.size).to eq(1)
47
+ }
48
+ end
49
+ context 'failure' do
50
+ before {
51
+ expect(MongoMailer::FinalDeliverer).to receive(:new).and_raise(ArgumentError.new)
52
+ }
53
+ specify {
54
+ expect(subject.find_and_deliver!).to eq(false)
55
+ expect(deliveries.size).to eq(0)
56
+ }
57
+ end
58
+ end
59
+ context 'without item in queue' do
60
+ context 'success' do
61
+ specify {
62
+ expect(subject.find_and_deliver!).to be_nil
63
+ expect(deliveries.size).to eq(0)
64
+ }
65
+ end
66
+ end
67
+ end
68
+ end
@@ -0,0 +1,26 @@
1
+ require File.expand_path('../../spec_helper', __FILE__)
2
+
3
+ describe MongoMailer::Configuration do
4
+ describe '.lookup_delivery_method' do
5
+ subject { described_class.instance }
6
+ let(:delivery_method) { subject.lookup_delivery_method(type) }
7
+
8
+ context ":test1" do
9
+ let(:type) { :test1 }
10
+ it { expect(delivery_method).to be_kind_of(Class) }
11
+ end
12
+ context ":test2" do
13
+ let(:type) { :test2 }
14
+ it { expect(delivery_method).to be_kind_of(Class) }
15
+ end
16
+ context ":unknown" do
17
+ let(:type) { :unknown }
18
+ it { expect { subject.lookup_delivery_method(type) }.to raise_error('Unknown delivery method: unknown') }
19
+ end
20
+ end
21
+
22
+ describe '.full_daemon_options' do
23
+ subject { described_class.instance.full_daemon_options }
24
+ it { expect(subject).to be_present }
25
+ end
26
+ end
@@ -0,0 +1,40 @@
1
+ require File.expand_path('../../../spec_helper', __FILE__)
2
+
3
+ describe MongoMailer::FinalDeliverer do
4
+ let(:mail) { Mail.new(from: 'joe@infakt.pl', to: 'joe@infakt.pl', subject: 'Hello') }
5
+ let(:subject) { described_class.new(mail.encoded) }
6
+ let(:test1_mails) { MongoMailer::DeliveryMethods::Test1Mailer.deliveries }
7
+ let(:test2_mails) { MongoMailer::DeliveryMethods::Test2Mailer.deliveries }
8
+
9
+ after {
10
+ test1_mails.clear
11
+ test2_mails.clear
12
+ }
13
+
14
+ subject { described_class.new(mail) }
15
+
16
+ describe '#deliver!' do
17
+ context 'with successful base delivery' do
18
+ before {
19
+ allow_any_instance_of(MongoMailer::DeliveryMethods::Test2Mailer).to receive(:deliver!).never
20
+ expect(subject.counter).to receive(:increment).with(:base)
21
+ subject.deliver!
22
+ }
23
+ specify {
24
+ expect(test1_mails.size).to eq(1)
25
+ expect(test2_mails.size).to eq(0)
26
+ }
27
+ end
28
+ context 'with failure base delivery' do
29
+ before {
30
+ allow_any_instance_of(MongoMailer::DeliveryMethods::Test1Mailer).to receive(:deliver!).and_raise(ArgumentError)
31
+ expect(subject.counter).to receive(:increment).with(:emergency)
32
+ subject.deliver!
33
+ }
34
+ specify {
35
+ expect(test1_mails.size).to eq(0)
36
+ expect(test2_mails.size).to eq(1)
37
+ }
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,33 @@
1
+ # encoding: utf-8
2
+ require File.expand_path('../../../spec_helper', __FILE__)
3
+ require 'mongo_mailer/rails'
4
+
5
+ ActionMailer::Base.delivery_method = :mongo_queue
6
+
7
+ class SampleMailer < ActionMailer::Base
8
+ def sample
9
+ opts = {
10
+ from: "system@infakt.kielbasa",
11
+ to: "joe@infakt.kielbasa",
12
+ subject: "Sample Mailer Kiełbasa Test"
13
+ }
14
+ mail(opts) do |format|
15
+ format.html { render :text => "Kiełbasa - #{Time.now}" }
16
+ end
17
+ end
18
+ end
19
+
20
+ describe MongoMailer::DeliveryMethods::MongoQueue do
21
+ before(:all) {
22
+ MongoMailer::MailQueue.collection_name = "mongo_queue_#{SecureRandom.hex}"
23
+ }
24
+ describe '#deliver!' do
25
+ let(:sent_mail1_id) { SampleMailer.sample.deliver_now! }
26
+ let(:sent_mail2_id) { SampleMailer.sample.deliver_now! }
27
+ specify {
28
+ expect(sent_mail1_id).to be_kind_of(BSON::ObjectId)
29
+ expect(sent_mail2_id).to be_kind_of(BSON::ObjectId)
30
+ expect(MongoMailer::MailQueue.instance.get_oldest['_id']).to eq(sent_mail1_id)
31
+ }
32
+ end
33
+ end
@@ -0,0 +1,29 @@
1
+ require 'simplecov'
2
+ require 'coveralls'
3
+
4
+ SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter.new([
5
+ SimpleCov::Formatter::HTMLFormatter,
6
+ Coveralls::SimpleCov::Formatter
7
+ ])
8
+ SimpleCov.start do
9
+ add_filter '/spec/'
10
+ end
11
+
12
+ require 'rubygems'
13
+
14
+ ENV["RAILS_ENV"] = ENV["APP_ENV"] = 'test'
15
+
16
+ require File.expand_path("../../config/boot", __FILE__)
17
+
18
+ RSpec.configure do |config|
19
+ config.order = "random"
20
+ #config.color_enabled = true
21
+
22
+ config.before(:suite) do
23
+ drop_db
24
+ end
25
+ end
26
+
27
+ def drop_db
28
+ MongoMailer::Configuration.instance.mongodb.command(dropDatabase: 1)
29
+ end
metadata CHANGED
@@ -1,101 +1,116 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mongo_mailer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.0
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Krzysztof Knapik
8
- autorequire:
9
- bindir: exe
8
+ - inFakt DevTeam
9
+ autorequire:
10
+ bindir: bin
10
11
  cert_chain: []
11
- date: 2021-07-23 00:00:00.000000000 Z
12
+ date: 2017-07-12 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
- name: mail
15
+ name: activesupport
15
16
  requirement: !ruby/object:Gem::Requirement
16
17
  requirements:
17
18
  - - ">="
18
19
  - !ruby/object:Gem::Version
19
- version: '0'
20
+ version: 4.2.8
20
21
  type: :runtime
21
22
  prerelease: false
22
23
  version_requirements: !ruby/object:Gem::Requirement
23
24
  requirements:
24
25
  - - ">="
25
26
  - !ruby/object:Gem::Version
26
- version: '0'
27
+ version: 4.2.8
28
+ - !ruby/object:Gem::Dependency
29
+ name: mail
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - "~>"
33
+ - !ruby/object:Gem::Version
34
+ version: 2.5.5
35
+ type: :runtime
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - "~>"
40
+ - !ruby/object:Gem::Version
41
+ version: 2.5.5
27
42
  - !ruby/object:Gem::Dependency
28
43
  name: mongo
29
44
  requirement: !ruby/object:Gem::Requirement
30
45
  requirements:
31
46
  - - "~>"
32
47
  - !ruby/object:Gem::Version
33
- version: '2.15'
48
+ version: 1.9.2
34
49
  type: :runtime
35
50
  prerelease: false
36
51
  version_requirements: !ruby/object:Gem::Requirement
37
52
  requirements:
38
53
  - - "~>"
39
54
  - !ruby/object:Gem::Version
40
- version: '2.15'
55
+ version: 1.9.2
41
56
  - !ruby/object:Gem::Dependency
42
- name: pry
57
+ name: bson_ext
43
58
  requirement: !ruby/object:Gem::Requirement
44
59
  requirements:
45
- - - ">="
60
+ - - "~>"
46
61
  - !ruby/object:Gem::Version
47
- version: '0'
48
- type: :development
62
+ version: 1.9.2
63
+ type: :runtime
49
64
  prerelease: false
50
65
  version_requirements: !ruby/object:Gem::Requirement
51
66
  requirements:
52
- - - ">="
67
+ - - "~>"
53
68
  - !ruby/object:Gem::Version
54
- version: '0'
69
+ version: 1.9.2
55
70
  - !ruby/object:Gem::Dependency
56
- name: rake
71
+ name: daemons
57
72
  requirement: !ruby/object:Gem::Requirement
58
73
  requirements:
59
- - - ">="
74
+ - - "~>"
60
75
  - !ruby/object:Gem::Version
61
- version: '0'
62
- type: :development
76
+ version: 1.1.9
77
+ type: :runtime
63
78
  prerelease: false
64
79
  version_requirements: !ruby/object:Gem::Requirement
65
80
  requirements:
66
- - - ">="
81
+ - - "~>"
67
82
  - !ruby/object:Gem::Version
68
- version: '0'
83
+ version: 1.1.9
69
84
  - !ruby/object:Gem::Dependency
70
- name: rspec
85
+ name: rake
71
86
  requirement: !ruby/object:Gem::Requirement
72
87
  requirements:
73
88
  - - ">="
74
89
  - !ruby/object:Gem::Version
75
- version: '0'
90
+ version: 10.0.4
76
91
  type: :development
77
92
  prerelease: false
78
93
  version_requirements: !ruby/object:Gem::Requirement
79
94
  requirements:
80
95
  - - ">="
81
96
  - !ruby/object:Gem::Version
82
- version: '0'
97
+ version: 10.0.4
83
98
  - !ruby/object:Gem::Dependency
84
- name: rubocop
99
+ name: rspec
85
100
  requirement: !ruby/object:Gem::Requirement
86
101
  requirements:
87
102
  - - ">="
88
103
  - !ruby/object:Gem::Version
89
- version: '0'
104
+ version: 2.14.0
90
105
  type: :development
91
106
  prerelease: false
92
107
  version_requirements: !ruby/object:Gem::Requirement
93
108
  requirements:
94
109
  - - ">="
95
110
  - !ruby/object:Gem::Version
96
- version: '0'
111
+ version: 2.14.0
97
112
  - !ruby/object:Gem::Dependency
98
- name: rubocop-rake
113
+ name: coveralls
99
114
  requirement: !ruby/object:Gem::Requirement
100
115
  requirements:
101
116
  - - ">="
@@ -109,40 +124,71 @@ dependencies:
109
124
  - !ruby/object:Gem::Version
110
125
  version: '0'
111
126
  - !ruby/object:Gem::Dependency
112
- name: rubocop-rspec
127
+ name: actionmailer
113
128
  requirement: !ruby/object:Gem::Requirement
114
129
  requirements:
115
130
  - - ">="
116
131
  - !ruby/object:Gem::Version
117
- version: '0'
132
+ version: 4.2.8
118
133
  type: :development
119
134
  prerelease: false
120
135
  version_requirements: !ruby/object:Gem::Requirement
121
136
  requirements:
122
137
  - - ">="
123
138
  - !ruby/object:Gem::Version
124
- version: '0'
125
- description:
139
+ version: 4.2.8
140
+ description: Rails plugin for sending asynchronous email with mongodb
126
141
  email:
127
142
  - knapo@knapo.net
128
- executables: []
143
+ - devteam@infakt.pl
144
+ executables:
145
+ - console
146
+ - mongo_mailer
147
+ - worker
129
148
  extensions: []
130
149
  extra_rdoc_files: []
131
150
  files:
132
151
  - ".gitignore"
152
+ - ".travis.yml"
133
153
  - Gemfile
134
154
  - Gemfile.lock
135
- - LICENSE
155
+ - README.md
136
156
  - Rakefile
157
+ - bin/console
158
+ - bin/mongo_mailer
159
+ - bin/worker
160
+ - config/boot.rb
161
+ - config/mongo_mailer.yml.example
162
+ - lib/generators/mongo_mailer/mongo_mailer_generator.rb
163
+ - lib/generators/mongo_mailer/templates/mongo_mailer.yml
137
164
  - lib/mongo_mailer.rb
165
+ - lib/mongo_mailer/capistrano.rb
166
+ - lib/mongo_mailer/capistrano3.rb
167
+ - lib/mongo_mailer/common/deliveries_counter.rb
168
+ - lib/mongo_mailer/common/has_mongo_collection.rb
169
+ - lib/mongo_mailer/common/mail_queue.rb
170
+ - lib/mongo_mailer/configuration.rb
171
+ - lib/mongo_mailer/core_ext/hash.rb
172
+ - lib/mongo_mailer/delivery_methods/mongo_queue.rb
173
+ - lib/mongo_mailer/delivery_methods/test.rb
174
+ - lib/mongo_mailer/rails.rb
175
+ - lib/mongo_mailer/standalone.rb
176
+ - lib/mongo_mailer/standalone/final_deliverer.rb
177
+ - lib/mongo_mailer/standalone/worker.rb
178
+ - lib/mongo_mailer/version.rb
179
+ - log/.gitkeep
138
180
  - mongo_mailer.gemspec
139
- homepage: https://github.com/knapo/
181
+ - spec/lib/common/deliveries_counter_spec.rb
182
+ - spec/lib/common/mail_queue_spec.rb
183
+ - spec/lib/configuration_spec.rb
184
+ - spec/lib/standalone/final_deliverer_spec.rb
185
+ - spec/rails/delivery_methods/mongo_queue_spec.rb
186
+ - spec/spec_helper.rb
187
+ homepage: https://github.com/infakt/mongo_mailer
140
188
  licenses:
141
189
  - MIT
142
- metadata:
143
- homepage_uri: https://github.com/knapo/
144
- source_code_uri: https://github.com/knapo/
145
- post_install_message:
190
+ metadata: {}
191
+ post_install_message:
146
192
  rdoc_options: []
147
193
  require_paths:
148
194
  - lib
@@ -150,15 +196,22 @@ required_ruby_version: !ruby/object:Gem::Requirement
150
196
  requirements:
151
197
  - - ">="
152
198
  - !ruby/object:Gem::Version
153
- version: '2.7'
199
+ version: '0'
154
200
  required_rubygems_version: !ruby/object:Gem::Requirement
155
201
  requirements:
156
202
  - - ">="
157
203
  - !ruby/object:Gem::Version
158
204
  version: '0'
159
205
  requirements: []
160
- rubygems_version: 3.2.23
161
- signing_key:
206
+ rubyforge_project:
207
+ rubygems_version: 2.6.11
208
+ signing_key:
162
209
  specification_version: 4
163
- summary: Sending emails asynchronously with mongodb
164
- test_files: []
210
+ summary: Rails plugin for sending asynchronous email with mongodb
211
+ test_files:
212
+ - spec/lib/common/deliveries_counter_spec.rb
213
+ - spec/lib/common/mail_queue_spec.rb
214
+ - spec/lib/configuration_spec.rb
215
+ - spec/lib/standalone/final_deliverer_spec.rb
216
+ - spec/rails/delivery_methods/mongo_queue_spec.rb
217
+ - spec/spec_helper.rb