# class Bundler::RubygemsIntegration::MoreFuture

RubyGems 2.1.0

### Public Class Methods

new() click to toggle source
Calls superclass method `Bundler::RubygemsIntegration::new`

    # File lib/bundler/rubygems_integration.rb, line 810
    def initialize
      super
      backport_ext_builder_monitor
    end

### Public Instance Methods

all_specs() click to toggle source

    # File lib/bundler/rubygems_integration.rb, line 815
    def all_specs
      require "bundler/remote_specification"
      Gem::Specification.stubs.map do |stub|
        StubSpecification.from_stub(stub)
      end
    end

backport_ext_builder_monitor() click to toggle source

    # File lib/bundler/rubygems_integration.rb, line 822
          def backport_ext_builder_monitor
            # So we can avoid requiring "rubygems/ext" in its entirety
            Gem.module_eval <<-RB, __FILE__, __LINE__ + 1
              module Ext
              end
            RB

            require "rubygems/ext/builder"

            Gem::Ext::Builder.class_eval do
              unless const_defined?(:CHDIR_MONITOR)
                const_set(:CHDIR_MONITOR, EXT_LOCK)
              end

              remove_const(:CHDIR_MUTEX) if const_defined?(:CHDIR_MUTEX)
              const_set(:CHDIR_MUTEX, const_get(:CHDIR_MONITOR))
            end
          end

binstubs_call_gem?() click to toggle source

RubyGems-generated binstubs call `Kernel#gem`

    # File lib/bundler/rubygems_integration.rb, line 864
    def binstubs_call_gem?
      false
    end

find_name(name) click to toggle source

    # File lib/bundler/rubygems_integration.rb, line 842
    def find_name(name)
      Gem::Specification.stubs_for(name).map(&:to_spec)
    end

stubs_provide_full_functionality?() click to toggle source

only 2.5.2+ has all of the stub methods we want to use, and since this is a performance optimization only, we'll restrict ourselves to the most recent RG versions instead of all versions that have stubs

    # File lib/bundler/rubygems_integration.rb, line 872
    def stubs_provide_full_functionality?
      true
    end

use_gemdeps(gemfile) click to toggle source

    # File lib/bundler/rubygems_integration.rb, line 853
    def use_gemdeps(gemfile)
      ENV["BUNDLE_GEMFILE"] ||= File.expand_path(gemfile)
      require "bundler/gemdeps"
      runtime = Bundler.setup
      Bundler.ui = nil
      activated_spec_names = runtime.requested_specs.map(&:to_spec).sort_by(&:name)
      [Gemdeps.new(runtime), activated_spec_names]
    end