diff --git a/railties/CHANGELOG b/railties/CHANGELOG index 593b5ac29ac73fad12f8bae7e29246bf2de0cd13..407b01010e0aa3338755ea4200ef9e2a47e27da1 100644 --- a/railties/CHANGELOG +++ b/railties/CHANGELOG @@ -1,6 +1,9 @@ -* Don't match commented out RAILS_GEM_VERSIONs. [Nicholas Seckar] +*SVN* + +* Added rake rails:update:configs to update config/boot.rb from the latest (also included in rake rails:update) [DHH] + +* Fixed that boot.rb would set RAILS_GEM_VERSION twice, not respect an uncommented RAILS_GEM_VERSION line, and not use require_gem [DHH] -* Avoid "Constant already defined" warnings for RAILS_GEM_VERSION. [Chad Fowler] *1.1.1* (April 6th, 2005) diff --git a/railties/environments/boot.rb b/railties/environments/boot.rb index e638abe1a24676ca0c1ab378293c6aecf29a294a..9a094cbc6dc9302dc151346f15aec13f76973ef3 100644 --- a/railties/environments/boot.rb +++ b/railties/environments/boot.rb @@ -2,37 +2,43 @@ 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 end + RAILS_ROOT = root_path end -if File.directory?("#{RAILS_ROOT}/vendor/rails") - require "#{RAILS_ROOT}/vendor/rails/railties/lib/initializer" -else - require 'rubygems' +unless defined?(Rails::Initializer) + if File.directory?("#{RAILS_ROOT}/vendor/rails") + require "#{RAILS_ROOT}/vendor/rails/railties/lib/initializer" + else + require 'rubygems' - if !defined?(RAILS_GEM_VERSION) && File.read(File.dirname(__FILE__) + '/environment.rb') =~ /^\s*RAILS_GEM_VERSION = '([\d.]+)'/ - RAILS_GEM_VERSION = $1 - end + environment_without_comments = IO.readlines(File.dirname(__FILE__) + '/environment.rb').reject { |l| l =~ /^#/ }.join + environment_without_comments =~ /[^#]RAILS_GEM_VERSION = '([\d.]+)'/ + rails_gem_version = $1 - if defined?(RAILS_GEM_VERSION) - rails_gem = Gem.cache.search('rails', "=#{RAILS_GEM_VERSION}").first + if version = defined?(RAILS_GEM_VERSION) ? RAILS_GEM_VERSION : rails_gem_version + rails_gem = Gem.cache.search('rails', "=#{version}").first - if rails_gem - require rails_gem.full_gem_path + '/lib/initializer' + if rails_gem + require_gem "rails", "=#{version}" + require rails_gem.full_gem_path + '/lib/initializer' + else + STDERR.puts %(Cannot find gem for Rails =#{version}: + Install the missing gem with 'gem install -v=#{version} rails', or + change environment.rb to define RAILS_GEM_VERSION with your desired version. + ) + exit 1 + end else - STDERR.puts %(Cannot find gem for Rails =#{RAILS_GEM_VERSION}: - Install the missing gem with 'gem install -v=#{RAILS_GEM_VERSION} rails', or - change environment.rb to define RAILS_GEM_VERSION with your desired version. -) - exit 1 + require_gem "rails" + require 'initializer' end - else - require 'initializer' end -end -Rails::Initializer.run(:set_load_path) \ No newline at end of file + Rails::Initializer.run(:set_load_path) +end \ No newline at end of file diff --git a/railties/lib/tasks/framework.rake b/railties/lib/tasks/framework.rake index d12471949bab8244a65a4b0d31a2f2ae2f6f1947..bc8093e8553caef690be637f784003a50c7e6c0e 100644 --- a/railties/lib/tasks/framework.rake +++ b/railties/lib/tasks/framework.rake @@ -71,8 +71,8 @@ namespace :rails do rm_rf "vendor/rails" end - desc "Update both scripts and public/javascripts from Rails" - task :update => [ "update:scripts", "update:javascripts" ] + desc "Update both configs, scripts and public/javascripts from Rails" + task :update => [ "update:scripts", "update:javascripts", "update:configs" ] namespace :update do desc "Add new scripts to the application script/ directory" @@ -102,5 +102,13 @@ namespace :rails do scripts.reject!{|s| File.basename(s) == 'application.js'} if File.exists?(project_dir + 'application.js') FileUtils.cp(scripts, project_dir) end + + desc "Update boot/config.rb from your current rails install" + task :configs do + require 'railties_path' + project_dir = RAILS_ROOT + '/public/javascripts/' + scripts = Dir[RAILTIES_PATH + '/html/javascripts/*.js'] + FileUtils.cp(RAILTIES_PATH + '/environments/boot.rb', RAILTIES_PATH + '/environments/boot.rb') + end end end