m2node
Version:
mongrel2 handler
28 lines (22 loc) • 963 B
text/coffeescript
class MongrelRequest
constructor: (messageBuffer) ->
message = messageBuffer.toString()
[, , , headersAndBody] =
[rawHeaders, bodyNS] =
[] =
= JSON.parse(rawHeaders)
toFullHttpRequest: ->
request = []
request.push .METHOD + ' ' + .URI + ' HTTP/1.1\r\n'
for k, v of when k.match(/^[^A-Z]+$/)
request.push "#{k}: #{v}\r\n"
request.push "\r\n"
request.push
new Buffer(request.join(''))
_parseNetstring: (netstring) ->
[length, data] =
[data.slice(0, parseInt(length)), data.slice(parseInt(length) + 1)]
_splitString: (string, delimiter, limit) ->
result = string.split(delimiter)
result.slice(0, limit - 1).concat([result.slice(limit - 1).join(delimiter)])
exports.MongrelRequest = MongrelRequest