Class: Relax2::RequestContext
- Inherits:
-
Object
- Object
- Relax2::RequestContext
- Defined in:
- lib/relax2/request_context.rb
Defined Under Namespace
Classes: ActualHttpRequestHandler
Constant Summary collapse
- NET_HTTP_REQUEST_MAP =
{ 'GET' => Net::HTTP::Get, 'POST' => Net::HTTP::Post, 'PUT' => Net::HTTP::Put, 'PATCH' => Net::HTTP::Patch, 'DELETE' => Net::HTTP::Delete }.freeze
Instance Method Summary collapse
- #call(request) ⇒ Relax2::Response
-
#initialize(base_url:, interceptors:) ⇒ RequestContext
constructor
A new instance of RequestContext.
Constructor Details
#initialize(base_url:, interceptors:) ⇒ RequestContext
Returns a new instance of RequestContext.
7 8 9 10 11 12 |
# File 'lib/relax2/request_context.rb', line 7 def initialize(base_url:, interceptors:) raise InvalidArgError, 'base_url must be specified' unless base_url @base_url = base_url @interceptors = interceptors end |
Instance Method Details
#call(request) ⇒ Relax2::Response
16 17 18 19 20 21 22 |
# File 'lib/relax2/request_context.rb', line 16 def call(request) original_method = ActualHttpRequestHandler.new(@base_url) call_with_interceptors = @interceptors.reduce(original_method) do |m, interceptor| ->(req) { interceptor.call(req, m) } end call_with_interceptors.call(request) end |