Sha256: 3eea36ac47e9b1f54b9f98cada3e546d031c6579f9641889e085d2516ba44e17
Contents?: true
Size: 1.87 KB
Versions: 3
Compression:
Stored size: 1.87 KB
Contents
require 'iowa/Request' require 'time' module Iowa class Request # This class encapsulates a Mongrel request. Mongrel just dumps all # of the HTTP headers into the environment, CGI-style, so the ones # that are necessary are extracted from the environment, as are the # HTTP headers received from the web server. The params are parsed # out of the request body. Will handle mime multipart. class Mongrel < Iowa::Request def setup(request) params = request.params hn = params[CX_FORWARDED_HOST] || params[CHTTP_HOST] @hostname,@port = hn.split(/:/) @hostname = params[CSERVER_NAME] @unparsed_uri = params[::Mongrel::Const::REQUEST_URI] @uri = params[::Mongrel::Const::PATH_INFO] @request_time = Time.now.httpdate @request_method = params[::Mongrel::Const::REQUEST_METHOD] #@remote_host = params[::Mongrel::Const::REMOTE_HOST] #@remote_addr = params[::Mongrel::Const::REMOTE_ADDR] @header_only = (@request_method == CHEAD) ? true : false @args = params[CQUERY_STRING] @headers_in = @headers = Iowa::DataTable.new params.each do |k,v| next unless k =~ /^HTTP_/ key = k.dup key.sub!(/^HTTP_/,'') key.gsub!(/([^_]+_?)/) do |s| s.gsub('_','-').capitalize end @headers[key] = v end @params = {} if m = MIMERegexp.match(@headers[CContent_type]) boundary = m[1] @params = read_multipart(boundary,@headers[CContent_length],request.body,@headers[CUser_agent]) else request.body.each {|line| parse_params(line)} end parse_params(@args) if @args @status_line = nil @headers_out = Iowa::DataTable.new @content_type = nil @content_encoding = nil @content_languages = nil @content = '' end def initialize(request=nil) @calculate_runtime = false setup(request) end end end end Iowa::Request.Type = Iowa::Request::Mongrel
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
IOWA-1.0.3 | src/iowa/request/Mongrel.rb |
IOWA-1.0.2 | src/iowa/request/Mongrel.rb |
IOWA-1.0.0 | src/iowa/request/Mongrel.rb |