class ODBCAdapter::Registry

Attributes

dbs[R]

Public Class Methods

new() click to toggle source
# File lib/odbc_adapter/registry.rb, line 5
def initialize
  @dbs = {
    /my.*sql/i  => :MySQL,
    /postgres/i => :PostgreSQL
  }
end

Public Instance Methods

adapter_for(reported_name) click to toggle source
# File lib/odbc_adapter/registry.rb, line 12
def adapter_for(reported_name)
  reported_name = reported_name.downcase.gsub(/\s/, '')
  found =
    dbs.detect do |pattern, adapter|
      adapter if reported_name =~ pattern
    end

  normalize_adapter(found && found.last || :Null)
end
register(pattern, superclass = Object, &block) click to toggle source
# File lib/odbc_adapter/registry.rb, line 22
def register(pattern, superclass = Object, &block)
  dbs[pattern] = Class.new(superclass, &block)
end

Private Instance Methods

normalize_adapter(adapter) click to toggle source
# File lib/odbc_adapter/registry.rb, line 28
def normalize_adapter(adapter)
  return adapter unless adapter.is_a?(Symbol)
  require "odbc_adapter/adapters/#{adapter.downcase}_odbc_adapter"
  Adapters.const_get(:"#{adapter}ODBCAdapter")
end