From 35925a8995e4b3522e4a4e4e52a3a18c9c1cee52 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sat, 4 Jul 2009 17:34:48 +0200 Subject: Ensure that rails templates methods are invoked with the proper extensions [#2531 status:resolved] --- railties/lib/generators/actions.rb | 17 +++++++++++------ railties/test/generators/actions_test.rb | 18 ++++++++++++++++++ 2 files changed, 29 insertions(+), 6 deletions(-) (limited to 'railties') 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'" -- cgit v1.2.3