10: def listen(args = {})
11: raise ArgumentError, ":protocols must be specified." if !args[:protocols] or args[:protocols].empty?
12: raise ArgumentError, ":address must be specified." unless args[:address]
13: raise ArgumentError, ":port must be specified." unless args[:port]
14: raise "Mongrel server is already listening" if listening?
15:
16: @protocols = args[:protocols]
17: @xmlrpc_handlers = args[:xmlrpc_handlers]
18: @server = Mongrel::HttpServer.new(args[:address], args[:port])
19: setup_handlers
20:
21: @listening = true
22: @server.run
23: end