# File lib/eventmachine.rb, line 629
629:   def EventMachine::connect server, port, handler=nil, *args
630:     klass = if (handler and handler.is_a?(Class))
631:       handler
632:     else
633:       Class.new( Connection ) {handler and include handler}
634:     end
635: 
636:     arity = klass.instance_method(:initialize).arity
637:     expected = arity >= 0 ? arity : -(arity + 1)
638:     if (arity >= 0 and args.size != expected) or (arity < 0 and args.size < expected)
639:       raise ArgumentError, "wrong number of arguments for #{klass}#initialize (#{args.size} for #{expected})"
640:     end
641: 
642:     s = connect_server server, port
643:     c = klass.new s, *args
644:     @conns[s] = c
645:     block_given? and yield c
646:     c
647:   end