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