class Arproxy::Config

Attributes

adapter[RW]
logger[RW]
proxies[R]

Public Class Methods

new() click to toggle source
# File lib/arproxy/config.rb, line 9
def initialize
  @proxies = []
  if defined?(Rails)
    @adapter = Rails.application.config_for(:database)["adapter"]
  end
end

Public Instance Methods

adapter_class() click to toggle source
# File lib/arproxy/config.rb, line 26
def adapter_class
  raise Arproxy::Error, "config.adapter must be set" unless @adapter
  case @adapter
  when String, Symbol
    eval "::ActiveRecord::ConnectionAdapters::#{camelized_adapter_name}Adapter"
  when Class
    @adapter
  else
    raise Arproxy::Error, "unexpected config.adapter: #{@adapter}"
  end
end
plugin(name, *options) click to toggle source
# File lib/arproxy/config.rb, line 21
def plugin(name, *options)
  plugin_class = Plugin.get(name)
  use(plugin_class, *options)
end
use(proxy_class, *options) click to toggle source
# File lib/arproxy/config.rb, line 16
def use(proxy_class, *options)
  ::Arproxy.logger.debug("Arproxy: Mounting #{proxy_class.inspect} (#{options.inspect})")
  @proxies << [proxy_class, options]
end

Private Instance Methods

camelized_adapter_name() click to toggle source
# File lib/arproxy/config.rb, line 40
def camelized_adapter_name
  adapter_name = @adapter.to_s.split("_").map(&:capitalize).join

  case adapter_name
  when 'Sqlite3'
    'SQLite3'
  when 'Sqlserver'
    'SQLServer'
  else
    adapter_name
  end
end