Class: NxtHttpClient::Client
- Inherits:
-
Object
- Object
- NxtHttpClient::Client
show all
- Extended by:
- ClientDsl
- Defined in:
- lib/nxt_http_client/client.rb
Constant Summary
collapse
- CACHE_STRATEGIES =
%w[global thread].freeze
- HTTP_METHODS =
%w[get post patch put delete head].freeze
Instance Method Summary
collapse
Methods included from ClientDsl
after_fire, around_fire, before_fire, clear_fire_callbacks, configure, log
Instance Method Details
#build_request(url, **opts) ⇒ Object
7
8
9
10
11
12
|
# File 'lib/nxt_http_client/client.rb', line 7
def build_request(url, **opts)
url = build_url(opts, url)
opts = (opts)
Typhoeus::Request.new(url, **opts.symbolize_keys)
end
|
#fire(url = '', **opts, &block) ⇒ Object
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
# File 'lib/nxt_http_client/client.rb', line 14
def fire(url = '', **opts, &block)
response_handler = build_response_handler(opts[:response_handler], &block)
request = build_request(url, **opts.except(:response_handler))
current_error = nil
result = nil
(request, response_handler)
setup_on_body_callback(request, response_handler)
request.on_complete do |response|
result = callback_or_response(response, response_handler)
end
run_before_fire_callbacks(request, response_handler)
run_around_fire_callbacks(request, response_handler) do
request.run
rescue StandardError => error
current_error = error
end
result = run_after_fire_callbacks(request, request.response, result, current_error)
result || (raise current_error if current_error)
result
end
|