lib/action_mailer/preview.rb in actionmailer-7.0.8.6 vs lib/action_mailer/preview.rb in actionmailer-7.1.0.beta1

- old
+ new

@@ -5,15 +5,15 @@ module ActionMailer module Previews # :nodoc: extend ActiveSupport::Concern included do - # Set the location of mailer previews through app configuration: + # Add the location of mailer previews through app configuration: # - # config.action_mailer.preview_path = "#{Rails.root}/lib/mailer_previews" + # config.action_mailer.preview_paths << "#{Rails.root}/lib/mailer_previews" # - mattr_accessor :preview_path, instance_writer: false + mattr_accessor :preview_paths, instance_writer: false, default: [] # Enable or disable mailer previews through app configuration: # # config.action_mailer.show_previews = true # @@ -23,11 +23,35 @@ # :nodoc: mattr_accessor :preview_interceptors, instance_writer: false, default: [ActionMailer::InlinePreviewInterceptor] end + def preview_path + ActionMailer.deprecator.warn(<<-MSG.squish) + Using preview_path option is deprecated and will be removed in Rails 7.2. + Please use preview_paths instead. + MSG + self.class.preview_paths.first + end + module ClassMethods + def preview_path=(value) + ActionMailer.deprecator.warn(<<-MSG.squish) + Using preview_path= option is deprecated and will be removed in Rails 7.2. + Please use preview_paths= instead. + MSG + self.preview_paths << value + end + + def preview_path + ActionMailer.deprecator.warn(<<-MSG.squish) + Using preview_path option is deprecated and will be removed in Rails 7.2. + Please use preview_paths instead. + MSG + self.preview_paths.first + end + # Register one or more Interceptors which will be called before mail is previewed. def register_preview_interceptors(*interceptors) interceptors.flatten.compact.each { |interceptor| register_preview_interceptor(interceptor) } end @@ -77,11 +101,11 @@ class << self # Returns all mailer preview classes. def all load_previews if descendants.empty? - descendants + descendants.sort_by { |mailer| mailer.name.titleize } end # Returns the mail object for the given email name. The registered preview # interceptors will be informed so that they can transform the message # as they would if the mail was actually being delivered. @@ -117,16 +141,16 @@ name.delete_suffix("Preview").underscore end private def load_previews - if preview_path - Dir["#{preview_path}/**/*_preview.rb"].sort.each { |file| require_dependency file } + preview_paths.each do |preview_path| + Dir["#{preview_path}/**/*_preview.rb"].sort.each { |file| require file } end end - def preview_path - Base.preview_path + def preview_paths + Base.preview_paths end def show_previews Base.show_previews end