2008-07-04 21:58:14 +04:00
# Don't change this file!
# Configure your app in config/environment.rb and config/environments/*.rb
2006-06-28 22:11:03 +04:00
2009-09-13 21:14:35 +04:00
RAILS_ROOT = " #{ File . dirname ( __FILE__ ) } /.. " unless defined? ( RAILS_ROOT )
2008-07-04 21:58:14 +04:00
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
2006-06-28 22:11:03 +04:00
end
2008-07-04 21:58:14 +04:00
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 )
2009-09-13 21:14:35 +04:00
Rails :: GemDependency . add_frozen_gem_path
2008-07-04 21:58:14 +04:00
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
2009-02-21 14:04:50 +03:00
Gem :: RubyGemsVersion rescue nil
2008-07-04 21:58:14 +04:00
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
2009-09-13 21:14:35 +04:00
min_version = '1.3.2'
2008-07-04 21:58:14 +04:00
require 'rubygems'
2009-02-21 14:04:50 +03:00
unless rubygems_version > = min_version
$stderr . puts %Q( Rails requires RubyGems >= #{ min_version } ( you have #{ rubygems_version } ) . Please `gem update --system` and try again. )
2008-07-04 21:58:14 +04:00
exit 1
end
rescue LoadError
2009-02-21 14:04:50 +03:00
$stderr . puts %Q( Rails requires RubyGems >= #{ min_version } . Please install RubyGems and try again: http://rubygems.rubyforge.org )
2008-07-04 21:58:14 +04:00
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
2006-06-28 22:11:03 +04:00
end
2010-12-17 11:34:29 +03:00
# TODO: Workaround for #7013 to be removed for 1.2.0
# Loads i18n 0.4.2 before Rails loads any more recent gem
# 0.5.0 is not compatible with the old interpolation syntax
# Plugins will have to migrate to the new syntax for 1.2.0
require 'rubygems'
begin
gem 'i18n' , '0.4.2'
rescue Gem :: LoadError = > load_error
$stderr . puts %( Missing the i18n 0.4.2 gem. Please `gem install -v=0.4.2 i18n` )
exit 1
end
2008-07-04 21:58:14 +04:00
# All that for this:
Rails . boot!