Sha256: e2db52128ec6c927c7b96b693e37253ec371685bbc61777a89de31ab7503a5e5
Contents?: true
Size: 1.05 KB
Versions: 2
Compression:
Stored size: 1.05 KB
Contents
module Mongrel2 class Request attr_reader :sender, :conn_id, :path, :headers, :body def initialize(sender, conn_id, path, headers, body) @sender = sender @conn_id = conn_id @path = path @headers = headers @body = body if headers['METHOD'] == 'JSON' @data = JSON.parse(@body) else @data = {} end end def self.parse_netstring(ns) len, rest = ns.split(':', 2) len = len.to_i raise "Netstring did not end in ','" unless rest[len].chr == ',' [ rest[0...len], rest[(len+1)..-1] ] end def self.parse(msg) sender, conn_id, path, rest = msg.split(' ', 4) headers, head_rest = parse_netstring(rest) body, _ = parse_netstring(head_rest) headers = JSON.parse(headers) self.new(sender, conn_id, path, headers, body) end def disconnect? if self.headers['METHOD'] == 'JSON' @data['type'] == 'disconnect' end end alias :is_disconnect :disconnect? end # class Request end # mod Mongrel2
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
m2r-0.0.3 | lib/request.rb |
m2r-0.0.2 | lib/request.rb |