def server(host, port, connection_name = nil, *initializer_args, &block)
if block_given?
initializer_args.unshift connection_name if connection_name
klass = Class.new Cool.io::TCPSocket
connection_builder = ConnectionBuilder.new klass
connection_builder.instance_eval(&block)
else
raise ArgumentError, "no connection name or block given" unless connection_name
klass = self[connection_name]
end
server = Cool.io::TCPServer.new host, port, klass, *initializer_args
server.attach Cool.io::Loop.default
server
end