delivery_uncle 0.1.2

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.
Files changed (80) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/Rakefile +21 -0
  4. data/app/assets/javascripts/delivery_uncle/application.js +13 -0
  5. data/app/assets/stylesheets/delivery_uncle/application.css +15 -0
  6. data/app/controllers/delivery_uncle/application_controller.rb +3 -0
  7. data/app/controllers/delivery_uncle/email_requests_controller.rb +108 -0
  8. data/app/helpers/delivery_uncle/application_helper.rb +4 -0
  9. data/app/models/delivery_uncle/activity.rb +25 -0
  10. data/app/models/delivery_uncle/email_request.rb +23 -0
  11. data/app/services/delivery_uncle/deliver.rb +29 -0
  12. data/app/services/delivery_uncle/email_queue.rb +58 -0
  13. data/app/services/delivery_uncle/paginate.rb +35 -0
  14. data/app/views/delivery_uncle/email_requests/configure.html.erb +25 -0
  15. data/app/views/delivery_uncle/email_requests/index.html.erb +44 -0
  16. data/app/views/delivery_uncle/email_requests/show.html.erb +8 -0
  17. data/app/views/layouts/delivery_uncle/application.html.erb +14 -0
  18. data/app/workers/delivery_uncle/send_email_request.rb +29 -0
  19. data/config/routes.rb +13 -0
  20. data/lib/delivery_uncle/engine.rb +25 -0
  21. data/lib/delivery_uncle/version.rb +3 -0
  22. data/lib/delivery_uncle.rb +4 -0
  23. data/lib/generators/delivery_uncle/install/install_generator.rb +25 -0
  24. data/lib/generators/delivery_uncle/install/templates/create_table_activities.rb +18 -0
  25. data/lib/generators/delivery_uncle/install/templates/create_table_email_requests.rb +14 -0
  26. data/lib/tasks/delivery_uncle_tasks.rake +4 -0
  27. data/spec/dummy/README.rdoc +261 -0
  28. data/spec/dummy/Rakefile +7 -0
  29. data/spec/dummy/app/assets/javascripts/application.js +15 -0
  30. data/spec/dummy/app/assets/stylesheets/application.css +13 -0
  31. data/spec/dummy/app/controllers/application_controller.rb +3 -0
  32. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  33. data/spec/dummy/app/models/agent.rb +2 -0
  34. data/spec/dummy/app/models/coupon.rb +2 -0
  35. data/spec/dummy/app/models/customer.rb +6 -0
  36. data/spec/dummy/app/models/denormalized_booking.rb +2 -0
  37. data/spec/dummy/app/models/departure.rb +3 -0
  38. data/spec/dummy/app/models/destination.rb +2 -0
  39. data/spec/dummy/app/models/discount.rb +3 -0
  40. data/spec/dummy/app/models/line_item.rb +5 -0
  41. data/spec/dummy/app/models/order.rb +7 -0
  42. data/spec/dummy/app/models/tour.rb +4 -0
  43. data/spec/dummy/app/models/tour_destination_assignment.rb +6 -0
  44. data/spec/dummy/app/models/tour_participant.rb +5 -0
  45. data/spec/dummy/app/models/tour_reservation.rb +6 -0
  46. data/spec/dummy/app/views/layouts/application.html.erb +14 -0
  47. data/spec/dummy/config/application.rb +59 -0
  48. data/spec/dummy/config/boot.rb +10 -0
  49. data/spec/dummy/config/database.yml +25 -0
  50. data/spec/dummy/config/environment.rb +5 -0
  51. data/spec/dummy/config/environments/development.rb +37 -0
  52. data/spec/dummy/config/environments/production.rb +67 -0
  53. data/spec/dummy/config/environments/test.rb +37 -0
  54. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  55. data/spec/dummy/config/initializers/inflections.rb +15 -0
  56. data/spec/dummy/config/initializers/mime_types.rb +5 -0
  57. data/spec/dummy/config/initializers/secret_token.rb +7 -0
  58. data/spec/dummy/config/initializers/session_store.rb +8 -0
  59. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  60. data/spec/dummy/config/locales/en.yml +5 -0
  61. data/spec/dummy/config/routes.rb +3 -0
  62. data/spec/dummy/config.ru +4 -0
  63. data/spec/dummy/db/development.sqlite3 +0 -0
  64. data/spec/dummy/db/migrate/20140723105014_create_table_email_requests.rb +14 -0
  65. data/spec/dummy/db/migrate/20140723105015_create_table_activities.rb +18 -0
  66. data/spec/dummy/db/schema.rb +59 -0
  67. data/spec/dummy/db/test.sqlite3 +0 -0
  68. data/spec/dummy/log/development.log +5 -0
  69. data/spec/dummy/log/test.log +34479 -0
  70. data/spec/dummy/public/404.html +26 -0
  71. data/spec/dummy/public/422.html +26 -0
  72. data/spec/dummy/public/500.html +25 -0
  73. data/spec/dummy/public/favicon.ico +0 -0
  74. data/spec/dummy/script/rails +6 -0
  75. data/spec/dummy/tmp/pids/redis-test.pid +1 -0
  76. data/spec/services/delivery_uncle/deliver_spec.rb +32 -0
  77. data/spec/services/delivery_uncle/email_queue_spec.rb +60 -0
  78. data/spec/services/delivery_uncle/paginate_spec.rb +54 -0
  79. data/spec/spec_helper.rb +45 -0
  80. metadata +245 -0
