53 lines
1.1 KiB
Ruby
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
|