Class: Ritm::HTTPForwarder

Inherits:
Object
  • Object
show all
Includes:
InterceptUtils
Defined in:
lib/ritm/interception/http_forwarder.rb

Instance Method Summary collapse

Methods included from InterceptUtils

#intercept_request, #intercept_response

Constructor Details

#initialize(request_interceptor, response_interceptor, context_config) ⇒ HTTPForwarder

Returns a new instance of HTTPForwarder.



34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/ritm/interception/http_forwarder.rb', line 34

def initialize(request_interceptor, response_interceptor, context_config)
  @request_interceptor = request_interceptor
  @response_interceptor = response_interceptor
  @config = context_config
  # TODO: make SSL verification a configuration setting
  @client = Faraday.new(
    ssl: { verify: false },
    request: { params_encoder: ParamEncoder.new }
  ) do |conn|
    conn.adapter :net_http
  end
end

Instance Method Details

#forward(request, response) ⇒ Object



47
48
49
50
51
52
# File 'lib/ritm/interception/http_forwarder.rb', line 47

def forward(request, response)
  intercept_request(@request_interceptor, request, @config.intercept.request)
  faraday_response = faraday_forward request
  to_webrick_response faraday_response, response
  intercept_response(@response_interceptor, request, response, @config.intercept.response)
end