def initialize(config)
@config = config
@config[:connection_count] ||= 1
backend = @config[:backend] || "psql"
require "og/backends/#{backend}"
eval %{ @config[:backend] = #{backend.capitalize}Backend }
@connection_pool = N::Pool.new
@managed_classes = N::SafeHash.new
Logger.info "Connecting to database '#{@config[:database]}' using backend '#{backend}'."
@config[:connection_count].times do
@connection_pool << Og::Connection.new(self)
end
if Og.auto_manage_classes
classes_to_manage = []
ObjectSpace.each_object(Class) do |c|
if c.respond_to?(:__props) and c.__props
classes_to_manage << c
end
end
Logger.info "Og auto manages the following classes:"
Logger.info "#{classes_to_manage.inspect}"
manage_classes(*classes_to_manage)
end
Og.use(self)
end