2007-10-23 01:36:52 -04:00
# Don't change this file!
# Configure your app in config/environment.rb and config/environments/*.rb
2005-12-07 22:54:50 -05:00
2007-03-18 09:35:16 -04:00
RAILS_ROOT = " #{ File . dirname ( __FILE__ ) } /.. " unless defined? ( RAILS_ROOT )
2005-09-03 11:13:06 -04:00
2007-10-23 01:36:52 -04:00
module Rails
class << self
def boot!
2007-11-16 20:38:58 -05:00
unless booted?
preinitialize
pick_boot . run
end
2007-10-23 01:36:52 -04:00
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
2007-11-16 20:38:58 -05:00
def preinitialize
2007-12-17 13:54:55 -05:00
load ( preinitializer_path ) if File . exist? ( preinitializer_path )
2007-11-16 20:38:58 -05:00
end
def preinitializer_path
" #{ RAILS_ROOT } /config/preinitializer.rb "
end
2007-10-23 01:36:52 -04:00
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-03-27 14:37:53 -04:00
Rails :: Initializer . run ( :install_gem_spec_stubs )
2007-10-23 01:36:52 -04:00
end
end
class GemBoot < Boot
def load_initializer
self . class . load_rubygems
load_rails_gem
require 'initializer'
end
2006-04-01 00:55:47 -05:00
2007-10-23 01:36:52 -04:00
def load_rails_gem
if version = self . class . gem_version
2007-11-16 20:39:19 -05:00
gem 'rails' , version
2007-10-18 13:28:55 -04:00
else
2007-10-23 01:36:52 -04:00
gem 'rails'
end
rescue Gem :: LoadError = > load_error
2007-10-25 21:45:31 -04:00
$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. )
2007-10-23 01:36:52 -04:00
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
2007-10-18 13:28:55 -04:00
end
2006-04-01 00:55:47 -05:00
2007-10-23 01:36:52 -04:00
def load_rubygems
require 'rubygems'
2006-04-01 00:55:47 -05:00
2007-10-23 01:36:52 -04:00
unless rubygems_version > = '0.9.4'
2007-10-25 21:45:31 -04:00
$stderr . puts %( Rails requires RubyGems >= 0.9.4 ( you have #{ rubygems_version } ) . Please `gem update --system` and try again. )
2007-10-23 01:36:52 -04:00
exit 1
end
rescue LoadError
2007-10-25 21:45:31 -04:00
$stderr . puts %( Rails requires RubyGems >= 0.9.4. Please install RubyGems and try again: http://rubygems.rubyforge.org )
2006-04-07 14:21:52 -04:00
exit 1
end
2007-10-23 01:36:52 -04:00
def parse_gem_version ( text )
2007-12-09 22:19:27 -05:00
$1 if text =~ / ^[^ # ]*RAILS_GEM_VERSION \ s*= \ s*["']([!~<>=]* \ s*[ \ d.]+)["'] /
2007-10-23 01:36:52 -04:00
end
private
def read_environment_rb
File . read ( " #{ RAILS_ROOT } /config/environment.rb " )
end
2006-04-01 00:55:47 -05:00
end
2006-03-31 23:58:46 -05:00
end
2007-03-06 04:22:07 -05:00
end
2007-10-23 01:36:52 -04:00
# All that for this:
Rails . boot!