1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00

Finish porting over the initializers to the app object and fix all the tests

This commit is contained in:
Carl Lerche 2009-10-08 18:12:28 -07:00
parent 5ffb877d3a
commit ff8be66f24
6 changed files with 109 additions and 95 deletions

View file

@ -1,5 +1,3 @@
require 'active_support/core_ext/load_error'
module ActiveSupport
module Testing
class ProxyTestResult

View file

@ -28,6 +28,7 @@ task :default => :test
task :test do
dir = ENV["TEST_DIR"] || "**"
Dir["test/#{dir}/*_test.rb"].all? do |file|
next true if file.include?("fixtures")
ruby = File.join(*RbConfig::CONFIG.values_at('bindir', 'RUBY_INSTALL_NAME'))
system(ruby, '-Itest', "-I#{File.dirname(__FILE__)}/../activesupport/lib", file)
end or raise "Failures"

View file

@ -1,6 +1,9 @@
require 'rails/plugin/loader'
require 'rails/plugin/locator'
module Rails
class Configuration
attr_accessor :cache_classes, :load_paths, :eager_load_paths, :framework_paths,
attr_accessor :cache_classes, :load_paths,
:load_once_paths, :gems_dependencies_loaded, :after_initialize_blocks,
:frameworks, :framework_root_path, :root_path, :plugin_paths, :plugins,
:plugin_loader, :plugin_locators, :gems, :loaded_plugins, :reload_plugins,
@ -15,29 +18,13 @@ module Rails
def initialize
set_root_path!
@framework_paths = []
@load_once_paths = []
@after_initialize_blocks = []
@loaded_plugins = []
@dependency_loading = true
@eager_load_paths = default_eager_load_paths
@load_paths = default_load_paths
@plugin_paths = default_plugin_paths
@frameworks = default_frameworks
@plugin_loader = default_plugin_loader
@plugin_locators = default_plugin_locators
@gems = default_gems
@i18n = default_i18n
@log_path = default_log_path
@log_level = default_log_level
@cache_store = default_cache_store
@view_path = default_view_path
@controller_paths = default_controller_paths
@routes_configuration_file = default_routes_configuration_file
@database_configuration_file = default_database_configuration_file
@serve_static_assets = default_serve_static_assets
@serve_static_assets = true
for framework in default_frameworks
for framework in frameworks
self.send("#{framework}=", Rails::OrderedOptions.new)
end
self.active_support = Rails::OrderedOptions.new
@ -121,34 +108,38 @@ module Rails
YAML::load(ERB.new(IO.read(database_configuration_file)).result)
end
def default_routes_configuration_file
File.join(root_path, 'config', 'routes.rb')
def routes_configuration_file
@routes_configuration_file ||= File.join(root_path, 'config', 'routes.rb')
end
def default_controller_paths
paths = [File.join(root_path, 'app', 'controllers')]
paths.concat builtin_directories
paths
end
def default_cache_store
if File.exist?("#{root_path}/tmp/cache/")
[ :file_store, "#{root_path}/tmp/cache/" ]
else
:memory_store
def controller_paths
@controller_paths ||= begin
paths = [File.join(root_path, 'app', 'controllers')]
paths.concat builtin_directories
paths
end
end
def default_database_configuration_file
File.join(root_path, 'config', 'database.yml')
def cache_store
@cache_store ||= begin
if File.exist?("#{root_path}/tmp/cache/")
[ :file_store, "#{root_path}/tmp/cache/" ]
else
:memory_store
end
end
end
def default_view_path
File.join(root_path, 'app', 'views')
def database_configuration_file
@database_configuration_file ||= File.join(root_path, 'config', 'database.yml')
end
def default_eager_load_paths
%w(
def view_path
@view_path ||= File.join(root_path, 'app', 'views')
end
def eager_load_paths
@eager_load_paths ||= %w(
app/metal
app/models
app/controllers
@ -156,28 +147,30 @@ module Rails
).map { |dir| "#{root_path}/#{dir}" }.select { |dir| File.directory?(dir) }
end
def default_load_paths
paths = []
def load_paths
@load_paths ||= begin
paths = []
# Add the old mock paths only if the directories exists
paths.concat(Dir["#{root_path}/test/mocks/#{RAILS_ENV}"]) if File.exists?("#{root_path}/test/mocks/#{RAILS_ENV}")
# Add the old mock paths only if the directories exists
paths.concat(Dir["#{root_path}/test/mocks/#{RAILS_ENV}"]) if File.exists?("#{root_path}/test/mocks/#{RAILS_ENV}")
# Add the app's controller directory
paths.concat(Dir["#{root_path}/app/controllers/"])
# Add the app's controller directory
paths.concat(Dir["#{root_path}/app/controllers/"])
# Followed by the standard includes.
paths.concat %w(
app
app/metal
app/models
app/controllers
app/helpers
app/services
lib
vendor
).map { |dir| "#{root_path}/#{dir}" }.select { |dir| File.directory?(dir) }
# Followed by the standard includes.
paths.concat %w(
app
app/metal
app/models
app/controllers
app/helpers
app/services
lib
vendor
).map { |dir| "#{root_path}/#{dir}" }.select { |dir| File.directory?(dir) }
paths.concat builtin_directories
paths.concat builtin_directories
end
end
def builtin_directories
@ -185,48 +178,48 @@ module Rails
(RAILS_ENV == 'development') ? Dir["#{RAILTIES_PATH}/builtin/*/"] : []
end
def default_log_path
File.join(root_path, 'log', "#{RAILS_ENV}.log")
def log_path
@log_path ||= File.join(root_path, 'log', "#{RAILS_ENV}.log")
end
def default_log_level
RAILS_ENV == 'production' ? :info : :debug
def log_level
@log_level ||= RAILS_ENV == 'production' ? :info : :debug
end
def default_frameworks
[ :active_record, :action_controller, :action_view, :action_mailer, :active_resource ]
def frameworks
@frameworks ||= [ :active_record, :action_controller, :action_view, :action_mailer, :active_resource ]
end
def default_plugin_paths
["#{root_path}/vendor/plugins"]
def plugin_paths
@plugin_paths ||= ["#{root_path}/vendor/plugins"]
end
def default_plugin_loader
require 'rails/plugin/loader'
Plugin::Loader
end
def default_plugin_locators
require 'rails/plugin/locator'
locators = []
locators << Plugin::GemLocator if defined? Gem
locators << Plugin::FileSystemLocator
end
def default_i18n
i18n = Rails::OrderedOptions.new
i18n.load_path = []
if File.exist?(File.join(RAILS_ROOT, 'config', 'locales'))
i18n.load_path << Dir[File.join(RAILS_ROOT, 'config', 'locales', '*.{rb,yml}')]
i18n.load_path.flatten!
def plugin_loader
@plugin_loader ||= begin
Plugin::Loader
end
i18n
end
def default_serve_static_assets
true
def plugin_locators
@plugin_locators ||= begin
locators = []
locators << Plugin::GemLocator if defined? Gem
locators << Plugin::FileSystemLocator
end
end
def i18n
@i18n ||= begin
i18n = Rails::OrderedOptions.new
i18n.load_path = []
if File.exist?(File.join(RAILS_ROOT, 'config', 'locales'))
i18n.load_path << Dir[File.join(RAILS_ROOT, 'config', 'locales', '*.{rb,yml}')]
i18n.load_path.flatten!
end
i18n
end
end
# Adds a single Gem dependency to the rails application. By default, it will require
@ -241,11 +234,11 @@ module Rails
#
# config.gem 'qrp', :version => '0.4.1', :lib => false
def gem(name, options = {})
@gems << Rails::GemDependency.new(name, options)
gems << Rails::GemDependency.new(name, options)
end
def default_gems
[]
def gems
@gems ||= []
end
def environment_path

View file

@ -0,0 +1,17 @@
require "isolation/abstract_unit"
module ApplicationTests
class InitializerTest < Test::Unit::TestCase
include ActiveSupport::Testing::Isolation
def setup
build_app
boot_rails
end
test "the application root is set correctly" do
# require "#{app_path}/config/environment"
# assert_equal app_path, Rails.application.root
end
end
end

View file

@ -5,9 +5,9 @@ module ApplicationTests
include ActiveSupport::Testing::Isolation
def setup
require "rails/generators"
build_app
boot_rails
require "rails/generators"
end
test "generators default values" do

View file

@ -8,12 +8,17 @@ else
RAILS_ROOT = fixtures
end
$LOAD_PATH.unshift "#{File.dirname(__FILE__)}/../../../activemodel/lib"
$LOAD_PATH.unshift "#{File.dirname(__FILE__)}/../../../activerecord/lib"
$LOAD_PATH.unshift "#{File.dirname(__FILE__)}/../../../actionpack/lib"
$LOAD_PATH.unshift "#{File.dirname(__FILE__)}/../../lib"
# TODO: Fix this RAILS_ENV stuff
RAILS_ENV = 'test'
require "rails/core"
require 'rails/generators'
require 'rubygems'
$LOAD_PATH.unshift "#{File.dirname(__FILE__)}/../../../activerecord/lib"
$LOAD_PATH.unshift "#{File.dirname(__FILE__)}/../../../actionpack/lib"
require 'active_record'
require 'action_dispatch'