From 4e1ff77ec1148c3170e746d42e77c07d6c1cb19a Mon Sep 17 00:00:00 2001 From: Samuel Giddins Date: Thu, 6 Apr 2017 20:22:17 -0500 Subject: [RubygemsIntegration] Remove special case when caller is gem executable Behavior does not depend upon it --- lib/bundler/rubygems_integration.rb | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/lib/bundler/rubygems_integration.rb b/lib/bundler/rubygems_integration.rb index 666d36a346..51655dbeea 100644 --- a/lib/bundler/rubygems_integration.rb +++ b/lib/bundler/rubygems_integration.rb @@ -320,18 +320,22 @@ module Bundler end end + def binstubs_call_gem? + true + end + def replace_gem(specs, specs_by_name) reverse_rubygems_kernel_mixin - executables = nil + executables = specs.map(&:executables).flatten if binstubs_call_gem? kernel = (class << ::Kernel; self; end) [kernel, ::Kernel].each do |kernel_class| redefine_method(kernel_class, :gem) do |dep, *reqs| - executables ||= specs.map(&:executables).flatten - if executables.include? File.basename(caller.first.split(":").first) + if executables && executables.include?(File.basename(caller.first.split(":").first)) break end + reqs.pop if reqs.last.is_a?(Hash) unless dep.respond_to?(:name) && dep.respond_to?(:requirement) @@ -796,6 +800,12 @@ module Bundler activated_spec_names = runtime.requested_specs.map(&:to_spec).sort_by(&:name) [Gemdeps.new(runtime), activated_spec_names] end + + if provides?(">= 2.5.2") + def binstubs_call_gem? + false + end + end end end -- cgit v1.2.1