2008-05-18 06:22:34 +02:00
# Don't change this file!
# Configure your app in config/environment.rb and config/environments/*.rb
2007-02-13 16:55:26 +01:00
2008-05-18 06:22:34 +02:00
RAILS_ROOT = " #{ File . dirname ( __FILE__ ) } /.. " unless defined? ( RAILS_ROOT )
2007-02-13 16:55:26 +01:00
2008-05-18 06:22:34 +02:00
module Rails
class << self
def boot!
unless booted?
preinitialize
pick_boot . run
end
end
2007-02-13 16:55:26 +01:00
2008-05-18 06:22:34 +02:00
def booted?
defined? Rails :: Initializer
end
2007-01-22 14:43:50 +01:00
2008-05-18 06:22:34 +02:00
def pick_boot
( vendor_rails? ? VendorBoot : GemBoot ) . new
end
def vendor_rails?
File . exist? ( " #{ RAILS_ROOT } /vendor/rails " )
end
2007-02-13 16:55:26 +01:00
2008-05-18 06:22:34 +02:00
def preinitialize
load ( preinitializer_path ) if File . exist? ( preinitializer_path )
end
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 "
Rails :: Initializer . run ( :install_gem_spec_stubs )
end
end
2007-02-13 16:55:26 +01:00
2008-05-18 06:22:34 +02:00
class GemBoot < Boot
def load_initializer
self . class . load_rubygems
load_rails_gem
require 'initializer'
end
2007-02-13 16:55:26 +01:00
2008-05-18 06:22:34 +02:00
def load_rails_gem
if version = self . class . gem_version
gem 'rails' , version
2007-02-13 16:55:26 +01:00
else
2008-05-18 06:22:34 +02:00
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
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
end
def load_rubygems
require 'rubygems'
unless rubygems_version > = '0.9.4'
$stderr . puts %( Rails requires RubyGems >= 0.9.4 ( you have #{ rubygems_version } ) . Please `gem update --system` and try again. )
exit 1
end
rescue LoadError
$stderr . puts %( Rails requires RubyGems >= 0.9.4. Please install RubyGems and try again: http://rubygems.rubyforge.org )
2007-02-13 16:55:26 +01:00
exit 1
end
2008-05-18 06:22:34 +02: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-02-13 16:55:26 +01:00
end
end
2008-05-18 06:22:34 +02:00
end
2007-01-22 14:43:50 +01:00
2008-05-18 06:22:34 +02:00
# All that for this:
Rails . boot!