Sha256: bf66ba7f369f49183b214ca161a7981076d672dc8b86a0269a6fabcca3b7063c

Contents?: true

Size: 709 Bytes

Versions: 2

Compression:

Stored size: 709 Bytes

Contents

# frozen_string_literal: true

module SQLRunner
  UnsupportedDatabase = Class.new(StandardError)
  MissingDependency = Class.new(StandardError)

  def self.adapter_registry
    @adapter_registry ||= {}
  end

  module Adapters
    require "sql_runner/adapters/postgresql"
    require "sql_runner/adapters/mysql"
    require "sql_runner/adapters/sqlite"
    require "sql_runner/adapters/active_record"

    def self.register(name, adapter)
      SQLRunner.adapter_registry[name] = adapter
    end

    def self.find(name)
      adapter = SQLRunner.adapter_registry.fetch(name) do
        raise UnsupportedDatabase, "#{name} is not supported by SQLRunner"
      end

      adapter.tap(&:load)
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
sql_runner-0.4.1 lib/sql_runner/adapters.rb
sql_runner-0.4.0 lib/sql_runner/adapters.rb