summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBundlerbot <bot@bundler.io>2019-09-01 10:33:59 +0000
committerBundlerbot <bot@bundler.io>2019-09-01 10:33:59 +0000
commit8b61b4b380b734a5cedc31985902c45971255e3b (patch)
tree63b1c97b7efde189e65ca7c6e920b467f8df9871
parent022f9bc99e05fc0f7334a67f4b2377f9af946bfa (diff)
parentda7e1f55c86fd65001cf36ea6af86bdd88417161 (diff)
downloadbundler-8b61b4b380b734a5cedc31985902c45971255e3b.tar.gz
Merge #7337
7337: Fix a couple of bundler issues with keyword argument separation r=hsbt a=jeremyevans ### What was the end-user problem that led to this PR? `make test-bundler` in Ruby repository failed with recent changes to separate keyword arguments from positional arguments (see https://bugs.ruby-lang.org/issues/14183). ### What was your diagnosis of the problem? Bundler's specs check for lack of warnings, and the new changes cause warnings that cause Bundler's specs to fail. ### What is your fix for the problem, implemented in this PR? In one case, I fix the code to work with keyword arguments and positional arguments in positional arguments. In the other case, I fix the spec to ignore the keyword argument separation warnings. I fixed this upstream in Ruby already (https://github.com/ruby/ruby/commit/b5b3afadfab4072f55320075ccac6afe333a140c). So this is a request to make bundler use the same patch. You can certainly fix it differently, and there are more related issues to fix I think (they just don't cause test failures yet). The issues definitely need to be fixed if you want bundler's specs to run correctly in Ruby 2.7. ### Why did you choose this fix out of the possible options? Because it was the least amount of effort. Co-authored-by: Jeremy Evans <code@jeremyevans.net>
-rw-r--r--lib/bundler/vendor/thor/lib/thor.rb7
-rw-r--r--spec/runtime/inline_spec.rb7
2 files changed, 10 insertions, 4 deletions
diff --git a/lib/bundler/vendor/thor/lib/thor.rb b/lib/bundler/vendor/thor/lib/thor.rb
index 6017ee9ad8..395fad28eb 100644
--- a/lib/bundler/vendor/thor/lib/thor.rb
+++ b/lib/bundler/vendor/thor/lib/thor.rb
@@ -90,9 +90,14 @@ class Bundler::Thor
# ==== Parameters
# Hash[String|Array => Symbol]:: Maps the string or the strings in the array to the given command.
#
- def map(mappings = nil)
+ def map(mappings = nil, **kw)
@map ||= from_superclass(:map, {})
+ if mappings && !kw.empty?
+ mappings = kw.merge!(mappings)
+ else
+ mappings ||= kw
+ end
if mappings
mappings.each do |key, value|
if key.respond_to?(:each)
diff --git a/spec/runtime/inline_spec.rb b/spec/runtime/inline_spec.rb
index c3d632d75d..6c268a7c10 100644
--- a/spec/runtime/inline_spec.rb
+++ b/spec/runtime/inline_spec.rb
@@ -88,9 +88,10 @@ RSpec.describe "bundler/inline#gemfile" do
RUBY
expect(out).to include("Installing activesupport")
- err.gsub! %r{.*lib/sinatra/base\.rb:\d+: warning: constant ::Fixnum is deprecated$}, ""
- err.strip!
- expect(err).to be_empty
+ err.gsub! %r{(.*lib/sinatra/base\.rb:\d+: warning: constant ::Fixnum is deprecated$)}, ""
+ err_lines = err.split("\n")
+ err_lines.reject!{|line| line =~ /\.rb:\d+: warning: The last/ }
+ expect(err_lines).to be_empty
expect(exitstatus).to be_zero if exitstatus
end