From 48129a9cac8457d584100dfd497691e00ee0b487 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Lang Date: Tue, 27 May 2008 17:22:32 +0000 Subject: [PATCH] rake rails:update git-svn-id: http://redmine.rubyforge.org/svn/branches/work@1467 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- rails-2.1/config/boot.rb | 120 +++++++++++++++++++++++---- rails-2.1/script/dbconsole | 3 + rails-2.1/script/performance/request | 3 + rails-2.1/script/process/inspector | 3 + 4 files changed, 114 insertions(+), 15 deletions(-) create mode 100644 rails-2.1/script/dbconsole create mode 100644 rails-2.1/script/performance/request create mode 100644 rails-2.1/script/process/inspector diff --git a/rails-2.1/config/boot.rb b/rails-2.1/config/boot.rb index 9fcd50fe3..cd21fb9ea 100644 --- a/rails-2.1/config/boot.rb +++ b/rails-2.1/config/boot.rb @@ -1,19 +1,109 @@ -# Don't change this file. Configuration is done in config/environment.rb and config/environments/*.rb +# Don't change this file! +# Configure your app in config/environment.rb and config/environments/*.rb -unless defined?(RAILS_ROOT) - root_path = File.join(File.dirname(__FILE__), '..') - unless RUBY_PLATFORM =~ /mswin32/ - require 'pathname' - root_path = Pathname.new(root_path).cleanpath(true).to_s +RAILS_ROOT = "#{File.dirname(__FILE__)}/.." unless defined?(RAILS_ROOT) + +module Rails + class << self + def boot! + unless booted? + preinitialize + pick_boot.run + end + end + + def booted? + defined? Rails::Initializer + end + + def pick_boot + (vendor_rails? ? VendorBoot : GemBoot).new + end + + def vendor_rails? + File.exist?("#{RAILS_ROOT}/vendor/rails") + end + + def preinitialize + load(preinitializer_path) if File.exist?(preinitializer_path) + end + + def preinitializer_path + "#{RAILS_ROOT}/config/preinitializer.rb" + end + end + + class Boot + def run + load_initializer + Rails::Initializer.run(:set_load_path) + end + end + + class VendorBoot < Boot + def load_initializer + require "#{RAILS_ROOT}/vendor/rails/railties/lib/initializer" + Rails::Initializer.run(:install_gem_spec_stubs) + end + end + + class GemBoot < Boot + def load_initializer + self.class.load_rubygems + load_rails_gem + require 'initializer' + end + + def load_rails_gem + if version = self.class.gem_version + gem 'rails', version + else + gem 'rails' + end + rescue Gem::LoadError => load_error + $stderr.puts %(Missing the Rails #{version} gem. Please `gem install -v=#{version} rails`, update your RAILS_GEM_VERSION setting in config/environment.rb for the Rails version you do have installed, or comment out RAILS_GEM_VERSION to use the latest version installed.) + exit 1 + end + + class << self + def rubygems_version + Gem::RubyGemsVersion if defined? Gem::RubyGemsVersion + end + + def gem_version + if defined? RAILS_GEM_VERSION + RAILS_GEM_VERSION + elsif ENV.include?('RAILS_GEM_VERSION') + ENV['RAILS_GEM_VERSION'] + else + parse_gem_version(read_environment_rb) + end + end + + def load_rubygems + require 'rubygems' + + unless rubygems_version >= '0.9.4' + $stderr.puts %(Rails requires RubyGems >= 0.9.4 (you have #{rubygems_version}). Please `gem update --system` and try again.) + exit 1 + end + + rescue LoadError + $stderr.puts %(Rails requires RubyGems >= 0.9.4. Please install RubyGems and try again: http://rubygems.rubyforge.org) + exit 1 + end + + def parse_gem_version(text) + $1 if text =~ /^[^#]*RAILS_GEM_VERSION\s*=\s*["']([!~<>=]*\s*[\d.]+)["']/ + end + + private + def read_environment_rb + File.read("#{RAILS_ROOT}/config/environment.rb") + end + end end - RAILS_ROOT = root_path end -if File.directory?("#{RAILS_ROOT}/vendor/rails") - require "#{RAILS_ROOT}/vendor/rails/railties/lib/initializer" -else - require 'rubygems' - require 'initializer' -end - -Rails::Initializer.run(:set_load_path) +# All that for this: +Rails.boot! diff --git a/rails-2.1/script/dbconsole b/rails-2.1/script/dbconsole new file mode 100644 index 000000000..caa60ce82 --- /dev/null +++ b/rails-2.1/script/dbconsole @@ -0,0 +1,3 @@ +#!/usr/bin/env ruby +require File.dirname(__FILE__) + '/../config/boot' +require 'commands/dbconsole' diff --git a/rails-2.1/script/performance/request b/rails-2.1/script/performance/request new file mode 100644 index 000000000..ae3f38c74 --- /dev/null +++ b/rails-2.1/script/performance/request @@ -0,0 +1,3 @@ +#!/usr/bin/env ruby +require File.dirname(__FILE__) + '/../../config/boot' +require 'commands/performance/request' diff --git a/rails-2.1/script/process/inspector b/rails-2.1/script/process/inspector new file mode 100644 index 000000000..bf25ad86d --- /dev/null +++ b/rails-2.1/script/process/inspector @@ -0,0 +1,3 @@ +#!/usr/bin/env ruby +require File.dirname(__FILE__) + '/../../config/boot' +require 'commands/process/inspector'