diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 645ac2fe1a..1a51002664 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -810,12 +810,6 @@ Rails/ApplicationJob: Exclude: - 'app/jobs/report_job.rb' -# Offense count: 1 -# This cop supports unsafe autocorrection (--autocorrect-all). -Rails/ApplicationMailer: - Exclude: - - 'app/mailers/spree/base_mailer.rb' - # Offense count: 5 # This cop supports unsafe autocorrection (--autocorrect-all). # Configuration parameters: NilOrEmpty, NotPresent, UnlessPresent. diff --git a/app/mailers/application_mailer.rb b/app/mailers/application_mailer.rb new file mode 100644 index 0000000000..00a6a7dc6c --- /dev/null +++ b/app/mailers/application_mailer.rb @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +class ApplicationMailer < ActionMailer::Base + # Inline stylesheets + include Roadie::Rails::Automatic + + helper TermsAndConditionsHelper + + default from: -> { Spree::Config[:mails_from] } + layout 'mailer' + + def money(amount) + Spree::Money.new(amount).to_s + end + helper_method :money + + protected + + def roadie_options + # This lets us specify assets using relative paths in email templates + super.merge(url_options: { host: URI(main_app.root_url).host }) + end +end diff --git a/app/mailers/enterprise_mailer.rb b/app/mailers/enterprise_mailer.rb index 820c4e041e..fa507cb67a 100644 --- a/app/mailers/enterprise_mailer.rb +++ b/app/mailers/enterprise_mailer.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'devise/mailers/helpers' -class EnterpriseMailer < Spree::BaseMailer +class EnterpriseMailer < ApplicationMailer include Devise::Mailers::Helpers include I18nHelper diff --git a/app/mailers/payment_mailer.rb b/app/mailers/payment_mailer.rb index 9268318aa0..47eb4ae587 100644 --- a/app/mailers/payment_mailer.rb +++ b/app/mailers/payment_mailer.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -class PaymentMailer < Spree::BaseMailer +class PaymentMailer < ApplicationMailer include I18nHelper def authorize_payment(payment) diff --git a/app/mailers/producer_mailer.rb b/app/mailers/producer_mailer.rb index 79421ff78c..1d8a473454 100644 --- a/app/mailers/producer_mailer.rb +++ b/app/mailers/producer_mailer.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -class ProducerMailer < Spree::BaseMailer +class ProducerMailer < ApplicationMailer include I18nHelper def order_cycle_report(producer, order_cycle) diff --git a/app/mailers/spree/base_mailer.rb b/app/mailers/spree/base_mailer.rb deleted file mode 100644 index 28924faec9..0000000000 --- a/app/mailers/spree/base_mailer.rb +++ /dev/null @@ -1,25 +0,0 @@ -# frozen_string_literal: true - -module Spree - class BaseMailer < ActionMailer::Base - # Inline stylesheets - include Roadie::Rails::Automatic - - helper TermsAndConditionsHelper - - default from: -> { Spree::Config[:mails_from] } - layout 'mailer' - - def money(amount) - Spree::Money.new(amount).to_s - end - helper_method :money - - protected - - def roadie_options - # This lets us specify assets using relative paths in email templates - super.merge(url_options: { host: URI(main_app.root_url).host }) - end - end -end diff --git a/app/mailers/spree/order_mailer.rb b/app/mailers/spree/order_mailer.rb index 3b6194a974..57f8766098 100644 --- a/app/mailers/spree/order_mailer.rb +++ b/app/mailers/spree/order_mailer.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true module Spree - class OrderMailer < BaseMailer + class OrderMailer < ApplicationMailer helper 'checkout' helper SpreeCurrencyHelper helper Spree::PaymentMethodsHelper diff --git a/app/mailers/spree/shipment_mailer.rb b/app/mailers/spree/shipment_mailer.rb index 206b8e64bc..de315dbaac 100644 --- a/app/mailers/spree/shipment_mailer.rb +++ b/app/mailers/spree/shipment_mailer.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true module Spree - class ShipmentMailer < BaseMailer + class ShipmentMailer < ApplicationMailer def shipped_email(shipment, delivery:) @shipment = shipment.respond_to?(:id) ? shipment : Spree::Shipment.find(shipment) @delivery = delivery diff --git a/app/mailers/spree/test_mailer.rb b/app/mailers/spree/test_mailer.rb index c64711f008..fb9080b9cb 100644 --- a/app/mailers/spree/test_mailer.rb +++ b/app/mailers/spree/test_mailer.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true module Spree - class TestMailer < BaseMailer + class TestMailer < ApplicationMailer def test_email(user) recipient = user.respond_to?(:id) ? user : Spree::User.find(user) subject = "#{Spree::Config[:site_name]} #{t('spree.test_mailer.test_email.subject')}" diff --git a/app/mailers/spree/user_mailer.rb b/app/mailers/spree/user_mailer.rb index 5ba57365ba..ce87b4b7ba 100644 --- a/app/mailers/spree/user_mailer.rb +++ b/app/mailers/spree/user_mailer.rb @@ -3,7 +3,7 @@ # This mailer is configured to be the Devise mailer # Some methods here override Devise::Mailer methods module Spree - class UserMailer < BaseMailer + class UserMailer < ApplicationMailer include I18nHelper helper MailerHelper diff --git a/app/mailers/subscription_mailer.rb b/app/mailers/subscription_mailer.rb index e025086d07..174fef790b 100644 --- a/app/mailers/subscription_mailer.rb +++ b/app/mailers/subscription_mailer.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -class SubscriptionMailer < Spree::BaseMailer +class SubscriptionMailer < ApplicationMailer helper 'checkout' helper MailerHelper helper ShopMailHelper