Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save AquaGeek/971792 to your computer and use it in GitHub Desktop.
Save AquaGeek/971792 to your computer and use it in GitHub Desktop.
Rails Lighthouse ticket #6494
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