actionmailer 4.2.11 → 5.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.
Potentially problematic release.
This version of actionmailer might be problematic. Click here for more details.
- checksums.yaml +5 -5
- data/CHANGELOG.md +19 -138
- data/MIT-LICENSE +1 -1
- data/README.rdoc +2 -3
- data/lib/action_mailer.rb +11 -10
- data/lib/action_mailer/base.rb +230 -195
- data/lib/action_mailer/collector.rb +3 -3
- data/lib/action_mailer/delivery_job.rb +24 -3
- data/lib/action_mailer/delivery_methods.rb +11 -8
- data/lib/action_mailer/gem_version.rb +4 -4
- data/lib/action_mailer/inline_preview_interceptor.rb +8 -12
- data/lib/action_mailer/log_subscriber.rb +7 -7
- data/lib/action_mailer/mail_helper.rb +14 -2
- data/lib/action_mailer/message_delivery.rb +51 -41
- data/lib/action_mailer/parameterized.rb +152 -0
- data/lib/action_mailer/preview.rb +20 -19
- data/lib/action_mailer/railtie.rb +23 -13
- data/lib/action_mailer/rescuable.rb +27 -0
- data/lib/action_mailer/test_case.rb +26 -10
- data/lib/action_mailer/test_helper.rb +53 -2
- data/lib/action_mailer/version.rb +1 -1
- data/lib/rails/generators/mailer/USAGE +3 -3
- data/lib/rails/generators/mailer/mailer_generator.rb +21 -4
- data/lib/rails/generators/mailer/templates/application_mailer.rb +3 -1
- data/lib/rails/generators/mailer/templates/mailer.rb +2 -2
- metadata +15 -19
@@ -1,4 +1,4 @@
|
|
1
|
-
require
|
1
|
+
require "active_support/descendants_tracker"
|
2
2
|
|
3
3
|
module ActionMailer
|
4
4
|
module Previews #:nodoc:
|
@@ -21,7 +21,7 @@ module ActionMailer
|
|
21
21
|
|
22
22
|
# :nodoc:
|
23
23
|
mattr_accessor :preview_interceptors, instance_writer: false
|
24
|
-
self.preview_interceptors = []
|
24
|
+
self.preview_interceptors = [ActionMailer::InlinePreviewInterceptor]
|
25
25
|
end
|
26
26
|
|
27
27
|
module ClassMethods
|
@@ -34,7 +34,8 @@ module ActionMailer
|
|
34
34
|
# Either a class or a string can be passed in as the Interceptor. If a
|
35
35
|
# string is passed in it will be <tt>constantize</tt>d.
|
36
36
|
def register_preview_interceptor(interceptor)
|
37
|
-
preview_interceptor =
|
37
|
+
preview_interceptor = \
|
38
|
+
case interceptor
|
38
39
|
when String, Symbol
|
39
40
|
interceptor.to_s.camelize.constantize
|
40
41
|
else
|
@@ -52,7 +53,7 @@ module ActionMailer
|
|
52
53
|
extend ActiveSupport::DescendantsTracker
|
53
54
|
|
54
55
|
class << self
|
55
|
-
# Returns all mailer preview classes
|
56
|
+
# Returns all mailer preview classes.
|
56
57
|
def all
|
57
58
|
load_previews if descendants.empty?
|
58
59
|
descendants
|
@@ -62,53 +63,53 @@ module ActionMailer
|
|
62
63
|
# interceptors will be informed so that they can transform the message
|
63
64
|
# as they would if the mail was actually being delivered.
|
64
65
|
def call(email)
|
65
|
-
preview =
|
66
|
+
preview = new
|
66
67
|
message = preview.public_send(email)
|
67
68
|
inform_preview_interceptors(message)
|
68
69
|
message
|
69
70
|
end
|
70
71
|
|
71
|
-
# Returns all of the available email previews
|
72
|
+
# Returns all of the available email previews.
|
72
73
|
def emails
|
73
74
|
public_instance_methods(false).map(&:to_s).sort
|
74
75
|
end
|
75
76
|
|
76
|
-
# Returns true if the email exists
|
77
|
+
# Returns true if the email exists.
|
77
78
|
def email_exists?(email)
|
78
79
|
emails.include?(email)
|
79
80
|
end
|
80
81
|
|
81
|
-
# Returns true if the preview exists
|
82
|
+
# Returns true if the preview exists.
|
82
83
|
def exists?(preview)
|
83
|
-
all.any?{ |p| p.preview_name == preview }
|
84
|
+
all.any? { |p| p.preview_name == preview }
|
84
85
|
end
|
85
86
|
|
86
|
-
# Find a mailer preview by its underscored class name
|
87
|
+
# Find a mailer preview by its underscored class name.
|
87
88
|
def find(preview)
|
88
|
-
all.find{ |p| p.preview_name == preview }
|
89
|
+
all.find { |p| p.preview_name == preview }
|
89
90
|
end
|
90
91
|
|
91
|
-
# Returns the underscored name of the mailer preview without the suffix
|
92
|
+
# Returns the underscored name of the mailer preview without the suffix.
|
92
93
|
def preview_name
|
93
|
-
name.sub(/Preview$/,
|
94
|
+
name.sub(/Preview$/, "").underscore
|
94
95
|
end
|
95
96
|
|
96
|
-
|
97
|
-
def load_previews
|
97
|
+
private
|
98
|
+
def load_previews
|
98
99
|
if preview_path
|
99
|
-
Dir["#{preview_path}/**/*_preview.rb"].each{ |file| require_dependency file }
|
100
|
+
Dir["#{preview_path}/**/*_preview.rb"].each { |file| require_dependency file }
|
100
101
|
end
|
101
102
|
end
|
102
103
|
|
103
|
-
def preview_path
|
104
|
+
def preview_path
|
104
105
|
Base.preview_path
|
105
106
|
end
|
106
107
|
|
107
|
-
def show_previews
|
108
|
+
def show_previews
|
108
109
|
Base.show_previews
|
109
110
|
end
|
110
111
|
|
111
|
-
def inform_preview_interceptors(message)
|
112
|
+
def inform_preview_interceptors(message)
|
112
113
|
Base.preview_interceptors.each do |interceptor|
|
113
114
|
interceptor.previewing_email(message)
|
114
115
|
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
require
|
1
|
+
require "active_job/railtie"
|
2
2
|
require "action_mailer"
|
3
3
|
require "rails"
|
4
4
|
require "abstract_controller/railties/routes_helpers"
|
@@ -16,13 +16,19 @@ module ActionMailer
|
|
16
16
|
paths = app.config.paths
|
17
17
|
options = app.config.action_mailer
|
18
18
|
|
19
|
+
if app.config.force_ssl
|
20
|
+
options.default_url_options ||= {}
|
21
|
+
options.default_url_options[:protocol] ||= "https"
|
22
|
+
end
|
23
|
+
|
19
24
|
options.assets_dir ||= paths["public"].first
|
20
25
|
options.javascripts_dir ||= paths["public/javascripts"].first
|
21
26
|
options.stylesheets_dir ||= paths["public/stylesheets"].first
|
22
27
|
options.show_previews = Rails.env.development? if options.show_previews.nil?
|
28
|
+
options.cache_store ||= Rails.cache
|
23
29
|
|
24
30
|
if options.show_previews
|
25
|
-
options.preview_path
|
31
|
+
options.preview_path ||= defined?(Rails.root) ? "#{Rails.root}/test/mailers/previews" : nil
|
26
32
|
end
|
27
33
|
|
28
34
|
# make sure readers methods get compiled
|
@@ -38,15 +44,10 @@ module ActionMailer
|
|
38
44
|
register_preview_interceptors(options.delete(:preview_interceptors))
|
39
45
|
register_observers(options.delete(:observers))
|
40
46
|
|
41
|
-
options.each { |k,v| send("#{k}=", v) }
|
42
|
-
|
43
|
-
if options.show_previews
|
44
|
-
app.routes.append do
|
45
|
-
get '/rails/mailers' => "rails/mailers#index"
|
46
|
-
get '/rails/mailers/*path' => "rails/mailers#preview"
|
47
|
-
end
|
48
|
-
end
|
47
|
+
options.each { |k, v| send("#{k}=", v) }
|
49
48
|
end
|
49
|
+
|
50
|
+
ActiveSupport.on_load(:action_dispatch_integration_test) { include ActionMailer::TestCase::ClearTestDeliveries }
|
50
51
|
end
|
51
52
|
|
52
53
|
initializer "action_mailer.compile_config_methods" do
|
@@ -55,9 +56,18 @@ module ActionMailer
|
|
55
56
|
end
|
56
57
|
end
|
57
58
|
|
58
|
-
config.after_initialize do
|
59
|
-
|
60
|
-
|
59
|
+
config.after_initialize do |app|
|
60
|
+
options = app.config.action_mailer
|
61
|
+
|
62
|
+
if options.show_previews
|
63
|
+
app.routes.prepend do
|
64
|
+
get "/rails/mailers" => "rails/mailers#index", internal: true
|
65
|
+
get "/rails/mailers/*path" => "rails/mailers#preview", internal: true
|
66
|
+
end
|
67
|
+
|
68
|
+
if options.preview_path
|
69
|
+
ActiveSupport::Dependencies.autoload_paths << options.preview_path
|
70
|
+
end
|
61
71
|
end
|
62
72
|
end
|
63
73
|
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module ActionMailer #:nodoc:
|
2
|
+
# Provides `rescue_from` for mailers. Wraps mailer action processing,
|
3
|
+
# mail job processing, and mail delivery.
|
4
|
+
module Rescuable
|
5
|
+
extend ActiveSupport::Concern
|
6
|
+
include ActiveSupport::Rescuable
|
7
|
+
|
8
|
+
class_methods do
|
9
|
+
def handle_exception(exception) #:nodoc:
|
10
|
+
rescue_with_handler(exception) || raise(exception)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def handle_exceptions #:nodoc:
|
15
|
+
yield
|
16
|
+
rescue => exception
|
17
|
+
rescue_with_handler(exception) || raise
|
18
|
+
end
|
19
|
+
|
20
|
+
private
|
21
|
+
def process(*)
|
22
|
+
handle_exceptions do
|
23
|
+
super
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -1,16 +1,33 @@
|
|
1
|
-
require
|
2
|
-
require
|
1
|
+
require "active_support/test_case"
|
2
|
+
require "rails-dom-testing"
|
3
3
|
|
4
4
|
module ActionMailer
|
5
5
|
class NonInferrableMailerError < ::StandardError
|
6
6
|
def initialize(name)
|
7
|
-
super "Unable to determine the mailer to test from #{name}. "
|
8
|
-
"You'll need to specify it using tests YourMailer in your "
|
7
|
+
super "Unable to determine the mailer to test from #{name}. " \
|
8
|
+
"You'll need to specify it using tests YourMailer in your " \
|
9
9
|
"test case definition"
|
10
10
|
end
|
11
11
|
end
|
12
12
|
|
13
13
|
class TestCase < ActiveSupport::TestCase
|
14
|
+
module ClearTestDeliveries
|
15
|
+
extend ActiveSupport::Concern
|
16
|
+
|
17
|
+
included do
|
18
|
+
setup :clear_test_deliveries
|
19
|
+
teardown :clear_test_deliveries
|
20
|
+
end
|
21
|
+
|
22
|
+
private
|
23
|
+
|
24
|
+
def clear_test_deliveries
|
25
|
+
if ActionMailer::Base.delivery_method == :test
|
26
|
+
ActionMailer::Base.deliveries.clear
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
14
31
|
module Behavior
|
15
32
|
extend ActiveSupport::Concern
|
16
33
|
|
@@ -24,6 +41,7 @@ module ActionMailer
|
|
24
41
|
setup :initialize_test_deliveries
|
25
42
|
setup :set_expected_mail
|
26
43
|
teardown :restore_test_deliveries
|
44
|
+
ActiveSupport.run_load_hooks(:action_mailer_test_case, self)
|
27
45
|
end
|
28
46
|
|
29
47
|
module ClassMethods
|
@@ -39,7 +57,7 @@ module ActionMailer
|
|
39
57
|
end
|
40
58
|
|
41
59
|
def mailer_class
|
42
|
-
if mailer =
|
60
|
+
if mailer = _mailer_class
|
43
61
|
mailer
|
44
62
|
else
|
45
63
|
tests determine_default_mailer(name)
|
@@ -55,7 +73,7 @@ module ActionMailer
|
|
55
73
|
end
|
56
74
|
end
|
57
75
|
|
58
|
-
|
76
|
+
private
|
59
77
|
|
60
78
|
def initialize_test_deliveries
|
61
79
|
set_delivery_method :test
|
@@ -82,11 +100,9 @@ module ActionMailer
|
|
82
100
|
def set_expected_mail
|
83
101
|
@expected = Mail.new
|
84
102
|
@expected.content_type ["text", "plain", { "charset" => charset }]
|
85
|
-
@expected.mime_version =
|
103
|
+
@expected.mime_version = "1.0"
|
86
104
|
end
|
87
105
|
|
88
|
-
private
|
89
|
-
|
90
106
|
def charset
|
91
107
|
"UTF-8"
|
92
108
|
end
|
@@ -96,7 +112,7 @@ module ActionMailer
|
|
96
112
|
end
|
97
113
|
|
98
114
|
def read_fixture(action)
|
99
|
-
IO.readlines(File.join(Rails.root,
|
115
|
+
IO.readlines(File.join(Rails.root, "test", "fixtures", self.class.mailer_class.name.underscore, action))
|
100
116
|
end
|
101
117
|
end
|
102
118
|
|
@@ -1,7 +1,11 @@
|
|
1
|
+
require "active_job"
|
2
|
+
|
1
3
|
module ActionMailer
|
2
4
|
# Provides helper methods for testing Action Mailer, including #assert_emails
|
3
|
-
# and #assert_no_emails
|
5
|
+
# and #assert_no_emails.
|
4
6
|
module TestHelper
|
7
|
+
include ActiveJob::TestHelper
|
8
|
+
|
5
9
|
# Asserts that the number of emails sent matches the given number.
|
6
10
|
#
|
7
11
|
# def test_emails
|
@@ -36,7 +40,7 @@ module ActionMailer
|
|
36
40
|
end
|
37
41
|
end
|
38
42
|
|
39
|
-
#
|
43
|
+
# Asserts that no emails have been sent.
|
40
44
|
#
|
41
45
|
# def test_emails
|
42
46
|
# assert_no_emails
|
@@ -58,5 +62,52 @@ module ActionMailer
|
|
58
62
|
def assert_no_emails(&block)
|
59
63
|
assert_emails 0, &block
|
60
64
|
end
|
65
|
+
|
66
|
+
# Asserts that the number of emails enqueued for later delivery matches
|
67
|
+
# the given number.
|
68
|
+
#
|
69
|
+
# def test_emails
|
70
|
+
# assert_enqueued_emails 0
|
71
|
+
# ContactMailer.welcome.deliver_later
|
72
|
+
# assert_enqueued_emails 1
|
73
|
+
# ContactMailer.welcome.deliver_later
|
74
|
+
# assert_enqueued_emails 2
|
75
|
+
# end
|
76
|
+
#
|
77
|
+
# If a block is passed, that block should cause the specified number of
|
78
|
+
# emails to be enqueued.
|
79
|
+
#
|
80
|
+
# def test_emails_again
|
81
|
+
# assert_enqueued_emails 1 do
|
82
|
+
# ContactMailer.welcome.deliver_later
|
83
|
+
# end
|
84
|
+
#
|
85
|
+
# assert_enqueued_emails 2 do
|
86
|
+
# ContactMailer.welcome.deliver_later
|
87
|
+
# ContactMailer.welcome.deliver_later
|
88
|
+
# end
|
89
|
+
# end
|
90
|
+
def assert_enqueued_emails(number, &block)
|
91
|
+
assert_enqueued_jobs number, only: [ ActionMailer::DeliveryJob, ActionMailer::Parameterized::DeliveryJob ], &block
|
92
|
+
end
|
93
|
+
|
94
|
+
# Asserts that no emails are enqueued for later delivery.
|
95
|
+
#
|
96
|
+
# def test_no_emails
|
97
|
+
# assert_no_enqueued_emails
|
98
|
+
# ContactMailer.welcome.deliver_later
|
99
|
+
# assert_enqueued_emails 1
|
100
|
+
# end
|
101
|
+
#
|
102
|
+
# If a block is provided, it should not cause any emails to be enqueued.
|
103
|
+
#
|
104
|
+
# def test_no_emails
|
105
|
+
# assert_no_enqueued_emails do
|
106
|
+
# # No emails should be enqueued from this block
|
107
|
+
# end
|
108
|
+
# end
|
109
|
+
def assert_no_enqueued_emails(&block)
|
110
|
+
assert_no_enqueued_jobs only: [ ActionMailer::DeliveryJob, ActionMailer::Parameterized::DeliveryJob ], &block
|
111
|
+
end
|
61
112
|
end
|
62
113
|
end
|
@@ -11,7 +11,7 @@ Example:
|
|
11
11
|
rails generate mailer Notifications signup forgot_password invoice
|
12
12
|
|
13
13
|
creates a Notifications mailer class, views, and test:
|
14
|
-
Mailer: app/mailers/
|
15
|
-
Views: app/views/
|
16
|
-
Test: test/mailers/
|
14
|
+
Mailer: app/mailers/notifications_mailer.rb
|
15
|
+
Views: app/views/notifications_mailer/signup.text.erb [...]
|
16
|
+
Test: test/mailers/notifications_mailer_test.rb
|
17
17
|
|
@@ -4,16 +4,33 @@ module Rails
|
|
4
4
|
source_root File.expand_path("../templates", __FILE__)
|
5
5
|
|
6
6
|
argument :actions, type: :array, default: [], banner: "method method"
|
7
|
-
|
7
|
+
|
8
|
+
check_class_collision suffix: "Mailer"
|
8
9
|
|
9
10
|
def create_mailer_file
|
10
|
-
template "mailer.rb", File.join(
|
11
|
-
|
12
|
-
|
11
|
+
template "mailer.rb", File.join("app/mailers", class_path, "#{file_name}_mailer.rb")
|
12
|
+
|
13
|
+
in_root do
|
14
|
+
if behavior == :invoke && !File.exist?(application_mailer_file_name)
|
15
|
+
template "application_mailer.rb", application_mailer_file_name
|
16
|
+
end
|
13
17
|
end
|
14
18
|
end
|
15
19
|
|
16
20
|
hook_for :template_engine, :test_framework
|
21
|
+
|
22
|
+
private
|
23
|
+
def file_name # :doc:
|
24
|
+
@_file_name ||= super.gsub(/_mailer/i, "")
|
25
|
+
end
|
26
|
+
|
27
|
+
def application_mailer_file_name
|
28
|
+
@_application_mailer_file_name ||= if mountable_engine?
|
29
|
+
"app/mailers/#{namespaced_path}/application_mailer.rb"
|
30
|
+
else
|
31
|
+
"app/mailers/application_mailer.rb"
|
32
|
+
end
|
33
|
+
end
|
17
34
|
end
|
18
35
|
end
|
19
36
|
end
|
@@ -1,11 +1,11 @@
|
|
1
1
|
<% module_namespacing do -%>
|
2
|
-
class <%= class_name %> < ApplicationMailer
|
2
|
+
class <%= class_name %>Mailer < ApplicationMailer
|
3
3
|
<% actions.each do |action| -%>
|
4
4
|
|
5
5
|
# Subject can be set in your I18n file at config/locales/en.yml
|
6
6
|
# with the following lookup:
|
7
7
|
#
|
8
|
-
# en.<%= file_path.tr("/",".")
|
8
|
+
# en.<%= file_path.tr("/",".") %>_mailer.<%= action %>.subject
|
9
9
|
#
|
10
10
|
def <%= action %>
|
11
11
|
@greeting = "Hi"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: actionmailer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 5.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Heinemeier Hansson
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-04-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: actionpack
|
@@ -16,42 +16,42 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - '='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 5.1.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - '='
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 5.1.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: actionview
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - '='
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 5.1.0
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - '='
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
40
|
+
version: 5.1.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: activejob
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - '='
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
47
|
+
version: 5.1.0
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - '='
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
54
|
+
version: 5.1.0
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: mail
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -78,20 +78,14 @@ dependencies:
|
|
78
78
|
requirements:
|
79
79
|
- - "~>"
|
80
80
|
- !ruby/object:Gem::Version
|
81
|
-
version: '
|
82
|
-
- - ">="
|
83
|
-
- !ruby/object:Gem::Version
|
84
|
-
version: 1.0.5
|
81
|
+
version: '2.0'
|
85
82
|
type: :runtime
|
86
83
|
prerelease: false
|
87
84
|
version_requirements: !ruby/object:Gem::Requirement
|
88
85
|
requirements:
|
89
86
|
- - "~>"
|
90
87
|
- !ruby/object:Gem::Version
|
91
|
-
version: '
|
92
|
-
- - ">="
|
93
|
-
- !ruby/object:Gem::Version
|
94
|
-
version: 1.0.5
|
88
|
+
version: '2.0'
|
95
89
|
description: Email on Rails. Compose, deliver, receive, and test emails using the
|
96
90
|
familiar controller/view pattern. First-class support for multipart email and attachments.
|
97
91
|
email: david@loudthinking.com
|
@@ -112,8 +106,10 @@ files:
|
|
112
106
|
- lib/action_mailer/log_subscriber.rb
|
113
107
|
- lib/action_mailer/mail_helper.rb
|
114
108
|
- lib/action_mailer/message_delivery.rb
|
109
|
+
- lib/action_mailer/parameterized.rb
|
115
110
|
- lib/action_mailer/preview.rb
|
116
111
|
- lib/action_mailer/railtie.rb
|
112
|
+
- lib/action_mailer/rescuable.rb
|
117
113
|
- lib/action_mailer/test_case.rb
|
118
114
|
- lib/action_mailer/test_helper.rb
|
119
115
|
- lib/action_mailer/version.rb
|
@@ -121,7 +117,7 @@ files:
|
|
121
117
|
- lib/rails/generators/mailer/mailer_generator.rb
|
122
118
|
- lib/rails/generators/mailer/templates/application_mailer.rb
|
123
119
|
- lib/rails/generators/mailer/templates/mailer.rb
|
124
|
-
homepage: http://
|
120
|
+
homepage: http://rubyonrails.org
|
125
121
|
licenses:
|
126
122
|
- MIT
|
127
123
|
metadata: {}
|
@@ -133,7 +129,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
133
129
|
requirements:
|
134
130
|
- - ">="
|
135
131
|
- !ruby/object:Gem::Version
|
136
|
-
version:
|
132
|
+
version: 2.2.2
|
137
133
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
138
134
|
requirements:
|
139
135
|
- - ">="
|
@@ -142,7 +138,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
142
138
|
requirements:
|
143
139
|
- none
|
144
140
|
rubyforge_project:
|
145
|
-
rubygems_version: 2.
|
141
|
+
rubygems_version: 2.6.11
|
146
142
|
signing_key:
|
147
143
|
specification_version: 4
|
148
144
|
summary: Email composition, delivery, and receiving framework (part of Rails).
|