aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--railties/CHANGELOG7
-rw-r--r--railties/environments/boot.rb46
-rw-r--r--railties/lib/tasks/framework.rake12
3 files changed, 41 insertions, 24 deletions
diff --git a/railties/CHANGELOG b/railties/CHANGELOG
index 593b5ac29a..407b01010e 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 e638abe1a2..9a094cbc6d 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 d12471949b..bc8093e855 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