class ActiveRecordTestConnector

Define the essentials

Define the rest of the connector

Public Class Methods

setup() click to toggle source
# File actionview/test/active_record_unit.rb, line 32
def setup
  unless connected || !able_to_connect
    setup_connection
    load_schema
    require_fixture_models
    self.connected = true
  end
rescue Exception => e  # errors from ActiveRecord setup
  $stderr.puts "\nSkipping ActiveRecord assertion tests: #{e}"
  #$stderr.puts "  #{e.backtrace.join("\n  ")}\n"
  self.able_to_connect = false
end

Private Class Methods

load_schema() click to toggle source

Load actionpack sqlite3 tables

# File actionview/test/active_record_unit.rb, line 62
def load_schema
  File.read(File.expand_path("fixtures/db_definitions/sqlite.sql", __dir__)).split(";").each do |sql|
    ActiveRecord::Base.connection.execute(sql) unless sql.blank?
  end
end
require_fixture_models() click to toggle source
# File actionview/test/active_record_unit.rb, line 68
def require_fixture_models
  Dir.glob(File.expand_path("fixtures/*.rb", __dir__)).each { |f| require f }
end
setup_connection() click to toggle source
# File actionview/test/active_record_unit.rb, line 46
def setup_connection
  if Object.const_defined?(:ActiveRecord)
    defaults = { database: ":memory:" }
    adapter = defined?(JRUBY_VERSION) ? "jdbcsqlite3" : "sqlite3"
    options = defaults.merge adapter: adapter, timeout: 500
    ActiveRecord::Base.establish_connection(options)
    ActiveRecord::Base.configurations = { "sqlite3_ar_integration" => options }
    ActiveRecord::Base.connection

    Object.send(:const_set, :QUOTED_TYPE, ActiveRecord::Base.connection.quote_column_name("type")) unless Object.const_defined?(:QUOTED_TYPE)
  else
    raise "Can't setup connection since ActiveRecord isn't loaded."
  end
end