Chris@0
|
1 # Don't change this file!
|
Chris@0
|
2 # Configure your app in config/environment.rb and config/environments/*.rb
|
Chris@0
|
3
|
Chris@0
|
4 RAILS_ROOT = "#{File.dirname(__FILE__)}/.." unless defined?(RAILS_ROOT)
|
Chris@0
|
5
|
Chris@0
|
6 module Rails
|
Chris@0
|
7 class << self
|
Chris@0
|
8 def boot!
|
Chris@0
|
9 unless booted?
|
Chris@0
|
10 preinitialize
|
Chris@0
|
11 pick_boot.run
|
Chris@0
|
12 end
|
Chris@0
|
13 end
|
Chris@0
|
14
|
Chris@0
|
15 def booted?
|
Chris@0
|
16 defined? Rails::Initializer
|
Chris@0
|
17 end
|
Chris@0
|
18
|
Chris@0
|
19 def pick_boot
|
Chris@0
|
20 (vendor_rails? ? VendorBoot : GemBoot).new
|
Chris@0
|
21 end
|
Chris@0
|
22
|
Chris@0
|
23 def vendor_rails?
|
Chris@0
|
24 File.exist?("#{RAILS_ROOT}/vendor/rails")
|
Chris@0
|
25 end
|
Chris@0
|
26
|
Chris@0
|
27 def preinitialize
|
Chris@0
|
28 load(preinitializer_path) if File.exist?(preinitializer_path)
|
Chris@0
|
29 end
|
Chris@0
|
30
|
Chris@0
|
31 def preinitializer_path
|
Chris@0
|
32 "#{RAILS_ROOT}/config/preinitializer.rb"
|
Chris@0
|
33 end
|
Chris@0
|
34 end
|
Chris@0
|
35
|
Chris@0
|
36 class Boot
|
Chris@0
|
37 def run
|
Chris@0
|
38 load_initializer
|
Chris@0
|
39 Rails::Initializer.run(:set_load_path)
|
Chris@0
|
40 end
|
Chris@0
|
41 end
|
Chris@0
|
42
|
Chris@0
|
43 class VendorBoot < Boot
|
Chris@0
|
44 def load_initializer
|
Chris@0
|
45 require "#{RAILS_ROOT}/vendor/rails/railties/lib/initializer"
|
Chris@0
|
46 Rails::Initializer.run(:install_gem_spec_stubs)
|
Chris@0
|
47 Rails::GemDependency.add_frozen_gem_path
|
Chris@0
|
48 end
|
Chris@0
|
49 end
|
Chris@0
|
50
|
Chris@0
|
51 class GemBoot < Boot
|
Chris@0
|
52 def load_initializer
|
Chris@0
|
53 self.class.load_rubygems
|
Chris@0
|
54 load_rails_gem
|
Chris@0
|
55 require 'initializer'
|
Chris@0
|
56 end
|
Chris@0
|
57
|
Chris@0
|
58 def load_rails_gem
|
Chris@0
|
59 if version = self.class.gem_version
|
Chris@0
|
60 gem 'rails', version
|
Chris@0
|
61 else
|
Chris@0
|
62 gem 'rails'
|
Chris@0
|
63 end
|
Chris@0
|
64 rescue Gem::LoadError => load_error
|
Chris@0
|
65 $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.)
|
Chris@0
|
66 exit 1
|
Chris@0
|
67 end
|
Chris@0
|
68
|
Chris@0
|
69 class << self
|
Chris@0
|
70 def rubygems_version
|
Chris@0
|
71 Gem::RubyGemsVersion rescue nil
|
Chris@0
|
72 end
|
Chris@0
|
73
|
Chris@0
|
74 def gem_version
|
Chris@0
|
75 if defined? RAILS_GEM_VERSION
|
Chris@0
|
76 RAILS_GEM_VERSION
|
Chris@0
|
77 elsif ENV.include?('RAILS_GEM_VERSION')
|
Chris@0
|
78 ENV['RAILS_GEM_VERSION']
|
Chris@0
|
79 else
|
Chris@0
|
80 parse_gem_version(read_environment_rb)
|
Chris@0
|
81 end
|
Chris@0
|
82 end
|
Chris@0
|
83
|
Chris@0
|
84 def load_rubygems
|
Chris@0
|
85 min_version = '1.3.2'
|
Chris@0
|
86 require 'rubygems'
|
Chris@0
|
87 unless rubygems_version >= min_version
|
Chris@0
|
88 $stderr.puts %Q(Rails requires RubyGems >= #{min_version} (you have #{rubygems_version}). Please `gem update --system` and try again.)
|
Chris@0
|
89 exit 1
|
Chris@0
|
90 end
|
Chris@0
|
91
|
Chris@0
|
92 rescue LoadError
|
Chris@0
|
93 $stderr.puts %Q(Rails requires RubyGems >= #{min_version}. Please install RubyGems and try again: http://rubygems.rubyforge.org)
|
Chris@0
|
94 exit 1
|
Chris@0
|
95 end
|
Chris@0
|
96
|
Chris@0
|
97 def parse_gem_version(text)
|
Chris@0
|
98 $1 if text =~ /^[^#]*RAILS_GEM_VERSION\s*=\s*["']([!~<>=]*\s*[\d.]+)["']/
|
Chris@0
|
99 end
|
Chris@0
|
100
|
Chris@0
|
101 private
|
Chris@0
|
102 def read_environment_rb
|
Chris@0
|
103 File.read("#{RAILS_ROOT}/config/environment.rb")
|
Chris@0
|
104 end
|
Chris@0
|
105 end
|
Chris@0
|
106 end
|
Chris@0
|
107 end
|
Chris@0
|
108
|
Chris@0
|
109 # All that for this:
|
Chris@0
|
110 Rails.boot!
|