Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 125 lines (103 sloc) 3.039 kb
99da426 Zachary Kim Initial commit after nuking history (pws and keys in history).
authored
1 # Don't change this file!
2 # Configure your app in config/environment.rb and config/environments/*.rb
3
4 RAILS_ROOT = "#{File.dirname(__FILE__)}/.." unless defined?(RAILS_ROOT)
5
6 module Rails
7 class << self
8 def boot!
9 unless booted?
10 preinitialize
11 pick_boot.run
12 end
13 end
14
15 def booted?
16 defined? Rails::Initializer
17 end
18
19 def pick_boot
20 (vendor_rails? ? VendorBoot : GemBoot).new
21 end
22
23 def vendor_rails?
24 File.exist?("#{RAILS_ROOT}/vendor/rails")
25 end
26
27 def preinitialize
28 load(preinitializer_path) if File.exist?(preinitializer_path)
29 end
30
31 def preinitializer_path
32 "#{RAILS_ROOT}/config/preinitializer.rb"
33 end
34 end
35
36 class Boot
37 def run
38 load_initializer
39 Rails::Initializer.run(:set_load_path)
40 end
41 end
42
43 class VendorBoot < Boot
44 def load_initializer
45 require "#{RAILS_ROOT}/vendor/rails/railties/lib/initializer"
46 Rails::Initializer.run(:install_gem_spec_stubs)
47 Rails::GemDependency.add_frozen_gem_path
48 end
49 end
50
51 class GemBoot < Boot
52 def load_initializer
53 self.class.load_rubygems
54 load_rails_gem
55 require 'initializer'
56 end
57
58 def load_rails_gem
59 if version = self.class.gem_version
60 gem 'rails', version
61 else
62 gem 'rails'
63 end
64 rescue Gem::LoadError => load_error
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.)
66 exit 1
67 end
68
69 class << self
70 def rubygems_version
71 Gem::RubyGemsVersion rescue nil
72 end
73
74 def gem_version
75 if defined? RAILS_GEM_VERSION
76 RAILS_GEM_VERSION
77 elsif ENV.include?('RAILS_GEM_VERSION')
78 ENV['RAILS_GEM_VERSION']
79 else
80 parse_gem_version(read_environment_rb)
81 end
82 end
83
84 def load_rubygems
85 min_version = '1.3.2'
86 require 'rubygems'
87 unless rubygems_version >= min_version
88 $stderr.puts %Q(Rails requires RubyGems >= #{min_version} (you have #{rubygems_version}). Please `gem update --system` and try again.)
89 exit 1
90 end
91
92 rescue LoadError
93 $stderr.puts %Q(Rails requires RubyGems >= #{min_version}. Please install RubyGems and try again: http://rubygems.rubyforge.org)
94 exit 1
95 end
96
97 def parse_gem_version(text)
98 $1 if text =~ /^[^#]*RAILS_GEM_VERSION\s*=\s*["']([!~<>=]*\s*[\d.]+)["']/
99 end
100
101 private
102 def read_environment_rb
103 File.read("#{RAILS_ROOT}/config/environment.rb")
104 end
105 end
106 end
107 end
108
218bf5c Adding example database yml, setup for bundler in boot process
Chad Humphries and Jon Distad authored
109 class Rails::Boot
110 def run
111 load_initializer
112
113 Rails::Initializer.class_eval do
114 def load_gems
115 @bundler_loaded ||= Bundler.require :default, Rails.env
116 end
117 end
118
119 Rails::Initializer.run(:set_load_path)
120 end
121 end
122
99da426 Zachary Kim Initial commit after nuking history (pws and keys in history).
authored
123 # All that for this:
124 Rails.boot!
Something went wrong with that request. Please try again.