diff options
author | Samuel Giddins <segiddins@segiddins.me> | 2017-04-06 20:22:17 -0500 |
---|---|---|
committer | Samuel Giddins <segiddins@segiddins.me> | 2017-04-07 12:03:14 -0500 |
commit | 4e1ff77ec1148c3170e746d42e77c07d6c1cb19a (patch) | |
tree | eaa744aee9ee3f6c241605fa78e1674bede0b554 | |
parent | 1b333a6768ce8708c7d01bffc27a46952e5b6011 (diff) | |
download | bundler-4e1ff77ec1148c3170e746d42e77c07d6c1cb19a.tar.gz |
[RubygemsIntegration] Remove special case when caller is gem executable
Behavior does not depend upon it
-rw-r--r-- | lib/bundler/rubygems_integration.rb | 16 |
1 files 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 |