2007-12-21 08:48:59 +01:00
# Don't change this file!
# Configure your app in config/environment.rb and config/environments/*.rb
2007-01-22 14:43:50 +01:00
2007-10-15 19:16:54 +02:00
RAILS_ROOT = " #{ File . dirname ( __FILE__ ) } /.. " unless defined? ( RAILS_ROOT )
2007-01-22 14:43:50 +01:00
2007-12-21 08:48:59 +01: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
2008-05-18 06:22:34 +02:00
load ( preinitializer_path ) if File . exist? ( preinitializer_path )
2007-12-21 08:48:59 +01:00
end
2007-01-22 14:43:50 +01:00
2007-12-21 08:48:59 +01:00
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 "
2008-05-18 06:22:34 +02:00
Rails :: Initializer . run ( :install_gem_spec_stubs )
2007-12-21 08:48:59 +01: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
2007-10-15 19:16:54 +02:00
else
2007-12-21 08:48:59 +01:00
gem 'rails'
2007-10-15 19:16:54 +02:00
end
2007-12-21 08:48:59 +01:00
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
2007-01-22 14:43:50 +01:00
2007-12-21 08:48:59 +01:00
class << self
def rubygems_version
2008-11-24 22:53:39 +01:00
Gem :: RubyGemsVersion rescue nil
2007-12-21 08:48:59 +01:00
end
2007-01-22 14:43:50 +01:00
2007-12-21 08:48:59 +01:00
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'
2008-11-24 22:53:39 +01:00
min_version = '1.3.1'
2008-09-07 07:54:05 +02: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. )
2007-12-21 08:48:59 +01:00
exit 1
end
rescue LoadError
2008-09-07 07:54:05 +02:00
$stderr . puts %Q( Rails requires RubyGems >= #{ min_version } . Please install RubyGems and try again: http://rubygems.rubyforge.org )
2007-01-22 14:43:50 +01:00
exit 1
end
2007-12-21 08:48:59 +01:00
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
2007-01-22 14:43:50 +01:00
end
end
2007-03-18 17:56:12 +01:00
end
2007-12-21 08:48:59 +01:00
# All that for this:
Rails . boot!