-
Notifications
You must be signed in to change notification settings - Fork 320
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Extract HTTP::Client#build_request method #458
Conversation
I think we will completely refactor this bit in v4.0.0; I think that after all @tarcieri any objections? |
lib/http/client.rb
Outdated
end | ||
|
||
# Prepare an HTTP request | ||
def prepare_request(verb, uri, opts = {}) # rubocop:disable Style/OptionHash |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please rename this to build_request
. IMO it would better reflect what method does.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sure, done.
So, is it going to be merged? |
Yeah. I think it's good. Thank you! |
@ixti Can we backport it to version 3 by the way? |
@tycooon Sure. It does not brings any breaking changes - so totally fine - will handle this. |
Squashed commit of the following: commit 15be2e59d4eb1b0d8c9bb6f1a8d2956421635ba0 Author: Yuri Smirnov <tycooon@yandex.ru> Date: Mon Feb 12 15:31:47 2018 +0300 rename #prepare_request to #build_request commit 9fab69049aef13edcdc8e3714618322f6d9c9e71 Author: Yuri Smirnov <tycooon@yandex.ru> Date: Mon Feb 12 13:36:37 2018 +0300 extract prepare_request method See: #458
@tycooon REleased as 3.3.0 |
Thanks! With recent backports, I was able to remove a lot of code in one of my gems :) |
pkgsrc changes: - update HOMEPAGE (follow renamed github) Upstream changes (from CHANGES.md): ## 3.3.0 (2018-04-25) This version backports some of the fixes and improvements made to development version of the HTTP gem: * [#458](httprb/http#458) Extract HTTP::Client#build_request method. ([@tycoon]) ## 3.2.1 (2018-04-24) * [#468](httprb/http#468) Rewind `HTTP::Request::Body#source` once `#each` is complete. ([@ixti]) ## 3.2.0 (2018-04-22) This version backports one change we missed to backport in previous release: * Reduce memory usage when reading response body ([@janko-m]) ## 3.1.0 (2018-04-22) This version backports some of the fixes and improvements made to development version of the HTTP gem: * Fix for `#readpartial` to respect max length argument. ([@janko-m], [@marshall-lee]) * Fix for `HTTP::Request#headline` to allow two leading slashes in path. ([@scarfacedeb]) * Fix query string building for string with newlines. ([@mikegee]) * Deallocate temporary strings in `Response::Body#to_s`. ([@janko-m]) * Add `Request::Body#source`. ([@janko-m])
What's the way to perform the built request? |
What I have now is: request = HTTP.build_request(...)
client = HTTP::Client.new
client.perform(request, client.default_options) |
Update ruby-http to 4.4.1. ## 4.4.1 (2020-03-29) * Backport [#590](httprb/http#590) Fix parser failing on some edge cases. ([@ixti]) ## 4.4.0 (2020-03-25) * Backport [#587](httprb/http#587) Fix redirections when server responds with multiple Location headers. ([@ixti]) * Backport [#599](httprb/http#599) Allow passing HTTP::FormData::{Multipart,UrlEncoded} object directly. ([@ixti]) ## 4.3.0 (2020-01-09) * Backport [#581](httprb/http#581) Add Ruby-2.7 compatibility. ([@ixti], [@janko]) ## 4.2.0 (2019-10-22) * Backport [#489](httprb/http#489) Fix HTTP parser. ([@ixti], [@fxposter]) ## 4.1.1 (2019-03-12) * Add `HTTP::Headers::ACCEPT_ENCODING` constant. ([@ixti]) ## 4.1.0 (2019-03-11) * [#533](httprb/http#533) Add URI normalizer feature that allows to swap default URI normalizer. ([@mamoonraja]) ## 4.0.5 (2019-02-15) * Backport [#532](httprb/http#532) from master. Fix pipes support in request bodies. ([@ixti]) ## 4.0.4 (2019-02-12) * Backport [#506](httprb/http#506) from master. Skip auto-deflate when there is no body. ([@Bonias]) ## 4.0.3 (2019-01-18) * Fix missing URL in response wrapped by auto inflate. ([@ixti]) * Provide `HTTP::Request#inspect` method for debugging purposes. ([@ixti]) ## 4.0.2 (2019-01-15) * [#506](httprb/http#506) Fix instrumentation feature. ([@paul]) ## 4.0.1 (2019-01-14) * [#515](httprb/http#515) Fix `#build_request` and `#request` to respect default options. ([@RickCSong]) ## 4.0.0 (2018-10-15) * [#482](httprb/http#482) [#499](httprb/http#499) Introduce new features injection API with 2 new feaures: instrumentation (compatible with ActiveSupport::Notification) and logging. ([@paul]) * [#473](httprb/http#473) Handle early responses. ([@janko-m]) * [#468](httprb/http#468) Rewind `HTTP::Request::Body#source` once `#each` is complete. ([@ixti]) * [#467](httprb/http#467) Drop Ruby 2.2 support. ([@ixti]) * [#436](httprb/http#436) Raise ConnectionError when writing to socket fails. ([@janko-m]) * [#438](httprb/http#438) Expose `HTTP::Request::Body#source`. ([@janko-m]) * [#446](httprb/http#446) Simplify setting a timeout. ([@mikegee]) * [#451](httprb/http#451) Reduce memory usage when reading response body. ([@janko-m]) * [#458](httprb/http#458) Extract HTTP::Client#build_request method. ([@tycoon]) * [#462](httprb/http#462) Fix HTTP::Request#headline to allow two leading slashes in path. ([@scarfacedeb]) * [#454](httprb/http#454) [#464](httprb/http#464) [#384](httprb/http#384) Fix #readpartial not respecting max length argument. ([@janko-m], [@marshall-lee])
It would sometimes be handy to have a public method that returns a request object so that we can modify it and/or pass around and then use
perform
on it.Please take a look and if you find the idea is OK I will add specs etc.