diff --git a/actionmailer/CHANGELOG.md b/actionmailer/CHANGELOG.md index b343e8b373..4e3a9daf7d 100644 --- a/actionmailer/CHANGELOG.md +++ b/actionmailer/CHANGELOG.md @@ -1,4 +1,4 @@ -* Add `config.action_mailer.preview_enabled` configuration option. +* Add `config.action_mailer.show_previews` configuration option. This config option can be used to enable the mail preview in environments other than development (such as staging). diff --git a/actionmailer/lib/action_mailer/preview.rb b/actionmailer/lib/action_mailer/preview.rb index f27fab1a0d..33de1dc049 100644 --- a/actionmailer/lib/action_mailer/preview.rb +++ b/actionmailer/lib/action_mailer/preview.rb @@ -13,11 +13,11 @@ module Previews #:nodoc: # Enable or disable mailer previews through app configuration: # - # config.action_mailer.preview_enabled = true + # config.action_mailer.show_previews = true # # Defaults to true for development environment # - mattr_accessor :preview_enabled, instance_writer: false + mattr_accessor :show_previews, instance_writer: false # :nodoc: mattr_accessor :preview_interceptors, instance_writer: false @@ -102,8 +102,8 @@ def preview_path #:nodoc: Base.preview_path end - def preview_enabled #:nodoc: - Base.preview_enabled + def show_previews #:nodoc: + Base.show_previews end def inform_preview_interceptors(message) #:nodoc: diff --git a/actionmailer/lib/action_mailer/railtie.rb b/actionmailer/lib/action_mailer/railtie.rb index 409a7a897a..6f760732e2 100644 --- a/actionmailer/lib/action_mailer/railtie.rb +++ b/actionmailer/lib/action_mailer/railtie.rb @@ -18,9 +18,9 @@ class Railtie < Rails::Railtie # :nodoc: options.assets_dir ||= paths["public"].first options.javascripts_dir ||= paths["public/javascripts"].first options.stylesheets_dir ||= paths["public/stylesheets"].first - options.preview_enabled = Rails.env.development? if options.preview_enabled.nil? + options.show_previews = Rails.env.development? if options.show_previews.nil? - if options.preview_enabled + if options.show_previews options.preview_path ||= defined?(Rails.root) ? "#{Rails.root}/test/mailers/previews" : nil end @@ -39,7 +39,7 @@ class Railtie < Rails::Railtie # :nodoc: options.each { |k,v| send("#{k}=", v) } - if options.preview_enabled + if options.show_previews app.routes.append do get '/rails/mailers' => "rails/mailers#index" get '/rails/mailers/*path' => "rails/mailers#preview" diff --git a/guides/source/configuring.md b/guides/source/configuring.md index 68f03c5430..13020fb286 100644 --- a/guides/source/configuring.md +++ b/guides/source/configuring.md @@ -459,10 +459,10 @@ There are a number of settings available on `config.action_mailer`: config.action_mailer.preview_path = "#{Rails.root}/lib/mailer_previews" ``` -* `config.action_mailer.preview_enabled` enable or disable mailer previews. By default this is `true` in development. +* `config.action_mailer.show_previews` enable or disable mailer previews. By default this is `true` in development. ```ruby - config.action_mailer.preview_enabled = false + config.action_mailer.show_previews = false ``` ### Configuring Active Support diff --git a/railties/test/application/configuration_test.rb b/railties/test/application/configuration_test.rb index 1feedb6602..2e056be561 100644 --- a/railties/test/application/configuration_test.rb +++ b/railties/test/application/configuration_test.rb @@ -966,28 +966,28 @@ def index assert db_config.is_a?(Hash) end - test 'config.mail_preview_enabled defaults to true in development' do + test 'config.action_mailer.show_previews defaults to true in development' do Rails.env = "development" require "#{app_path}/config/environment" - assert Rails.application.config.action_mailer.preview_enabled + assert Rails.application.config.action_mailer.show_previews end - test 'config.mail_preview_enabled defaults to false in production' do + test 'config.action_mailer.show_previews defaults to false in production' do Rails.env = "production" require "#{app_path}/config/environment" - assert_equal Rails.application.config.action_mailer.preview_enabled, false + assert_equal Rails.application.config.action_mailer.show_previews, false end - test 'config.mail_preview_enabled can be set in the configuration file' do + test 'config.action_mailer.show_previews can be set in the configuration file' do Rails.env = "production" add_to_config <<-RUBY - config.action_mailer.preview_enabled = true + config.action_mailer.show_previews = true RUBY require "#{app_path}/config/environment" - assert_equal Rails.application.config.action_mailer.preview_enabled, true + assert_equal Rails.application.config.action_mailer.show_previews, true end end end diff --git a/railties/test/application/mailer_previews_test.rb b/railties/test/application/mailer_previews_test.rb index d17eb0a8d1..8b91a1171f 100644 --- a/railties/test/application/mailer_previews_test.rb +++ b/railties/test/application/mailer_previews_test.rb @@ -27,14 +27,14 @@ def teardown end test "/rails/mailers is accessible with correct configuraiton" do - add_to_config "config.action_mailer.preview_enabled = true" + add_to_config "config.action_mailer.show_previews = true" app("production") get "/rails/mailers" assert_equal 200, last_response.status end - test "/rails/mailers is not accessible with preview_enabled = false" do - add_to_config "config.action_mailer.preview_enabled = false" + test "/rails/mailers is not accessible with show_previews = false" do + add_to_config "config.action_mailer.show_previews = false" app("development") get "/rails/mailers" assert_equal 404, last_response.status