custom_emails 0.0.1

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 (64) hide show
  1. data/Rakefile +34 -0
  2. data/app/mailers/custom_emails/mailer.rb +22 -0
  3. data/app/models/custom_emails/email.rb +15 -0
  4. data/app/models/custom_emails/email_kind.rb +8 -0
  5. data/db/migrate/20131018141445_create_custom_emails_emails.rb +17 -0
  6. data/db/migrate/20131018143726_create_custom_emails_email_kinds.rb +17 -0
  7. data/lib/custom_emails.rb +12 -0
  8. data/lib/custom_emails/engine.rb +5 -0
  9. data/lib/custom_emails/models.rb +17 -0
  10. data/lib/custom_emails/orm/active_record.rb +1 -0
  11. data/lib/custom_emails/version.rb +3 -0
  12. data/lib/generators/custom_emails/install_generator.rb +11 -0
  13. data/lib/generators/templates/custom_emails.rb +21 -0
  14. data/lib/tasks/custom_emails_tasks.rake +4 -0
  15. data/test/custom_emails_test.rb +7 -0
  16. data/test/dummy/README.rdoc +28 -0
  17. data/test/dummy/Rakefile +6 -0
  18. data/test/dummy/app/assets/javascripts/application.js +13 -0
  19. data/test/dummy/app/assets/stylesheets/application.css +13 -0
  20. data/test/dummy/app/controllers/application_controller.rb +5 -0
  21. data/test/dummy/app/helpers/application_helper.rb +2 -0
  22. data/test/dummy/app/models/example.rb +2 -0
  23. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  24. data/test/dummy/bin/bundle +3 -0
  25. data/test/dummy/bin/rails +4 -0
  26. data/test/dummy/bin/rake +4 -0
  27. data/test/dummy/config.ru +4 -0
  28. data/test/dummy/config/application.rb +23 -0
  29. data/test/dummy/config/boot.rb +5 -0
  30. data/test/dummy/config/database.yml +25 -0
  31. data/test/dummy/config/environment.rb +5 -0
  32. data/test/dummy/config/environments/development.rb +29 -0
  33. data/test/dummy/config/environments/production.rb +80 -0
  34. data/test/dummy/config/environments/test.rb +36 -0
  35. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  36. data/test/dummy/config/initializers/custom_emails.rb +10 -0
  37. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  38. data/test/dummy/config/initializers/inflections.rb +16 -0
  39. data/test/dummy/config/initializers/mime_types.rb +5 -0
  40. data/test/dummy/config/initializers/secret_token.rb +12 -0
  41. data/test/dummy/config/initializers/session_store.rb +3 -0
  42. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  43. data/test/dummy/config/locales/en.yml +23 -0
  44. data/test/dummy/config/routes.rb +56 -0
  45. data/test/dummy/db/development.sqlite3 +0 -0
  46. data/test/dummy/db/migrate/20131018164626_create_examples.rb +6 -0
  47. data/test/dummy/db/schema.rb +44 -0
  48. data/test/dummy/db/test.sqlite3 +0 -0
  49. data/test/dummy/log/development.log +1201 -0
  50. data/test/dummy/log/test.log +3167 -0
  51. data/test/dummy/public/404.html +58 -0
  52. data/test/dummy/public/422.html +58 -0
  53. data/test/dummy/public/500.html +57 -0
  54. data/test/dummy/public/favicon.ico +0 -0
  55. data/test/fixtures/custom_emails/email_kinds.yml +11 -0
  56. data/test/fixtures/custom_emails/emails.yml +0 -0
  57. data/test/integration/navigation_test.rb +10 -0
  58. data/test/lib/models_test.rb +53 -0
  59. data/test/mailers/custom_emails/mailer_test.rb +47 -0
  60. data/test/models/custom_emails/email_kind_test.rb +9 -0
  61. data/test/models/custom_emails/email_test.rb +42 -0
  62. data/test/test_helper.rb +16 -0
  63. data/test/test_models.rb +3 -0
  64. metadata +211 -0
