Handle separation of positional and keyword arguments in ruby 2.7 #1106
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.
Ruby 2.7 separates positional and keyword arguments. This resulted in several deprecation warnings in
Faraday::RackBuilder
. Keyword arguments are often passed to it that are implicitly passed through as a hash (as the last positional argument). Ruby 2.7 raises a warning for this and 3.0 will error.For example, faraday-http-cache, which is configured something like
builder.use Faraday::HttpCache, serializer: Marshal, shared_cache: false
, will raise warnings, because RackBuilder doesn’t handle the Ruby-2.7 change.This PR removes the deprecation in a backwards- and forward-compatible way. It uses a new compatability method in ruby 2.7 and a shim to support older rubies, which is recommended on the ruby blog.