aboutsummaryrefslogtreecommitdiffstats
path: root/railties
diff options
context:
space:
mode:
authorGuillermo Iguaran <guilleiguaran@gmail.com>2011-07-17 01:47:21 -0500
committerGuillermo Iguaran <guilleiguaran@gmail.com>2011-07-18 10:43:25 -0500
commitfcdcc87a0890158046a2358f0a668a5157c38b3d (patch)
tree311e3ffa664cc99d61894692c788f69e6235dbbb /railties
parent0aec2e7191b8845fda9a2bbe3d76c6a9dc22401b (diff)
downloadrails-fcdcc87a0890158046a2358f0a668a5157c38b3d.tar.gz
rails-fcdcc87a0890158046a2358f0a668a5157c38b3d.tar.bz2
rails-fcdcc87a0890158046a2358f0a668a5157c38b3d.zip
Fix Rails::Generators::Actions#environment when env is passed. Closes #2110
Diffstat (limited to 'railties')
-rw-r--r--railties/lib/rails/generators/actions.rb5
-rw-r--r--railties/test/generators/actions_test.rb7
2 files changed, 10 insertions, 2 deletions
diff --git a/railties/lib/rails/generators/actions.rb b/railties/lib/rails/generators/actions.rb
index 433a56dc57..b8541c236e 100644
--- a/railties/lib/rails/generators/actions.rb
+++ b/railties/lib/rails/generators/actions.rb
@@ -92,14 +92,15 @@ module Rails
#
def environment(data=nil, options={}, &block)
sentinel = /class [a-z_:]+ < Rails::Application/i
+ env_file_sentinel = /::Application\.configure do/
data = block.call if !data && block_given?
in_root do
if options[:env].nil?
inject_into_file 'config/application.rb', "\n #{data}", :after => sentinel, :verbose => false
else
- Array.wrap(options[:env]).each do|env|
- append_file "config/environments/#{env}.rb", "\n#{data}", :verbose => false
+ Array.wrap(options[:env]).each do |env|
+ inject_into_file "config/environments/#{env}.rb", "\n #{data}", :after => env_file_sentinel, :verbose => false
end
end
end
diff --git a/railties/test/generators/actions_test.rb b/railties/test/generators/actions_test.rb
index 597746c4aa..e4a8000425 100644
--- a/railties/test/generators/actions_test.rb
+++ b/railties/test/generators/actions_test.rb
@@ -109,6 +109,13 @@ class ActionsTest < Rails::Generators::TestCase
assert_file 'config/application.rb', /#{Regexp.escape(autoload_paths)}/
end
+ def test_environment_should_include_data_in_environment_initializer_block_with_env_option
+ run_generator
+ autoload_paths = 'config.autoload_paths += %w["#{Rails.root}/app/extras"]'
+ action :environment, autoload_paths, :env => 'development'
+ assert_file "config/environments/development.rb", /Application\.configure do\n #{Regexp.escape(autoload_paths)}/
+ end
+
def test_environment_with_block_should_include_block_contents_in_environment_initializer_block
run_generator