From 8ff214e0db31a6827b52f738c409d97d70b363d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sat, 4 Jul 2009 17:09:09 +0200 Subject: Use the proper shebang when using Ruby 1.9 or jruby or windows. --- railties/lib/generators/base.rb | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) (limited to 'railties/lib') diff --git a/railties/lib/generators/base.rb b/railties/lib/generators/base.rb index 5d6821efe0..0d2d165741 100644 --- a/railties/lib/generators/base.rb +++ b/railties/lib/generators/base.rb @@ -335,18 +335,21 @@ module Rails # default value plus an instance helper method called shebang. # def self.add_shebang_option! - require 'rbconfig' - default = File.join(Config::CONFIG['bindir'], Config::CONFIG['ruby_install_name']) - - class_option :ruby, :type => :string, :aliases => "-r", :default => default, + class_option :ruby, :type => :string, :aliases => "-r", :default => Thor::Util.ruby_command, :desc => "Path to the Ruby binary of your choice", :banner => "PATH" - class_eval <<-METHOD, __FILE__, __LINE__ - protected - def shebang - "#!\#{options[:ruby] || "/usr/bin/env ruby"}" + no_tasks { + define_method :shebang do + @shebang ||= begin + command = if options[:ruby] == Thor::Util.ruby_command + "/usr/bin/env #{File.basename(Thor::Util.ruby_command)}" + else + options[:ruby] + end + "#!#{command}" + end end - METHOD + } end end -- cgit v1.2.3