Created
May 14, 2011 02:34
-
-
Save AquaGeek/971792 to your computer and use it in GitHub Desktop.
Rails Lighthouse ticket #6494
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
From bbaa2c32855db48a5df94d7fb98f4733fdc54be0 Mon Sep 17 00:00:00 2001 | |
From: Alexander Uvarov <alexander.uvarov@gmail.com> | |
Date: Tue, 1 Mar 2011 22:00:31 +0500 | |
Subject: [PATCH] Option to skip Action Mailer in new app | |
--- | |
railties/lib/rails/generators/app_base.rb | 3 +++ | |
.../rails/app/templates/config/application.rb | 10 +++++++++- | |
.../config/environments/development.rb.tt | 4 ++++ | |
.../app/templates/config/environments/test.rb.tt | 4 ++++ | |
railties/test/generators/app_generator_test.rb | 7 +++++++ | |
5 files changed, 27 insertions(+), 1 deletions(-) | |
diff --git a/railties/lib/rails/generators/app_base.rb b/railties/lib/rails/generators/app_base.rb | |
index ab7ed4e..f99e75d 100644 | |
--- a/railties/lib/rails/generators/app_base.rb | |
+++ b/railties/lib/rails/generators/app_base.rb | |
@@ -32,6 +32,9 @@ module Rails | |
class_option :skip_active_record, :type => :boolean, :aliases => "-O", :default => false, | |
:desc => "Skip Active Record files" | |
+ class_option :skip_action_mailer, :type => :boolean, :aliases => "-M", :default => false, | |
+ :desc => "Skip Action Mailer files" | |
+ | |
class_option :database, :type => :string, :aliases => "-d", :default => "sqlite3", | |
:desc => "Preconfigure for selected database (options: #{DATABASES.join('/')})" | |
diff --git a/railties/lib/rails/generators/rails/app/templates/config/application.rb b/railties/lib/rails/generators/rails/app/templates/config/application.rb | |
index b7f64af..2d93c42 100644 | |
--- a/railties/lib/rails/generators/rails/app/templates/config/application.rb | |
+++ b/railties/lib/rails/generators/rails/app/templates/config/application.rb | |
@@ -1,12 +1,20 @@ | |
require File.expand_path('../boot', __FILE__) | |
-<% unless options[:skip_active_record] -%> | |
+<% unless options[:skip_active_record] || options[:skip_action_mailer] -%> | |
require 'rails/all' | |
<% else -%> | |
# Pick the frameworks you want: | |
+<% if options[:skip_active_record] -%> | |
# require "active_record/railtie" | |
+<% else -%> | |
+require "active_record/railtie" | |
+<% end -%> | |
require "action_controller/railtie" | |
+<% if options[:skip_action_mailer] -%> | |
+# require "action_mailer/railtie" | |
+<% else -%> | |
require "action_mailer/railtie" | |
+<% end -%> | |
require "active_resource/railtie" | |
require "rails/test_unit/railtie" | |
<% end -%> | |
diff --git a/railties/lib/rails/generators/rails/app/templates/config/environments/development.rb.tt b/railties/lib/rails/generators/rails/app/templates/config/environments/development.rb.tt | |
index 91d3133..866ec0c 100644 | |
--- a/railties/lib/rails/generators/rails/app/templates/config/environments/development.rb.tt | |
+++ b/railties/lib/rails/generators/rails/app/templates/config/environments/development.rb.tt | |
@@ -15,7 +15,11 @@ | |
config.action_controller.perform_caching = false | |
# Don't care if the mailer can't send | |
+<% if options[:skip_action_mailer] -%> | |
+ # config.action_mailer.raise_delivery_errors = false | |
+<% else -%> | |
config.action_mailer.raise_delivery_errors = false | |
+<% end -%> | |
# Print deprecation notices to the Rails logger | |
config.active_support.deprecation = :log | |
diff --git a/railties/lib/rails/generators/rails/app/templates/config/environments/test.rb.tt b/railties/lib/rails/generators/rails/app/templates/config/environments/test.rb.tt | |
index d8d1e55..a65fb29 100644 | |
--- a/railties/lib/rails/generators/rails/app/templates/config/environments/test.rb.tt | |
+++ b/railties/lib/rails/generators/rails/app/templates/config/environments/test.rb.tt | |
@@ -23,7 +23,11 @@ | |
# Tell Action Mailer not to deliver emails to the real world. | |
# The :test delivery method accumulates sent emails in the | |
# ActionMailer::Base.deliveries array. | |
+<% if options[:skip_action_mailer] -%> | |
+ # config.action_mailer.delivery_method = :test | |
+<% else -%> | |
config.action_mailer.delivery_method = :test | |
+<% end -%> | |
# Use SQL instead of Active Record's schema dumper when creating the test database. | |
# This is necessary if your schema can't be completely dumped by the schema dumper, | |
diff --git a/railties/test/generators/app_generator_test.rb b/railties/test/generators/app_generator_test.rb | |
index 018c2fa..dc23074 100644 | |
--- a/railties/test/generators/app_generator_test.rb | |
+++ b/railties/test/generators/app_generator_test.rb | |
@@ -146,6 +146,13 @@ class AppGeneratorTest < Rails::Generators::TestCase | |
assert_file "config/application.rb", /#\s+require\s+["']active_record\/railtie["']/ | |
end | |
+ def test_action_mailer_is_removed_from_frameworks_if_skip_active_record_is_given | |
+ run_generator [destination_root, "--skip-action-mailer"] | |
+ assert_file "config/application.rb", /#\s+require\s+["']action_mailer\/railtie["']/ | |
+ assert_file "config/environments/development.rb", /#\s+#config.action_mailer/ | |
+ assert_file "config/environments/test.rb", /#\s+#config.action_mailer/ | |
+ end | |
+ | |
def test_prototype_and_test_unit_are_added_by_default | |
run_generator | |
assert_file "config/application.rb", /#\s+config\.action_view\.javascript_expansions\[:defaults\]\s+=\s+%w\(jquery rails\)/ | |
-- | |
1.7.4.1 | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment