aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYehuda Katz + Carl Lerche <ykatz+clerche@engineyard.com>2009-06-19 12:12:56 -0700
committerYehuda Katz + Carl Lerche <ykatz+clerche@engineyard.com>2009-06-23 14:49:04 -0700
commit9d398f48275a2740b0c7545da207ac2ebbe012ec (patch)
treef07cbce78e42664ac48b8f7b39fb23fda7d86e20
parent30baaac5465a352e78dac6330407a7b3460db180 (diff)
downloadrails-9d398f48275a2740b0c7545da207ac2ebbe012ec.tar.gz
rails-9d398f48275a2740b0c7545da207ac2ebbe012ec.tar.bz2
rails-9d398f48275a2740b0c7545da207ac2ebbe012ec.zip
Got all the railties tests to pass, rails must boot!
-rw-r--r--railties/lib/initializer.rb28
-rw-r--r--railties/test/plugin_locator_test.rb3
-rw-r--r--railties/test/plugin_test.rb3
-rw-r--r--railties/test/rails_generator_test.rb3
4 files changed, 34 insertions, 3 deletions
diff --git a/railties/lib/initializer.rb b/railties/lib/initializer.rb
index 37bec7a272..b64320225b 100644
--- a/railties/lib/initializer.rb
+++ b/railties/lib/initializer.rb
@@ -4,6 +4,8 @@ require 'rails/version'
require 'rails/gem_dependency'
require 'rails/rack'
+RAILS_ENV = (ENV['RAILS_ENV'] || 'development').dup unless defined?(RAILS_ENV)
+
module Rails
class Configuration
attr_accessor :cache_classes, :load_paths, :eager_load_paths, :framework_paths,
@@ -13,11 +15,13 @@ module Rails
:i18n, :gems
def initialize
+ set_root_path!
+
@framework_paths = []
@load_once_paths = []
@after_initialize_blocks = []
- @plugin_paths = []
@loaded_plugins = []
+ @plugin_paths = default_plugin_paths
@frameworks = default_frameworks
@plugin_loader = default_plugin_loader
@plugin_locators = default_plugin_locators
@@ -29,6 +33,24 @@ module Rails
@after_initialize_blocks << blk if blk
end
+ def set_root_path!
+ raise 'RAILS_ROOT is not set' unless defined?(RAILS_ROOT)
+ raise 'RAILS_ROOT is not a directory' unless File.directory?(RAILS_ROOT)
+
+ self.root_path =
+ # Pathname is incompatible with Windows, but Windows doesn't have
+ # real symlinks so File.expand_path is safe.
+ if RUBY_PLATFORM =~ /(:?mswin|mingw)/
+ File.expand_path(RAILS_ROOT)
+
+ # Otherwise use Pathname#realpath which respects symlinks.
+ else
+ Pathname.new(RAILS_ROOT).realpath.to_s
+ end
+
+ RAILS_ROOT.replace self.root_path
+ end
+
def framework_paths
paths = %w(railties railties/lib activesupport/lib)
paths << 'actionpack/lib' if frameworks.include?(:action_controller) || frameworks.include?(:action_view)
@@ -54,6 +76,10 @@ module Rails
[ :active_record, :action_controller, :action_view, :action_mailer, :active_resource ]
end
+ def default_plugin_paths
+ ["#{root_path}/vendor/plugins"]
+ end
+
def default_plugin_loader
require 'rails/plugin/loader'
Plugin::Loader
diff --git a/railties/test/plugin_locator_test.rb b/railties/test/plugin_locator_test.rb
index 855ac7d82f..da1548dee1 100644
--- a/railties/test/plugin_locator_test.rb
+++ b/railties/test/plugin_locator_test.rb
@@ -27,7 +27,8 @@ class PluginFileSystemLocatorTest < Test::Unit::TestCase
# We need to add our testing plugin directory to the plugin paths so
# the locator knows where to look for our plugins
@configuration.plugin_paths << plugin_fixture_root_path
- @initializer = Rails::Initializer.new(@configuration)
+ @initializer = Rails::Initializer.default
+ @initializer.config = @configuration
@locator = Rails::Plugin::FileSystemLocator.new(@initializer)
@valid_plugin_path = plugin_fixture_path('default/stubby')
@empty_plugin_path = plugin_fixture_path('default/empty')
diff --git a/railties/test/plugin_test.rb b/railties/test/plugin_test.rb
index a6c390a45a..ae03ea4662 100644
--- a/railties/test/plugin_test.rb
+++ b/railties/test/plugin_test.rb
@@ -2,7 +2,8 @@ require 'plugin_test_helper'
class PluginTest < Test::Unit::TestCase
def setup
- @initializer = Rails::Initializer.new(Rails::Configuration.new)
+ @initializer = Rails::Initializer.default
+ @initializer.config = Rails::Configuration.new
@valid_plugin_path = plugin_fixture_path('default/stubby')
@empty_plugin_path = plugin_fixture_path('default/empty')
@gemlike_plugin_path = plugin_fixture_path('default/gemlike')
diff --git a/railties/test/rails_generator_test.rb b/railties/test/rails_generator_test.rb
index b2fc2f585d..38bd90dcc1 100644
--- a/railties/test/rails_generator_test.rb
+++ b/railties/test/rails_generator_test.rb
@@ -50,6 +50,9 @@ class RailsGeneratorTest < Test::Unit::TestCase
def setup
ActiveRecord::Base.pluralize_table_names = true
+ @initializer = Rails::Initializer.default
+ @initializer.config = Rails.configuration
+ @initializer.run(:set_root_path)
end
def test_sources