aboutsummaryrefslogblamecommitdiffstats
path: root/activemodel/test/cases/tests_database.rb
blob: 8dd00ea1474c5959d3255c4afce94f09dcbaaa46 (plain) (tree)
1
2
3
4
5
6
7
8
9
10






                                                                 
                      

                             
                           



                           

                                                    

       






                                               
 

                                            



                                                                   


       
require 'logger'

$:.unshift(File.dirname(__FILE__) + '/../../../activerecord/lib')
require 'active_record'
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