instiki/vendor/plugins/bundler/doc/bundler-1.0.15/rdoc/Bundler/SpecSet.html
Jacques Distler 9e909d5be3 Update Rails, rails_xss and Bundler
Update Bundler to 1.0.15.
Update Rails to 2.3.12.
Update rails_xss plugin.

The latter two were the
source of a considerable
amount of grief, as rails_xss
is now MUCH stricter about what
string methods can be used.

Also made it possible to use
rake 0.9.x with Instiki. But
you probably REALLY want to use

 ruby bundle exec rake ...

instead of just saying

 rake ....
2011-06-15 00:43:38 -05:00

976 lines
39 KiB
HTML

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>Class: Bundler::SpecSet</title>
<link rel="stylesheet" href="../rdoc.css" type="text/css" media="screen" />
<script src="../js/jquery.js" type="text/javascript"
charset="utf-8"></script>
<script src="../js/thickbox-compressed.js" type="text/javascript"
charset="utf-8"></script>
<script src="../js/quicksearch.js" type="text/javascript"
charset="utf-8"></script>
<script src="../js/darkfish.js" type="text/javascript"
charset="utf-8"></script>
</head>
<body class="class">
<div id="metadata">
<div id="home-metadata">
<div id="home-section" class="section">
<h3 class="section-header">
<a href="../index.html">Home</a>
<a href="../index.html#classes">Classes</a>
<a href="../index.html#methods">Methods</a>
</h3>
</div>
</div>
<div id="file-metadata">
<div id="file-list-section" class="section">
<h3 class="section-header">In Files</h3>
<div class="section-body">
<ul>
<li><a href="../lib/bundler/spec_set_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
class="thickbox" title="lib/bundler/spec_set.rb">lib/bundler/spec_set.rb</a></li>
</ul>
</div>
</div>
</div>
<div id="class-metadata">
<!-- Parent Class -->
<div id="parent-class-section" class="section">
<h3 class="section-header">Parent</h3>
<p class="link">Object</p>
</div>
<!-- Namespace Contents -->
<!-- Method Quickref -->
<div id="method-list-section" class="section">
<h3 class="section-header">Methods</h3>
<ul class="link-list">
<li><a href="#method-c-new">::new</a></li>
<li><a href="#method-i-%5B%5D">#[]</a></li>
<li><a href="#method-i-%5B%5D%3D">#[]=</a></li>
<li><a href="#method-i-each">#each</a></li>
<li><a href="#method-i-for">#for</a></li>
<li><a href="#method-i-length">#length</a></li>
<li><a href="#method-i-lookup">#lookup</a></li>
<li><a href="#method-i-materialize">#materialize</a></li>
<li><a href="#method-i-merge">#merge</a></li>
<li><a href="#method-i-sorted">#sorted</a></li>
<li><a href="#method-i-to_a">#to_a</a></li>
<li><a href="#method-i-to_hash">#to_hash</a></li>
<li><a href="#method-i-tsort_each_child">#tsort_each_child</a></li>
<li><a href="#method-i-tsort_each_node">#tsort_each_node</a></li>
<li><a href="#method-i-valid_for%3F">#valid_for?</a></li>
</ul>
</div>
<!-- Included Modules -->
<div id="includes-section" class="section">
<h3 class="section-header">Included Modules</h3>
<ul class="link-list">
<li><span class="include">TSort</span></li>
<li><span class="include">Enumerable</span></li>
</ul>
</div>
</div>
<div id="project-metadata">
<div id="fileindex-section" class="section project-section">
<h3 class="section-header">Files</h3>
<ul>
<li class="file"><a href="../lib/bundler/man/bundle.html">bundle</a></li>
<li class="file"><a href="../lib/bundler/man/bundle-benchmark.html">bundle-benchmark</a></li>
<li class="file"><a href="../lib/bundler/man/bundle-benchmark_txt.html">bundle-benchmark.txt</a></li>
<li class="file"><a href="../lib/bundler/man/bundle-config.html">bundle-config</a></li>
<li class="file"><a href="../lib/bundler/man/bundle-config_txt.html">bundle-config.txt</a></li>
<li class="file"><a href="../lib/bundler/man/bundle-exec.html">bundle-exec</a></li>
<li class="file"><a href="../lib/bundler/man/bundle-exec_txt.html">bundle-exec.txt</a></li>
<li class="file"><a href="../lib/bundler/man/bundle-install.html">bundle-install</a></li>
<li class="file"><a href="../lib/bundler/man/bundle-install_txt.html">bundle-install.txt</a></li>
<li class="file"><a href="../lib/bundler/man/bundle-package.html">bundle-package</a></li>
<li class="file"><a href="../lib/bundler/man/bundle-package_txt.html">bundle-package.txt</a></li>
<li class="file"><a href="../lib/bundler/man/bundle-update.html">bundle-update</a></li>
<li class="file"><a href="../lib/bundler/man/bundle-update_txt.html">bundle-update.txt</a></li>
<li class="file"><a href="../lib/bundler/man/bundle_txt.html">bundle.txt</a></li>
<li class="file"><a href="../lib/bundler/man/gemfile_5_txt.html">gemfile.5.txt</a></li>
<li class="file"><a href="../lib/bundler/templates/Gemfile.html">Gemfile</a></li>
</ul>
</div>
<div id="classindex-section" class="section project-section">
<h3 class="section-header">Class Index
<span class="search-toggle"><img src="../images/find.png"
height="16" width="16" alt="[+]"
title="show/hide quicksearch" /></span></h3>
<form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
<fieldset>
<legend>Quicksearch</legend>
<input type="text" name="quicksearch" value=""
class="quicksearch-field" />
</fieldset>
</form>
<ul class="link-list">
<li><a href="../Bundler.html">Bundler</a></li>
<li><a href="../Bundler/BundlerError.html">Bundler::BundlerError</a></li>
<li><a href="../Bundler/CLI.html">Bundler::CLI</a></li>
<li><a href="../Bundler/Definition.html">Bundler::Definition</a></li>
<li><a href="../Bundler/DepProxy.html">Bundler::DepProxy</a></li>
<li><a href="../Bundler/Dependency.html">Bundler::Dependency</a></li>
<li><a href="../Bundler/Deployment.html">Bundler::Deployment</a></li>
<li><a href="../Bundler/DeprecatedError.html">Bundler::DeprecatedError</a></li>
<li><a href="../Bundler/Dsl.html">Bundler::Dsl</a></li>
<li><a href="../Bundler/DslError.html">Bundler::DslError</a></li>
<li><a href="../Bundler/Environment.html">Bundler::Environment</a></li>
<li><a href="../Bundler/GemHelper.html">Bundler::GemHelper</a></li>
<li><a href="../Bundler/GemHelpers.html">Bundler::GemHelpers</a></li>
<li><a href="../Bundler/GemNotFound.html">Bundler::GemNotFound</a></li>
<li><a href="../Bundler/GemfileError.html">Bundler::GemfileError</a></li>
<li><a href="../Bundler/GemfileNotFound.html">Bundler::GemfileNotFound</a></li>
<li><a href="../Bundler/GemspecError.html">Bundler::GemspecError</a></li>
<li><a href="../Bundler/GitError.html">Bundler::GitError</a></li>
<li><a href="../Bundler/Graph.html">Bundler::Graph</a></li>
<li><a href="../Bundler/GraphNode.html">Bundler::GraphNode</a></li>
<li><a href="../Bundler/Index.html">Bundler::Index</a></li>
<li><a href="../Bundler/Installer.html">Bundler::Installer</a></li>
<li><a href="../Bundler/InvalidOption.html">Bundler::InvalidOption</a></li>
<li><a href="../Bundler/InvalidSpecSet.html">Bundler::InvalidSpecSet</a></li>
<li><a href="../Bundler/LazySpecification.html">Bundler::LazySpecification</a></li>
<li><a href="../Bundler/LockfileParser.html">Bundler::LockfileParser</a></li>
<li><a href="../Bundler/MatchPlatform.html">Bundler::MatchPlatform</a></li>
<li><a href="../Bundler/PathError.html">Bundler::PathError</a></li>
<li><a href="../Bundler/ProductionError.html">Bundler::ProductionError</a></li>
<li><a href="../Bundler/RemoteSpecification.html">Bundler::RemoteSpecification</a></li>
<li><a href="../Bundler/Resolver.html">Bundler::Resolver</a></li>
<li><a href="../Bundler/Resolver/SpecGroup.html">Bundler::Resolver::SpecGroup</a></li>
<li><a href="../Bundler/RubygemsIntegration.html">Bundler::RubygemsIntegration</a></li>
<li><a href="../Bundler/RubygemsIntegration/AlmostModern.html">Bundler::RubygemsIntegration::AlmostModern</a></li>
<li><a href="../Bundler/RubygemsIntegration/Deprecate.html">Bundler::RubygemsIntegration::Deprecate</a></li>
<li><a href="../Bundler/RubygemsIntegration/Gem.html">Bundler::RubygemsIntegration::Gem</a></li>
<li><a href="../Bundler/RubygemsIntegration/Gem/SourceIndex.html">Bundler::RubygemsIntegration::Gem::SourceIndex</a></li>
<li><a href="../Bundler/RubygemsIntegration/Legacy.html">Bundler::RubygemsIntegration::Legacy</a></li>
<li><a href="../Bundler/RubygemsIntegration/Modern.html">Bundler::RubygemsIntegration::Modern</a></li>
<li><a href="../Bundler/RubygemsIntegration/Transitional.html">Bundler::RubygemsIntegration::Transitional</a></li>
<li><a href="../Bundler/Runtime.html">Bundler::Runtime</a></li>
<li><a href="../Bundler/Settings.html">Bundler::Settings</a></li>
<li><a href="../Bundler/SharedHelpers.html">Bundler::SharedHelpers</a></li>
<li><a href="../Bundler/Source.html">Bundler::Source</a></li>
<li><a href="../Bundler/Source/Git.html">Bundler::Source::Git</a></li>
<li><a href="../Bundler/Source/Path.html">Bundler::Source::Path</a></li>
<li><a href="../Bundler/Source/Path/Installer.html">Bundler::Source::Path::Installer</a></li>
<li><a href="../Bundler/Source/Rubygems.html">Bundler::Source::Rubygems</a></li>
<li><a href="../Bundler/SpecSet.html">Bundler::SpecSet</a></li>
<li><a href="../Bundler/UI.html">Bundler::UI</a></li>
<li><a href="../Bundler/UI/RGProxy.html">Bundler::UI::RGProxy</a></li>
<li><a href="../Bundler/UI/Shell.html">Bundler::UI::Shell</a></li>
<li><a href="../Bundler/VersionConflict.html">Bundler::VersionConflict</a></li>
<li><a href="../Thor.html">Thor</a></li>
<li><a href="../Thor/Actions.html">Thor::Actions</a></li>
<li><a href="../Thor/Actions/ClassMethods.html">Thor::Actions::ClassMethods</a></li>
<li><a href="../Thor/Base.html">Thor::Base</a></li>
<li><a href="../Thor/Base/ClassMethods.html">Thor::Base::ClassMethods</a></li>
<li><a href="../Thor/DynamicTask.html">Thor::DynamicTask</a></li>
<li><a href="../Thor/Error.html">Thor::Error</a></li>
<li><a href="../Thor/HiddenTask.html">Thor::HiddenTask</a></li>
<li><a href="../Thor/Invocation.html">Thor::Invocation</a></li>
<li><a href="../Thor/Invocation/ClassMethods.html">Thor::Invocation::ClassMethods</a></li>
<li><a href="../Thor/InvocationError.html">Thor::InvocationError</a></li>
<li><a href="../Thor/MalformattedArgumentError.html">Thor::MalformattedArgumentError</a></li>
<li><a href="../Thor/RequiredArgumentMissingError.html">Thor::RequiredArgumentMissingError</a></li>
<li><a href="../Thor/Shell.html">Thor::Shell</a></li>
<li><a href="../Thor/Shell/Basic.html">Thor::Shell::Basic</a></li>
<li><a href="../Thor/Shell/Color.html">Thor::Shell::Color</a></li>
<li><a href="../Thor/Shell/HTML.html">Thor::Shell::HTML</a></li>
<li><a href="../Thor/Task.html">Thor::Task</a></li>
<li><a href="../Thor/UndefinedTaskError.html">Thor::UndefinedTaskError</a></li>
<li><a href="../Thor/UnknownArgumentError.html">Thor::UnknownArgumentError</a></li>
<li><a href="../Thor/Util.html">Thor::Util</a></li>
<li><a href="../Gem.html">Gem</a></li>
<li><a href="../Gem/Dependency.html">Gem::Dependency</a></li>
<li><a href="../Gem/Platform.html">Gem::Platform</a></li>
<li><a href="../Gem/Requirement.html">Gem::Requirement</a></li>
<li><a href="../Gem/Specification.html">Gem::Specification</a></li>
</ul>
<div id="no-class-search-results" style="display: none;">No matching classes.</div>
</div>
</div>
</div>
<div id="documentation">
<h1 class="class">Bundler::SpecSet</h1>
<div id="description">
</div>
<!-- Constants -->
<!-- Attributes -->
<!-- Methods -->
<div id="public-class-method-details" class="method-section section">
<h3 class="section-header">Public Class Methods</h3>
<div id="new-method" class="method-detail ">
<a name="method-c-new"></a>
<div class="method-heading">
<span class="method-name">new</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="new-source">
<pre>
<span class="ruby-comment cmt"># File lib/bundler/spec_set.rb, line 7</span>
7: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">specs</span>)
8: <span class="ruby-ivar">@specs</span> = <span class="ruby-identifier">specs</span>.<span class="ruby-identifier">sort_by</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">name</span> }
9: <span class="ruby-keyword kw">end</span></pre>
</div>
</div>
</div>
</div>
<div id="public-instance-method-details" class="method-section section">
<h3 class="section-header">Public Instance Methods</h3>
<div id="--method" class="method-detail ">
<a name="method-i-%5B%5D"></a>
<div class="method-heading">
<span class="method-name">[]</span><span
class="method-args">(key)</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code"
id="--source">
<pre>
<span class="ruby-comment cmt"># File lib/bundler/spec_set.rb, line 59</span>
59: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">[]</span>(<span class="ruby-identifier">key</span>)
60: <span class="ruby-identifier">key</span> = <span class="ruby-identifier">key</span>.<span class="ruby-identifier">name</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">key</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-value">:name</span>)
61: <span class="ruby-identifier">lookup</span>[<span class="ruby-identifier">key</span>].<span class="ruby-identifier">reverse</span>
62: <span class="ruby-keyword kw">end</span></pre>
</div>
</div>
</div>
<div id="--method" class="method-detail ">
<a name="method-i-%5B%5D%3D"></a>
<div class="method-heading">
<span class="method-name">[]=</span><span
class="method-args">(key, value)</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code"
id="--source">
<pre>
<span class="ruby-comment cmt"># File lib/bundler/spec_set.rb, line 64</span>
64: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">[]=</span>(<span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span>)
65: <span class="ruby-ivar">@specs</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">value</span>
66: <span class="ruby-ivar">@lookup</span> = <span class="ruby-keyword kw">nil</span>
67: <span class="ruby-ivar">@sorted</span> = <span class="ruby-keyword kw">nil</span>
68: <span class="ruby-identifier">value</span>
69: <span class="ruby-keyword kw">end</span></pre>
</div>
</div>
</div>
<div id="each-method" class="method-detail ">
<a name="method-i-each"></a>
<div class="method-heading">
<span class="method-name">each</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="each-source">
<pre>
<span class="ruby-comment cmt"># File lib/bundler/spec_set.rb, line 11</span>
11: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">each</span>
12: <span class="ruby-identifier">sorted</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">s</span><span class="ruby-operator">|</span> <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">s</span> }
13: <span class="ruby-keyword kw">end</span></pre>
</div>
</div>
</div>
<div id="for-method" class="method-detail ">
<a name="method-i-for"></a>
<div class="method-heading">
<span class="method-name">for</span><span
class="method-args">(dependencies, skip = [], check = false, match_current_platform = false)</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code"
id="for-source">
<pre>
<span class="ruby-comment cmt"># File lib/bundler/spec_set.rb, line 19</span>
19: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">for</span>(<span class="ruby-identifier">dependencies</span>, <span class="ruby-identifier">skip</span> = [], <span class="ruby-identifier">check</span> = <span class="ruby-keyword kw">false</span>, <span class="ruby-identifier">match_current_platform</span> = <span class="ruby-keyword kw">false</span>)
20: <span class="ruby-identifier">handled</span>, <span class="ruby-identifier">deps</span>, <span class="ruby-identifier">specs</span> = {}, <span class="ruby-identifier">dependencies</span>.<span class="ruby-identifier">dup</span>, []
21: <span class="ruby-identifier">skip</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">'bundler'</span>
22:
23: <span class="ruby-keyword kw">until</span> <span class="ruby-identifier">deps</span>.<span class="ruby-identifier">empty?</span>
24: <span class="ruby-identifier">dep</span> = <span class="ruby-identifier">deps</span>.<span class="ruby-identifier">shift</span>
25: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">handled</span>[<span class="ruby-identifier">dep</span>] <span class="ruby-operator">||</span> <span class="ruby-identifier">skip</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">dep</span>.<span class="ruby-identifier">name</span>)
26:
27: <span class="ruby-identifier">spec</span> = <span class="ruby-identifier">lookup</span>[<span class="ruby-identifier">dep</span>.<span class="ruby-identifier">name</span>].<span class="ruby-identifier">find</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">s</span><span class="ruby-operator">|</span>
28: <span class="ruby-identifier">match_current_platform</span> <span class="ruby-operator">?</span>
29: <span class="ruby-constant">Gem</span><span class="ruby-operator">::</span><span class="ruby-constant">Platform</span>.<span class="ruby-identifier">match</span>(<span class="ruby-identifier">s</span>.<span class="ruby-identifier">platform</span>) <span class="ruby-operator">:</span>
30: <span class="ruby-identifier">s</span>.<span class="ruby-identifier">match_platform</span>(<span class="ruby-identifier">dep</span>.<span class="ruby-identifier">__platform</span>)
31: <span class="ruby-keyword kw">end</span>
32:
33: <span class="ruby-identifier">handled</span>[<span class="ruby-identifier">dep</span>] = <span class="ruby-keyword kw">true</span>
34:
35: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">spec</span>
36: <span class="ruby-identifier">specs</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">spec</span>
37:
38: <span class="ruby-identifier">spec</span>.<span class="ruby-identifier">dependencies</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">d</span><span class="ruby-operator">|</span>
39: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">d</span>.<span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value">:development</span>
40: <span class="ruby-identifier">d</span> = <span class="ruby-constant">DepProxy</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">d</span>, <span class="ruby-identifier">dep</span>.<span class="ruby-identifier">__platform</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">match_current_platform</span>
41: <span class="ruby-identifier">deps</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">d</span>
42: <span class="ruby-keyword kw">end</span>
43: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">check</span>
44: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
45: <span class="ruby-keyword kw">end</span>
46: <span class="ruby-keyword kw">end</span>
47:
48: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">spec</span> = <span class="ruby-identifier">lookup</span>[<span class="ruby-value str">'bundler'</span>].<span class="ruby-identifier">first</span>
49: <span class="ruby-identifier">specs</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">spec</span>
50: <span class="ruby-keyword kw">end</span>
51:
52: <span class="ruby-identifier">check</span> <span class="ruby-operator">?</span> <span class="ruby-keyword kw">true</span> <span class="ruby-operator">:</span> <span class="ruby-constant">SpecSet</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">specs</span>)
53: <span class="ruby-keyword kw">end</span></pre>
</div>
</div>
</div>
<div id="length-method" class="method-detail ">
<a name="method-i-length"></a>
<div class="method-heading">
<span class="method-name">length</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="length-source">
<pre>
<span class="ruby-comment cmt"># File lib/bundler/spec_set.rb, line 15</span>
15: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">length</span>
16: <span class="ruby-ivar">@specs</span>.<span class="ruby-identifier">length</span>
17: <span class="ruby-keyword kw">end</span></pre>
</div>
</div>
</div>
<div id="materialize-method" class="method-detail ">
<a name="method-i-materialize"></a>
<div class="method-heading">
<span class="method-name">materialize</span><span
class="method-args">(deps, missing_specs = nil)</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code"
id="materialize-source">
<pre>
<span class="ruby-comment cmt"># File lib/bundler/spec_set.rb, line 79</span>
79: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">materialize</span>(<span class="ruby-identifier">deps</span>, <span class="ruby-identifier">missing_specs</span> = <span class="ruby-keyword kw">nil</span>)
80: <span class="ruby-identifier">materialized</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">for</span>(<span class="ruby-identifier">deps</span>, [], <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>).<span class="ruby-identifier">to_a</span>
81: <span class="ruby-identifier">materialized</span>.<span class="ruby-identifier">map!</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">s</span><span class="ruby-operator">|</span>
82: <span class="ruby-keyword kw">next</span> <span class="ruby-identifier">s</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">s</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">LazySpecification</span>)
83: <span class="ruby-identifier">spec</span> = <span class="ruby-identifier">s</span>.<span class="ruby-identifier">__materialize__</span>
84: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">missing_specs</span>
85: <span class="ruby-identifier">missing_specs</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">s</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">spec</span>
86: <span class="ruby-keyword kw">else</span>
87: <span class="ruby-identifier">raise</span> <span class="ruby-constant">GemNotFound</span>, <span class="ruby-node">&quot;Could not find #{s.full_name} in any of the sources&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">spec</span>
88: <span class="ruby-keyword kw">end</span>
89: <span class="ruby-identifier">spec</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">spec</span>
90: <span class="ruby-keyword kw">end</span>
91: <span class="ruby-constant">SpecSet</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">materialized</span>.<span class="ruby-identifier">compact</span>)
92: <span class="ruby-keyword kw">end</span></pre>
</div>
</div>
</div>
<div id="merge-method" class="method-detail ">
<a name="method-i-merge"></a>
<div class="method-heading">
<span class="method-name">merge</span><span
class="method-args">(set)</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code"
id="merge-source">
<pre>
<span class="ruby-comment cmt"># File lib/bundler/spec_set.rb, line 94</span>
94: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">merge</span>(<span class="ruby-identifier">set</span>)
95: <span class="ruby-identifier">arr</span> = <span class="ruby-identifier">sorted</span>.<span class="ruby-identifier">dup</span>
96: <span class="ruby-identifier">set</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">s</span><span class="ruby-operator">|</span>
97: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">arr</span>.<span class="ruby-identifier">any?</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">s2</span><span class="ruby-operator">|</span> <span class="ruby-identifier">s2</span>.<span class="ruby-identifier">name</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">s</span>.<span class="ruby-identifier">name</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">s2</span>.<span class="ruby-identifier">version</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">s</span>.<span class="ruby-identifier">version</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">s2</span>.<span class="ruby-identifier">platform</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">s</span>.<span class="ruby-identifier">platform</span> }
98: <span class="ruby-identifier">arr</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">s</span>
99: <span class="ruby-keyword kw">end</span>
100: <span class="ruby-constant">SpecSet</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">arr</span>)
101: <span class="ruby-keyword kw">end</span></pre>
</div>
</div>
</div>
<div id="to-a-method" class="method-detail ">
<a name="method-i-to_a"></a>
<div class="method-heading">
<span class="method-name">to_a</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="to-a-source">
<pre>
<span class="ruby-comment cmt"># File lib/bundler/spec_set.rb, line 71</span>
71: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_a</span>
72: <span class="ruby-identifier">sorted</span>.<span class="ruby-identifier">dup</span>
73: <span class="ruby-keyword kw">end</span></pre>
</div>
</div>
</div>
<div id="to-hash-method" class="method-detail ">
<a name="method-i-to_hash"></a>
<div class="method-heading">
<span class="method-name">to_hash</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="to-hash-source">
<pre>
<span class="ruby-comment cmt"># File lib/bundler/spec_set.rb, line 75</span>
75: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_hash</span>
76: <span class="ruby-identifier">lookup</span>.<span class="ruby-identifier">dup</span>
77: <span class="ruby-keyword kw">end</span></pre>
</div>
</div>
</div>
<div id="valid-for--method" class="method-detail ">
<a name="method-i-valid_for%3F"></a>
<div class="method-heading">
<span class="method-name">valid_for?</span><span
class="method-args">(deps)</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code"
id="valid-for--source">
<pre>
<span class="ruby-comment cmt"># File lib/bundler/spec_set.rb, line 55</span>
55: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">valid_for?</span>(<span class="ruby-identifier">deps</span>)
56: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">for</span>(<span class="ruby-identifier">deps</span>, [], <span class="ruby-keyword kw">true</span>)
57: <span class="ruby-keyword kw">end</span></pre>
</div>
</div>
</div>
</div>
<div id="private-instance-method-details" class="method-section section">
<h3 class="section-header">Private Instance Methods</h3>
<div id="lookup-method" class="method-detail ">
<a name="method-i-lookup"></a>
<div class="method-heading">
<span class="method-name">lookup</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="lookup-source">
<pre>
<span class="ruby-comment cmt"># File lib/bundler/spec_set.rb, line 110</span>
110: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">lookup</span>
111: <span class="ruby-ivar">@lookup</span> <span class="ruby-operator">||=</span> <span class="ruby-keyword kw">begin</span>
112: <span class="ruby-identifier">lookup</span> = <span class="ruby-constant">Hash</span>.<span class="ruby-identifier">new</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">h</span>,<span class="ruby-identifier">k</span><span class="ruby-operator">|</span> <span class="ruby-identifier">h</span>[<span class="ruby-identifier">k</span>] = [] }
113: <span class="ruby-identifier">specs</span> = <span class="ruby-ivar">@specs</span>.<span class="ruby-identifier">sort_by</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">s</span><span class="ruby-operator">|</span>
114: <span class="ruby-identifier">s</span>.<span class="ruby-identifier">platform</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'ruby'</span> <span class="ruby-operator">?</span> <span class="ruby-value str">&quot;\00&quot;&quot;</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">s</span>.<span class="ruby-identifier">platform</span>.<span class="ruby-identifier">to_s</span>
115: <span class="ruby-keyword kw">end</span>
116: <span class="ruby-identifier">specs</span>.<span class="ruby-identifier">reverse_each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">s</span><span class="ruby-operator">|</span>
117: <span class="ruby-identifier">lookup</span>[<span class="ruby-identifier">s</span>.<span class="ruby-identifier">name</span>] <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">s</span>
118: <span class="ruby-keyword kw">end</span>
119: <span class="ruby-identifier">lookup</span>
120: <span class="ruby-keyword kw">end</span>
121: <span class="ruby-keyword kw">end</span></pre>
</div>
</div>
</div>
<div id="sorted-method" class="method-detail ">
<a name="method-i-sorted"></a>
<div class="method-heading">
<span class="method-name">sorted</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="sorted-source">
<pre>
<span class="ruby-comment cmt"># File lib/bundler/spec_set.rb, line 105</span>
105: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sorted</span>
106: <span class="ruby-identifier">rake</span> = <span class="ruby-ivar">@specs</span>.<span class="ruby-identifier">find</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">name</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'rake'</span> }
107: <span class="ruby-ivar">@sorted</span> <span class="ruby-operator">||=</span> ([<span class="ruby-identifier">rake</span>] <span class="ruby-operator">+</span> <span class="ruby-identifier">tsort</span>).<span class="ruby-identifier">compact</span>.<span class="ruby-identifier">uniq</span>
108: <span class="ruby-keyword kw">end</span></pre>
</div>
</div>
</div>
<div id="tsort-each-child-method" class="method-detail ">
<a name="method-i-tsort_each_child"></a>
<div class="method-heading">
<span class="method-name">tsort_each_child</span><span
class="method-args">(s)</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code"
id="tsort-each-child-source">
<pre>
<span class="ruby-comment cmt"># File lib/bundler/spec_set.rb, line 127</span>
127: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">tsort_each_child</span>(<span class="ruby-identifier">s</span>)
128: <span class="ruby-identifier">s</span>.<span class="ruby-identifier">dependencies</span>.<span class="ruby-identifier">sort_by</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">d</span><span class="ruby-operator">|</span> <span class="ruby-identifier">d</span>.<span class="ruby-identifier">name</span> }.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">d</span><span class="ruby-operator">|</span>
129: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">d</span>.<span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value">:development</span>
130: <span class="ruby-identifier">lookup</span>[<span class="ruby-identifier">d</span>.<span class="ruby-identifier">name</span>].<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">s2</span><span class="ruby-operator">|</span> <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">s2</span> }
131: <span class="ruby-keyword kw">end</span>
132: <span class="ruby-keyword kw">end</span></pre>
</div>
</div>
</div>
<div id="tsort-each-node-method" class="method-detail ">
<a name="method-i-tsort_each_node"></a>
<div class="method-heading">
<span class="method-name">tsort_each_node</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="tsort-each-node-source">
<pre>
<span class="ruby-comment cmt"># File lib/bundler/spec_set.rb, line 123</span>
123: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">tsort_each_node</span>
124: <span class="ruby-ivar">@specs</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">s</span><span class="ruby-operator">|</span> <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">s</span> }
125: <span class="ruby-keyword kw">end</span></pre>
</div>
</div>
</div>
</div>
</div>
<div id="rdoc-debugging-section-dump" class="debugging-section">
<p>Disabled; run with --debug to generate this.</p>
</div>
<div id="validator-badges">
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
<p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
Rdoc Generator</a> 1.1.6</small>.</p>
</div>
</body>
</html>