File: C:/Ruby27-x64/share/doc/ruby/html/Bundler/RubygemsIntegration.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>class Bundler::RubygemsIntegration - RDoc Documentation</title>
<script type="text/javascript">
var rdoc_rel_prefix = "../";
var index_rel_prefix = "../";
</script>
<script src="../js/navigation.js" defer></script>
<script src="../js/search.js" defer></script>
<script src="../js/search_index.js" defer></script>
<script src="../js/searcher.js" defer></script>
<script src="../js/darkfish.js" defer></script>
<link href="../css/fonts.css" rel="stylesheet">
<link href="../css/rdoc.css" rel="stylesheet">
<body id="top" role="document" class="class">
<nav role="navigation">
<div id="project-navigation">
<div id="home-section" role="region" title="Quick navigation" class="nav-section">
<h2>
<a href="../index.html" rel="home">Home</a>
</h2>
<div id="table-of-contents-navigation">
<a href="../table_of_contents.html#pages">Pages</a>
<a href="../table_of_contents.html#classes">Classes</a>
<a href="../table_of_contents.html#methods">Methods</a>
</div>
</div>
<div id="search-section" role="search" class="project-section initially-hidden">
<form action="#" method="get" accept-charset="utf-8">
<div id="search-field-wrapper">
<input id="search-field" role="combobox" aria-label="Search"
aria-autocomplete="list" aria-controls="search-results"
type="text" name="search" placeholder="Search" spellcheck="false"
title="Type to search, Up and Down to navigate, Enter to load">
</div>
<ul id="search-results" aria-label="Search Results"
aria-busy="false" aria-expanded="false"
aria-atomic="false" class="initially-hidden"></ul>
</form>
</div>
</div>
<div id="class-metadata">
<div id="parent-class-section" class="nav-section">
<h3>Parent</h3>
<p class="link"><a href="../Object.html">Object</a>
</div>
<!-- Method Quickref -->
<div id="method-list-section" class="nav-section">
<h3>Methods</h3>
<ul class="link-list" role="directory">
<li ><a href="#method-c-new">::new</a>
<li ><a href="#method-c-provides-3F">::provides?</a>
<li ><a href="#method-c-version">::version</a>
<li ><a href="#method-i-add_to_load_path">#add_to_load_path</a>
<li ><a href="#method-i-all_specs">#all_specs</a>
<li ><a href="#method-i-backport_base_dir">#backport_base_dir</a>
<li ><a href="#method-i-backport_cache_file">#backport_cache_file</a>
<li ><a href="#method-i-backport_ext_builder_monitor">#backport_ext_builder_monitor</a>
<li ><a href="#method-i-backport_spec_file">#backport_spec_file</a>
<li ><a href="#method-i-bin_path">#bin_path</a>
<li ><a href="#method-i-build">#build</a>
<li ><a href="#method-i-build_args">#build_args</a>
<li ><a href="#method-i-build_args-3D">#build_args=</a>
<li ><a href="#method-i-build_gem">#build_gem</a>
<li ><a href="#method-i-clear_paths">#clear_paths</a>
<li ><a href="#method-i-configuration">#configuration</a>
<li ><a href="#method-i-correct_for_windows_path">#correct_for_windows_path</a>
<li ><a href="#method-i-default_stubs">#default_stubs</a>
<li ><a href="#method-i-download_gem">#download_gem</a>
<li ><a href="#method-i-ext_lock">#ext_lock</a>
<li ><a href="#method-i-fetch_all_remote_specs">#fetch_all_remote_specs</a>
<li ><a href="#method-i-fetch_specs">#fetch_specs</a>
<li ><a href="#method-i-find_name">#find_name</a>
<li ><a href="#method-i-gem_bindir">#gem_bindir</a>
<li ><a href="#method-i-gem_cache">#gem_cache</a>
<li ><a href="#method-i-gem_dir">#gem_dir</a>
<li ><a href="#method-i-gem_from_path">#gem_from_path</a>
<li ><a href="#method-i-gem_path">#gem_path</a>
<li ><a href="#method-i-gem_remote_fetcher">#gem_remote_fetcher</a>
<li ><a href="#method-i-inflate">#inflate</a>
<li ><a href="#method-i-install_with_build_args">#install_with_build_args</a>
<li ><a href="#method-i-load_plugin_files">#load_plugin_files</a>
<li ><a href="#method-i-load_plugins">#load_plugins</a>
<li ><a href="#method-i-loaded_gem_paths">#loaded_gem_paths</a>
<li ><a href="#method-i-loaded_specs">#loaded_specs</a>
<li ><a href="#method-i-mark_loaded">#mark_loaded</a>
<li ><a href="#method-i-marshal_spec_dir">#marshal_spec_dir</a>
<li ><a href="#method-i-method_visibility">#method_visibility</a>
<li ><a href="#method-i-path">#path</a>
<li ><a href="#method-i-path_separator">#path_separator</a>
<li ><a href="#method-i-plain_specs">#plain_specs</a>
<li ><a href="#method-i-plain_specs-3D">#plain_specs=</a>
<li ><a href="#method-i-platforms">#platforms</a>
<li ><a href="#method-i-post_reset_hooks">#post_reset_hooks</a>
<li ><a href="#method-i-preserve_paths">#preserve_paths</a>
<li ><a href="#method-i-provides-3F">#provides?</a>
<li ><a href="#method-i-read_binary">#read_binary</a>
<li ><a href="#method-i-redefine_method">#redefine_method</a>
<li ><a href="#method-i-replace_bin_path">#replace_bin_path</a>
<li ><a href="#method-i-replace_entrypoints">#replace_entrypoints</a>
<li ><a href="#method-i-replace_gem">#replace_gem</a>
<li ><a href="#method-i-repository_subdirectories">#repository_subdirectories</a>
<li ><a href="#method-i-reset">#reset</a>
<li ><a href="#method-i-reverse_rubygems_kernel_mixin">#reverse_rubygems_kernel_mixin</a>
<li ><a href="#method-i-ruby_engine">#ruby_engine</a>
<li ><a href="#method-i-security_policies">#security_policies</a>
<li ><a href="#method-i-security_policy_keys">#security_policy_keys</a>
<li ><a href="#method-i-set_installed_by_version">#set_installed_by_version</a>
<li ><a href="#method-i-sources">#sources</a>
<li ><a href="#method-i-sources-3D">#sources=</a>
<li ><a href="#method-i-spec_cache_dirs">#spec_cache_dirs</a>
<li ><a href="#method-i-spec_default_gem-3F">#spec_default_gem?</a>
<li ><a href="#method-i-spec_extension_dir">#spec_extension_dir</a>
<li ><a href="#method-i-spec_from_gem">#spec_from_gem</a>
<li ><a href="#method-i-spec_matches_for_glob">#spec_matches_for_glob</a>
<li ><a href="#method-i-spec_missing_extensions-3F">#spec_missing_extensions?</a>
<li ><a href="#method-i-stub_rubygems">#stub_rubygems</a>
<li ><a href="#method-i-stub_set_spec">#stub_set_spec</a>
<li ><a href="#method-i-suffix_pattern">#suffix_pattern</a>
<li ><a href="#method-i-ui-3D">#ui=</a>
<li ><a href="#method-i-undo_replacements">#undo_replacements</a>
<li ><a href="#method-i-use_gemdeps">#use_gemdeps</a>
<li ><a href="#method-i-user_home">#user_home</a>
<li ><a href="#method-i-validate">#validate</a>
<li ><a href="#method-i-version">#version</a>
<li ><a href="#method-i-with_build_args">#with_build_args</a>
</ul>
</div>
</div>
</nav>
<main role="main" aria-labelledby="class-Bundler::RubygemsIntegration">
<h1 id="class-Bundler::RubygemsIntegration" class="class">
class Bundler::RubygemsIntegration
</h1>
<section class="description">
</section>
<section id="5Buntitled-5D" class="documentation-section">
<section class="constants-list">
<header>
<h3>Constants</h3>
</header>
<dl>
<dt id="EXT_LOCK">EXT_LOCK
<dd>
</dl>
</section>
<section id="public-class-5Buntitled-5D-method-details" class="method-section">
<header>
<h3>Public Class Methods</h3>
</header>
<div id="method-c-new" class="method-detail ">
<div class="method-heading">
<span class="method-name">new</span><span
class="method-args">()</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="new-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 23</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">initialize</span>
<span class="ruby-ivar">@replaced_methods</span> = {}
<span class="ruby-identifier">backport_ext_builder_monitor</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-c-provides-3F" class="method-detail ">
<div class="method-heading">
<span class="method-name">provides?</span><span
class="method-args">(req_str)</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="provides-3F-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 19</span>
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier ruby-title">provides?</span>(<span class="ruby-identifier">req_str</span>)
<span class="ruby-constant">Gem</span><span class="ruby-operator">::</span><span class="ruby-constant">Requirement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">req_str</span>).<span class="ruby-identifier">satisfied_by?</span>(<span class="ruby-identifier">version</span>)
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-c-version" class="method-detail ">
<div class="method-heading">
<span class="method-name">version</span><span
class="method-args">()</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="version-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 15</span>
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier ruby-title">version</span>
<span class="ruby-ivar">@version</span> <span class="ruby-operator">||=</span> <span class="ruby-constant">Gem</span><span class="ruby-operator">::</span><span class="ruby-constant">Version</span>.<span class="ruby-identifier">new</span>(<span class="ruby-constant">Gem</span><span class="ruby-operator">::</span><span class="ruby-constant">VERSION</span>)
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
</section>
<section id="public-instance-5Buntitled-5D-method-details" class="method-section">
<header>
<h3>Public Instance Methods</h3>
</header>
<div id="method-i-add_to_load_path" class="method-detail ">
<div class="method-heading">
<span class="method-name">add_to_load_path</span><span
class="method-args">(paths)</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="add_to_load_path-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 48</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">add_to_load_path</span>(<span class="ruby-identifier">paths</span>)
<span class="ruby-keyword">return</span> <span class="ruby-constant">Gem</span>.<span class="ruby-identifier">add_to_load_path</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">paths</span>) <span class="ruby-keyword">if</span> <span class="ruby-constant">Gem</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-value">:add_to_load_path</span>)
<span class="ruby-keyword">if</span> <span class="ruby-identifier">insert_index</span> = <span class="ruby-constant">Gem</span>.<span class="ruby-identifier">load_path_insert_index</span>
<span class="ruby-comment"># Gem directories must come after -I and ENV['RUBYLIB']</span>
<span class="ruby-identifier">$LOAD_PATH</span>.<span class="ruby-identifier">insert</span>(<span class="ruby-identifier">insert_index</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">paths</span>)
<span class="ruby-keyword">else</span>
<span class="ruby-comment"># We are probably testing in core, -I and RUBYLIB don't apply</span>
<span class="ruby-identifier">$LOAD_PATH</span>.<span class="ruby-identifier">unshift</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">paths</span>)
<span class="ruby-keyword">end</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-all_specs" class="method-detail ">
<div class="method-heading">
<span class="method-name">all_specs</span><span
class="method-args">()</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="all_specs-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 596</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">all_specs</span>
<span class="ruby-identifier">require_relative</span> <span class="ruby-string">"remote_specification"</span>
<span class="ruby-constant">Gem</span><span class="ruby-operator">::</span><span class="ruby-constant">Specification</span>.<span class="ruby-identifier">stubs</span>.<span class="ruby-identifier">map</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">stub</span><span class="ruby-operator">|</span>
<span class="ruby-constant">StubSpecification</span>.<span class="ruby-identifier">from_stub</span>(<span class="ruby-identifier">stub</span>)
<span class="ruby-keyword">end</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-backport_base_dir" class="method-detail ">
<div class="method-heading">
<span class="method-name">backport_base_dir</span><span
class="method-args">()</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<p>This backports base_dir which replaces installation path RubyGems 1.8+</p>
<div class="method-source-code" id="backport_base_dir-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 448</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">backport_base_dir</span>
<span class="ruby-identifier">redefine_method</span>(<span class="ruby-constant">Gem</span><span class="ruby-operator">::</span><span class="ruby-constant">Specification</span>, <span class="ruby-value">:base_dir</span>) <span class="ruby-keyword">do</span>
<span class="ruby-keyword">return</span> <span class="ruby-constant">Gem</span>.<span class="ruby-identifier">dir</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">loaded_from</span>
<span class="ruby-constant">File</span>.<span class="ruby-identifier">dirname</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">dirname</span> <span class="ruby-identifier">loaded_from</span>
<span class="ruby-keyword">end</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-backport_cache_file" class="method-detail ">
<div class="method-heading">
<span class="method-name">backport_cache_file</span><span
class="method-args">()</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="backport_cache_file-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 455</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">backport_cache_file</span>
<span class="ruby-identifier">redefine_method</span>(<span class="ruby-constant">Gem</span><span class="ruby-operator">::</span><span class="ruby-constant">Specification</span>, <span class="ruby-value">:cache_dir</span>) <span class="ruby-keyword">do</span>
<span class="ruby-ivar">@cache_dir</span> <span class="ruby-operator">||=</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span> <span class="ruby-identifier">base_dir</span>, <span class="ruby-string">"cache"</span>
<span class="ruby-keyword">end</span>
<span class="ruby-identifier">redefine_method</span>(<span class="ruby-constant">Gem</span><span class="ruby-operator">::</span><span class="ruby-constant">Specification</span>, <span class="ruby-value">:cache_file</span>) <span class="ruby-keyword">do</span>
<span class="ruby-ivar">@cache_file</span> <span class="ruby-operator">||=</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span> <span class="ruby-identifier">cache_dir</span>, <span class="ruby-node">"#{full_name}.gem"</span>
<span class="ruby-keyword">end</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-backport_ext_builder_monitor" class="method-detail ">
<div class="method-heading">
<span class="method-name">backport_ext_builder_monitor</span><span
class="method-args">()</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="backport_ext_builder_monitor-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 603</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">backport_ext_builder_monitor</span>
<span class="ruby-comment"># So we can avoid requiring "rubygems/ext" in its entirety</span>
<span class="ruby-constant">Gem</span>.<span class="ruby-identifier">module_eval</span> <span class="ruby-identifier"><<-RB</span>, <span class="ruby-keyword">__FILE__</span>, <span class="ruby-keyword">__LINE__</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>
<span class="ruby-value"> module Ext
end
</span><span class="ruby-identifier"> RB</span>
<span class="ruby-identifier">require</span> <span class="ruby-string">"rubygems/ext/builder"</span>
<span class="ruby-constant">Gem</span><span class="ruby-operator">::</span><span class="ruby-constant">Ext</span><span class="ruby-operator">::</span><span class="ruby-constant">Builder</span>.<span class="ruby-identifier">class_eval</span> <span class="ruby-keyword">do</span>
<span class="ruby-keyword">unless</span> <span class="ruby-identifier">const_defined?</span>(<span class="ruby-value">:CHDIR_MONITOR</span>)
<span class="ruby-identifier">const_set</span>(<span class="ruby-value">:CHDIR_MONITOR</span>, <span class="ruby-constant">EXT_LOCK</span>)
<span class="ruby-keyword">end</span>
<span class="ruby-identifier">remove_const</span>(<span class="ruby-value">:CHDIR_MUTEX</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">const_defined?</span>(<span class="ruby-value">:CHDIR_MUTEX</span>)
<span class="ruby-identifier">const_set</span>(<span class="ruby-value">:CHDIR_MUTEX</span>, <span class="ruby-identifier">const_get</span>(<span class="ruby-value">:CHDIR_MONITOR</span>))
<span class="ruby-keyword">end</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-backport_spec_file" class="method-detail ">
<div class="method-heading">
<span class="method-name">backport_spec_file</span><span
class="method-args">()</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="backport_spec_file-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 465</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">backport_spec_file</span>
<span class="ruby-identifier">redefine_method</span>(<span class="ruby-constant">Gem</span><span class="ruby-operator">::</span><span class="ruby-constant">Specification</span>, <span class="ruby-value">:spec_dir</span>) <span class="ruby-keyword">do</span>
<span class="ruby-ivar">@spec_dir</span> <span class="ruby-operator">||=</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span> <span class="ruby-identifier">base_dir</span>, <span class="ruby-string">"specifications"</span>
<span class="ruby-keyword">end</span>
<span class="ruby-identifier">redefine_method</span>(<span class="ruby-constant">Gem</span><span class="ruby-operator">::</span><span class="ruby-constant">Specification</span>, <span class="ruby-value">:spec_file</span>) <span class="ruby-keyword">do</span>
<span class="ruby-ivar">@spec_file</span> <span class="ruby-operator">||=</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span> <span class="ruby-identifier">spec_dir</span>, <span class="ruby-node">"#{full_name}.gemspec"</span>
<span class="ruby-keyword">end</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-bin_path" class="method-detail ">
<div class="method-heading">
<span class="method-name">bin_path</span><span
class="method-args">(gem, bin, ver)</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="bin_path-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 222</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">bin_path</span>(<span class="ruby-identifier">gem</span>, <span class="ruby-identifier">bin</span>, <span class="ruby-identifier">ver</span>)
<span class="ruby-constant">Gem</span>.<span class="ruby-identifier">bin_path</span>(<span class="ruby-identifier">gem</span>, <span class="ruby-identifier">bin</span>, <span class="ruby-identifier">ver</span>)
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-build" class="method-detail ">
<div class="method-heading">
<span class="method-name">build</span><span
class="method-args">(spec, skip_validation = false)</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="build-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 579</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">build</span>(<span class="ruby-identifier">spec</span>, <span class="ruby-identifier">skip_validation</span> = <span class="ruby-keyword">false</span>)
<span class="ruby-identifier">require</span> <span class="ruby-string">"rubygems/package"</span>
<span class="ruby-constant">Gem</span><span class="ruby-operator">::</span><span class="ruby-constant">Package</span>.<span class="ruby-identifier">build</span>(<span class="ruby-identifier">spec</span>, <span class="ruby-identifier">skip_validation</span>)
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-build_args" class="method-detail ">
<div class="method-heading">
<span class="method-name">build_args</span><span
class="method-args">()</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="build_args-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 36</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">build_args</span>
<span class="ruby-constant">Gem</span><span class="ruby-operator">::</span><span class="ruby-constant">Command</span>.<span class="ruby-identifier">build_args</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-build_args-3D" class="method-detail ">
<div class="method-heading">
<span class="method-name">build_args=</span><span
class="method-args">(args)</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="build_args-3D-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 40</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">build_args=</span>(<span class="ruby-identifier">args</span>)
<span class="ruby-constant">Gem</span><span class="ruby-operator">::</span><span class="ruby-constant">Command</span>.<span class="ruby-identifier">build_args</span> = <span class="ruby-identifier">args</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-build_gem" class="method-detail ">
<div class="method-heading">
<span class="method-name">build_gem</span><span
class="method-args">(gem_dir, spec)</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="build_gem-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 282</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">build_gem</span>(<span class="ruby-identifier">gem_dir</span>, <span class="ruby-identifier">spec</span>)
<span class="ruby-identifier">build</span>(<span class="ruby-identifier">spec</span>)
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-clear_paths" class="method-detail ">
<div class="method-heading">
<span class="method-name">clear_paths</span><span
class="method-args">()</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="clear_paths-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 218</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">clear_paths</span>
<span class="ruby-constant">Gem</span>.<span class="ruby-identifier">clear_paths</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-configuration" class="method-detail ">
<div class="method-heading">
<span class="method-name">configuration</span><span
class="method-args">()</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="configuration-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 123</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">configuration</span>
<span class="ruby-identifier">require_relative</span> <span class="ruby-string">"psyched_yaml"</span>
<span class="ruby-constant">Gem</span>.<span class="ruby-identifier">configuration</span>
<span class="ruby-keyword">rescue</span> <span class="ruby-constant">Gem</span><span class="ruby-operator">::</span><span class="ruby-constant">SystemExitException</span>, <span class="ruby-constant">LoadError</span> <span class="ruby-operator">=></span> <span class="ruby-identifier">e</span>
<span class="ruby-constant">Bundler</span>.<span class="ruby-identifier">ui</span>.<span class="ruby-identifier">error</span> <span class="ruby-node">"#{e.class}: #{e.message}"</span>
<span class="ruby-constant">Bundler</span>.<span class="ruby-identifier">ui</span>.<span class="ruby-identifier">trace</span> <span class="ruby-identifier">e</span>
<span class="ruby-identifier">raise</span>
<span class="ruby-keyword">rescue</span> <span class="ruby-constant">YamlLibrarySyntaxError</span> <span class="ruby-operator">=></span> <span class="ruby-identifier">e</span>
<span class="ruby-identifier">raise</span> <span class="ruby-constant">YamlSyntaxError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">e</span>, <span class="ruby-string">"Your RubyGems configuration, which is "</span> \
<span class="ruby-string">"usually located in ~/.gemrc, contains invalid YAML syntax."</span>)
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-correct_for_windows_path" class="method-detail ">
<div class="method-heading">
<span class="method-name">correct_for_windows_path</span><span
class="method-args">(path)</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="correct_for_windows_path-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 149</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">correct_for_windows_path</span>(<span class="ruby-identifier">path</span>)
<span class="ruby-identifier">require</span> <span class="ruby-string">"rubygems/util"</span>
<span class="ruby-keyword">if</span> <span class="ruby-constant">Gem</span><span class="ruby-operator">::</span><span class="ruby-constant">Util</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-value">:correct_for_windows_path</span>)
<span class="ruby-constant">Gem</span><span class="ruby-operator">::</span><span class="ruby-constant">Util</span>.<span class="ruby-identifier">correct_for_windows_path</span>(<span class="ruby-identifier">path</span>)
<span class="ruby-keyword">elsif</span> <span class="ruby-identifier">path</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">chr</span> <span class="ruby-operator">==</span> <span class="ruby-string">"/"</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">path</span>[<span class="ruby-value">1</span>].<span class="ruby-identifier">chr</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp">/[a-z]/i</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">path</span>[<span class="ruby-value">2</span>].<span class="ruby-identifier">chr</span> <span class="ruby-operator">==</span> <span class="ruby-string">":"</span>
<span class="ruby-identifier">path</span>[<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">-1</span>]
<span class="ruby-keyword">else</span>
<span class="ruby-identifier">path</span>
<span class="ruby-keyword">end</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-default_stubs" class="method-detail ">
<div class="method-heading">
<span class="method-name">default_stubs</span><span
class="method-args">()</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="default_stubs-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 627</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">default_stubs</span>
<span class="ruby-constant">Gem</span><span class="ruby-operator">::</span><span class="ruby-constant">Specification</span>.<span class="ruby-identifier">default_stubs</span>(<span class="ruby-string">"*.gemspec"</span>)
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-download_gem" class="method-detail ">
<div class="method-heading">
<span class="method-name">download_gem</span><span
class="method-args">(spec, uri, path)</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="download_gem-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 556</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">download_gem</span>(<span class="ruby-identifier">spec</span>, <span class="ruby-identifier">uri</span>, <span class="ruby-identifier">path</span>)
<span class="ruby-identifier">uri</span> = <span class="ruby-constant">Bundler</span>.<span class="ruby-identifier">settings</span>.<span class="ruby-identifier">mirror_for</span>(<span class="ruby-identifier">uri</span>)
<span class="ruby-identifier">fetcher</span> = <span class="ruby-identifier">gem_remote_fetcher</span>
<span class="ruby-identifier">fetcher</span>.<span class="ruby-identifier">headers</span> = { <span class="ruby-string">"X-Gemfile-Source"</span> <span class="ruby-operator">=></span> <span class="ruby-identifier">spec</span>.<span class="ruby-identifier">remote</span>.<span class="ruby-identifier">original_uri</span>.<span class="ruby-identifier">to_s</span> } <span class="ruby-keyword">if</span> <span class="ruby-identifier">spec</span>.<span class="ruby-identifier">remote</span>.<span class="ruby-identifier">original_uri</span>
<span class="ruby-constant">Bundler</span><span class="ruby-operator">::</span><span class="ruby-constant">Retry</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">"download gem from #{uri}"</span>).<span class="ruby-identifier">attempts</span> <span class="ruby-keyword">do</span>
<span class="ruby-identifier">fetcher</span>.<span class="ruby-identifier">download</span>(<span class="ruby-identifier">spec</span>, <span class="ruby-identifier">uri</span>, <span class="ruby-identifier">path</span>)
<span class="ruby-keyword">end</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-ext_lock" class="method-detail ">
<div class="method-heading">
<span class="method-name">ext_lock</span><span
class="method-args">()</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="ext_lock-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 248</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">ext_lock</span>
<span class="ruby-constant">EXT_LOCK</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-fetch_all_remote_specs" class="method-detail ">
<div class="method-heading">
<span class="method-name">fetch_all_remote_specs</span><span
class="method-args">(remote)</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="fetch_all_remote_specs-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 549</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">fetch_all_remote_specs</span>(<span class="ruby-identifier">remote</span>)
<span class="ruby-identifier">specs</span> = <span class="ruby-identifier">fetch_specs</span>(<span class="ruby-identifier">remote</span>, <span class="ruby-string">"specs"</span>)
<span class="ruby-identifier">pres</span> = <span class="ruby-identifier">fetch_specs</span>(<span class="ruby-identifier">remote</span>, <span class="ruby-string">"prerelease_specs"</span>) <span class="ruby-operator">||</span> []
<span class="ruby-identifier">specs</span>.<span class="ruby-identifier">concat</span>(<span class="ruby-identifier">pres</span>)
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-fetch_specs" class="method-detail ">
<div class="method-heading">
<span class="method-name">fetch_specs</span><span
class="method-args">(remote, name)</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="fetch_specs-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 538</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">fetch_specs</span>(<span class="ruby-identifier">remote</span>, <span class="ruby-identifier">name</span>)
<span class="ruby-identifier">path</span> = <span class="ruby-identifier">remote</span>.<span class="ruby-identifier">uri</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-operator">+</span> <span class="ruby-node">"#{name}.#{Gem.marshal_version}.gz"</span>
<span class="ruby-identifier">fetcher</span> = <span class="ruby-identifier">gem_remote_fetcher</span>
<span class="ruby-identifier">fetcher</span>.<span class="ruby-identifier">headers</span> = { <span class="ruby-string">"X-Gemfile-Source"</span> <span class="ruby-operator">=></span> <span class="ruby-identifier">remote</span>.<span class="ruby-identifier">original_uri</span>.<span class="ruby-identifier">to_s</span> } <span class="ruby-keyword">if</span> <span class="ruby-identifier">remote</span>.<span class="ruby-identifier">original_uri</span>
<span class="ruby-identifier">string</span> = <span class="ruby-identifier">fetcher</span>.<span class="ruby-identifier">fetch_path</span>(<span class="ruby-identifier">path</span>)
<span class="ruby-constant">Bundler</span>.<span class="ruby-identifier">load_marshal</span>(<span class="ruby-identifier">string</span>)
<span class="ruby-keyword">rescue</span> <span class="ruby-constant">Gem</span><span class="ruby-operator">::</span><span class="ruby-constant">RemoteFetcher</span><span class="ruby-operator">::</span><span class="ruby-constant">FetchError</span> <span class="ruby-operator">=></span> <span class="ruby-identifier">e</span>
<span class="ruby-comment"># it's okay for prerelease to fail</span>
<span class="ruby-identifier">raise</span> <span class="ruby-identifier">e</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">name</span> <span class="ruby-operator">==</span> <span class="ruby-string">"prerelease_specs"</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-find_name" class="method-detail ">
<div class="method-heading">
<span class="method-name">find_name</span><span
class="method-args">(name)</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="find_name-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 622</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">find_name</span>(<span class="ruby-identifier">name</span>)
<span class="ruby-constant">Gem</span><span class="ruby-operator">::</span><span class="ruby-constant">Specification</span>.<span class="ruby-identifier">stubs_for</span>(<span class="ruby-identifier">name</span>).<span class="ruby-identifier">map</span>(<span class="ruby-operator">&</span><span class="ruby-value">:to_spec</span>)
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-gem_bindir" class="method-detail ">
<div class="method-heading">
<span class="method-name">gem_bindir</span><span
class="method-args">()</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="gem_bindir-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 178</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">gem_bindir</span>
<span class="ruby-constant">Gem</span>.<span class="ruby-identifier">bindir</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-gem_cache" class="method-detail ">
<div class="method-heading">
<span class="method-name">gem_cache</span><span
class="method-args">()</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="gem_cache-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 202</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">gem_cache</span>
<span class="ruby-identifier">gem_path</span>.<span class="ruby-identifier">map</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">p</span><span class="ruby-operator">|</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">expand_path</span>(<span class="ruby-string">"cache"</span>, <span class="ruby-identifier">p</span>) }
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-gem_dir" class="method-detail ">
<div class="method-heading">
<span class="method-name">gem_dir</span><span
class="method-args">()</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="gem_dir-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 174</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">gem_dir</span>
<span class="ruby-constant">Gem</span>.<span class="ruby-identifier">dir</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-gem_from_path" class="method-detail ">
<div class="method-heading">
<span class="method-name">gem_from_path</span><span
class="method-args">(path, policy = nil)</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="gem_from_path-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 572</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">gem_from_path</span>(<span class="ruby-identifier">path</span>, <span class="ruby-identifier">policy</span> = <span class="ruby-keyword">nil</span>)
<span class="ruby-identifier">require</span> <span class="ruby-string">"rubygems/package"</span>
<span class="ruby-identifier">p</span> = <span class="ruby-constant">Gem</span><span class="ruby-operator">::</span><span class="ruby-constant">Package</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">path</span>)
<span class="ruby-identifier">p</span>.<span class="ruby-identifier">security_policy</span> = <span class="ruby-identifier">policy</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">policy</span>
<span class="ruby-identifier">p</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-gem_path" class="method-detail ">
<div class="method-heading">
<span class="method-name">gem_path</span><span
class="method-args">()</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="gem_path-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 186</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">gem_path</span>
<span class="ruby-constant">Gem</span>.<span class="ruby-identifier">path</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-gem_remote_fetcher" class="method-detail ">
<div class="method-heading">
<span class="method-name">gem_remote_fetcher</span><span
class="method-args">()</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="gem_remote_fetcher-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 565</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">gem_remote_fetcher</span>
<span class="ruby-identifier">require</span> <span class="ruby-string">"resolv"</span>
<span class="ruby-identifier">proxy</span> = <span class="ruby-identifier">configuration</span>[<span class="ruby-value">:http_proxy</span>]
<span class="ruby-identifier">dns</span> = <span class="ruby-constant">Resolv</span><span class="ruby-operator">::</span><span class="ruby-constant">DNS</span>.<span class="ruby-identifier">new</span>
<span class="ruby-constant">Gem</span><span class="ruby-operator">::</span><span class="ruby-constant">RemoteFetcher</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">proxy</span>, <span class="ruby-identifier">dns</span>)
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-inflate" class="method-detail ">
<div class="method-heading">
<span class="method-name">inflate</span><span
class="method-args">(obj)</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="inflate-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 143</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">inflate</span>(<span class="ruby-identifier">obj</span>)
<span class="ruby-identifier">require</span> <span class="ruby-string">"rubygems/util"</span>
<span class="ruby-constant">Gem</span><span class="ruby-operator">::</span><span class="ruby-constant">Util</span>.<span class="ruby-identifier">inflate</span>(<span class="ruby-identifier">obj</span>)
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-install_with_build_args" class="method-detail ">
<div class="method-heading">
<span class="method-name">install_with_build_args</span><span
class="method-args">(args) { || ... }</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="install_with_build_args-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 588</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">install_with_build_args</span>(<span class="ruby-identifier">args</span>)
<span class="ruby-keyword">yield</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-load_plugin_files" class="method-detail ">
<div class="method-heading">
<span class="method-name">load_plugin_files</span><span
class="method-args">(files)</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="load_plugin_files-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 240</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">load_plugin_files</span>(<span class="ruby-identifier">files</span>)
<span class="ruby-constant">Gem</span>.<span class="ruby-identifier">load_plugin_files</span>(<span class="ruby-identifier">files</span>) <span class="ruby-keyword">if</span> <span class="ruby-constant">Gem</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-value">:load_plugin_files</span>)
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-load_plugins" class="method-detail ">
<div class="method-heading">
<span class="method-name">load_plugins</span><span
class="method-args">()</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="load_plugins-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 236</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">load_plugins</span>
<span class="ruby-constant">Gem</span>.<span class="ruby-identifier">load_plugins</span> <span class="ruby-keyword">if</span> <span class="ruby-constant">Gem</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-value">:load_plugins</span>)
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-loaded_gem_paths" class="method-detail ">
<div class="method-heading">
<span class="method-name">loaded_gem_paths</span><span
class="method-args">()</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="loaded_gem_paths-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 231</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">loaded_gem_paths</span>
<span class="ruby-identifier">loaded_gem_paths</span> = <span class="ruby-constant">Gem</span>.<span class="ruby-identifier">loaded_specs</span>.<span class="ruby-identifier">map</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">_</span>, <span class="ruby-identifier">s</span><span class="ruby-operator">|</span> <span class="ruby-identifier">s</span>.<span class="ruby-identifier">full_require_paths</span> }
<span class="ruby-identifier">loaded_gem_paths</span>.<span class="ruby-identifier">flatten</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-loaded_specs" class="method-detail ">
<div class="method-heading">
<span class="method-name">loaded_specs</span><span
class="method-args">(name)</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="loaded_specs-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 44</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">loaded_specs</span>(<span class="ruby-identifier">name</span>)
<span class="ruby-constant">Gem</span>.<span class="ruby-identifier">loaded_specs</span>[<span class="ruby-identifier">name</span>]
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-mark_loaded" class="method-detail ">
<div class="method-heading">
<span class="method-name">mark_loaded</span><span
class="method-args">(spec)</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="mark_loaded-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 60</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">mark_loaded</span>(<span class="ruby-identifier">spec</span>)
<span class="ruby-keyword">if</span> <span class="ruby-identifier">spec</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-value">:activated=</span>)
<span class="ruby-identifier">current</span> = <span class="ruby-constant">Gem</span>.<span class="ruby-identifier">loaded_specs</span>[<span class="ruby-identifier">spec</span>.<span class="ruby-identifier">name</span>]
<span class="ruby-identifier">current</span>.<span class="ruby-identifier">activated</span> = <span class="ruby-keyword">false</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">current</span>
<span class="ruby-identifier">spec</span>.<span class="ruby-identifier">activated</span> = <span class="ruby-keyword">true</span>
<span class="ruby-keyword">end</span>
<span class="ruby-constant">Gem</span>.<span class="ruby-identifier">loaded_specs</span>[<span class="ruby-identifier">spec</span>.<span class="ruby-identifier">name</span>] = <span class="ruby-identifier">spec</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-marshal_spec_dir" class="method-detail ">
<div class="method-heading">
<span class="method-name">marshal_spec_dir</span><span
class="method-args">()</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="marshal_spec_dir-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 214</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">marshal_spec_dir</span>
<span class="ruby-constant">Gem</span><span class="ruby-operator">::</span><span class="ruby-constant">MARSHAL_SPEC_DIR</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-method_visibility" class="method-detail ">
<div class="method-heading">
<span class="method-name">method_visibility</span><span
class="method-args">(klass, method)</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="method_visibility-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 508</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">method_visibility</span>(<span class="ruby-identifier">klass</span>, <span class="ruby-identifier">method</span>)
<span class="ruby-keyword">if</span> <span class="ruby-identifier">klass</span>.<span class="ruby-identifier">private_method_defined?</span>(<span class="ruby-identifier">method</span>)
<span class="ruby-value">:private</span>
<span class="ruby-keyword">elsif</span> <span class="ruby-identifier">klass</span>.<span class="ruby-identifier">protected_method_defined?</span>(<span class="ruby-identifier">method</span>)
<span class="ruby-value">:protected</span>
<span class="ruby-keyword">else</span>
<span class="ruby-value">:public</span>
<span class="ruby-keyword">end</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-path" class="method-detail ">
<div class="method-heading">
<span class="method-name">path</span><span
class="method-args">(obj)</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="path-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 114</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">path</span>(<span class="ruby-identifier">obj</span>)
<span class="ruby-identifier">obj</span>.<span class="ruby-identifier">to_s</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-path_separator" class="method-detail ">
<div class="method-heading">
<span class="method-name">path_separator</span><span
class="method-args">()</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="path_separator-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 592</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">path_separator</span>
<span class="ruby-constant">Gem</span>.<span class="ruby-identifier">path_separator</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-plain_specs" class="method-detail ">
<div class="method-heading">
<span class="method-name">plain_specs</span><span
class="method-args">()</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="plain_specs-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 530</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">plain_specs</span>
<span class="ruby-constant">Gem</span><span class="ruby-operator">::</span><span class="ruby-constant">Specification</span>.<span class="ruby-identifier">_all</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-plain_specs-3D" class="method-detail ">
<div class="method-heading">
<span class="method-name">plain_specs=</span><span
class="method-args">(specs)</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="plain_specs-3D-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 534</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">plain_specs=</span>(<span class="ruby-identifier">specs</span>)
<span class="ruby-constant">Gem</span><span class="ruby-operator">::</span><span class="ruby-constant">Specification</span>.<span class="ruby-identifier">all</span> = <span class="ruby-identifier">specs</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-platforms" class="method-detail ">
<div class="method-heading">
<span class="method-name">platforms</span><span
class="method-args">()</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="platforms-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 118</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">platforms</span>
<span class="ruby-keyword">return</span> [<span class="ruby-constant">Gem</span><span class="ruby-operator">::</span><span class="ruby-constant">Platform</span><span class="ruby-operator">::</span><span class="ruby-constant">RUBY</span>] <span class="ruby-keyword">if</span> <span class="ruby-constant">Bundler</span>.<span class="ruby-identifier">settings</span>[<span class="ruby-value">:force_ruby_platform</span>]
<span class="ruby-constant">Gem</span>.<span class="ruby-identifier">platforms</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-post_reset_hooks" class="method-detail ">
<div class="method-heading">
<span class="method-name">post_reset_hooks</span><span
class="method-args">()</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="post_reset_hooks-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 194</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">post_reset_hooks</span>
<span class="ruby-constant">Gem</span>.<span class="ruby-identifier">post_reset_hooks</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-preserve_paths" class="method-detail ">
<div class="method-heading">
<span class="method-name">preserve_paths</span><span
class="method-args">() { || ... }</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="preserve_paths-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 226</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">preserve_paths</span>
<span class="ruby-comment"># this is a no-op outside of RubyGems 1.8</span>
<span class="ruby-keyword">yield</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-provides-3F" class="method-detail ">
<div class="method-heading">
<span class="method-name">provides?</span><span
class="method-args">(req_str)</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="provides-3F-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 32</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">provides?</span>(<span class="ruby-identifier">req_str</span>)
<span class="ruby-keyword">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">provides?</span>(<span class="ruby-identifier">req_str</span>)
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-read_binary" class="method-detail ">
<div class="method-heading">
<span class="method-name">read_binary</span><span
class="method-args">(path)</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="read_binary-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 139</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">read_binary</span>(<span class="ruby-identifier">path</span>)
<span class="ruby-constant">Gem</span>.<span class="ruby-identifier">read_binary</span>(<span class="ruby-identifier">path</span>)
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-redefine_method" class="method-detail ">
<div class="method-heading">
<span class="method-name">redefine_method</span><span
class="method-args">(klass, method, unbound_method = nil, &block)</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="redefine_method-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 487</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">redefine_method</span>(<span class="ruby-identifier">klass</span>, <span class="ruby-identifier">method</span>, <span class="ruby-identifier">unbound_method</span> = <span class="ruby-keyword">nil</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
<span class="ruby-identifier">visibility</span> = <span class="ruby-identifier">method_visibility</span>(<span class="ruby-identifier">klass</span>, <span class="ruby-identifier">method</span>)
<span class="ruby-keyword">begin</span>
<span class="ruby-keyword">if</span> (<span class="ruby-identifier">instance_method</span> = <span class="ruby-identifier">klass</span>.<span class="ruby-identifier">instance_method</span>(<span class="ruby-identifier">method</span>)) <span class="ruby-operator">&&</span> <span class="ruby-identifier">method</span> <span class="ruby-operator">!=</span> <span class="ruby-value">:initialize</span>
<span class="ruby-comment"># doing this to ensure we also get private methods</span>
<span class="ruby-identifier">klass</span>.<span class="ruby-identifier">send</span>(<span class="ruby-value">:remove_method</span>, <span class="ruby-identifier">method</span>)
<span class="ruby-keyword">end</span>
<span class="ruby-keyword">rescue</span> <span class="ruby-constant">NameError</span>
<span class="ruby-comment"># method isn't defined</span>
<span class="ruby-keyword">nil</span>
<span class="ruby-keyword">end</span>
<span class="ruby-ivar">@replaced_methods</span>[[<span class="ruby-identifier">method</span>, <span class="ruby-identifier">klass</span>]] = <span class="ruby-identifier">instance_method</span>
<span class="ruby-keyword">if</span> <span class="ruby-identifier">unbound_method</span>
<span class="ruby-identifier">klass</span>.<span class="ruby-identifier">send</span>(<span class="ruby-value">:define_method</span>, <span class="ruby-identifier">method</span>, <span class="ruby-identifier">unbound_method</span>)
<span class="ruby-identifier">klass</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">visibility</span>, <span class="ruby-identifier">method</span>)
<span class="ruby-keyword">elsif</span> <span class="ruby-identifier">block</span>
<span class="ruby-identifier">klass</span>.<span class="ruby-identifier">send</span>(<span class="ruby-value">:define_method</span>, <span class="ruby-identifier">method</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
<span class="ruby-identifier">klass</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">visibility</span>, <span class="ruby-identifier">method</span>)
<span class="ruby-keyword">end</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-replace_bin_path" class="method-detail ">
<div class="method-heading">
<span class="method-name">replace_bin_path</span><span
class="method-args">(specs_by_name)</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<p>Used to make bin stubs that are not created by bundler work under bundler. The new Gem.bin_path only considers gems in <code>specs</code></p>
<div class="method-source-code" id="replace_bin_path-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 357</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">replace_bin_path</span>(<span class="ruby-identifier">specs_by_name</span>)
<span class="ruby-identifier">gem_class</span> = (<span class="ruby-keyword">class</span> <span class="ruby-operator"><<</span> <span class="ruby-constant">Gem</span>; <span class="ruby-keyword">self</span>; <span class="ruby-keyword">end</span>)
<span class="ruby-identifier">redefine_method</span>(<span class="ruby-identifier">gem_class</span>, <span class="ruby-value">:find_spec_for_exe</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">gem_name</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">args</span><span class="ruby-operator">|</span>
<span class="ruby-identifier">exec_name</span> = <span class="ruby-identifier">args</span>.<span class="ruby-identifier">first</span>
<span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-string">"you must supply exec_name"</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">exec_name</span>
<span class="ruby-identifier">spec_with_name</span> = <span class="ruby-identifier">specs_by_name</span>[<span class="ruby-identifier">gem_name</span>]
<span class="ruby-identifier">matching_specs_by_exec_name</span> = <span class="ruby-identifier">specs_by_name</span>.<span class="ruby-identifier">values</span>.<span class="ruby-identifier">select</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">s</span><span class="ruby-operator">|</span> <span class="ruby-identifier">s</span>.<span class="ruby-identifier">executables</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">exec_name</span>) }
<span class="ruby-identifier">spec</span> = <span class="ruby-identifier">matching_specs_by_exec_name</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">spec_with_name</span>)
<span class="ruby-keyword">unless</span> <span class="ruby-identifier">spec</span> <span class="ruby-operator">||</span> <span class="ruby-operator">!</span><span class="ruby-identifier">matching_specs_by_exec_name</span>.<span class="ruby-identifier">empty?</span>
<span class="ruby-identifier">message</span> = <span class="ruby-node">"can't find executable #{exec_name} for gem #{gem_name}"</span>
<span class="ruby-keyword">if</span> <span class="ruby-identifier">spec_with_name</span>.<span class="ruby-identifier">nil?</span>
<span class="ruby-identifier">message</span> <span class="ruby-operator">+=</span> <span class="ruby-node">". #{gem_name} is not currently included in the bundle, "</span> \
<span class="ruby-node">"perhaps you meant to add it to your #{Bundler.default_gemfile.basename}?"</span>
<span class="ruby-keyword">end</span>
<span class="ruby-identifier">raise</span> <span class="ruby-constant">Gem</span><span class="ruby-operator">::</span><span class="ruby-constant">Exception</span>, <span class="ruby-identifier">message</span>
<span class="ruby-keyword">end</span>
<span class="ruby-keyword">unless</span> <span class="ruby-identifier">spec</span>
<span class="ruby-identifier">spec</span> = <span class="ruby-identifier">matching_specs_by_exec_name</span>.<span class="ruby-identifier">shift</span>
<span class="ruby-identifier">warn</span> \
<span class="ruby-node">"Bundler is using a binstub that was created for a different gem (#{spec.name}).\n"</span> \
<span class="ruby-node">"You should run `bundle binstub #{gem_name}` "</span> \
<span class="ruby-string">"to work around a system/bundle conflict."</span>
<span class="ruby-keyword">end</span>
<span class="ruby-keyword">unless</span> <span class="ruby-identifier">matching_specs_by_exec_name</span>.<span class="ruby-identifier">empty?</span>
<span class="ruby-identifier">conflicting_names</span> = <span class="ruby-identifier">matching_specs_by_exec_name</span>.<span class="ruby-identifier">map</span>(<span class="ruby-operator">&</span><span class="ruby-value">:name</span>).<span class="ruby-identifier">join</span>(<span class="ruby-string">", "</span>)
<span class="ruby-identifier">warn</span> \
<span class="ruby-node">"The `#{exec_name}` executable in the `#{spec.name}` gem is being loaded, but it's also present in other gems (#{conflicting_names}).\n"</span> \
<span class="ruby-string">"If you meant to run the executable for another gem, make sure you use a project specific binstub (`bundle binstub <gem_name>`).\n"</span> \
<span class="ruby-string">"If you plan to use multiple conflicting executables, generate binstubs for them and disambiguate their names."</span>
<span class="ruby-keyword">end</span>
<span class="ruby-identifier">spec</span>
<span class="ruby-keyword">end</span>
<span class="ruby-identifier">redefine_method</span>(<span class="ruby-identifier">gem_class</span>, <span class="ruby-value">:activate_bin_path</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">name</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">args</span><span class="ruby-operator">|</span>
<span class="ruby-identifier">exec_name</span> = <span class="ruby-identifier">args</span>.<span class="ruby-identifier">first</span>
<span class="ruby-keyword">return</span> <span class="ruby-constant">ENV</span>[<span class="ruby-string">"BUNDLE_BIN_PATH"</span>] <span class="ruby-keyword">if</span> <span class="ruby-identifier">exec_name</span> <span class="ruby-operator">==</span> <span class="ruby-string">"bundle"</span>
<span class="ruby-comment"># Copy of Rubygems activate_bin_path impl</span>
<span class="ruby-identifier">requirement</span> = <span class="ruby-identifier">args</span>.<span class="ruby-identifier">last</span>
<span class="ruby-identifier">spec</span> = <span class="ruby-identifier">find_spec_for_exe</span> <span class="ruby-identifier">name</span>, <span class="ruby-identifier">exec_name</span>, [<span class="ruby-identifier">requirement</span>]
<span class="ruby-identifier">gem_bin</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-identifier">spec</span>.<span class="ruby-identifier">full_gem_path</span>, <span class="ruby-identifier">spec</span>.<span class="ruby-identifier">bindir</span>, <span class="ruby-identifier">exec_name</span>)
<span class="ruby-identifier">gem_from_path_bin</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">dirname</span>(<span class="ruby-identifier">spec</span>.<span class="ruby-identifier">loaded_from</span>), <span class="ruby-identifier">spec</span>.<span class="ruby-identifier">bindir</span>, <span class="ruby-identifier">exec_name</span>)
<span class="ruby-constant">File</span>.<span class="ruby-identifier">exist?</span>(<span class="ruby-identifier">gem_bin</span>) <span class="ruby-operator">?</span> <span class="ruby-identifier">gem_bin</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">gem_from_path_bin</span>
<span class="ruby-keyword">end</span>
<span class="ruby-identifier">redefine_method</span>(<span class="ruby-identifier">gem_class</span>, <span class="ruby-value">:bin_path</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">name</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">args</span><span class="ruby-operator">|</span>
<span class="ruby-identifier">exec_name</span> = <span class="ruby-identifier">args</span>.<span class="ruby-identifier">first</span>
<span class="ruby-keyword">return</span> <span class="ruby-constant">ENV</span>[<span class="ruby-string">"BUNDLE_BIN_PATH"</span>] <span class="ruby-keyword">if</span> <span class="ruby-identifier">exec_name</span> <span class="ruby-operator">==</span> <span class="ruby-string">"bundle"</span>
<span class="ruby-identifier">spec</span> = <span class="ruby-identifier">find_spec_for_exe</span>(<span class="ruby-identifier">name</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
<span class="ruby-identifier">exec_name</span> <span class="ruby-operator">||=</span> <span class="ruby-identifier">spec</span>.<span class="ruby-identifier">default_executable</span>
<span class="ruby-identifier">gem_bin</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-identifier">spec</span>.<span class="ruby-identifier">full_gem_path</span>, <span class="ruby-identifier">spec</span>.<span class="ruby-identifier">bindir</span>, <span class="ruby-identifier">exec_name</span>)
<span class="ruby-identifier">gem_from_path_bin</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">dirname</span>(<span class="ruby-identifier">spec</span>.<span class="ruby-identifier">loaded_from</span>), <span class="ruby-identifier">spec</span>.<span class="ruby-identifier">bindir</span>, <span class="ruby-identifier">exec_name</span>)
<span class="ruby-constant">File</span>.<span class="ruby-identifier">exist?</span>(<span class="ruby-identifier">gem_bin</span>) <span class="ruby-operator">?</span> <span class="ruby-identifier">gem_bin</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">gem_from_path_bin</span>
<span class="ruby-keyword">end</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-replace_entrypoints" class="method-detail ">
<div class="method-heading">
<span class="method-name">replace_entrypoints</span><span
class="method-args">(specs)</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<p>Replace or hook into RubyGems to provide a bundlerized view of the world.</p>
<div class="method-source-code" id="replace_entrypoints-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 424</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">replace_entrypoints</span>(<span class="ruby-identifier">specs</span>)
<span class="ruby-identifier">specs_by_name</span> = <span class="ruby-identifier">specs</span>.<span class="ruby-identifier">reduce</span>({}) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">h</span>, <span class="ruby-identifier">s</span><span class="ruby-operator">|</span>
<span class="ruby-identifier">h</span>[<span class="ruby-identifier">s</span>.<span class="ruby-identifier">name</span>] = <span class="ruby-identifier">s</span>
<span class="ruby-identifier">h</span>
<span class="ruby-keyword">end</span>
<span class="ruby-constant">Bundler</span>.<span class="ruby-identifier">rubygems</span>.<span class="ruby-identifier">default_stubs</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">stub</span><span class="ruby-operator">|</span>
<span class="ruby-identifier">default_spec</span> = <span class="ruby-identifier">stub</span>.<span class="ruby-identifier">to_spec</span>
<span class="ruby-identifier">default_spec_name</span> = <span class="ruby-identifier">default_spec</span>.<span class="ruby-identifier">name</span>
<span class="ruby-keyword">next</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">specs_by_name</span>.<span class="ruby-identifier">key?</span>(<span class="ruby-identifier">default_spec_name</span>)
<span class="ruby-identifier">specs</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">default_spec</span>
<span class="ruby-identifier">specs_by_name</span>[<span class="ruby-identifier">default_spec_name</span>] = <span class="ruby-identifier">default_spec</span>
<span class="ruby-keyword">end</span>
<span class="ruby-identifier">replace_gem</span>(<span class="ruby-identifier">specs</span>, <span class="ruby-identifier">specs_by_name</span>)
<span class="ruby-identifier">stub_rubygems</span>(<span class="ruby-identifier">specs</span>)
<span class="ruby-identifier">replace_bin_path</span>(<span class="ruby-identifier">specs_by_name</span>)
<span class="ruby-constant">Gem</span>.<span class="ruby-identifier">clear_paths</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-replace_gem" class="method-detail ">
<div class="method-heading">
<span class="method-name">replace_gem</span><span
class="method-args">(specs, specs_by_name)</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="replace_gem-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 309</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">replace_gem</span>(<span class="ruby-identifier">specs</span>, <span class="ruby-identifier">specs_by_name</span>)
<span class="ruby-identifier">reverse_rubygems_kernel_mixin</span>
<span class="ruby-identifier">executables</span> = <span class="ruby-keyword">nil</span>
<span class="ruby-identifier">kernel</span> = (<span class="ruby-keyword">class</span> <span class="ruby-operator"><<</span> <span class="ruby-operator">::</span><span class="ruby-constant">Kernel</span>; <span class="ruby-keyword">self</span>; <span class="ruby-keyword">end</span>)
[<span class="ruby-identifier">kernel</span>, <span class="ruby-operator">::</span><span class="ruby-constant">Kernel</span>].<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">kernel_class</span><span class="ruby-operator">|</span>
<span class="ruby-identifier">redefine_method</span>(<span class="ruby-identifier">kernel_class</span>, <span class="ruby-value">:gem</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">dep</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">reqs</span><span class="ruby-operator">|</span>
<span class="ruby-keyword">if</span> <span class="ruby-identifier">executables</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">executables</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">basename</span>(<span class="ruby-identifier">caller</span>.<span class="ruby-identifier">first</span>.<span class="ruby-identifier">split</span>(<span class="ruby-string">":"</span>).<span class="ruby-identifier">first</span>))
<span class="ruby-keyword">break</span>
<span class="ruby-keyword">end</span>
<span class="ruby-identifier">reqs</span>.<span class="ruby-identifier">pop</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">reqs</span>.<span class="ruby-identifier">last</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Hash</span>)
<span class="ruby-keyword">unless</span> <span class="ruby-identifier">dep</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-value">:name</span>) <span class="ruby-operator">&&</span> <span class="ruby-identifier">dep</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-value">:requirement</span>)
<span class="ruby-identifier">dep</span> = <span class="ruby-constant">Gem</span><span class="ruby-operator">::</span><span class="ruby-constant">Dependency</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">dep</span>, <span class="ruby-identifier">reqs</span>)
<span class="ruby-keyword">end</span>
<span class="ruby-keyword">if</span> <span class="ruby-identifier">spec</span> = <span class="ruby-identifier">specs_by_name</span>[<span class="ruby-identifier">dep</span>.<span class="ruby-identifier">name</span>]
<span class="ruby-keyword">return</span> <span class="ruby-keyword">true</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">dep</span>.<span class="ruby-identifier">matches_spec?</span>(<span class="ruby-identifier">spec</span>)
<span class="ruby-keyword">end</span>
<span class="ruby-identifier">message</span> = <span class="ruby-keyword">if</span> <span class="ruby-identifier">spec</span>.<span class="ruby-identifier">nil?</span>
<span class="ruby-node">"#{dep.name} is not part of the bundle."</span> \
<span class="ruby-node">" Add it to your #{Bundler.default_gemfile.basename}."</span>
<span class="ruby-keyword">else</span>
<span class="ruby-node">"can't activate #{dep}, already activated #{spec.full_name}. "</span> \
<span class="ruby-string">"Make sure all dependencies are added to Gemfile."</span>
<span class="ruby-keyword">end</span>
<span class="ruby-identifier">e</span> = <span class="ruby-constant">Gem</span><span class="ruby-operator">::</span><span class="ruby-constant">LoadError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">message</span>)
<span class="ruby-identifier">e</span>.<span class="ruby-identifier">name</span> = <span class="ruby-identifier">dep</span>.<span class="ruby-identifier">name</span>
<span class="ruby-keyword">if</span> <span class="ruby-identifier">e</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-value">:requirement=</span>)
<span class="ruby-identifier">e</span>.<span class="ruby-identifier">requirement</span> = <span class="ruby-identifier">dep</span>.<span class="ruby-identifier">requirement</span>
<span class="ruby-keyword">elsif</span> <span class="ruby-identifier">e</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-value">:version_requirement=</span>)
<span class="ruby-identifier">e</span>.<span class="ruby-identifier">version_requirement</span> = <span class="ruby-identifier">dep</span>.<span class="ruby-identifier">requirement</span>
<span class="ruby-keyword">end</span>
<span class="ruby-identifier">raise</span> <span class="ruby-identifier">e</span>
<span class="ruby-keyword">end</span>
<span class="ruby-comment"># backwards compatibility shim, see https://github.com/bundler/bundler/issues/5102</span>
<span class="ruby-identifier">kernel_class</span>.<span class="ruby-identifier">send</span>(<span class="ruby-value">:public</span>, <span class="ruby-value">:gem</span>) <span class="ruby-keyword">if</span> <span class="ruby-constant">Bundler</span>.<span class="ruby-identifier">feature_flag</span>.<span class="ruby-identifier">setup_makes_kernel_gem_public?</span>
<span class="ruby-keyword">end</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-repository_subdirectories" class="method-detail ">
<div class="method-heading">
<span class="method-name">repository_subdirectories</span><span
class="method-args">()</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="repository_subdirectories-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 584</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">repository_subdirectories</span>
<span class="ruby-constant">Gem</span><span class="ruby-operator">::</span><span class="ruby-constant">REPOSITORY_SUBDIRECTORIES</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-reset" class="method-detail ">
<div class="method-heading">
<span class="method-name">reset</span><span
class="method-args">()</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="reset-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 190</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">reset</span>
<span class="ruby-constant">Gem</span><span class="ruby-operator">::</span><span class="ruby-constant">Specification</span>.<span class="ruby-identifier">reset</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-reverse_rubygems_kernel_mixin" class="method-detail ">
<div class="method-heading">
<span class="method-name">reverse_rubygems_kernel_mixin</span><span
class="method-args">()</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="reverse_rubygems_kernel_mixin-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 299</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">reverse_rubygems_kernel_mixin</span>
<span class="ruby-comment"># Disable rubygems' gem activation system</span>
<span class="ruby-identifier">kernel</span> = (<span class="ruby-keyword">class</span> <span class="ruby-operator"><<</span> <span class="ruby-operator">::</span><span class="ruby-constant">Kernel</span>; <span class="ruby-keyword">self</span>; <span class="ruby-keyword">end</span>)
[<span class="ruby-identifier">kernel</span>, <span class="ruby-operator">::</span><span class="ruby-constant">Kernel</span>].<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">k</span><span class="ruby-operator">|</span>
<span class="ruby-keyword">if</span> <span class="ruby-identifier">k</span>.<span class="ruby-identifier">private_method_defined?</span>(<span class="ruby-value">:gem_original_require</span>)
<span class="ruby-identifier">redefine_method</span>(<span class="ruby-identifier">k</span>, <span class="ruby-value">:require</span>, <span class="ruby-identifier">k</span>.<span class="ruby-identifier">instance_method</span>(<span class="ruby-value">:gem_original_require</span>))
<span class="ruby-keyword">end</span>
<span class="ruby-keyword">end</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-ruby_engine" class="method-detail ">
<div class="method-heading">
<span class="method-name">ruby_engine</span><span
class="method-args">()</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="ruby_engine-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 135</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">ruby_engine</span>
<span class="ruby-constant">Gem</span>.<span class="ruby-identifier">ruby_engine</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-security_policies" class="method-detail ">
<div class="method-heading">
<span class="method-name">security_policies</span><span
class="method-args">()</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="security_policies-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 290</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">security_policies</span>
<span class="ruby-ivar">@security_policies</span> <span class="ruby-operator">||=</span> <span class="ruby-keyword">begin</span>
<span class="ruby-identifier">require</span> <span class="ruby-string">"rubygems/security"</span>
<span class="ruby-constant">Gem</span><span class="ruby-operator">::</span><span class="ruby-constant">Security</span><span class="ruby-operator">::</span><span class="ruby-constant">Policies</span>
<span class="ruby-keyword">rescue</span> <span class="ruby-constant">LoadError</span>, <span class="ruby-constant">NameError</span>
{}
<span class="ruby-keyword">end</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-security_policy_keys" class="method-detail ">
<div class="method-heading">
<span class="method-name">security_policy_keys</span><span
class="method-args">()</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="security_policy_keys-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 286</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">security_policy_keys</span>
<span class="ruby-node">%w[High Medium Low AlmostNo No]</span>.<span class="ruby-identifier">map</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">level</span><span class="ruby-operator">|</span> <span class="ruby-node">"#{level}Security"</span> }
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-set_installed_by_version" class="method-detail ">
<div class="method-heading">
<span class="method-name">set_installed_by_version</span><span
class="method-args">(spec, installed_by_version = Gem::VERSION)</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="set_installed_by_version-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 79</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">set_installed_by_version</span>(<span class="ruby-identifier">spec</span>, <span class="ruby-identifier">installed_by_version</span> = <span class="ruby-constant">Gem</span><span class="ruby-operator">::</span><span class="ruby-constant">VERSION</span>)
<span class="ruby-keyword">return</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">spec</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-value">:installed_by_version=</span>)
<span class="ruby-identifier">spec</span>.<span class="ruby-identifier">installed_by_version</span> = <span class="ruby-constant">Gem</span><span class="ruby-operator">::</span><span class="ruby-constant">Version</span>.<span class="ruby-identifier">create</span>(<span class="ruby-identifier">installed_by_version</span>)
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-sources" class="method-detail ">
<div class="method-heading">
<span class="method-name">sources</span><span
class="method-args">()</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="sources-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 170</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">sources</span>
<span class="ruby-constant">Gem</span>.<span class="ruby-identifier">sources</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-sources-3D" class="method-detail ">
<div class="method-heading">
<span class="method-name">sources=</span><span
class="method-args">(val)</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="sources-3D-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 161</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">sources=</span>(<span class="ruby-identifier">val</span>)
<span class="ruby-comment"># Gem.configuration creates a new Gem::ConfigFile, which by default will read ~/.gemrc</span>
<span class="ruby-comment"># If that file exists, its settings (including sources) will overwrite the values we</span>
<span class="ruby-comment"># are about to set here. In order to avoid that, we force memoizing the config file now.</span>
<span class="ruby-identifier">configuration</span>
<span class="ruby-constant">Gem</span>.<span class="ruby-identifier">sources</span> = <span class="ruby-identifier">val</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-spec_cache_dirs" class="method-detail ">
<div class="method-heading">
<span class="method-name">spec_cache_dirs</span><span
class="method-args">()</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="spec_cache_dirs-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 206</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">spec_cache_dirs</span>
<span class="ruby-ivar">@spec_cache_dirs</span> <span class="ruby-operator">||=</span> <span class="ruby-keyword">begin</span>
<span class="ruby-identifier">dirs</span> = <span class="ruby-identifier">gem_path</span>.<span class="ruby-identifier">map</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">dir</span><span class="ruby-operator">|</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-identifier">dir</span>, <span class="ruby-string">"specifications"</span>) }
<span class="ruby-identifier">dirs</span> <span class="ruby-operator"><<</span> <span class="ruby-constant">Gem</span>.<span class="ruby-identifier">spec_cache_dir</span> <span class="ruby-keyword">if</span> <span class="ruby-constant">Gem</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-value">:spec_cache_dir</span>) <span class="ruby-comment"># Not in RubyGems 2.0.3 or earlier</span>
<span class="ruby-identifier">dirs</span>.<span class="ruby-identifier">uniq</span>.<span class="ruby-identifier">select</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">dir</span><span class="ruby-operator">|</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">directory?</span> <span class="ruby-identifier">dir</span> }
<span class="ruby-keyword">end</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-spec_default_gem-3F" class="method-detail ">
<div class="method-heading">
<span class="method-name">spec_default_gem?</span><span
class="method-args">(spec)</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="spec_default_gem-3F-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 93</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">spec_default_gem?</span>(<span class="ruby-identifier">spec</span>)
<span class="ruby-identifier">spec</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-value">:default_gem?</span>) <span class="ruby-operator">&&</span> <span class="ruby-identifier">spec</span>.<span class="ruby-identifier">default_gem?</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-spec_extension_dir" class="method-detail ">
<div class="method-heading">
<span class="method-name">spec_extension_dir</span><span
class="method-args">(spec)</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="spec_extension_dir-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 105</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">spec_extension_dir</span>(<span class="ruby-identifier">spec</span>)
<span class="ruby-keyword">return</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">spec</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-value">:extension_dir</span>)
<span class="ruby-identifier">spec</span>.<span class="ruby-identifier">extension_dir</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-spec_from_gem" class="method-detail ">
<div class="method-heading">
<span class="method-name">spec_from_gem</span><span
class="method-args">(path, policy = nil)</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="spec_from_gem-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 264</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">spec_from_gem</span>(<span class="ruby-identifier">path</span>, <span class="ruby-identifier">policy</span> = <span class="ruby-keyword">nil</span>)
<span class="ruby-identifier">require</span> <span class="ruby-string">"rubygems/security"</span>
<span class="ruby-identifier">require_relative</span> <span class="ruby-string">"psyched_yaml"</span>
<span class="ruby-identifier">gem_from_path</span>(<span class="ruby-identifier">path</span>, <span class="ruby-identifier">security_policies</span>[<span class="ruby-identifier">policy</span>]).<span class="ruby-identifier">spec</span>
<span class="ruby-keyword">rescue</span> <span class="ruby-constant">Gem</span><span class="ruby-operator">::</span><span class="ruby-constant">Package</span><span class="ruby-operator">::</span><span class="ruby-constant">FormatError</span>
<span class="ruby-identifier">raise</span> <span class="ruby-constant">GemspecError</span>, <span class="ruby-node">"Could not read gem at #{path}. It may be corrupted."</span>
<span class="ruby-keyword">rescue</span> <span class="ruby-constant">Exception</span>, <span class="ruby-constant">Gem</span><span class="ruby-operator">::</span><span class="ruby-constant">Exception</span>, <span class="ruby-constant">Gem</span><span class="ruby-operator">::</span><span class="ruby-constant">Security</span><span class="ruby-operator">::</span><span class="ruby-constant">Exception</span> <span class="ruby-operator">=></span> <span class="ruby-identifier">e</span> <span class="ruby-comment"># rubocop:disable Lint/RescueException</span>
<span class="ruby-keyword">if</span> <span class="ruby-identifier">e</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Gem</span><span class="ruby-operator">::</span><span class="ruby-constant">Security</span><span class="ruby-operator">::</span><span class="ruby-constant">Exception</span>) <span class="ruby-operator">||</span>
<span class="ruby-identifier">e</span>.<span class="ruby-identifier">message</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp">/unknown trust policy|unsigned gem/i</span> <span class="ruby-operator">||</span>
<span class="ruby-identifier">e</span>.<span class="ruby-identifier">message</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp">/couldn't verify (meta)?data signature/i</span>
<span class="ruby-identifier">raise</span> <span class="ruby-constant">SecurityError</span>,
<span class="ruby-node">"The gem #{File.basename(path, ".gem")} can't be installed because "</span> \
<span class="ruby-node">"the security policy didn't allow it, with the message: #{e.message}"</span>
<span class="ruby-keyword">else</span>
<span class="ruby-identifier">raise</span> <span class="ruby-identifier">e</span>
<span class="ruby-keyword">end</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-spec_matches_for_glob" class="method-detail ">
<div class="method-heading">
<span class="method-name">spec_matches_for_glob</span><span
class="method-args">(spec, glob)</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="spec_matches_for_glob-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 97</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">spec_matches_for_glob</span>(<span class="ruby-identifier">spec</span>, <span class="ruby-identifier">glob</span>)
<span class="ruby-keyword">return</span> <span class="ruby-identifier">spec</span>.<span class="ruby-identifier">matches_for_glob</span>(<span class="ruby-identifier">glob</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">spec</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-value">:matches_for_glob</span>)
<span class="ruby-identifier">spec</span>.<span class="ruby-identifier">load_paths</span>.<span class="ruby-identifier">map</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">lp</span><span class="ruby-operator">|</span>
<span class="ruby-constant">Dir</span>[<span class="ruby-node">"#{lp}/#{glob}#{suffix_pattern}"</span>]
<span class="ruby-keyword">end</span>.<span class="ruby-identifier">flatten</span>(<span class="ruby-value">1</span>)
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-spec_missing_extensions-3F" class="method-detail ">
<div class="method-heading">
<span class="method-name">spec_missing_extensions?</span><span
class="method-args">(spec, default = true)</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="spec_missing_extensions-3F-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 84</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">spec_missing_extensions?</span>(<span class="ruby-identifier">spec</span>, <span class="ruby-identifier">default</span> = <span class="ruby-keyword">true</span>)
<span class="ruby-keyword">return</span> <span class="ruby-identifier">spec</span>.<span class="ruby-identifier">missing_extensions?</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">spec</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-value">:missing_extensions?</span>)
<span class="ruby-keyword">return</span> <span class="ruby-keyword">false</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">spec_default_gem?</span>(<span class="ruby-identifier">spec</span>)
<span class="ruby-keyword">return</span> <span class="ruby-keyword">false</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">spec</span>.<span class="ruby-identifier">extensions</span>.<span class="ruby-identifier">empty?</span>
<span class="ruby-identifier">default</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-stub_rubygems" class="method-detail ">
<div class="method-heading">
<span class="method-name">stub_rubygems</span><span
class="method-args">(specs)</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="stub_rubygems-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 518</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">stub_rubygems</span>(<span class="ruby-identifier">specs</span>)
<span class="ruby-constant">Gem</span><span class="ruby-operator">::</span><span class="ruby-constant">Specification</span>.<span class="ruby-identifier">all</span> = <span class="ruby-identifier">specs</span>
<span class="ruby-constant">Gem</span>.<span class="ruby-identifier">post_reset</span> <span class="ruby-keyword">do</span>
<span class="ruby-constant">Gem</span><span class="ruby-operator">::</span><span class="ruby-constant">Specification</span>.<span class="ruby-identifier">all</span> = <span class="ruby-identifier">specs</span>
<span class="ruby-keyword">end</span>
<span class="ruby-identifier">redefine_method</span>((<span class="ruby-keyword">class</span> <span class="ruby-operator"><<</span> <span class="ruby-constant">Gem</span>; <span class="ruby-keyword">self</span>; <span class="ruby-keyword">end</span>), <span class="ruby-value">:finish_resolve</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-operator">*</span><span class="ruby-operator">|</span>
[]
<span class="ruby-keyword">end</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-stub_set_spec" class="method-detail ">
<div class="method-heading">
<span class="method-name">stub_set_spec</span><span
class="method-args">(stub, spec)</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="stub_set_spec-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 110</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">stub_set_spec</span>(<span class="ruby-identifier">stub</span>, <span class="ruby-identifier">spec</span>)
<span class="ruby-identifier">stub</span>.<span class="ruby-identifier">instance_variable_set</span>(<span class="ruby-value">:@spec</span>, <span class="ruby-identifier">spec</span>)
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-suffix_pattern" class="method-detail ">
<div class="method-heading">
<span class="method-name">suffix_pattern</span><span
class="method-args">()</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="suffix_pattern-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 198</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">suffix_pattern</span>
<span class="ruby-constant">Gem</span>.<span class="ruby-identifier">suffix_pattern</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-ui-3D" class="method-detail ">
<div class="method-heading">
<span class="method-name">ui=</span><span
class="method-args">(obj)</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="ui-3D-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 244</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">ui=</span>(<span class="ruby-identifier">obj</span>)
<span class="ruby-constant">Gem</span><span class="ruby-operator">::</span><span class="ruby-constant">DefaultUserInteraction</span>.<span class="ruby-identifier">ui</span> = <span class="ruby-identifier">obj</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-undo_replacements" class="method-detail ">
<div class="method-heading">
<span class="method-name">undo_replacements</span><span
class="method-args">()</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="undo_replacements-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 475</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">undo_replacements</span>
<span class="ruby-ivar">@replaced_methods</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span>(<span class="ruby-identifier">sym</span>, <span class="ruby-identifier">klass</span>), <span class="ruby-identifier">method</span><span class="ruby-operator">|</span>
<span class="ruby-identifier">redefine_method</span>(<span class="ruby-identifier">klass</span>, <span class="ruby-identifier">sym</span>, <span class="ruby-identifier">method</span>)
<span class="ruby-keyword">end</span>
<span class="ruby-keyword">if</span> <span class="ruby-constant">Binding</span>.<span class="ruby-identifier">public_method_defined?</span>(<span class="ruby-value">:source_location</span>)
<span class="ruby-identifier">post_reset_hooks</span>.<span class="ruby-identifier">reject!</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">proc</span><span class="ruby-operator">|</span> <span class="ruby-identifier">proc</span>.<span class="ruby-identifier">binding</span>.<span class="ruby-identifier">source_location</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">==</span> <span class="ruby-keyword">__FILE__</span> }
<span class="ruby-keyword">else</span>
<span class="ruby-identifier">post_reset_hooks</span>.<span class="ruby-identifier">reject!</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">proc</span><span class="ruby-operator">|</span> <span class="ruby-identifier">proc</span>.<span class="ruby-identifier">binding</span>.<span class="ruby-identifier">eval</span>(<span class="ruby-string">"__FILE__"</span>) <span class="ruby-operator">==</span> <span class="ruby-keyword">__FILE__</span> }
<span class="ruby-keyword">end</span>
<span class="ruby-ivar">@replaced_methods</span>.<span class="ruby-identifier">clear</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-use_gemdeps" class="method-detail ">
<div class="method-heading">
<span class="method-name">use_gemdeps</span><span
class="method-args">(gemfile)</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="use_gemdeps-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 636</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">use_gemdeps</span>(<span class="ruby-identifier">gemfile</span>)
<span class="ruby-constant">ENV</span>[<span class="ruby-string">"BUNDLE_GEMFILE"</span>] <span class="ruby-operator">||=</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">expand_path</span>(<span class="ruby-identifier">gemfile</span>)
<span class="ruby-identifier">require_relative</span> <span class="ruby-string">"gemdeps"</span>
<span class="ruby-identifier">runtime</span> = <span class="ruby-constant">Bundler</span>.<span class="ruby-identifier">setup</span>
<span class="ruby-identifier">activated_spec_names</span> = <span class="ruby-identifier">runtime</span>.<span class="ruby-identifier">requested_specs</span>.<span class="ruby-identifier">map</span>(<span class="ruby-operator">&</span><span class="ruby-value">:to_spec</span>).<span class="ruby-identifier">sort_by</span>(<span class="ruby-operator">&</span><span class="ruby-value">:name</span>)
[<span class="ruby-constant">Gemdeps</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">runtime</span>), <span class="ruby-identifier">activated_spec_names</span>]
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-user_home" class="method-detail ">
<div class="method-heading">
<span class="method-name">user_home</span><span
class="method-args">()</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="user_home-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 182</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">user_home</span>
<span class="ruby-constant">Gem</span>.<span class="ruby-identifier">user_home</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-validate" class="method-detail ">
<div class="method-heading">
<span class="method-name">validate</span><span
class="method-args">(spec)</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="validate-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 69</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">validate</span>(<span class="ruby-identifier">spec</span>)
<span class="ruby-constant">Bundler</span>.<span class="ruby-identifier">ui</span>.<span class="ruby-identifier">silence</span> { <span class="ruby-identifier">spec</span>.<span class="ruby-identifier">validate</span>(<span class="ruby-keyword">false</span>) }
<span class="ruby-keyword">rescue</span> <span class="ruby-constant">Gem</span><span class="ruby-operator">::</span><span class="ruby-constant">InvalidSpecificationException</span> <span class="ruby-operator">=></span> <span class="ruby-identifier">e</span>
<span class="ruby-identifier">error_message</span> = <span class="ruby-node">"The gemspec at #{spec.loaded_from} is not valid. Please fix this gemspec.\n"</span> \
<span class="ruby-node">"The validation error was '#{e.message}'\n"</span>
<span class="ruby-identifier">raise</span> <span class="ruby-constant">Gem</span><span class="ruby-operator">::</span><span class="ruby-constant">InvalidSpecificationException</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">error_message</span>)
<span class="ruby-keyword">rescue</span> <span class="ruby-constant">Errno</span><span class="ruby-operator">::</span><span class="ruby-constant">ENOENT</span>
<span class="ruby-keyword">nil</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-version" class="method-detail ">
<div class="method-heading">
<span class="method-name">version</span><span
class="method-args">()</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="version-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 28</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">version</span>
<span class="ruby-keyword">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">version</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-with_build_args" class="method-detail ">
<div class="method-heading">
<span class="method-name">with_build_args</span><span
class="method-args">(args) { || ... }</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="with_build_args-source">
<pre><span class="ruby-comment"># File lib/bundler/rubygems_integration.rb, line 252</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">with_build_args</span>(<span class="ruby-identifier">args</span>)
<span class="ruby-identifier">ext_lock</span>.<span class="ruby-identifier">synchronize</span> <span class="ruby-keyword">do</span>
<span class="ruby-identifier">old_args</span> = <span class="ruby-identifier">build_args</span>
<span class="ruby-keyword">begin</span>
<span class="ruby-keyword">self</span>.<span class="ruby-identifier">build_args</span> = <span class="ruby-identifier">args</span>
<span class="ruby-keyword">yield</span>
<span class="ruby-keyword">ensure</span>
<span class="ruby-keyword">self</span>.<span class="ruby-identifier">build_args</span> = <span class="ruby-identifier">old_args</span>
<span class="ruby-keyword">end</span>
<span class="ruby-keyword">end</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
</section>
</section>
</main>
<footer id="validator-badges" role="contentinfo">
<p><a href="https://validator.w3.org/check/referer">Validate</a>
<p>Generated by <a href="https://ruby.github.io/rdoc/">RDoc</a> 6.2.1.1.
<p>Based on <a href="http://deveiate.org/projects/Darkfish-RDoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
</footer>