From 0914d1fe78f873651d2311c3f10222e5713a5b53 Mon Sep 17 00:00:00 2001 From: Felipe Rodrigues Date: Mon, 12 Apr 2010 23:38:43 -0300 Subject: [PATCH] moved rails binary to rails gem, so rubygems can find specific versions of rails --- bin/rails | 1 + rails.gemspec | 5 +++-- railties/bin/rails | 30 ------------------------------ railties/lib/rails/cli.rb | 30 ++++++++++++++++++++++++++++++ railties/railties.gemspec | 3 --- railties/test/isolation/abstract_unit.rb | 2 +- 6 files changed, 35 insertions(+), 36 deletions(-) create mode 100755 bin/rails delete mode 100755 railties/bin/rails create mode 100644 railties/lib/rails/cli.rb diff --git a/bin/rails b/bin/rails new file mode 100755 index 0000000..853b1d7 --- /dev/null +++ b/bin/rails @@ -0,0 +1 @@ +require 'rails/cli' diff --git a/rails.gemspec b/rails.gemspec index ca0ec36..3b1dfe9 100644 --- a/rails.gemspec +++ b/rails.gemspec @@ -15,8 +15,9 @@ Gem::Specification.new do |s| s.homepage = 'http://www.rubyonrails.org' s.rubyforge_project = 'rails' - s.files = [] - s.require_path = [] + s.bindir = 'bin' + s.executables = ['rails'] + s.default_executable = 'rails' s.add_dependency('activesupport', version) s.add_dependency('actionpack', version) diff --git a/railties/bin/rails b/railties/bin/rails deleted file mode 100755 index 173f122..0000000 --- a/railties/bin/rails +++ /dev/null @@ -1,30 +0,0 @@ -require 'rbconfig' - -module Rails - module ScriptRailsLoader - RUBY = File.join(*RbConfig::CONFIG.values_at("bindir", "ruby_install_name")) + RbConfig::CONFIG["EXEEXT"] - SCRIPT_RAILS = File.join('script', 'rails') - - def self.exec_script_rails! - cwd = Dir.pwd - exec RUBY, SCRIPT_RAILS, *ARGV if File.exists?(SCRIPT_RAILS) - Dir.chdir("..") do - # Recurse in a chdir block: if the search fails we want to be sure - # the application is generated in the original working directory. - exec_script_rails! unless cwd == Dir.pwd - end - rescue SystemCallError - # could not chdir, no problem just return - end - end -end - -Rails::ScriptRailsLoader.exec_script_rails! - -railties_path = File.expand_path('../../lib', __FILE__) -$:.unshift(railties_path) if File.directory?(railties_path) && !$:.include?(railties_path) - -require 'rails/ruby_version_check' -Signal.trap("INT") { puts; exit } - -require 'rails/commands/application' diff --git a/railties/lib/rails/cli.rb b/railties/lib/rails/cli.rb new file mode 100644 index 0000000..173f122 --- /dev/null +++ b/railties/lib/rails/cli.rb @@ -0,0 +1,30 @@ +require 'rbconfig' + +module Rails + module ScriptRailsLoader + RUBY = File.join(*RbConfig::CONFIG.values_at("bindir", "ruby_install_name")) + RbConfig::CONFIG["EXEEXT"] + SCRIPT_RAILS = File.join('script', 'rails') + + def self.exec_script_rails! + cwd = Dir.pwd + exec RUBY, SCRIPT_RAILS, *ARGV if File.exists?(SCRIPT_RAILS) + Dir.chdir("..") do + # Recurse in a chdir block: if the search fails we want to be sure + # the application is generated in the original working directory. + exec_script_rails! unless cwd == Dir.pwd + end + rescue SystemCallError + # could not chdir, no problem just return + end + end +end + +Rails::ScriptRailsLoader.exec_script_rails! + +railties_path = File.expand_path('../../lib', __FILE__) +$:.unshift(railties_path) if File.directory?(railties_path) && !$:.include?(railties_path) + +require 'rails/ruby_version_check' +Signal.trap("INT") { puts; exit } + +require 'rails/commands/application' diff --git a/railties/railties.gemspec b/railties/railties.gemspec index aea07ef..b9278c0 100644 --- a/railties/railties.gemspec +++ b/railties/railties.gemspec @@ -15,9 +15,6 @@ Gem::Specification.new do |s| s.files = Dir['CHANGELOG', 'README', 'bin/**/*', 'guides/**/*', 'lib/**/{*,.[a-z]*}'] s.require_path = 'lib' - s.bindir = 'bin' - s.executables = ['rails'] - s.default_executable = 'rails' s.rdoc_options << '--exclude' << '.' s.has_rdoc = false diff --git a/railties/test/isolation/abstract_unit.rb b/railties/test/isolation/abstract_unit.rb index e6896a1..f0c64b9 100644 --- a/railties/test/isolation/abstract_unit.rb +++ b/railties/test/isolation/abstract_unit.rb @@ -213,7 +213,7 @@ Module.new do require_environment = "-r #{environment}" end - `#{Gem.ruby} #{require_environment} #{RAILS_FRAMEWORK_ROOT}/railties/bin/rails #{tmp_path('app_template')}` + `#{Gem.ruby} #{require_environment} #{RAILS_FRAMEWORK_ROOT}/bin/rails #{tmp_path('app_template')}` File.open("#{tmp_path}/app_template/config/boot.rb", 'w') do |f| if require_environment f.puts "Dir.chdir('#{File.dirname(environment)}') do" -- 1.6.3.3