@@ -0,0 +1,26 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The page you were looking for doesn't exist (404)</title>
5
+ <style type="text/css">
6
+ body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
7
+ div.dialog {
8
+ width: 25em;
9
+ padding: 0 4em;
10
+ margin: 4em auto 0 auto;
11
+ border: 1px solid #ccc;
12
+ border-right-color: #999;
13
+ border-bottom-color: #999;
14
+ }
15
+ h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <!-- This file lives in public/404.html -->
21
+ <div class="dialog">
22
+ <h1>The page you were looking for doesn't exist.</h1>
23
+ <p>You may have mistyped the address or the page may have moved.</p>
24
+ </div>
25
+ </body>
26
+ </html>
@@ -0,0 +1,26 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The change you wanted was rejected (422)</title>
5
+ <style type="text/css">
6
+ body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
7
+ div.dialog {
8
+ width: 25em;
9
+ padding: 0 4em;
10
+ margin: 4em auto 0 auto;
11
+ border: 1px solid #ccc;
12
+ border-right-color: #999;
13
+ border-bottom-color: #999;
14
+ }
15
+ h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <!-- This file lives in public/422.html -->
21
+ <div class="dialog">
22
+ <h1>The change you wanted was rejected.</h1>
23
+ <p>Maybe you tried to change something you didn't have access to.</p>
24
+ </div>
25
+ </body>
26
+ </html>
@@ -0,0 +1,25 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>We're sorry, but something went wrong (500)</title>
5
+ <style type="text/css">
6
+ body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
7
+ div.dialog {
8
+ width: 25em;
9
+ padding: 0 4em;
10
+ margin: 4em auto 0 auto;
11
+ border: 1px solid #ccc;
12
+ border-right-color: #999;
13
+ border-bottom-color: #999;
14
+ }
15
+ h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <!-- This file lives in public/500.html -->
21
+ <div class="dialog">
22
+ <h1>We're sorry, but something went wrong.</h1>
23
+ </div>
24
+ </body>
25
+ </html>
File without changes
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+ # This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application.
3
+
4
+ APP_PATH = File.expand_path('../../config/application', __FILE__)
5
+ require File.expand_path('../../config/boot', __FILE__)
6
+ require 'rails/commands'
@@ -0,0 +1 @@
1
+ 43671
@@ -0,0 +1,32 @@
1
+ require 'spec_helper'
2
+
3
+ describe DeliveryUncle::Deliver do
4
+ before do
5
+ ResqueSpec.reset!
6
+
7
+ klass = Class.new(ActionMailer::Base)
8
+ Object.const_set('TestMailer', klass)
9
+ TestMailer.class_eval do
10
+ default from: 'test@deliveryuncle.localhost'
11
+
12
+ def test_email_method(subject)
13
+ mail(subject: subject, to: 'recepient@deliveryuncle.localhost')
14
+ end
15
+ end
16
+ end
17
+
18
+ after do
19
+ Object.send(:remove_const, :TestMailer)
20
+ end
21
+
22
+ it "should receive email request" do
23
+ delivery = DeliveryUncle::Deliver.new(TestMailer, :test_email_method, 'test_email')
24
+
25
+ expect(delivery.request.mailer.to_s).to eql('TestMailer')
26
+ expect(delivery.request.mailer_method.to_s).to eql('test_email_method')
27
+ expect(delivery.request.mail.subject).to eql('test_email')
28
+ expect(delivery.request.status).to eql(:queued)
29
+
30
+ DeliveryUncle::SendEmailRequest.should have_queued(delivery.request.id)
31
+ end
32
+ end
@@ -0,0 +1,60 @@
1
+ require 'spec_helper'
2
+
3
+ describe DeliveryUncle::EmailQueue do
4
+
5
+ let(:email_request) do
6
+ request = DeliveryUncle::EmailRequest.new
7
+ request.status = :new
8
+ request.save
9
+ request
10
+ end
11
+
12
+ let(:sent_request) do
13
+ request = DeliveryUncle::EmailRequest.new
14
+ request.status = :sent
15
+ request.save
16
+ request
17
+ end
18
+
19
+ context 'when email request is already sent' do
20
+ it 'should not be allowed to change the status' do
21
+ DeliveryUncle::EmailQueue.pause(sent_request)
22
+ expect(sent_request.status).to eql(:sent)
23
+
24
+ DeliveryUncle::EmailQueue.retry(sent_request)
25
+ expect(sent_request.status).to eql(:sent)
26
+
27
+ DeliveryUncle::EmailQueue.queue(sent_request)
28
+ expect(sent_request.status).to eql(:sent)
29
+ end
30
+ end
31
+
32
+ context '.pause' do
33
+ it 'should change request status' do
34
+ DeliveryUncle::EmailQueue.pause(email_request)
35
+ expect(email_request.status).to eql(:paused)
36
+ end
37
+ end
38
+
39
+ context '.queue' do
40
+ before do
41
+ ResqueSpec.reset!
42
+ end
43
+
44
+ it 'should queue to background' do
45
+ DeliveryUncle::EmailQueue.queue(email_request)
46
+ expect(DeliveryUncle::SendEmailRequest).to have_queued(email_request.id)
47
+ expect(email_request.status).to eql(:queued)
48
+ end
49
+ end
50
+
51
+ context '.retry' do
52
+ it 'should change status to queue' do
53
+ expect(email_request.status).to eql(:new)
54
+
55
+ DeliveryUncle::EmailQueue.retry(email_request)
56
+ expect(DeliveryUncle::SendEmailRequest).to have_queued(email_request.id)
57
+ expect(email_request.status).to eql(:queued)
58
+ end
59
+ end
60
+ end
@@ -0,0 +1,54 @@
1
+ require 'spec_helper'
2
+
3
+ describe DeliveryUncle::Paginate do
4
+
5
+ context 'pagination' do
6
+ before(:each) do
7
+ (1..39).each do |n|
8
+ a = DeliveryUncle::EmailRequest.new
9
+ a.mailer = "mailer_#{n}"
10
+ a.save
11
+ end
12
+ end
13
+
14
+ after(:each) do
15
+ DeliveryUncle::EmailRequest.destroy_all
16
+ end
17
+
18
+ it 'should show correct page 1 on 10/page' do
19
+ pagination = DeliveryUncle::Paginate.new(10)
20
+ pagination.page(DeliveryUncle::EmailRequest, {})
21
+
22
+ expect(pagination.data.count).to eql(10)
23
+ expect(pagination.data.first.mailer).to eql("mailer_1")
24
+ expect(pagination.data.last.mailer).to eql("mailer_10")
25
+ end
26
+
27
+ it 'should show correct page 2 on 20/page' do
28
+ pagination = DeliveryUncle::Paginate.new(20)
29
+ pagination = pagination.page(DeliveryUncle::EmailRequest, {page: 2})
30
+
31
+ expect(pagination.data.count).to eql(19)
32
+ expect(pagination.data.first.mailer).to eql("mailer_21")
33
+ expect(pagination.data.last.mailer).to eql("mailer_39")
34
+ end
35
+
36
+ it 'should show correct url with next page' do
37
+ pagination = DeliveryUncle::Paginate.new(10)
38
+ pagination = pagination.page(DeliveryUncle::EmailRequest, {})
39
+
40
+ expect(pagination.prev_page_url).to be_nil
41
+ expect(pagination.next_page_url).to eql({page: 2})
42
+ end
43
+
44
+ it 'should show correct url with prev page' do
45
+ pagination = DeliveryUncle::Paginate.new(10)
46
+ pagination = pagination.page(DeliveryUncle::EmailRequest, {page: 2})
47
+
48
+ expect(pagination.prev_page_url).to eql({page: 1})
49
+ expect(pagination.next_page_url).to eql({page: 3})
50
+ end
51
+
52
+ end
53
+
54
+ end
@@ -0,0 +1,45 @@
1
+ ENV['RAILS_ENV'] ||= 'test'
2
+ require File.expand_path("../dummy/config/environment.rb", __FILE__)
3
+ require 'rspec/rails'
4
+ require 'rspec/autorun'
5
+ require 'resque_spec'
6
+ Rails.backtrace_cleaner.remove_silencers!
7
+ # Load support files
8
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
9
+
10
+ RSpec.configure do |config|
11
+ config.mock_with :rspec
12
+ config.infer_base_class_for_anonymous_controllers = false
13
+ config.use_transactional_fixtures = true
14
+ config.order = "random"
15
+
16
+ REDIS_PID = "#{Rails.root}/tmp/pids/redis-test.pid"
17
+ REDIS_CACHE_PATH = "#{Rails.root}/tmp/cache/"
18
+
19
+ config.before(:suite) do
20
+ redis_options = {
21
+ "daemonize" => 'yes',
22
+ "pidfile" => REDIS_PID,
23
+ "port" => 9736,
24
+ "timeout" => 300,
25
+ "save 900" => 1,
26
+ "save 300" => 1,
27
+ "save 60" => 10000,
28
+ "dbfilename" => "dump.rdb",
29
+ "dir" => REDIS_CACHE_PATH,
30
+ "loglevel" => "debug",
31
+ "logfile" => "stdout",
32
+ "databases" => 16
33
+ }.map { |k, v| "#{k} #{v}" }.join("\n")
34
+ `echo '#{redis_options}' | redis-server -`
35
+ end
36
+
37
+ config.after(:suite) do
38
+ %x{
39
+ cat #{REDIS_PID} | xargs kill -QUIT
40
+ rm -f #{REDIS_CACHE_PATH}dump.rdb
41
+ }
42
+ end
43
+ end
44
+
45
+ ActiveRecord::Migrator.migrate(File.join(Rails.root, 'db/migrate'))
metadata ADDED
@@ -0,0 +1,245 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: delivery_uncle
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.2
5
+ platform: ruby
6
+ authors:
7
+ - Alvin S.J. Ng
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-07-25 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rails
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 3.2.12
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 3.2.12
27
+ - !ruby/object:Gem::Dependency
28
+ name: resque
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.21'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1.21'
41
+ - !ruby/object:Gem::Dependency
42
+ name: sqlite3
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1.3'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1.3'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rspec-rails
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '2.14'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '2.14'
69
+ - !ruby/object:Gem::Dependency
70
+ name: resque_spec
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '0.15'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '0.15'
83
+ description: Rails Engine that you can hire to manage your outgoing email
84
+ email:
85
+ - email.to.alvin@gmail.com
86
+ executables: []
87
+ extensions: []
88
+ extra_rdoc_files: []
89
+ files:
90
+ - MIT-LICENSE
91
+ - Rakefile
92
+ - app/assets/javascripts/delivery_uncle/application.js
93
+ - app/assets/stylesheets/delivery_uncle/application.css
94
+ - app/controllers/delivery_uncle/application_controller.rb
95
+ - app/controllers/delivery_uncle/email_requests_controller.rb
96
+ - app/helpers/delivery_uncle/application_helper.rb
97
+ - app/models/delivery_uncle/activity.rb
98
+ - app/models/delivery_uncle/email_request.rb
99
+ - app/services/delivery_uncle/deliver.rb
100
+ - app/services/delivery_uncle/email_queue.rb
101
+ - app/services/delivery_uncle/paginate.rb
102
+ - app/views/delivery_uncle/email_requests/configure.html.erb
103
+ - app/views/delivery_uncle/email_requests/index.html.erb
104
+ - app/views/delivery_uncle/email_requests/show.html.erb
105
+ - app/views/layouts/delivery_uncle/application.html.erb
106
+ - app/workers/delivery_uncle/send_email_request.rb
107
+ - config/routes.rb
108
+ - lib/delivery_uncle.rb
109
+ - lib/delivery_uncle/engine.rb
110
+ - lib/delivery_uncle/version.rb
111
+ - lib/generators/delivery_uncle/install/install_generator.rb
112
+ - lib/generators/delivery_uncle/install/templates/create_table_activities.rb
113
+ - lib/generators/delivery_uncle/install/templates/create_table_email_requests.rb
114
+ - lib/tasks/delivery_uncle_tasks.rake
115
+ - spec/dummy/README.rdoc
116
+ - spec/dummy/Rakefile
117
+ - spec/dummy/app/assets/javascripts/application.js
118
+ - spec/dummy/app/assets/stylesheets/application.css
119
+ - spec/dummy/app/controllers/application_controller.rb
120
+ - spec/dummy/app/helpers/application_helper.rb
121
+ - spec/dummy/app/models/agent.rb
122
+ - spec/dummy/app/models/coupon.rb
123
+ - spec/dummy/app/models/customer.rb
124
+ - spec/dummy/app/models/denormalized_booking.rb
125
+ - spec/dummy/app/models/departure.rb
126
+ - spec/dummy/app/models/destination.rb
127
+ - spec/dummy/app/models/discount.rb
128
+ - spec/dummy/app/models/line_item.rb
129
+ - spec/dummy/app/models/order.rb
130
+ - spec/dummy/app/models/tour.rb
131
+ - spec/dummy/app/models/tour_destination_assignment.rb
132
+ - spec/dummy/app/models/tour_participant.rb
133
+ - spec/dummy/app/models/tour_reservation.rb
134
+ - spec/dummy/app/views/layouts/application.html.erb
135
+ - spec/dummy/config.ru
136
+ - spec/dummy/config/application.rb
137
+ - spec/dummy/config/boot.rb
138
+ - spec/dummy/config/database.yml
139
+ - spec/dummy/config/environment.rb
140
+ - spec/dummy/config/environments/development.rb
141
+ - spec/dummy/config/environments/production.rb
142
+ - spec/dummy/config/environments/test.rb
143
+ - spec/dummy/config/initializers/backtrace_silencers.rb
144
+ - spec/dummy/config/initializers/inflections.rb
145
+ - spec/dummy/config/initializers/mime_types.rb
146
+ - spec/dummy/config/initializers/secret_token.rb
147
+ - spec/dummy/config/initializers/session_store.rb
148
+ - spec/dummy/config/initializers/wrap_parameters.rb
149
+ - spec/dummy/config/locales/en.yml
150
+ - spec/dummy/config/routes.rb
151
+ - spec/dummy/db/development.sqlite3
152
+ - spec/dummy/db/migrate/20140723105014_create_table_email_requests.rb
153
+ - spec/dummy/db/migrate/20140723105015_create_table_activities.rb
154
+ - spec/dummy/db/schema.rb
155
+ - spec/dummy/db/test.sqlite3
156
+ - spec/dummy/log/development.log
157
+ - spec/dummy/log/test.log
158
+ - spec/dummy/public/404.html
159
+ - spec/dummy/public/422.html
160
+ - spec/dummy/public/500.html
161
+ - spec/dummy/public/favicon.ico
162
+ - spec/dummy/script/rails
163
+ - spec/dummy/tmp/pids/redis-test.pid
164
+ - spec/services/delivery_uncle/deliver_spec.rb
165
+ - spec/services/delivery_uncle/email_queue_spec.rb
166
+ - spec/services/delivery_uncle/paginate_spec.rb
167
+ - spec/spec_helper.rb
168
+ homepage: http://github.com/alvinsj/delivery_uncle
169
+ licenses:
170
+ - MIT
171
+ metadata: {}
172
+ post_install_message:
173
+ rdoc_options: []
174
+ require_paths:
175
+ - lib
176
+ required_ruby_version: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ">="
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
181
+ required_rubygems_version: !ruby/object:Gem::Requirement
182
+ requirements:
183
+ - - ">="
184
+ - !ruby/object:Gem::Version
185
+ version: '0'
186
+ requirements: []
187
+ rubyforge_project:
188
+ rubygems_version: 2.2.2
189
+ signing_key:
190
+ specification_version: 4
191
+ summary: Rails Engine that you can hire to manage your outgoing email
192
+ test_files:
193
+ - spec/dummy/app/assets/javascripts/application.js
194
+ - spec/dummy/app/assets/stylesheets/application.css
195
+ - spec/dummy/app/controllers/application_controller.rb
196
+ - spec/dummy/app/helpers/application_helper.rb
197
+ - spec/dummy/app/models/agent.rb
198
+ - spec/dummy/app/models/coupon.rb
199
+ - spec/dummy/app/models/customer.rb
200
+ - spec/dummy/app/models/denormalized_booking.rb
201
+ - spec/dummy/app/models/departure.rb
202
+ - spec/dummy/app/models/destination.rb
203
+ - spec/dummy/app/models/discount.rb
204
+ - spec/dummy/app/models/line_item.rb
205
+ - spec/dummy/app/models/order.rb
206
+ - spec/dummy/app/models/tour.rb
207
+ - spec/dummy/app/models/tour_destination_assignment.rb
208
+ - spec/dummy/app/models/tour_participant.rb
209
+ - spec/dummy/app/models/tour_reservation.rb
210
+ - spec/dummy/app/views/layouts/application.html.erb
211
+ - spec/dummy/config/application.rb
212
+ - spec/dummy/config/boot.rb
213
+ - spec/dummy/config/database.yml
214
+ - spec/dummy/config/environment.rb
215
+ - spec/dummy/config/environments/development.rb
216
+ - spec/dummy/config/environments/production.rb
217
+ - spec/dummy/config/environments/test.rb
218
+ - spec/dummy/config/initializers/backtrace_silencers.rb
219
+ - spec/dummy/config/initializers/inflections.rb
220
+ - spec/dummy/config/initializers/mime_types.rb
221
+ - spec/dummy/config/initializers/secret_token.rb
222
+ - spec/dummy/config/initializers/session_store.rb
223
+ - spec/dummy/config/initializers/wrap_parameters.rb
224
+ - spec/dummy/config/locales/en.yml
225
+ - spec/dummy/config/routes.rb
226
+ - spec/dummy/config.ru
227
+ - spec/dummy/db/development.sqlite3
228
+ - spec/dummy/db/migrate/20140723105014_create_table_email_requests.rb
229
+ - spec/dummy/db/migrate/20140723105015_create_table_activities.rb
230
+ - spec/dummy/db/schema.rb
231
+ - spec/dummy/db/test.sqlite3
232
+ - spec/dummy/log/development.log
233
+ - spec/dummy/log/test.log
234
+ - spec/dummy/public/404.html
235
+ - spec/dummy/public/422.html
236
+ - spec/dummy/public/500.html
237
+ - spec/dummy/public/favicon.ico
238
+ - spec/dummy/Rakefile
239
+ - spec/dummy/README.rdoc
240
+ - spec/dummy/script/rails
241
+ - spec/dummy/tmp/pids/redis-test.pid
242
+ - spec/services/delivery_uncle/deliver_spec.rb
243
+ - spec/services/delivery_uncle/email_queue_spec.rb
244
+ - spec/services/delivery_uncle/paginate_spec.rb
245
+ - spec/spec_helper.rb