@@ -0,0 +1,58 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The page you were looking for doesn't exist (404)</title>
5
+ <style>
6
+ body {
7
+ background-color: #EFEFEF;
8
+ color: #2E2F30;
9
+ text-align: center;
10
+ font-family: arial, sans-serif;
11
+ }
12
+
13
+ div.dialog {
14
+ width: 25em;
15
+ margin: 4em auto 0 auto;
16
+ border: 1px solid #CCC;
17
+ border-right-color: #999;
18
+ border-left-color: #999;
19
+ border-bottom-color: #BBB;
20
+ border-top: #B00100 solid 4px;
21
+ border-top-left-radius: 9px;
22
+ border-top-right-radius: 9px;
23
+ background-color: white;
24
+ padding: 7px 4em 0 4em;
25
+ }
26
+
27
+ h1 {
28
+ font-size: 100%;
29
+ color: #730E15;
30
+ line-height: 1.5em;
31
+ }
32
+
33
+ body > p {
34
+ width: 33em;
35
+ margin: 0 auto 1em;
36
+ padding: 1em 0;
37
+ background-color: #F7F7F7;
38
+ border: 1px solid #CCC;
39
+ border-right-color: #999;
40
+ border-bottom-color: #999;
41
+ border-bottom-left-radius: 4px;
42
+ border-bottom-right-radius: 4px;
43
+ border-top-color: #DADADA;
44
+ color: #666;
45
+ box-shadow:0 3px 8px rgba(50, 50, 50, 0.17);
46
+ }
47
+ </style>
48
+ </head>
49
+
50
+ <body>
51
+ <!-- This file lives in public/404.html -->
52
+ <div class="dialog">
53
+ <h1>The page you were looking for doesn't exist.</h1>
54
+ <p>You may have mistyped the address or the page may have moved.</p>
55
+ </div>
56
+ <p>If you are the application owner check the logs for more information.</p>
57
+ </body>
58
+ </html>
@@ -0,0 +1,58 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The change you wanted was rejected (422)</title>
5
+ <style>
6
+ body {
7
+ background-color: #EFEFEF;
8
+ color: #2E2F30;
9
+ text-align: center;
10
+ font-family: arial, sans-serif;
11
+ }
12
+
13
+ div.dialog {
14
+ width: 25em;
15
+ margin: 4em auto 0 auto;
16
+ border: 1px solid #CCC;
17
+ border-right-color: #999;
18
+ border-left-color: #999;
19
+ border-bottom-color: #BBB;
20
+ border-top: #B00100 solid 4px;
21
+ border-top-left-radius: 9px;
22
+ border-top-right-radius: 9px;
23
+ background-color: white;
24
+ padding: 7px 4em 0 4em;
25
+ }
26
+
27
+ h1 {
28
+ font-size: 100%;
29
+ color: #730E15;
30
+ line-height: 1.5em;
31
+ }
32
+
33
+ body > p {
34
+ width: 33em;
35
+ margin: 0 auto 1em;
36
+ padding: 1em 0;
37
+ background-color: #F7F7F7;
38
+ border: 1px solid #CCC;
39
+ border-right-color: #999;
40
+ border-bottom-color: #999;
41
+ border-bottom-left-radius: 4px;
42
+ border-bottom-right-radius: 4px;
43
+ border-top-color: #DADADA;
44
+ color: #666;
45
+ box-shadow:0 3px 8px rgba(50, 50, 50, 0.17);
46
+ }
47
+ </style>
48
+ </head>
49
+
50
+ <body>
51
+ <!-- This file lives in public/422.html -->
52
+ <div class="dialog">
53
+ <h1>The change you wanted was rejected.</h1>
54
+ <p>Maybe you tried to change something you didn't have access to.</p>
55
+ </div>
56
+ <p>If you are the application owner check the logs for more information.</p>
57
+ </body>
58
+ </html>
@@ -0,0 +1,57 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>We're sorry, but something went wrong (500)</title>
5
+ <style>
6
+ body {
7
+ background-color: #EFEFEF;
8
+ color: #2E2F30;
9
+ text-align: center;
10
+ font-family: arial, sans-serif;
11
+ }
12
+
13
+ div.dialog {
14
+ width: 25em;
15
+ margin: 4em auto 0 auto;
16
+ border: 1px solid #CCC;
17
+ border-right-color: #999;
18
+ border-left-color: #999;
19
+ border-bottom-color: #BBB;
20
+ border-top: #B00100 solid 4px;
21
+ border-top-left-radius: 9px;
22
+ border-top-right-radius: 9px;
23
+ background-color: white;
24
+ padding: 7px 4em 0 4em;
25
+ }
26
+
27
+ h1 {
28
+ font-size: 100%;
29
+ color: #730E15;
30
+ line-height: 1.5em;
31
+ }
32
+
33
+ body > p {
34
+ width: 33em;
35
+ margin: 0 auto 1em;
36
+ padding: 1em 0;
37
+ background-color: #F7F7F7;
38
+ border: 1px solid #CCC;
39
+ border-right-color: #999;
40
+ border-bottom-color: #999;
41
+ border-bottom-left-radius: 4px;
42
+ border-bottom-right-radius: 4px;
43
+ border-top-color: #DADADA;
44
+ color: #666;
45
+ box-shadow:0 3px 8px rgba(50, 50, 50, 0.17);
46
+ }
47
+ </style>
48
+ </head>
49
+
50
+ <body>
51
+ <!-- This file lives in public/500.html -->
52
+ <div class="dialog">
53
+ <h1>We're sorry, but something went wrong.</h1>
54
+ </div>
55
+ <p>If you are the application owner check the logs for more information.</p>
56
+ </body>
57
+ </html>
File without changes
@@ -0,0 +1,11 @@
1
+ # Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
2
+
3
+ # This model initially had no columns defined. If you add columns to the
4
+ # model remove the '{}' from the fixture names and add the columns immediately
5
+ # below each fixture, per the syntax in the comments below
6
+ #
7
+ one: {}
8
+ # column: value
9
+ #
10
+ two: {}
11
+ # column: value
File without changes
@@ -0,0 +1,10 @@
1
+ require 'test_helper'
2
+
3
+ class NavigationTest < ActionDispatch::IntegrationTest
4
+ fixtures :all
5
+
6
+ # test "the truth" do
7
+ # assert true
8
+ # end
9
+ end
10
+
@@ -0,0 +1,53 @@
1
+ require 'test_models'
2
+
3
+ class ModelsTest < ActiveSupport::TestCase
4
+ def emailable
5
+ Emailable.new
6
+ end
7
+
8
+ def same_hashes(h1, h2)
9
+ h1.size == h2.size && h2.all?{ |k, v| h1[k].size == v.size && v.all?{ |e| h1[k].include?(e) } }
10
+ end
11
+
12
+ test "models using has_custom_emails ends with an :emails relation" do
13
+ assert emailable.respond_to?(:emails)
14
+ end
15
+
16
+ test "models using has_custom_emails ends with an #emails_by_kind method" do
17
+ assert emailable.respond_to?(:emails_by_kind)
18
+ end
19
+
20
+ test "the #emails_by_kind method returns an Hash" do
21
+ assert emailable.emails_by_kind.kind_of?(Hash)
22
+ end
23
+
24
+ test "the #emails_by_kind method returns an Hash of emails grouped by kind" do
25
+ e = emailable
26
+ e.save
27
+
28
+ kind_1 = CustomEmails::EmailKind.create(name: :kind_1)
29
+ kind_2 = CustomEmails::EmailKind.create(name: :kind_2)
30
+ email_1 = e.emails.create(kind: kind_1, locale: :en, subject: 'Fake subject', content_text: 'Fake body')
31
+ email_2 = e.emails.create(kind: kind_2, locale: :en, subject: 'Fake subject 2', content_text: 'Fake body 2')
32
+
33
+ subject = e.emails_by_kind
34
+ expected_hash = {kind_1 => [email_1], kind_2 => [email_2]}
35
+
36
+ assert same_hashes(expected_hash, subject)
37
+ end
38
+
39
+ test "the #emails_by_kind method accepts an optional argument to filter by locale" do
40
+ e = emailable
41
+ e.save
42
+
43
+ kind_1 = CustomEmails::EmailKind.create(name: :kind_1)
44
+ kind_2 = CustomEmails::EmailKind.create(name: :kind_2)
45
+ email_1 = e.emails.create(kind: kind_1, locale: :en, subject: 'Fake subject', content_text: 'Fake body')
46
+ email_2 = e.emails.create(kind: kind_2, locale: :fr, subject: 'Faux subjet 2', content_text: 'Faux corps 2')
47
+
48
+ subject = e.emails_by_kind(:fr)
49
+ expected_hash = {kind_2 => [email_2]}
50
+
51
+ assert same_hashes(expected_hash, subject)
52
+ end
53
+ end
@@ -0,0 +1,47 @@
1
+ require 'test_helper'
2
+
3
+ class MailerTest < ActionMailer::TestCase
4
+ def setup
5
+ # Empty deliveries
6
+ ActionMailer::Base.deliveries = []
7
+ @sender_email = 'sender@example.org'
8
+ CustomEmails.default_from = @sender_email
9
+ end
10
+
11
+ def last_email
12
+ ActionMailer::Base.deliveries.last
13
+ end
14
+
15
+ test 'email content_text is used when custom_email_to is called' do
16
+ kind = CustomEmails::EmailKind.create(name: :kind_1)
17
+ email = CustomEmails::Email.create(kind: kind, locale: :en, subject: 'Hello world!', content_text: 'Good luck...')
18
+ mail = CustomEmails::Mailer.custom_email_to('test@example.com', :kind_1)
19
+ mail.deliver
20
+
21
+ assert(last_email.subject == 'Hello world!')
22
+ assert(last_email.body == 'Good luck...')
23
+ assert(last_email.from.include?(@sender_email))
24
+ assert(last_email.to.include?('test@example.com'))
25
+ end
26
+
27
+ test 'custom_email_to raises an exception if there is no matching email' do
28
+ kind = nil
29
+
30
+ # Missing kind
31
+ assert_raises(ActiveRecord::RecordNotFound) do
32
+ CustomEmails::Mailer.custom_email_to('test@example.com', :kind_1)
33
+ end
34
+
35
+ # No emails of this kind
36
+ assert_raises(ActiveRecord::RecordNotFound) do
37
+ kind = CustomEmails::EmailKind.create(name: :kind_1)
38
+ CustomEmails::Mailer.custom_email_to('test@example.com', :kind_1)
39
+ end
40
+
41
+ # Wrong locale
42
+ assert_raises(ActiveRecord::RecordNotFound) do
43
+ email = CustomEmails::Email.create(kind: kind, locale: :fr, subject: 'Hello world!', content_text: 'Good luck...')
44
+ CustomEmails::Mailer.custom_email_to('test@example.com', :kind_1)
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,9 @@
1
+ require 'test_helper'
2
+
3
+ module CustomEmails
4
+ class EmailKindTest < ActiveSupport::TestCase
5
+ # test "the truth" do
6
+ # assert true
7
+ # end
8
+ end
9
+ end
@@ -0,0 +1,42 @@
1
+ require 'test_helper'
2
+
3
+ module CustomEmails
4
+ class EmailTest < ActiveSupport::TestCase
5
+ test "email needs kind, locale, subject and content_text to be valid" do
6
+ kind = EmailKind.new(name: 'Friend notification')
7
+ email = Email.new(kind: kind, locale: 'fr', subject: 'dummy subject', content_text: 'Hello world!')
8
+ assert email.valid?
9
+
10
+ email.locale = nil
11
+ refute email.valid?
12
+ email.locale = 'fr'
13
+
14
+ email.subject = nil
15
+ refute email.valid?
16
+ email.subject = 'dummy subject'
17
+
18
+ email.kind = nil
19
+ refute email.valid?
20
+ email.kind = kind
21
+
22
+ email.content_text = nil
23
+ refute email.valid?
24
+ end
25
+
26
+ test "email is scoped to an emailable model" do
27
+ email = Email.new
28
+ assert email.respond_to?(:emailable)
29
+ end
30
+
31
+ test "email has a #to method that produces a Mail::Message" do
32
+ CustomEmails.default_from = 'sender@example.org'
33
+
34
+ email = Email.new
35
+ assert email.respond_to?(:to)
36
+
37
+ subject = email.to('foo@bar.org')
38
+ assert subject.kind_of?(Mail::Message)
39
+ assert subject.deliver
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,16 @@
1
+ # Configure Rails Environment
2
+ ENV['RAILS_ENV'] = 'test'
3
+
4
+ require File.expand_path('../dummy/config/environment.rb', __FILE__)
5
+ require 'rails/test_help'
6
+ require 'pry'
7
+
8
+ Rails.backtrace_cleaner.remove_silencers!
9
+
10
+ # Load support files
11
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
12
+
13
+ # Load fixtures from the engine
14
+ if ActiveSupport::TestCase.method_defined?(:fixture_path=)
15
+ ActiveSupport::TestCase.fixture_path = File.expand_path('../fixtures', __FILE__)
16
+ end
@@ -0,0 +1,3 @@
1
+ class Emailable < Example
2
+ has_custom_emails
3
+ end
metadata ADDED
@@ -0,0 +1,211 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: custom_emails
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Nicolas Zermati
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-10-21 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rails
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: 4.0.0
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: 4.0.0
30
+ - !ruby/object:Gem::Dependency
31
+ name: sqlite3
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :development
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: pry
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ description: CustomEmails add a few models and helpers to allow email content administration.
63
+ email:
64
+ - nz@synbioz.com
65
+ executables: []
66
+ extensions: []
67
+ extra_rdoc_files: []
68
+ files:
69
+ - app/models/custom_emails/email.rb
70
+ - app/models/custom_emails/email_kind.rb
71
+ - app/mailers/custom_emails/mailer.rb
72
+ - db/migrate/20131018143726_create_custom_emails_email_kinds.rb
73
+ - db/migrate/20131018141445_create_custom_emails_emails.rb
74
+ - lib/tasks/custom_emails_tasks.rake
75
+ - lib/custom_emails.rb
76
+ - lib/custom_emails/version.rb
77
+ - lib/custom_emails/engine.rb
78
+ - lib/custom_emails/orm/active_record.rb
79
+ - lib/custom_emails/models.rb
80
+ - lib/generators/templates/custom_emails.rb
81
+ - lib/generators/custom_emails/install_generator.rb
82
+ - Rakefile
83
+ - test/test_models.rb
84
+ - test/models/custom_emails/email_test.rb
85
+ - test/models/custom_emails/email_kind_test.rb
86
+ - test/custom_emails_test.rb
87
+ - test/test_helper.rb
88
+ - test/lib/models_test.rb
89
+ - test/integration/navigation_test.rb
90
+ - test/mailers/custom_emails/mailer_test.rb
91
+ - test/fixtures/custom_emails/email_kinds.yml
92
+ - test/fixtures/custom_emails/emails.yml
93
+ - test/dummy/app/assets/javascripts/application.js
94
+ - test/dummy/app/assets/stylesheets/application.css
95
+ - test/dummy/app/models/example.rb
96
+ - test/dummy/app/controllers/application_controller.rb
97
+ - test/dummy/app/views/layouts/application.html.erb
98
+ - test/dummy/app/helpers/application_helper.rb
99
+ - test/dummy/config.ru
100
+ - test/dummy/README.rdoc
101
+ - test/dummy/log/test.log
102
+ - test/dummy/log/development.log
103
+ - test/dummy/public/422.html
104
+ - test/dummy/public/404.html
105
+ - test/dummy/public/500.html
106
+ - test/dummy/public/favicon.ico
107
+ - test/dummy/bin/rake
108
+ - test/dummy/bin/bundle
109
+ - test/dummy/bin/rails
110
+ - test/dummy/config/initializers/backtrace_silencers.rb
111
+ - test/dummy/config/initializers/secret_token.rb
112
+ - test/dummy/config/initializers/wrap_parameters.rb
113
+ - test/dummy/config/initializers/filter_parameter_logging.rb
114
+ - test/dummy/config/initializers/custom_emails.rb
115
+ - test/dummy/config/initializers/session_store.rb
116
+ - test/dummy/config/initializers/mime_types.rb
117
+ - test/dummy/config/initializers/inflections.rb
118
+ - test/dummy/config/environments/development.rb
119
+ - test/dummy/config/environments/test.rb
120
+ - test/dummy/config/environments/production.rb
121
+ - test/dummy/config/environment.rb
122
+ - test/dummy/config/database.yml
123
+ - test/dummy/config/boot.rb
124
+ - test/dummy/config/routes.rb
125
+ - test/dummy/config/application.rb
126
+ - test/dummy/config/locales/en.yml
127
+ - test/dummy/db/development.sqlite3
128
+ - test/dummy/db/migrate/20131018164626_create_examples.rb
129
+ - test/dummy/db/test.sqlite3
130
+ - test/dummy/db/schema.rb
131
+ - test/dummy/Rakefile
132
+ homepage: http://www.synbioz.com/
133
+ licenses: []
134
+ post_install_message:
135
+ rdoc_options: []
136
+ require_paths:
137
+ - lib
138
+ required_ruby_version: !ruby/object:Gem::Requirement
139
+ none: false
140
+ requirements:
141
+ - - ! '>='
142
+ - !ruby/object:Gem::Version
143
+ version: '0'
144
+ segments:
145
+ - 0
146
+ hash: -896741769331279035
147
+ required_rubygems_version: !ruby/object:Gem::Requirement
148
+ none: false
149
+ requirements:
150
+ - - ! '>='
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ segments:
154
+ - 0
155
+ hash: -896741769331279035
156
+ requirements: []
157
+ rubyforge_project:
158
+ rubygems_version: 1.8.23
159
+ signing_key:
160
+ specification_version: 3
161
+ summary: CustomEmails add a few models and helpers to allow email content administration.
162
+ test_files:
163
+ - test/test_models.rb
164
+ - test/models/custom_emails/email_test.rb
165
+ - test/models/custom_emails/email_kind_test.rb
166
+ - test/custom_emails_test.rb
167
+ - test/test_helper.rb
168
+ - test/lib/models_test.rb
169
+ - test/integration/navigation_test.rb
170
+ - test/mailers/custom_emails/mailer_test.rb
171
+ - test/fixtures/custom_emails/email_kinds.yml
172
+ - test/fixtures/custom_emails/emails.yml
173
+ - test/dummy/app/assets/javascripts/application.js
174
+ - test/dummy/app/assets/stylesheets/application.css
175
+ - test/dummy/app/models/example.rb
176
+ - test/dummy/app/controllers/application_controller.rb
177
+ - test/dummy/app/views/layouts/application.html.erb
178
+ - test/dummy/app/helpers/application_helper.rb
179
+ - test/dummy/config.ru
180
+ - test/dummy/README.rdoc
181
+ - test/dummy/log/test.log
182
+ - test/dummy/log/development.log
183
+ - test/dummy/public/422.html
184
+ - test/dummy/public/404.html
185
+ - test/dummy/public/500.html
186
+ - test/dummy/public/favicon.ico
187
+ - test/dummy/bin/rake
188
+ - test/dummy/bin/bundle
189
+ - test/dummy/bin/rails
190
+ - test/dummy/config/initializers/backtrace_silencers.rb
191
+ - test/dummy/config/initializers/secret_token.rb
192
+ - test/dummy/config/initializers/wrap_parameters.rb
193
+ - test/dummy/config/initializers/filter_parameter_logging.rb
194
+ - test/dummy/config/initializers/custom_emails.rb
195
+ - test/dummy/config/initializers/session_store.rb
196
+ - test/dummy/config/initializers/mime_types.rb
197
+ - test/dummy/config/initializers/inflections.rb
198
+ - test/dummy/config/environments/development.rb
199
+ - test/dummy/config/environments/test.rb
200
+ - test/dummy/config/environments/production.rb
201
+ - test/dummy/config/environment.rb
202
+ - test/dummy/config/database.yml
203
+ - test/dummy/config/boot.rb
204
+ - test/dummy/config/routes.rb
205
+ - test/dummy/config/application.rb
206
+ - test/dummy/config/locales/en.yml
207
+ - test/dummy/db/development.sqlite3
208
+ - test/dummy/db/migrate/20131018164626_create_examples.rb
209
+ - test/dummy/db/test.sqlite3
210
+ - test/dummy/db/schema.rb
211
+ - test/dummy/Rakefile