Fix request data logging for httprb/http version 4 #56
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Since version 3, httprb/http gem logs request data like this:
[httplog] Data: #<HTTP::Request::Body:0x00007ffa7e32ccd0>
Unfortunately, it's difficult to make version 3 work, but in version 4 (currently in development and only available in master) they added
HTTP::Request::Body#source
, so we can do stuff likesource.to_s
andsource.rewind
. This patch fixes cases for plaintext body and form body types. Note that we are just usingto_s
on source so that file bodies are going to be logged like#<File:0x00007ffabb2ba620>
which I think is OK because we don't want to read the whole file.Travis is not configured to test different gem versions for this repo, but I tested the patch locally and all specs pass if you add
gem "http", github: "httprb/http"
to the Gemfile (one spec fails if you update http gem to version 3).