From a3642508d03011ec92efecd756c7d76612393e45 Mon Sep 17 00:00:00 2001 From: David Waite Date: Wed, 3 Jun 2009 22:22:35 -0600 Subject: [PATCH] Add GEM_COMMAND environment variable, to allow for overriding the default choice for gem executable name. --- railties/lib/rails/gem_dependency.rb | 16 +++++++++------- railties/test/gem_dependency_test.rb | 18 ++++++++++++++++++ 2 files changed, 27 insertions(+), 7 deletions(-) diff --git a/railties/lib/rails/gem_dependency.rb b/railties/lib/rails/gem_dependency.rb index ee3d0d8..c11cf3e 100644 --- a/railties/lib/rails/gem_dependency.rb +++ b/railties/lib/rails/gem_dependency.rb @@ -256,13 +256,15 @@ module Rails private def gem_command - case RUBY_PLATFORM - when /win32/ - 'gem.bat' - when /java/ - 'jruby -S gem' - else - 'gem' + @gem_command ||= begin + ENV['GEM_COMMAND'] || case RUBY_PLATFORM + when /win32/ + 'gem.bat' + when /java/ + 'jruby -S gem' + else + 'gem' + end end end diff --git a/railties/test/gem_dependency_test.rb b/railties/test/gem_dependency_test.rb index 3853eb5..0e6d382 100644 --- a/railties/test/gem_dependency_test.rb +++ b/railties/test/gem_dependency_test.rb @@ -1,4 +1,5 @@ require 'plugin_test_helper' +require 'tmpdir' class Rails::GemDependency public :install_command, :unpack_command @@ -186,4 +187,21 @@ class GemDependencyTest < Test::Unit::TestCase assert_equal false, Rails::GemDependency.new("dummy-gem-j").built? end + def test_gem_command_override + gem = Rails::GemDependency.new('dummy-gem') + def gem.gem_command_public + gem_command + end + def gem.gem_command_reset + @gem_command = nil + end + + fake_gem_command = 'xyzzy' + + assert_not_equal fake_gem_command, gem.gem_command_public + gem.gem_command_reset + + ENV['GEM_COMMAND'] = fake_gem_command + assert_equal fake_gem_command, gem.gem_command_public + end end -- 1.6.3.1