rails--rails/activerecord/test/active_record/connection_adapters/fake_adapter.rb

53 lines
1.1 KiB
Ruby

# frozen_string_literal: true
module ActiveRecord
module ConnectionHandling
def fake_connection(config)
ConnectionAdapters::FakeAdapter.new nil, logger
end
end
module ConnectionAdapters
class FakeAdapter < AbstractAdapter
attr_accessor :data_sources, :primary_keys
@columns = Hash.new { |h, k| h[k] = [] }
class << self
attr_reader :columns
end
def initialize(connection, logger)
super
@data_sources = []
@primary_keys = {}
@columns = self.class.columns
end
def primary_key(table)
@primary_keys[table] || "id"
end
def merge_column(table_name, name, sql_type = nil, options = {})
@columns[table_name] << ActiveRecord::ConnectionAdapters::Column.new(
name.to_s,
options[:default],
fetch_type_metadata(sql_type),
options[:null],
)
end
def columns(table_name)
@columns[table_name]
end
def data_source_exists?(*)
true
end
def active?
true
end
end
end
end