# File lib/cool.io/dsl.rb, line 40
    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