(Not documented)
# File lib/rack/handler/webrick.rb, line 17 17: def initialize(server, app) 18: super server 19: @app = Rack::ContentLength.new(app) 20: end
(Not documented)
# File lib/rack/handler/webrick.rb, line 8 8: def self.run(app, options={}) 9: options[:BindAddress] = options.delete(:Host) if options[:Host] 10: server = ::WEBrick::HTTPServer.new(options) 11: server.mount "/", Rack::Handler::WEBrick, app 12: trap(:INT) { server.shutdown } 13: yield server if block_given? 14: server.start 15: end
(Not documented)
# File lib/rack/handler/webrick.rb, line 22 22: def service(req, res) 23: env = req.meta_vars 24: env.delete_if { |k, v| v.nil? } 25: 26: rack_input = StringIO.new(req.body.to_s) 27: rack_input.set_encoding(Encoding::BINARY) if rack_input.respond_to?(:set_encoding) 28: 29: env.update({"rack.version" => [1,0], 30: "rack.input" => rack_input, 31: "rack.errors" => $stderr, 32: 33: "rack.multithread" => true, 34: "rack.multiprocess" => false, 35: "rack.run_once" => false, 36: 37: "rack.url_scheme" => ["yes", "on", "1"].include?(ENV["HTTPS"]) ? "https" : "http" 38: }) 39: 40: env["HTTP_VERSION"] ||= env["SERVER_PROTOCOL"] 41: env["QUERY_STRING"] ||= "" 42: env["REQUEST_PATH"] ||= "/" 43: if env["PATH_INFO"] == "" 44: env.delete "PATH_INFO" 45: else 46: path, n = req.request_uri.path, env["SCRIPT_NAME"].length 47: env["PATH_INFO"] = path[n, path.length-n] 48: end 49: 50: status, headers, body = @app.call(env) 51: begin 52: res.status = status.to_i 53: headers.each { |k, vs| 54: if k.downcase == "set-cookie" 55: res.cookies.concat vs.split("\n") 56: else 57: vs.split("\n").each { |v| 58: res[k] = v 59: } 60: end 61: } 62: body.each { |part| 63: res.body << part 64: } 65: ensure 66: body.close if body.respond_to? :close 67: end 68: end
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.