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