aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosé Valim <jose.valim@gmail.com>2009-07-04 17:34:48 +0200
committerJosé Valim <jose.valim@gmail.com>2009-07-04 20:17:32 +0200
commit35925a8995e4b3522e4a4e4e52a3a18c9c1cee52 (patch)
treedf14728fca2bd545e68b87113e837917bafb92e2
parent8ff214e0db31a6827b52f738c409d97d70b363d5 (diff)
downloadrails-35925a8995e4b3522e4a4e4e52a3a18c9c1cee52.tar.gz
rails-35925a8995e4b3522e4a4e4e52a3a18c9c1cee52.tar.bz2
rails-35925a8995e4b3522e4a4e4e52a3a18c9c1cee52.zip
Ensure that rails templates methods are invoked with the proper extensions [#2531 status:resolved]
-rw-r--r--railties/lib/generators/actions.rb17
-rw-r--r--railties/test/generators/actions_test.rb18
2 files changed, 29 insertions, 6 deletions
diff --git a/railties/lib/generators/actions.rb b/railties/lib/generators/actions.rb
index 080d374a2f..b6a3eb95e4 100644
--- a/railties/lib/generators/actions.rb
+++ b/railties/lib/generators/actions.rb
@@ -78,7 +78,6 @@ module Rails
#
def environment(data=nil, options={}, &block)
sentinel = "Rails::Initializer.run do |config|"
-
data = block.call if !data && block_given?
in_root do
@@ -214,9 +213,9 @@ module Rails
#
def rake(command, options={})
log :rake, command
- env = options[:env] || 'development'
- sudo = options[:sudo] ? 'sudo ' : ''
- in_root { run("#{sudo}rake #{command} RAILS_ENV=#{env}", false) }
+ env = options[:env] || 'development'
+ sudo = options[:sudo] && RUBY_PLATFORM !~ /win32|mswin/ ? 'sudo ' : ''
+ in_root { run("#{sudo}#{extify(:rake)} #{command} RAILS_ENV=#{env}", false) }
end
# Just run the capify command in root
@@ -227,7 +226,7 @@ module Rails
#
def capify!
log :capify, ""
- in_root { run('capify .', false) }
+ in_root { run("#{extify(:capify)} .", false) }
end
# Add Rails to /vendor/rails
@@ -238,7 +237,7 @@ module Rails
#
def freeze!(args = {})
log :vendor, "rails"
- in_root { run('rake rails:freeze:edge', false) }
+ in_root { run("#{extify(:rake)} rails:freeze:edge", false) }
end
# Make an entry in Rails routing file conifg/routes.rb
@@ -269,6 +268,12 @@ module Rails
end
end
+ # Add the ruby command extension to the given name.
+ #
+ def extify(name)
+ "#{name}#{File.extname(Thor::Util.ruby_command)}"
+ end
+
end
end
end
diff --git a/railties/test/generators/actions_test.rb b/railties/test/generators/actions_test.rb
index c17b599582..57ac3f0950 100644
--- a/railties/test/generators/actions_test.rb
+++ b/railties/test/generators/actions_test.rb
@@ -151,16 +151,34 @@ class ActionsTest < GeneratorsTestCase
action :rake, 'log:clear', :sudo => true
end
+ def test_rake_uses_ruby_extension
+ Thor::Util.expects(:ruby_command).returns('ruby.bat')
+ generator.expects(:run).once.with('rake.bat log:clear RAILS_ENV=development', false)
+ action :rake, 'log:clear'
+ end
+
def test_capify_should_run_the_capify_command
generator.expects(:run).once.with('capify .', false)
action :capify!
end
+ def test_capify_uses_ruby_extension
+ Thor::Util.expects(:ruby_command).returns('ruby.bat')
+ generator.expects(:run).once.with('capify.bat .', false)
+ action :capify!
+ end
+
def test_freeze_should_freeze_rails_edge
generator.expects(:run).once.with('rake rails:freeze:edge', false)
action :freeze!
end
+ def test_freeze_uses_ruby_extension
+ Thor::Util.expects(:ruby_command).returns('ruby.bat')
+ generator.expects(:run).once.with('rake.bat rails:freeze:edge', false)
+ action :freeze!
+ end
+
def test_route_should_add_data_to_the_routes_block_in_config_routes
run_generator
route_command = "map.route '/login', :controller => 'sessions', :action => 'new'"