lib/bundler/rubygems_integration.rb
def replace_bin_path(specs)
      gem_class = (class << Gem; self; end)
      redefine_method(gem_class, :bin_path) do |name, *args|
        exec_name = args.first

        return ENV["BUNDLE_BIN_PATH"] if exec_name == "bundle"

        spec = nil

        if exec_name
          spec = specs.find {|s| s.executables.include?(exec_name) }
          raise(Gem::Exception, "can't find executable #{exec_name}") unless spec
          unless spec.name == name
            warn "Bundler is using a binstub that was created for a different gem.\n" \
              "This is deprecated, in future versions you may need to `bundle binstub #{name}` " \
              "to work around a system/bundle conflict."
          end
        else
          spec = specs.find {|s| s.name == name }
          raise Gem::Exception, "no default executable for #{spec.full_name}" unless exec_name = spec.default_executable
        end

        gem_bin = File.join(spec.full_gem_path, spec.bindir, exec_name)
        gem_from_path_bin = File.join(File.dirname(spec.loaded_from), spec.bindir, exec_name)
        File.exist?(gem_bin) ? gem_bin : gem_from_path_bin
      end
    end
# Used to make bin stubs that are not created by bundler work
# under bundler. The new Gem.bin_path only considers gems in
# +specs+
Used to make bin stubs that are not created by bundler work
under bundler. The new Gem.bin_path only considers gems in
Used to make bin stubs that are not created by bundler work under bundler . The new Gem . bin_path only considers gems in
def replace_bin_path(specs)
      gem_class = (class << Gem; self; end)
      redefine_method(gem_class, :bin_path) do |name, *args|
        exec_name = args.first
        return ENV["BUNDLE_BIN_PATH"] if exec_name == "bundle"
        spec = nil
        if exec_name
          spec = specs.find {|s| s.executables.include?(exec_name) }
          raise(Gem::Exception, "can't find executable #{exec_name}") unless spec
          unless spec.name == name
            warn "Bundler is using a binstub that was created for a different gem.\n" \
              "This is deprecated, in future versions you may need to `bundle binstub #{name}` " \
              "to work around a system/bundle conflict."
          end
        else
          spec = specs.find {|s| s.name == name }
          raise Gem::Exception, "no default executable for #{spec.full_name}" unless exec_name = spec.default_executable
        end
        gem_bin = File.join(spec.full_gem_path, spec.bindir, exec_name)
        gem_from_path_bin = File.join(File.dirname(spec.loaded_from), spec.bindir, exec_name)
        File.exist?(gem_bin) ? gem_bin : gem_from_path_bin
      end
    end
def replace_bin_path ( specs ) gem_class = ( class << Gem ; self ; end ) redefine_method ( gem_class , :bin_path ) do | name , * args | exec_name = args . first return ENV [ "BUNDLE_BIN_PATH" ] if exec_name == "bundle" spec = nil if exec_name spec = specs . find { | s | s . executables . include? ( exec_name ) } raise ( Gem :: Exception , "can't find executable #{exec_name}" ) unless spec unless spec . name == name warn "Bundler is using a binstub that was created for a different gem.\n" "This is deprecated, in future versions you may need to `bundle binstub #{name}` " "to work around a system/bundle conflict." end else spec = specs . find { | s | s . name == name } raise Gem :: Exception , "no default executable for #{spec.full_name}" unless exec_name = spec . default_executable end gem_bin = File . join ( spec . full_gem_path , spec . bindir , exec_name ) gem_from_path_bin = File . join ( File . dirname ( spec . loaded_from ) , spec . bindir , exec_name ) File . exist? ( gem_bin ) ? gem_bin : gem_from_path_bin end end
Used to make bin stubs that are not created by bundler work
under bundler.
Used to make bin stubs that are not created by bundler work under bundler .
specs