Class: M2R::Parser

Inherits:
Object
  • Object
show all
Defined in:
lib/m2r/parser.rb

Overview

Mongrel2 Request Parser

Instance Method Summary collapse

Instance Method Details

#parse(msg) ⇒ Request

Parse Mongrel2 request received via ZMQ message

Parameters:

  • msg (String)

    Monrel2 Request message formatted according to rules of creating it described it m2 manual.

Returns:



15
16
17
18
19
20
21
22
23
24
25
# File 'lib/m2r/parser.rb', line 15

def parse(msg)
  sender, conn_id, path, rest = msg.split(' ', 4)

  headers, rest = TNetstring.parse(rest)
  body, _       = TNetstring.parse(rest)
  headers       = MultiJson.load(headers)
  headers, mong = split_headers(headers)
  headers       = Headers.new headers, true
  mong          = Headers.new mong, true
  Request.new(sender, conn_id, path, headers, mong, body)
end