Module: LiquidProxy::ConnectionProcessor

Includes:
ApiController, ServerRelay
Defined in:
lib/liquid-proxy/connection_processor.rb

Instance Method Summary collapse

Methods included from ApiController

#api_call?, #process_api_call

Methods included from ServerRelay

#pass_to_server

Instance Method Details

#bodyObject



19
20
21
# File 'lib/liquid-proxy/connection_processor.rb', line 19

def body
  @body ||= ''
end

#headers_to_injectObject



43
44
45
# File 'lib/liquid-proxy/connection_processor.rb', line 43

def headers_to_inject
  @headers_to_inject ||= HEADERS_TO_INJECT
end

#on_body(chunk) ⇒ Object



23
24
25
# File 'lib/liquid-proxy/connection_processor.rb', line 23

def on_body(chunk)
  body << chunk
end

#on_message_completeObject



31
32
33
34
35
36
37
38
39
40
41
# File 'lib/liquid-proxy/connection_processor.rb', line 31

def on_message_complete
  if api_call?
    process_api_call
  else
    parser.headers.merge!(headers_to_inject)

    new_request = request_builder.build(parser, body)
    body.clear
    pass_to_server new_request
  end
end

#parserObject



15
16
17
# File 'lib/liquid-proxy/connection_processor.rb', line 15

def parser
  @parser ||= Http::Parser.new(self)
end

#process_data(data) ⇒ Object



11
12
13
# File 'lib/liquid-proxy/connection_processor.rb', line 11

def process_data(data)
  parser << data
end

#request_builderObject



27
28
29
# File 'lib/liquid-proxy/connection_processor.rb', line 27

def request_builder
  @request_builder ||= RequestBuilder.new
end