aboutsummaryrefslogtreecommitdiffstats
path: root/railties/lib
diff options
context:
space:
mode:
Diffstat (limited to 'railties/lib')
-rw-r--r--railties/lib/generators/base.rb21
1 files changed, 12 insertions, 9 deletions
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