module ValidatesEmailSanTest module Initializer VENDOR_RAILS = File.expand_path('../../../../../vendor/rails', __FILE__) OTHER_RAILS = File.expand_path('../../../rails', __FILE__) PLUGIN_ROOT = File.expand_path('../../', __FILE__) def self.rails_directory if File.exist?(VENDOR_RAILS) VENDOR_RAILS elsif File.exist?(OTHER_RAILS) OTHER_RAILS end end def self.load_dependencies if rails_directory $:.unshift(File.join(rails_directory, 'activesupport', 'lib')) $:.unshift(File.join(rails_directory, 'activerecord', 'lib')) else require 'rubygems' rescue LoadError end require 'test/unit' require 'active_support' require 'active_support/test_case' require 'active_record' require 'active_record/test_case' require 'active_record/base' # this is needed because of dependency hell $:.unshift File.expand_path('../../lib', __FILE__) require File.join(PLUGIN_ROOT, 'rails', 'init') end def self.configure_database ActiveRecord::Base.establish_connection(:adapter => "sqlite3", :database => ":memory:") ActiveRecord::Migration.verbose = false end def self.setup_database ActiveRecord::Schema.define(:version => 1) do create_table :members do |t| t.column :email, :string end end end def self.teardown_database ActiveRecord::Base.connection.tables.each do |table| ActiveRecord::Base.connection.drop_table(table) end end def self.start load_dependencies configure_database end end end ValidatesEmailSanTest::Initializer.start