offroad 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- data/LICENSE +674 -674
- data/README.rdoc +29 -29
- data/Rakefile +75 -75
- data/TODO +42 -42
- data/lib/app/models/offroad/group_state.rb +85 -85
- data/lib/app/models/offroad/mirror_info.rb +53 -53
- data/lib/app/models/offroad/model_state.rb +36 -36
- data/lib/app/models/offroad/received_record_state.rb +115 -115
- data/lib/app/models/offroad/sendable_record_state.rb +91 -91
- data/lib/app/models/offroad/system_state.rb +33 -33
- data/lib/cargo_streamer.rb +222 -222
- data/lib/controller_extensions.rb +74 -74
- data/lib/exceptions.rb +16 -16
- data/lib/migrate/20100512164608_create_offroad_tables.rb +72 -72
- data/lib/mirror_data.rb +376 -376
- data/lib/model_extensions.rb +378 -377
- data/lib/module_funcs.rb +94 -94
- data/lib/offroad.rb +41 -41
- data/lib/version.rb +3 -3
- data/lib/view_helper.rb +7 -7
- data/templates/offline.rb +36 -36
- data/templates/offline_database.yml +7 -7
- data/templates/offroad.yml +6 -6
- data/test/app_root/app/controllers/application_controller.rb +2 -2
- data/test/app_root/app/controllers/group_controller.rb +28 -28
- data/test/app_root/app/models/global_record.rb +10 -10
- data/test/app_root/app/models/group.rb +12 -12
- data/test/app_root/app/models/group_owned_record.rb +68 -68
- data/test/app_root/app/models/guest.rb +7 -7
- data/test/app_root/app/models/subrecord.rb +12 -12
- data/test/app_root/app/models/unmirrored_record.rb +4 -4
- data/test/app_root/app/views/group/download_down_mirror.html.erb +3 -3
- data/test/app_root/app/views/group/download_initial_down_mirror.html.erb +3 -3
- data/test/app_root/app/views/group/download_up_mirror.html.erb +5 -5
- data/test/app_root/app/views/layouts/mirror.html.erb +8 -8
- data/test/app_root/config/boot.rb +115 -115
- data/test/app_root/config/database-pg.yml +8 -8
- data/test/app_root/config/database.yml +5 -5
- data/test/app_root/config/environment.rb +24 -24
- data/test/app_root/config/environments/test.rb +17 -17
- data/test/app_root/config/offroad.yml +6 -6
- data/test/app_root/config/routes.rb +4 -4
- data/test/app_root/db/migrate/20100529235049_create_tables.rb +64 -64
- data/test/app_root/lib/common_hobo.rb +15 -15
- data/test/app_root/vendor/plugins/offroad/init.rb +2 -2
- data/test/functional/mirror_operations_test.rb +148 -148
- data/test/test_helper.rb +453 -453
- data/test/unit/app_state_tracking_test.rb +275 -275
- data/test/unit/cargo_streamer_test.rb +332 -332
- data/test/unit/global_data_test.rb +102 -102
- data/test/unit/group_controller_test.rb +152 -152
- data/test/unit/group_data_test.rb +442 -435
- data/test/unit/group_single_test.rb +136 -136
- data/test/unit/hobo_permissions_test.rb +57 -57
- data/test/unit/mirror_data_test.rb +1283 -1283
- data/test/unit/mirror_info_test.rb +31 -31
- data/test/unit/module_funcs_test.rb +37 -37
- data/test/unit/pathological_model_test.rb +62 -62
- data/test/unit/test_framework_test.rb +86 -86
- data/test/unit/unmirrored_data_test.rb +14 -14
- metadata +6 -8
@@ -1,10 +1,10 @@
|
|
1
|
-
class GlobalRecord < ActiveRecord::Base
|
2
|
-
include CommonHobo if HOBO_TEST_MODE
|
3
|
-
acts_as_offroadable :global
|
4
|
-
validates_presence_of :title
|
5
|
-
belongs_to :unmirrored_record
|
6
|
-
belongs_to :some_group, :class_name => "Group"
|
7
|
-
belongs_to :friend, :class_name => "GlobalRecord"
|
8
|
-
validates_numericality_of :should_be_odd, :odd => true
|
9
|
-
attr_protected :protected_integer
|
10
|
-
end
|
1
|
+
class GlobalRecord < ActiveRecord::Base
|
2
|
+
include CommonHobo if HOBO_TEST_MODE
|
3
|
+
acts_as_offroadable :global
|
4
|
+
validates_presence_of :title
|
5
|
+
belongs_to :unmirrored_record
|
6
|
+
belongs_to :some_group, :class_name => "Group"
|
7
|
+
belongs_to :friend, :class_name => "GlobalRecord"
|
8
|
+
validates_numericality_of :should_be_odd, :odd => true
|
9
|
+
attr_protected :protected_integer
|
10
|
+
end
|
@@ -1,12 +1,12 @@
|
|
1
|
-
class Group < ActiveRecord::Base
|
2
|
-
include CommonHobo if HOBO_TEST_MODE
|
3
|
-
acts_as_offroadable :group_base
|
4
|
-
validates_presence_of :name
|
5
|
-
has_many :group_owned_records, :dependent => :destroy
|
6
|
-
belongs_to :favorite, :class_name => "GroupOwnedRecord"
|
7
|
-
belongs_to :unmirrored_record
|
8
|
-
belongs_to :global_record
|
9
|
-
def to_s
|
10
|
-
name
|
11
|
-
end
|
12
|
-
end
|
1
|
+
class Group < ActiveRecord::Base
|
2
|
+
include CommonHobo if HOBO_TEST_MODE
|
3
|
+
acts_as_offroadable :group_base
|
4
|
+
validates_presence_of :name
|
5
|
+
has_many :group_owned_records, :dependent => :destroy
|
6
|
+
belongs_to :favorite, :class_name => "GroupOwnedRecord"
|
7
|
+
belongs_to :unmirrored_record
|
8
|
+
belongs_to :global_record
|
9
|
+
def to_s
|
10
|
+
name
|
11
|
+
end
|
12
|
+
end
|
@@ -1,68 +1,68 @@
|
|
1
|
-
class GroupOwnedRecord < ActiveRecord::Base
|
2
|
-
include CommonHobo if HOBO_TEST_MODE
|
3
|
-
belongs_to :group
|
4
|
-
acts_as_offroadable :group_owned, :parent => :group
|
5
|
-
|
6
|
-
belongs_to :parent, :class_name => "GroupOwnedRecord"
|
7
|
-
belongs_to :unmirrored_record
|
8
|
-
belongs_to :global_record
|
9
|
-
has_many :children, :foreign_key => "parent_id", :class_name => "GroupOwnedRecord"
|
10
|
-
has_many :subrecords
|
11
|
-
validates_presence_of :description, :group
|
12
|
-
validates_numericality_of :should_be_even, :even => true
|
13
|
-
attr_protected :protected_integer
|
14
|
-
|
15
|
-
def to_s
|
16
|
-
description
|
17
|
-
end
|
18
|
-
|
19
|
-
def before_save
|
20
|
-
@@callback_called = true
|
21
|
-
end
|
22
|
-
|
23
|
-
def after_save
|
24
|
-
@@callback_called = true
|
25
|
-
end
|
26
|
-
|
27
|
-
def before_destroy
|
28
|
-
@@callback_called = true
|
29
|
-
end
|
30
|
-
|
31
|
-
def after_destroy
|
32
|
-
@@callback_called = true
|
33
|
-
end
|
34
|
-
|
35
|
-
def self.reset_callback_called
|
36
|
-
@@callback_called = false
|
37
|
-
end
|
38
|
-
|
39
|
-
def self.callback_called
|
40
|
-
@@callback_called
|
41
|
-
end
|
42
|
-
|
43
|
-
def after_offroad_upload
|
44
|
-
@@after_upload_count ||= 0
|
45
|
-
@@after_upload_count += 1
|
46
|
-
end
|
47
|
-
|
48
|
-
def self.reset_after_upload_count
|
49
|
-
@@after_upload_count = 0
|
50
|
-
end
|
51
|
-
|
52
|
-
def self.after_upload_count
|
53
|
-
@@after_upload_count
|
54
|
-
end
|
55
|
-
|
56
|
-
def after_offroad_destroy
|
57
|
-
@@after_destroy_count ||= 0
|
58
|
-
@@after_destroy_count += 1
|
59
|
-
end
|
60
|
-
|
61
|
-
def self.reset_after_destroy_count
|
62
|
-
@@after_destroy_count = 0
|
63
|
-
end
|
64
|
-
|
65
|
-
def self.after_destroy_count
|
66
|
-
@@after_destroy_count
|
67
|
-
end
|
68
|
-
end
|
1
|
+
class GroupOwnedRecord < ActiveRecord::Base
|
2
|
+
include CommonHobo if HOBO_TEST_MODE
|
3
|
+
belongs_to :group
|
4
|
+
acts_as_offroadable :group_owned, :parent => :group
|
5
|
+
|
6
|
+
belongs_to :parent, :class_name => "GroupOwnedRecord"
|
7
|
+
belongs_to :unmirrored_record
|
8
|
+
belongs_to :global_record
|
9
|
+
has_many :children, :foreign_key => "parent_id", :class_name => "GroupOwnedRecord"
|
10
|
+
has_many :subrecords
|
11
|
+
validates_presence_of :description, :group
|
12
|
+
validates_numericality_of :should_be_even, :even => true
|
13
|
+
attr_protected :protected_integer
|
14
|
+
|
15
|
+
def to_s
|
16
|
+
description
|
17
|
+
end
|
18
|
+
|
19
|
+
def before_save
|
20
|
+
@@callback_called = true
|
21
|
+
end
|
22
|
+
|
23
|
+
def after_save
|
24
|
+
@@callback_called = true
|
25
|
+
end
|
26
|
+
|
27
|
+
def before_destroy
|
28
|
+
@@callback_called = true
|
29
|
+
end
|
30
|
+
|
31
|
+
def after_destroy
|
32
|
+
@@callback_called = true
|
33
|
+
end
|
34
|
+
|
35
|
+
def self.reset_callback_called
|
36
|
+
@@callback_called = false
|
37
|
+
end
|
38
|
+
|
39
|
+
def self.callback_called
|
40
|
+
@@callback_called
|
41
|
+
end
|
42
|
+
|
43
|
+
def after_offroad_upload
|
44
|
+
@@after_upload_count ||= 0
|
45
|
+
@@after_upload_count += 1
|
46
|
+
end
|
47
|
+
|
48
|
+
def self.reset_after_upload_count
|
49
|
+
@@after_upload_count = 0
|
50
|
+
end
|
51
|
+
|
52
|
+
def self.after_upload_count
|
53
|
+
@@after_upload_count
|
54
|
+
end
|
55
|
+
|
56
|
+
def after_offroad_destroy
|
57
|
+
@@after_destroy_count ||= 0
|
58
|
+
@@after_destroy_count += 1
|
59
|
+
end
|
60
|
+
|
61
|
+
def self.reset_after_destroy_count
|
62
|
+
@@after_destroy_count = 0
|
63
|
+
end
|
64
|
+
|
65
|
+
def self.after_destroy_count
|
66
|
+
@@after_destroy_count
|
67
|
+
end
|
68
|
+
end
|
@@ -1,7 +1,7 @@
|
|
1
|
-
if HOBO_TEST_MODE
|
2
|
-
class Guest < Hobo::Guest
|
3
|
-
def administrator?
|
4
|
-
false
|
5
|
-
end
|
6
|
-
end
|
7
|
-
end
|
1
|
+
if HOBO_TEST_MODE
|
2
|
+
class Guest < Hobo::Guest
|
3
|
+
def administrator?
|
4
|
+
false
|
5
|
+
end
|
6
|
+
end
|
7
|
+
end
|
@@ -1,12 +1,12 @@
|
|
1
|
-
class SubRecord < ActiveRecord::Base
|
2
|
-
include CommonHobo if HOBO_TEST_MODE
|
3
|
-
belongs_to :group_owned_record
|
4
|
-
acts_as_offroadable :group_owned, :parent => :group_owned_record
|
5
|
-
|
6
|
-
belongs_to :buddy, :class_name => "SubRecord"
|
7
|
-
belongs_to :unmirrored_record
|
8
|
-
|
9
|
-
def to_s
|
10
|
-
description
|
11
|
-
end
|
12
|
-
end
|
1
|
+
class SubRecord < ActiveRecord::Base
|
2
|
+
include CommonHobo if HOBO_TEST_MODE
|
3
|
+
belongs_to :group_owned_record
|
4
|
+
acts_as_offroadable :group_owned, :parent => :group_owned_record
|
5
|
+
|
6
|
+
belongs_to :buddy, :class_name => "SubRecord"
|
7
|
+
belongs_to :unmirrored_record
|
8
|
+
|
9
|
+
def to_s
|
10
|
+
description
|
11
|
+
end
|
12
|
+
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
class UnmirroredRecord < ActiveRecord::Base
|
2
|
-
include CommonHobo if HOBO_TEST_MODE
|
3
|
-
validates_presence_of :content
|
4
|
-
end
|
1
|
+
class UnmirroredRecord < ActiveRecord::Base
|
2
|
+
include CommonHobo if HOBO_TEST_MODE
|
3
|
+
validates_presence_of :content
|
4
|
+
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
<% content_for :title do %>Test App Downloaded Data<% end %>
|
2
|
-
|
3
|
-
This file contains information downloaded from the Test App online system.<br/>
|
1
|
+
<% content_for :title do %>Test App Downloaded Data<% end %>
|
2
|
+
|
3
|
+
This file contains information downloaded from the Test App online system.<br/>
|
4
4
|
Please take it to your offline Test App system and load it there.
|
@@ -1,4 +1,4 @@
|
|
1
|
-
<% content_for :title do %>Test App Downloaded Data<% end %>
|
2
|
-
|
3
|
-
This file contains information downloaded from the Test App online system.<br/>
|
1
|
+
<% content_for :title do %>Test App Downloaded Data<% end %>
|
2
|
+
|
3
|
+
This file contains information downloaded from the Test App online system.<br/>
|
4
4
|
Please take it to your offline Test App system and load it there.
|
@@ -1,6 +1,6 @@
|
|
1
|
-
<% content_for :title do %>Test App Data For Upload<% end %>
|
2
|
-
|
3
|
-
This file contains your data that is to be sent to the Test App online system.<br/>
|
4
|
-
Take this file to a computer with Internet access, then go to this website:<br/><br/>
|
5
|
-
|
1
|
+
<% content_for :title do %>Test App Data For Upload<% end %>
|
2
|
+
|
3
|
+
This file contains your data that is to be sent to the Test App online system.<br/>
|
4
|
+
Take this file to a computer with Internet access, then go to this website:<br/><br/>
|
5
|
+
|
6
6
|
<%= link_to_online_app %>
|
@@ -1,9 +1,9 @@
|
|
1
|
-
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
2
|
-
<html xmlns="http://www.w3.org/1999/xhtml">
|
3
|
-
<head>
|
4
|
-
<title><%= yield :title %></title>
|
5
|
-
</head>
|
6
|
-
<body>
|
7
|
-
<%= yield %>
|
8
|
-
</body>
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
2
|
+
<html xmlns="http://www.w3.org/1999/xhtml">
|
3
|
+
<head>
|
4
|
+
<title><%= yield :title %></title>
|
5
|
+
</head>
|
6
|
+
<body>
|
7
|
+
<%= yield %>
|
8
|
+
</body>
|
9
9
|
</html>
|
@@ -1,115 +1,115 @@
|
|
1
|
-
# Allow customization of the rails framework path
|
2
|
-
RAILS_FRAMEWORK_ROOT = (ENV['RAILS_FRAMEWORK_ROOT'] || "#{File.dirname(__FILE__)}/../../../../../../vendor/rails") unless defined?(RAILS_FRAMEWORK_ROOT)
|
3
|
-
|
4
|
-
# Don't change this file!
|
5
|
-
# Configure your app in config/environment.rb and config/environments/*.rb
|
6
|
-
|
7
|
-
RAILS_ROOT = "#{File.dirname(__FILE__)}/.." unless defined?(RAILS_ROOT)
|
8
|
-
|
9
|
-
module Rails
|
10
|
-
class << self
|
11
|
-
def boot!
|
12
|
-
unless booted?
|
13
|
-
preinitialize
|
14
|
-
pick_boot.run
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
def booted?
|
19
|
-
defined? Rails::Initializer
|
20
|
-
end
|
21
|
-
|
22
|
-
def pick_boot
|
23
|
-
(vendor_rails? ? VendorBoot : GemBoot).new
|
24
|
-
end
|
25
|
-
|
26
|
-
def vendor_rails?
|
27
|
-
File.exist?(RAILS_FRAMEWORK_ROOT)
|
28
|
-
end
|
29
|
-
|
30
|
-
def preinitialize
|
31
|
-
load(preinitializer_path) if File.exist?(preinitializer_path)
|
32
|
-
end
|
33
|
-
|
34
|
-
def preinitializer_path
|
35
|
-
"#{RAILS_ROOT}/config/preinitializer.rb"
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
class Boot
|
40
|
-
def run
|
41
|
-
load_initializer
|
42
|
-
Rails::Initializer.run(:set_load_path)
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
class VendorBoot < Boot
|
47
|
-
def load_initializer
|
48
|
-
require "#{RAILS_FRAMEWORK_ROOT}/railties/lib/initializer"
|
49
|
-
Rails::Initializer.run(:install_gem_spec_stubs)
|
50
|
-
Rails::GemDependency.add_frozen_gem_path
|
51
|
-
end
|
52
|
-
end
|
53
|
-
|
54
|
-
class GemBoot < Boot
|
55
|
-
def load_initializer
|
56
|
-
self.class.load_rubygems
|
57
|
-
load_rails_gem
|
58
|
-
require 'initializer'
|
59
|
-
end
|
60
|
-
|
61
|
-
def load_rails_gem
|
62
|
-
if version = self.class.gem_version
|
63
|
-
gem 'rails', version
|
64
|
-
else
|
65
|
-
gem 'rails'
|
66
|
-
end
|
67
|
-
rescue Gem::LoadError => load_error
|
68
|
-
$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.)
|
69
|
-
exit 1
|
70
|
-
end
|
71
|
-
|
72
|
-
class << self
|
73
|
-
def rubygems_version
|
74
|
-
Gem::RubyGemsVersion rescue nil
|
75
|
-
end
|
76
|
-
|
77
|
-
def gem_version
|
78
|
-
if defined? RAILS_GEM_VERSION
|
79
|
-
RAILS_GEM_VERSION
|
80
|
-
elsif ENV.include?('RAILS_GEM_VERSION')
|
81
|
-
ENV['RAILS_GEM_VERSION']
|
82
|
-
else
|
83
|
-
parse_gem_version(read_environment_rb)
|
84
|
-
end
|
85
|
-
end
|
86
|
-
|
87
|
-
def load_rubygems
|
88
|
-
require 'rubygems'
|
89
|
-
min_version = '1.3.1'
|
90
|
-
unless rubygems_version >= min_version
|
91
|
-
$stderr.puts %Q(Rails requires RubyGems >= #{min_version} (you have #{rubygems_version}). Please `gem update --system` and try again.)
|
92
|
-
exit 1
|
93
|
-
end
|
94
|
-
|
95
|
-
rescue LoadError
|
96
|
-
$stderr.puts %Q(Rails requires RubyGems >= #{min_version}. Please install RubyGems and try again: http://rubygems.rubyforge.org)
|
97
|
-
exit 1
|
98
|
-
end
|
99
|
-
|
100
|
-
def parse_gem_version(text)
|
101
|
-
$1 if text =~ /^[^#]*RAILS_GEM_VERSION\s*=\s*["']([!~<>=]*\s*[\d.]+)["']/
|
102
|
-
end
|
103
|
-
|
104
|
-
private
|
105
|
-
def read_environment_rb
|
106
|
-
environment_rb = "#{RAILS_ROOT}/config/environment.rb"
|
107
|
-
environment_rb = "#{HELPER_RAILS_ROOT}/config/environment.rb" unless File.exists?(environment_rb)
|
108
|
-
File.read(environment_rb)
|
109
|
-
end
|
110
|
-
end
|
111
|
-
end
|
112
|
-
end
|
113
|
-
|
114
|
-
# All that for this:
|
115
|
-
Rails.boot!
|
1
|
+
# Allow customization of the rails framework path
|
2
|
+
RAILS_FRAMEWORK_ROOT = (ENV['RAILS_FRAMEWORK_ROOT'] || "#{File.dirname(__FILE__)}/../../../../../../vendor/rails") unless defined?(RAILS_FRAMEWORK_ROOT)
|
3
|
+
|
4
|
+
# Don't change this file!
|
5
|
+
# Configure your app in config/environment.rb and config/environments/*.rb
|
6
|
+
|
7
|
+
RAILS_ROOT = "#{File.dirname(__FILE__)}/.." unless defined?(RAILS_ROOT)
|
8
|
+
|
9
|
+
module Rails
|
10
|
+
class << self
|
11
|
+
def boot!
|
12
|
+
unless booted?
|
13
|
+
preinitialize
|
14
|
+
pick_boot.run
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def booted?
|
19
|
+
defined? Rails::Initializer
|
20
|
+
end
|
21
|
+
|
22
|
+
def pick_boot
|
23
|
+
(vendor_rails? ? VendorBoot : GemBoot).new
|
24
|
+
end
|
25
|
+
|
26
|
+
def vendor_rails?
|
27
|
+
File.exist?(RAILS_FRAMEWORK_ROOT)
|
28
|
+
end
|
29
|
+
|
30
|
+
def preinitialize
|
31
|
+
load(preinitializer_path) if File.exist?(preinitializer_path)
|
32
|
+
end
|
33
|
+
|
34
|
+
def preinitializer_path
|
35
|
+
"#{RAILS_ROOT}/config/preinitializer.rb"
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
class Boot
|
40
|
+
def run
|
41
|
+
load_initializer
|
42
|
+
Rails::Initializer.run(:set_load_path)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
class VendorBoot < Boot
|
47
|
+
def load_initializer
|
48
|
+
require "#{RAILS_FRAMEWORK_ROOT}/railties/lib/initializer"
|
49
|
+
Rails::Initializer.run(:install_gem_spec_stubs)
|
50
|
+
Rails::GemDependency.add_frozen_gem_path
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
class GemBoot < Boot
|
55
|
+
def load_initializer
|
56
|
+
self.class.load_rubygems
|
57
|
+
load_rails_gem
|
58
|
+
require 'initializer'
|
59
|
+
end
|
60
|
+
|
61
|
+
def load_rails_gem
|
62
|
+
if version = self.class.gem_version
|
63
|
+
gem 'rails', version
|
64
|
+
else
|
65
|
+
gem 'rails'
|
66
|
+
end
|
67
|
+
rescue Gem::LoadError => load_error
|
68
|
+
$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.)
|
69
|
+
exit 1
|
70
|
+
end
|
71
|
+
|
72
|
+
class << self
|
73
|
+
def rubygems_version
|
74
|
+
Gem::RubyGemsVersion rescue nil
|
75
|
+
end
|
76
|
+
|
77
|
+
def gem_version
|
78
|
+
if defined? RAILS_GEM_VERSION
|
79
|
+
RAILS_GEM_VERSION
|
80
|
+
elsif ENV.include?('RAILS_GEM_VERSION')
|
81
|
+
ENV['RAILS_GEM_VERSION']
|
82
|
+
else
|
83
|
+
parse_gem_version(read_environment_rb)
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
def load_rubygems
|
88
|
+
require 'rubygems'
|
89
|
+
min_version = '1.3.1'
|
90
|
+
unless rubygems_version >= min_version
|
91
|
+
$stderr.puts %Q(Rails requires RubyGems >= #{min_version} (you have #{rubygems_version}). Please `gem update --system` and try again.)
|
92
|
+
exit 1
|
93
|
+
end
|
94
|
+
|
95
|
+
rescue LoadError
|
96
|
+
$stderr.puts %Q(Rails requires RubyGems >= #{min_version}. Please install RubyGems and try again: http://rubygems.rubyforge.org)
|
97
|
+
exit 1
|
98
|
+
end
|
99
|
+
|
100
|
+
def parse_gem_version(text)
|
101
|
+
$1 if text =~ /^[^#]*RAILS_GEM_VERSION\s*=\s*["']([!~<>=]*\s*[\d.]+)["']/
|
102
|
+
end
|
103
|
+
|
104
|
+
private
|
105
|
+
def read_environment_rb
|
106
|
+
environment_rb = "#{RAILS_ROOT}/config/environment.rb"
|
107
|
+
environment_rb = "#{HELPER_RAILS_ROOT}/config/environment.rb" unless File.exists?(environment_rb)
|
108
|
+
File.read(environment_rb)
|
109
|
+
end
|
110
|
+
end
|
111
|
+
end
|
112
|
+
end
|
113
|
+
|
114
|
+
# All that for this:
|
115
|
+
Rails.boot!
|