diff options
author | Jenkins <jenkins@jenkins.ninjawedding.org> | 2018-03-25 15:17:21 +0000 |
---|---|---|
committer | Jenkins <jenkins@jenkins.ninjawedding.org> | 2018-03-25 15:17:21 +0000 |
commit | 837b3804bfed9db1cf92923c4f6202aa7117d408 (patch) | |
tree | c8b5a921754a6b40227364225002332b54d0d0dd /app/lib/request.rb | |
parent | 995b59526b06e1f949cba59d76e5e2718a1674f6 (diff) | |
parent | 85a395fab6d7077a252bfe6f96673931ea3aa5ee (diff) |
Merge remote-tracking branch 'tootsuite/master' into glitchsoc/master
Diffstat (limited to 'app/lib/request.rb')
-rw-r--r-- | app/lib/request.rb | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/app/lib/request.rb b/app/lib/request.rb index 298fb9528..8a127c65f 100644 --- a/app/lib/request.rb +++ b/app/lib/request.rb @@ -33,9 +33,17 @@ class Request end def perform - http_client.headers(headers).public_send(@verb, @url.to_s, @options) - rescue => e - raise e.class, "#{e.message} on #{@url}", e.backtrace[0] + begin + response = http_client.headers(headers).public_send(@verb, @url.to_s, @options) + rescue => e + raise e.class, "#{e.message} on #{@url}", e.backtrace[0] + end + + begin + yield response + ensure + http_client.close + end end def headers @@ -88,7 +96,7 @@ class Request end def http_client - HTTP.timeout(:per_operation, timeout).follow(max_hops: 2) + @http_client ||= HTTP.timeout(:per_operation, timeout).follow(max_hops: 2) end class Socket < TCPSocket |