class Qeweney::Request

HTTP request

Attributes

__next__[RW]
adapter[R]
headers[R]

Public Class Methods

new(headers, adapter) click to toggle source
# File lib/qeweney/request.rb, line 20
def initialize(headers, adapter)
  @headers  = headers
  @adapter  = adapter
end

Public Instance Methods

<<(body, done: false)
Alias for: send_chunk
body()
Alias for: read
buffer_body_chunk(chunk) click to toggle source
# File lib/qeweney/request.rb, line 25
def buffer_body_chunk(chunk)
  @buffered_body_chunks ||= []
  @buffered_body_chunks << chunk
end
complete?() click to toggle source
# File lib/qeweney/request.rb, line 68
def complete?
  @adapter.complete?(self)
end
each_chunk() { |chunk| ... } click to toggle source
# File lib/qeweney/request.rb, line 42
def each_chunk
  if @buffered_body_chunks
    while (chunk = @buffered_body_chunks.shift)
      yield chunk
    end
    @buffered_body_chunks = nil
  end
  while (chunk = @adapter.get_body_chunk(self))
    yield chunk
  end
end
finish() click to toggle source
# File lib/qeweney/request.rb, line 91
def finish
  send_headers({}) unless @headers_sent
  
  @adapter.finish(self)
end
headers_sent?() click to toggle source
# File lib/qeweney/request.rb, line 97
def headers_sent?
  @headers_sent
end
next_chunk(buffered_only = false) click to toggle source
# File lib/qeweney/request.rb, line 30
def next_chunk(buffered_only = false)
  if @buffered_body_chunks
    chunk = @buffered_body_chunks.shift
    @buffered_body_chunks = nil if @buffered_body_chunks.empty?
    return chunk
  elsif buffered_only
    return nil
  end

  @adapter.get_body_chunk(self, buffered_only)
end
read() click to toggle source
# File lib/qeweney/request.rb, line 54
def read
  if @buffered_body_chunks
    body = @buffered_body_chunks.join
    if !complete?
      rest = @adapter.get_body(self)
      body << rest if rest
    end
    @buffered_body_chunks = nil
    return body
  end
  @adapter.get_body(self)
end
Also aliased as: body
respond(body, headers = {}) click to toggle source
# File lib/qeweney/request.rb, line 72
def respond(body, headers = {})
  @adapter.respond(self, body, headers)
  @headers_sent = true
end
rx_incr(count) click to toggle source
# File lib/qeweney/request.rb, line 101
def rx_incr(count)
  headers[':rx'] ? headers[':rx'] += count : headers[':rx'] = count
end
send_chunk(body, done: false) click to toggle source
# File lib/qeweney/request.rb, line 84
def send_chunk(body, done: false)
  send_headers({}) unless @headers_sent
  
  @adapter.send_chunk(self, body, done: done)
end
Also aliased as: <<
send_headers(headers = {}, empty_response = false) click to toggle source
# File lib/qeweney/request.rb, line 77
def send_headers(headers = {}, empty_response = false)
  return if @headers_sent
  
  @headers_sent = true
  @adapter.send_headers(self, headers, empty_response: empty_response)
end
total_transfer() click to toggle source
# File lib/qeweney/request.rb, line 113
def total_transfer
  (headers[':rx'] || 0) + (headers[':tx'] || 0)
end
transfer_counts() click to toggle source
# File lib/qeweney/request.rb, line 109
def transfer_counts
  [headers[':rx'], headers[':tx']]
end
tx_incr(count) click to toggle source
# File lib/qeweney/request.rb, line 105
def tx_incr(count)
  headers[':tx'] ? headers[':tx'] += count : headers[':tx'] = count
end