From 40bdbce191ad90dfea43dad51fac5c4726b89392 Mon Sep 17 00:00:00 2001
From: bogdanvlviv <bogdanvlviv@gmail.com>
Date: Mon, 15 May 2017 14:17:28 +0000
Subject: Define path with __dir__

".. with __dir__ we can restore order in the Universe." - by @fxn

Related to 5b8738c2df003a96f0e490c43559747618d10f5f
---
 actionmailer/lib/rails/generators/mailer/mailer_generator.rb | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'actionmailer/lib')

diff --git a/actionmailer/lib/rails/generators/mailer/mailer_generator.rb b/actionmailer/lib/rails/generators/mailer/mailer_generator.rb
index 99fe4544f1..bc21b07109 100644
--- a/actionmailer/lib/rails/generators/mailer/mailer_generator.rb
+++ b/actionmailer/lib/rails/generators/mailer/mailer_generator.rb
@@ -1,7 +1,7 @@
 module Rails
   module Generators
     class MailerGenerator < NamedBase
-      source_root File.expand_path("../templates", __FILE__)
+      source_root File.expand_path("templates", __dir__)
 
       argument :actions, type: :array, default: [], banner: "method method"
 
-- 
cgit v1.2.3


From 1c275d812f35f53f93cd96184a4f319983766cc5 Mon Sep 17 00:00:00 2001
From: David Heinemeier Hansson <david@loudthinking.com>
Date: Mon, 29 May 2017 18:01:50 +0200
Subject: Add option for class_attribute default (#29270)

* Allow a default value to be declared for class_attribute

* Convert to using class_attribute default rather than explicit setter

* Removed instance_accessor option by mistake

* False is a valid default value

* Documentation
---
 actionmailer/lib/action_mailer/base.rb             | 3 +--
 actionmailer/lib/action_mailer/delivery_methods.rb | 6 ++----
 2 files changed, 3 insertions(+), 6 deletions(-)

(limited to 'actionmailer/lib')

diff --git a/actionmailer/lib/action_mailer/base.rb b/actionmailer/lib/action_mailer/base.rb
index 6849f5c0f9..7133670b65 100644
--- a/actionmailer/lib/action_mailer/base.rb
+++ b/actionmailer/lib/action_mailer/base.rb
@@ -459,8 +459,7 @@ module ActionMailer
 
     helper ActionMailer::MailHelper
 
-    class_attribute :default_params
-    self.default_params = {
+    class_attribute :default_params, default: {
       mime_version: "1.0",
       charset:      "UTF-8",
       content_type: "text/plain",
diff --git a/actionmailer/lib/action_mailer/delivery_methods.rb b/actionmailer/lib/action_mailer/delivery_methods.rb
index bcc4ef03cf..afdc28aa2a 100644
--- a/actionmailer/lib/action_mailer/delivery_methods.rb
+++ b/actionmailer/lib/action_mailer/delivery_methods.rb
@@ -7,8 +7,6 @@ module ActionMailer
     extend ActiveSupport::Concern
 
     included do
-      class_attribute :delivery_methods, :delivery_method
-
       # Do not make this inheritable, because we always want it to propagate
       cattr_accessor :raise_delivery_errors
       self.raise_delivery_errors = true
@@ -19,8 +17,8 @@ module ActionMailer
       cattr_accessor :deliver_later_queue_name
       self.deliver_later_queue_name = :mailers
 
-      self.delivery_methods = {}.freeze
-      self.delivery_method  = :smtp
+      class_attribute :delivery_methods, default: {}.freeze
+      class_attribute :delivery_method, default: :smtp
 
       add_delivery_method :smtp, Mail::SMTP,
         address:              "localhost",
-- 
cgit v1.2.3


From b6b0c99ff3e8ace3f42813154dbe4b8ad6a98e6c Mon Sep 17 00:00:00 2001
From: Genadi Samokovarov <gsamokovarov@gmail.com>
Date: Wed, 31 May 2017 12:16:20 +0300
Subject: Use mattr_accessor default: option throughout the project

---
 actionmailer/lib/action_mailer/delivery_methods.rb | 11 +++--------
 actionmailer/lib/action_mailer/preview.rb          |  3 +--
 2 files changed, 4 insertions(+), 10 deletions(-)

(limited to 'actionmailer/lib')

diff --git a/actionmailer/lib/action_mailer/delivery_methods.rb b/actionmailer/lib/action_mailer/delivery_methods.rb
index afdc28aa2a..93ae10fd70 100644
--- a/actionmailer/lib/action_mailer/delivery_methods.rb
+++ b/actionmailer/lib/action_mailer/delivery_methods.rb
@@ -8,14 +8,9 @@ module ActionMailer
 
     included do
       # Do not make this inheritable, because we always want it to propagate
-      cattr_accessor :raise_delivery_errors
-      self.raise_delivery_errors = true
-
-      cattr_accessor :perform_deliveries
-      self.perform_deliveries = true
-
-      cattr_accessor :deliver_later_queue_name
-      self.deliver_later_queue_name = :mailers
+      cattr_accessor :raise_delivery_errors, default: true
+      cattr_accessor :perform_deliveries, default: true
+      cattr_accessor :deliver_later_queue_name, default: :mailers
 
       class_attribute :delivery_methods, default: {}.freeze
       class_attribute :delivery_method, default: :smtp
diff --git a/actionmailer/lib/action_mailer/preview.rb b/actionmailer/lib/action_mailer/preview.rb
index 87ba743f3d..4f72eca930 100644
--- a/actionmailer/lib/action_mailer/preview.rb
+++ b/actionmailer/lib/action_mailer/preview.rb
@@ -20,8 +20,7 @@ module ActionMailer
       mattr_accessor :show_previews, instance_writer: false
 
       # :nodoc:
-      mattr_accessor :preview_interceptors, instance_writer: false
-      self.preview_interceptors = [ActionMailer::InlinePreviewInterceptor]
+      mattr_accessor :preview_interceptors, instance_writer: false, default: [ActionMailer::InlinePreviewInterceptor]
     end
 
     module ClassMethods
-- 
cgit v1.2.3


From d9bbde09fc57b29b889baadda18da943428fb06a Mon Sep 17 00:00:00 2001
From: Matthew Mongeau <halogenandtoast@gmail.com>
Date: Thu, 15 Jun 2017 16:12:44 +0900
Subject: Allow mailers to configure their delivery job

Setting delivery_job on a mailer class will cause MessageDelivery to use
the specified job instead of ActionMailer::DeliveryJob:

    class MyMailer < ApplicationMailer
      self.delivery_job = MyCustomDeliveryJob

      ...
    end
---
 actionmailer/lib/action_mailer/base.rb             | 1 +
 actionmailer/lib/action_mailer/message_delivery.rb | 3 ++-
 2 files changed, 3 insertions(+), 1 deletion(-)

(limited to 'actionmailer/lib')

diff --git a/actionmailer/lib/action_mailer/base.rb b/actionmailer/lib/action_mailer/base.rb
index 7133670b65..f8aa54bd44 100644
--- a/actionmailer/lib/action_mailer/base.rb
+++ b/actionmailer/lib/action_mailer/base.rb
@@ -459,6 +459,7 @@ module ActionMailer
 
     helper ActionMailer::MailHelper
 
+    class_attribute :delivery_job, default: ::ActionMailer::DeliveryJob
     class_attribute :default_params, default: {
       mime_version: "1.0",
       charset:      "UTF-8",
diff --git a/actionmailer/lib/action_mailer/message_delivery.rb b/actionmailer/lib/action_mailer/message_delivery.rb
index cf7c57e6bf..595646d002 100644
--- a/actionmailer/lib/action_mailer/message_delivery.rb
+++ b/actionmailer/lib/action_mailer/message_delivery.rb
@@ -118,7 +118,8 @@ module ActionMailer
             "method*, or 3. use a custom Active Job instead of #deliver_later."
         else
           args = @mailer_class.name, @action.to_s, delivery_method.to_s, *@args
-          ::ActionMailer::DeliveryJob.set(options).perform_later(*args)
+          job = @mailer_class.delivery_job
+          job.set(options).perform_later(*args)
         end
       end
   end
-- 
cgit v1.2.3


From 425e351a5e6e9a25237bf0fcc546170c753922be Mon Sep 17 00:00:00 2001
From: Matthew Mongeau <halogenandtoast@gmail.com>
Date: Fri, 16 Jun 2017 10:06:23 +0900
Subject: Document setting the delivery_job for ActionMailer [ci skip]

---
 actionmailer/lib/action_mailer/message_delivery.rb | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

(limited to 'actionmailer/lib')

diff --git a/actionmailer/lib/action_mailer/message_delivery.rb b/actionmailer/lib/action_mailer/message_delivery.rb
index 595646d002..3295511ddc 100644
--- a/actionmailer/lib/action_mailer/message_delivery.rb
+++ b/actionmailer/lib/action_mailer/message_delivery.rb
@@ -51,6 +51,14 @@ module ActionMailer
     #   Notifier.welcome(User.first).deliver_later!(wait: 1.hour)
     #   Notifier.welcome(User.first).deliver_later!(wait_until: 10.hours.from_now)
     #
+    # By default, the email will be enqueued using ActionMailer::DeliveryJob. Each
+    # ActionMailer::Base class can specify the job to use by setting the class variable
+    # +delivery_job+.
+    #
+    #   class AccountRegistrationMailer < ApplicationMailer
+    #     self.delivery_job = RegistrationDeliveryJob
+    #   end
+    #
     # Options:
     #
     # * <tt>:wait</tt> - Enqueue the email to be delivered with a delay
@@ -67,6 +75,14 @@ module ActionMailer
     #   Notifier.welcome(User.first).deliver_later(wait: 1.hour)
     #   Notifier.welcome(User.first).deliver_later(wait_until: 10.hours.from_now)
     #
+    # By default, the email will be enqueued using ActionMailer::DeliveryJob. Each
+    # ActionMailer::Base class can specify the job to use by setting the class variable
+    # +delivery_job+.
+    #
+    #   class AccountRegistrationMailer < ApplicationMailer
+    #     self.delivery_job = RegistrationDeliveryJob
+    #   end
+    #
     # Options:
     #
     # * <tt>:wait</tt> - Enqueue the email to be delivered with a delay.
-- 
cgit v1.2.3


From 6bb7d50dece5d02540e5c420f63478185102fd70 Mon Sep 17 00:00:00 2001
From: Ryuta Kamizono <kamipo@gmail.com>
Date: Fri, 16 Jun 2017 10:33:53 +0900
Subject: Fix formatting of `ActionMailer::MessageDelivery` doc [ci skip]

---
 actionmailer/lib/action_mailer/message_delivery.rb | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

(limited to 'actionmailer/lib')

diff --git a/actionmailer/lib/action_mailer/message_delivery.rb b/actionmailer/lib/action_mailer/message_delivery.rb
index 3295511ddc..0b54e12431 100644
--- a/actionmailer/lib/action_mailer/message_delivery.rb
+++ b/actionmailer/lib/action_mailer/message_delivery.rb
@@ -51,8 +51,8 @@ module ActionMailer
     #   Notifier.welcome(User.first).deliver_later!(wait: 1.hour)
     #   Notifier.welcome(User.first).deliver_later!(wait_until: 10.hours.from_now)
     #
-    # By default, the email will be enqueued using ActionMailer::DeliveryJob. Each
-    # ActionMailer::Base class can specify the job to use by setting the class variable
+    # By default, the email will be enqueued using <tt>ActionMailer::DeliveryJob</tt>. Each
+    # <tt>ActionMailer::Base</tt> class can specify the job to use by setting the class variable
     # +delivery_job+.
     #
     #   class AccountRegistrationMailer < ApplicationMailer
@@ -75,8 +75,8 @@ module ActionMailer
     #   Notifier.welcome(User.first).deliver_later(wait: 1.hour)
     #   Notifier.welcome(User.first).deliver_later(wait_until: 10.hours.from_now)
     #
-    # By default, the email will be enqueued using ActionMailer::DeliveryJob. Each
-    # ActionMailer::Base class can specify the job to use by setting the class variable
+    # By default, the email will be enqueued using <tt>ActionMailer::DeliveryJob</tt>. Each
+    # <tt>ActionMailer::Base</tt> class can specify the job to use by setting the class variable
     # +delivery_job+.
     #
     #   class AccountRegistrationMailer < ApplicationMailer
-- 
cgit v1.2.3