mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
c1304098cc
* A new module (ActiveSupport::Autoload) is provide that extends autoloading with new behavior. * All autoloads in modules that have extended ActiveSupport::Autoload will be eagerly required in threadsafe environments * Autoloads can optionally leave off the path if the path is the same as full_constant_name.underscore * It is possible to specify that a group of autoloads live under an additional path. For instance, all of ActionDispatch's middlewares are ActionDispatch::MiddlewareName, but they live under "action_dispatch/middlewares/middleware_name" * It is possible to specify that a group of autoloads are all found at the same path. For instance, a number of exceptions might all be declared there. * One consequence of this is that testing-related constants are not autoloaded. To get the testing helpers for a given component, require "component_name/test_case". For instance, "action_controller/test_case". * test_help.rb, which is automatically required by a Rails application's test helper, requires the test_case.rb for all active components, so this change will not be disruptive in existing or new applications.
37 lines
880 B
Ruby
37 lines
880 B
Ruby
require 'logger'
|
|
|
|
$:.unshift(File.dirname(__FILE__) + '/../../../activerecord/lib')
|
|
require 'active_record'
|
|
require 'active_record/test_case'
|
|
require 'active_record/fixtures'
|
|
|
|
module ActiveModel
|
|
module TestsDatabase
|
|
mattr_accessor :connected
|
|
|
|
def self.included(base)
|
|
unless self.connected
|
|
setup_connection
|
|
setup_schema
|
|
end
|
|
|
|
base.send :include, ActiveRecord::TestFixtures
|
|
end
|
|
|
|
def self.setup_schema
|
|
original, $stdout = $stdout, StringIO.new
|
|
load(SCHEMA_FILE)
|
|
ensure
|
|
$stdout = original
|
|
self.connected = true
|
|
end
|
|
|
|
def self.setup_connection
|
|
defaults = { :database => ':memory:' }
|
|
|
|
adapter = defined?(JRUBY_VERSION) ? 'jdbcsqlite3' : 'sqlite3'
|
|
options = defaults.merge :adapter => adapter, :timeout => 500
|
|
ActiveRecord::Base.establish_connection(options)
|
|
end
|
|
end
|
|
end
|