aboutsummaryrefslogtreecommitdiffstats
path: root/activemodel/test/cases/test_database.rb
blob: 509383ec590e9363fa385349f7df610f1cf1f45b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
require 'logger'

$:.unshift(File.dirname(__FILE__) + '/../../../activerecord/lib')
require 'active_record'
require 'active_record/fixtures'

module ActiveModel
  module TestDatabase
    def self.included(base)
      ActiveRecord::Base.logger = Logger.new("debug.log")
      ActiveRecord::Base.establish_connection(:adapter => 'sqlite3', :database => ':memory:')

      base.send :include, ActiveRecord::TestFixtures
      base.setup :setup_database
    end

    def setup_database
      unless $schema_file_loaded
        begin
          # TODO : May the better way be with you
          original, $stdout = $stdout, StringIO.new
          load(SCHEMA_FILE)
        ensure
          $stdout = original
        end

        $schema_file_loaded = true
      end
    end
  end
end