class Perpetuity::Configuration
Public Class Methods
adapters()
click to toggle source
# File lib/perpetuity/config.rb, line 61 def self.adapters @adapters ||= {} end
new()
click to toggle source
# File lib/perpetuity/config.rb, line 6 def initialize @logger = Logger.new(STDOUT) @logger.progname = 'Perpetuity' end
Public Instance Methods
adapter(name)
click to toggle source
# File lib/perpetuity/config.rb, line 65 def adapter name self.class.adapters[name.to_sym] end
data_source(*args)
click to toggle source
# File lib/perpetuity/config.rb, line 11 def data_source *args if args.any? db = args.first case db when String args[0] = URI(args[0]) @db = data_source_from_url(*args) when Symbol adapter = args.shift db_name = args.shift options = args.shift || {} adapter_class = adapter(adapter) @db = adapter_class.new(options.merge(db: db_name)) end end @db end
data_source_from_url(*args)
click to toggle source
# File lib/perpetuity/config.rb, line 41 def data_source_from_url *args uri = args.shift options = args.shift || {} protocol = uri.scheme klass = adapter(protocol) db_options = { db: uri.path[1..-1], username: uri.user, password: uri.password, host: uri.host, port: uri.port, } if options.key? :pool_size db_options[:pool_size] = options[:pool_size] end klass.new(db_options) end
logger(*args)
click to toggle source
# File lib/perpetuity/config.rb, line 32 def logger *args if args.any? raise ArgumentError, 'Perpetuity::Configuration#logger takes 0..1 arguments' @logger = args.first end @logger end