instiki/vendor/plugins/bundler/doc/bundler-1.0.15/rdoc/Bundler/GemHelper.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

1162 lines
42 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::GemHelper</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/gem_helper_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
class="thickbox" title="lib/bundler/gem_helper.rb">lib/bundler/gem_helper.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-install_tasks">::install_tasks</a></li>
<li><a href="#method-c-new">::new</a></li>
<li><a href="#method-i-build_gem">#build_gem</a></li>
<li><a href="#method-i-built_gem_path">#built_gem_path</a></li>
<li><a href="#method-i-clean%3F">#clean?</a></li>
<li><a href="#method-i-git_push">#git_push</a></li>
<li><a href="#method-i-guard_already_tagged">#guard_already_tagged</a></li>
<li><a href="#method-i-guard_clean">#guard_clean</a></li>
<li><a href="#method-i-install">#install</a></li>
<li><a href="#method-i-install_gem">#install_gem</a></li>
<li><a href="#method-i-name">#name</a></li>
<li><a href="#method-i-perform_git_push">#perform_git_push</a></li>
<li><a href="#method-i-release_gem">#release_gem</a></li>
<li><a href="#method-i-rubygem_push">#rubygem_push</a></li>
<li><a href="#method-i-sh">#sh</a></li>
<li><a href="#method-i-sh_with_code">#sh_with_code</a></li>
<li><a href="#method-i-tag_version">#tag_version</a></li>
<li><a href="#method-i-version">#version</a></li>
<li><a href="#method-i-version_tag">#version_tag</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">Rake::DSL</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::GemHelper</h1>
<div id="description">
</div>
<!-- Constants -->
<!-- Attributes -->
<div id="attribute-method-details" class="method-section section">
<h3 class="section-header">Attributes</h3>
<div id="spec-path-attribute-method" class="method-detail">
<a name="spec_path"></a>
<div class="method-heading attribute-method-heading">
<span class="method-name">spec_path</span><span
class="attribute-access-type">[R]</span>
</div>
<div class="method-description">
</div>
</div>
<div id="base-attribute-method" class="method-detail">
<a name="base"></a>
<div class="method-heading attribute-method-heading">
<span class="method-name">base</span><span
class="attribute-access-type">[R]</span>
</div>
<div class="method-description">
</div>
</div>
<div id="gemspec-attribute-method" class="method-detail">
<a name="gemspec"></a>
<div class="method-heading attribute-method-heading">
<span class="method-name">gemspec</span><span
class="attribute-access-type">[R]</span>
</div>
<div class="method-description">
</div>
</div>
</div>
<!-- Methods -->
<div id="public-class-method-details" class="method-section section">
<h3 class="section-header">Public Class Methods</h3>
<div id="install-tasks-method" class="method-detail ">
<a name="method-c-install_tasks"></a>
<div class="method-heading">
<span class="method-name">install_tasks</span><span
class="method-args">(opts = {})</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code"
id="install-tasks-source">
<pre>
<span class="ruby-comment cmt"># File lib/bundler/gem_helper.rb, line 9</span>
9: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">install_tasks</span>(<span class="ruby-identifier">opts</span> = {})
10: <span class="ruby-identifier">dir</span> = <span class="ruby-identifier">opts</span>[<span class="ruby-value">:dir</span>] <span class="ruby-operator">||</span> <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">pwd</span>
11: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">dir</span>, <span class="ruby-identifier">opts</span>[<span class="ruby-value">:name</span>]).<span class="ruby-identifier">install</span>
12: <span class="ruby-keyword kw">end</span></pre>
</div>
</div>
</div>
<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">(base, name = nil)</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/gem_helper.rb, line 16</span>
16: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">base</span>, <span class="ruby-identifier">name</span> = <span class="ruby-keyword kw">nil</span>)
17: <span class="ruby-constant">Bundler</span>.<span class="ruby-identifier">ui</span> = <span class="ruby-constant">UI</span><span class="ruby-operator">::</span><span class="ruby-constant">Shell</span>.<span class="ruby-identifier">new</span>(<span class="ruby-constant">Thor</span><span class="ruby-operator">::</span><span class="ruby-constant">Base</span>.<span class="ruby-identifier">shell</span>.<span class="ruby-identifier">new</span>)
18: <span class="ruby-ivar">@base</span> = <span class="ruby-identifier">base</span>
19: <span class="ruby-identifier">gemspecs</span> = <span class="ruby-identifier">name</span> <span class="ruby-operator">?</span> [<span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-identifier">base</span>, <span class="ruby-node">&quot;#{name}.gemspec&quot;</span>)] <span class="ruby-operator">:</span> <span class="ruby-constant">Dir</span>[<span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-identifier">base</span>, <span class="ruby-value str">&quot;*.gemspec&quot;</span>)]
20: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Unable to determine name from existing gemspec. Use :name =&gt; 'gemname' in #install_tasks to manually set it.&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">gemspecs</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span>
21: <span class="ruby-ivar">@spec_path</span> = <span class="ruby-identifier">gemspecs</span>.<span class="ruby-identifier">first</span>
22: <span class="ruby-ivar">@gemspec</span> = <span class="ruby-constant">Bundler</span>.<span class="ruby-identifier">load_gemspec</span>(<span class="ruby-ivar">@spec_path</span>)
23: <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="build-gem-method" class="method-detail ">
<a name="method-i-build_gem"></a>
<div class="method-heading">
<span class="method-name">build_gem</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-gem-source">
<pre>
<span class="ruby-comment cmt"># File lib/bundler/gem_helper.rb, line 42</span>
42: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">build_gem</span>
43: <span class="ruby-identifier">file_name</span> = <span class="ruby-keyword kw">nil</span>
44: <span class="ruby-identifier">sh</span>(<span class="ruby-node">&quot;gem build '#{spec_path}'&quot;</span>) { <span class="ruby-operator">|</span><span class="ruby-identifier">out</span>, <span class="ruby-identifier">code</span><span class="ruby-operator">|</span>
45: <span class="ruby-identifier">raise</span> <span class="ruby-identifier">out</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">out</span>[<span class="ruby-regexp re">/Successfully/</span>]
46: <span class="ruby-identifier">file_name</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">basename</span>(<span class="ruby-identifier">built_gem_path</span>)
47: <span class="ruby-constant">FileUtils</span>.<span class="ruby-identifier">mkdir_p</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-identifier">base</span>, <span class="ruby-value str">'pkg'</span>))
48: <span class="ruby-constant">FileUtils</span>.<span class="ruby-identifier">mv</span>(<span class="ruby-identifier">built_gem_path</span>, <span class="ruby-value str">'pkg'</span>)
49: <span class="ruby-constant">Bundler</span>.<span class="ruby-identifier">ui</span>.<span class="ruby-identifier">confirm</span> <span class="ruby-node">&quot;#{name} #{version} built to pkg/#{file_name}&quot;</span>
50: }
51: <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-identifier">base</span>, <span class="ruby-value str">'pkg'</span>, <span class="ruby-identifier">file_name</span>)
52: <span class="ruby-keyword kw">end</span></pre>
</div>
</div>
</div>
<div id="install-method" class="method-detail ">
<a name="method-i-install"></a>
<div class="method-heading">
<span class="method-name">install</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="install-source">
<pre>
<span class="ruby-comment cmt"># File lib/bundler/gem_helper.rb, line 25</span>
25: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">install</span>
26: <span class="ruby-identifier">desc</span> <span class="ruby-node">&quot;Build #{name}-#{version}.gem into the pkg directory&quot;</span>
27: <span class="ruby-identifier">task</span> <span class="ruby-value str">'build'</span> <span class="ruby-keyword kw">do</span>
28: <span class="ruby-identifier">build_gem</span>
29: <span class="ruby-keyword kw">end</span>
30:
31: <span class="ruby-identifier">desc</span> <span class="ruby-node">&quot;Build and install #{name}-#{version}.gem into system gems&quot;</span>
32: <span class="ruby-identifier">task</span> <span class="ruby-value str">'install'</span> <span class="ruby-keyword kw">do</span>
33: <span class="ruby-identifier">install_gem</span>
34: <span class="ruby-keyword kw">end</span>
35:
36: <span class="ruby-identifier">desc</span> <span class="ruby-node">&quot;Create tag #{version_tag} and build and push #{name}-#{version}.gem to Rubygems&quot;</span>
37: <span class="ruby-identifier">task</span> <span class="ruby-value str">'release'</span> <span class="ruby-keyword kw">do</span>
38: <span class="ruby-identifier">release_gem</span>
39: <span class="ruby-keyword kw">end</span>
40: <span class="ruby-keyword kw">end</span></pre>
</div>
</div>
</div>
<div id="install-gem-method" class="method-detail ">
<a name="method-i-install_gem"></a>
<div class="method-heading">
<span class="method-name">install_gem</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="install-gem-source">
<pre>
<span class="ruby-comment cmt"># File lib/bundler/gem_helper.rb, line 54</span>
54: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">install_gem</span>
55: <span class="ruby-identifier">built_gem_path</span> = <span class="ruby-identifier">build_gem</span>
56: <span class="ruby-identifier">out</span>, <span class="ruby-identifier">_</span> = <span class="ruby-identifier">sh_with_code</span>(<span class="ruby-node">&quot;gem install '#{built_gem_path}'&quot;</span>)
57: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Couldn't install gem, run `gem install #{built_gem_path}' for more detailed output&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">out</span>[<span class="ruby-regexp re">/Successfully installed/</span>]
58: <span class="ruby-constant">Bundler</span>.<span class="ruby-identifier">ui</span>.<span class="ruby-identifier">confirm</span> <span class="ruby-node">&quot;#{name} (#{version}) installed&quot;</span>
59: <span class="ruby-keyword kw">end</span></pre>
</div>
</div>
</div>
<div id="release-gem-method" class="method-detail ">
<a name="method-i-release_gem"></a>
<div class="method-heading">
<span class="method-name">release_gem</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="release-gem-source">
<pre>
<span class="ruby-comment cmt"># File lib/bundler/gem_helper.rb, line 61</span>
61: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">release_gem</span>
62: <span class="ruby-identifier">guard_clean</span>
63: <span class="ruby-identifier">guard_already_tagged</span>
64: <span class="ruby-identifier">built_gem_path</span> = <span class="ruby-identifier">build_gem</span>
65: <span class="ruby-identifier">tag_version</span> {
66: <span class="ruby-identifier">git_push</span>
67: <span class="ruby-identifier">rubygem_push</span>(<span class="ruby-identifier">built_gem_path</span>)
68: }
69: <span class="ruby-keyword kw">end</span></pre>
</div>
</div>
</div>
</div>
<div id="protected-instance-method-details" class="method-section section">
<h3 class="section-header">Protected Instance Methods</h3>
<div id="built-gem-path-method" class="method-detail ">
<a name="method-i-built_gem_path"></a>
<div class="method-heading">
<span class="method-name">built_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="built-gem-path-source">
<pre>
<span class="ruby-comment cmt"># File lib/bundler/gem_helper.rb, line 78</span>
78: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">built_gem_path</span>
79: <span class="ruby-constant">Dir</span>[<span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-identifier">base</span>, <span class="ruby-node">&quot;#{name}-*.gem&quot;</span>)].<span class="ruby-identifier">sort_by</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">mtime</span>(<span class="ruby-identifier">f</span>)}.<span class="ruby-identifier">last</span>
80: <span class="ruby-keyword kw">end</span></pre>
</div>
</div>
</div>
<div id="clean--method" class="method-detail ">
<a name="method-i-clean%3F"></a>
<div class="method-heading">
<span class="method-name">clean?</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="clean--source">
<pre>
<span class="ruby-comment cmt"># File lib/bundler/gem_helper.rb, line 104</span>
104: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">clean?</span>
105: <span class="ruby-identifier">sh_with_code</span>(<span class="ruby-value str">&quot;git diff --exit-code&quot;</span>)[<span class="ruby-value">1</span>] <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
106: <span class="ruby-keyword kw">end</span></pre>
</div>
</div>
</div>
<div id="git-push-method" class="method-detail ">
<a name="method-i-git_push"></a>
<div class="method-heading">
<span class="method-name">git_push</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="git-push-source">
<pre>
<span class="ruby-comment cmt"># File lib/bundler/gem_helper.rb, line 82</span>
82: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">git_push</span>
83: <span class="ruby-identifier">perform_git_push</span>
84: <span class="ruby-identifier">perform_git_push</span> <span class="ruby-value str">' --tags'</span>
85: <span class="ruby-constant">Bundler</span>.<span class="ruby-identifier">ui</span>.<span class="ruby-identifier">confirm</span> <span class="ruby-value str">&quot;Pushed git commits and tags&quot;</span>
86: <span class="ruby-keyword kw">end</span></pre>
</div>
</div>
</div>
<div id="guard-already-tagged-method" class="method-detail ">
<a name="method-i-guard_already_tagged"></a>
<div class="method-heading">
<span class="method-name">guard_already_tagged</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="guard-already-tagged-source">
<pre>
<span class="ruby-comment cmt"># File lib/bundler/gem_helper.rb, line 94</span>
94: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">guard_already_tagged</span>
95: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">sh</span>(<span class="ruby-value str">'git tag'</span>).<span class="ruby-identifier">split</span>(<span class="ruby-regexp re">/\n/</span>).<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">version_tag</span>)
96: <span class="ruby-identifier">raise</span>(<span class="ruby-value str">&quot;This tag has already been committed to the repo.&quot;</span>)
97: <span class="ruby-keyword kw">end</span>
98: <span class="ruby-keyword kw">end</span></pre>
</div>
</div>
</div>
<div id="guard-clean-method" class="method-detail ">
<a name="method-i-guard_clean"></a>
<div class="method-heading">
<span class="method-name">guard_clean</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="guard-clean-source">
<pre>
<span class="ruby-comment cmt"># File lib/bundler/gem_helper.rb, line 100</span>
100: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">guard_clean</span>
101: <span class="ruby-identifier">clean?</span> <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">raise</span>(<span class="ruby-value str">&quot;There are files that need to be committed first.&quot;</span>)
102: <span class="ruby-keyword kw">end</span></pre>
</div>
</div>
</div>
<div id="name-method" class="method-detail ">
<a name="method-i-name"></a>
<div class="method-heading">
<span class="method-name">name</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="name-source">
<pre>
<span class="ruby-comment cmt"># File lib/bundler/gem_helper.rb, line 126</span>
126: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">name</span>
127: <span class="ruby-identifier">gemspec</span>.<span class="ruby-identifier">name</span>
128: <span class="ruby-keyword kw">end</span></pre>
</div>
</div>
</div>
<div id="perform-git-push-method" class="method-detail ">
<a name="method-i-perform_git_push"></a>
<div class="method-heading">
<span class="method-name">perform_git_push</span><span
class="method-args">(options = '')</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code"
id="perform-git-push-source">
<pre>
<span class="ruby-comment cmt"># File lib/bundler/gem_helper.rb, line 88</span>
88: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">perform_git_push</span>(<span class="ruby-identifier">options</span> = <span class="ruby-value str">''</span>)
89: <span class="ruby-identifier">cmd</span> = <span class="ruby-node">&quot;git push #{options}&quot;</span>
90: <span class="ruby-identifier">out</span>, <span class="ruby-identifier">code</span> = <span class="ruby-identifier">sh_with_code</span>(<span class="ruby-identifier">cmd</span>)
91: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Couldn't git push. `#{cmd}' failed with the following output:\n\n#{out}\n&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">code</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
92: <span class="ruby-keyword kw">end</span></pre>
</div>
</div>
</div>
<div id="rubygem-push-method" class="method-detail ">
<a name="method-i-rubygem_push"></a>
<div class="method-heading">
<span class="method-name">rubygem_push</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="rubygem-push-source">
<pre>
<span class="ruby-comment cmt"># File lib/bundler/gem_helper.rb, line 72</span>
72: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">rubygem_push</span>(<span class="ruby-identifier">path</span>)
73: <span class="ruby-identifier">out</span>, <span class="ruby-identifier">_</span> = <span class="ruby-identifier">sh</span>(<span class="ruby-node">&quot;gem push '#{path}'&quot;</span>)
74: <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;Gem push failed due to lack of RubyGems.org credentials.&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">out</span>[<span class="ruby-regexp re">/Enter your RubyGems.org credentials/</span>]
75: <span class="ruby-constant">Bundler</span>.<span class="ruby-identifier">ui</span>.<span class="ruby-identifier">confirm</span> <span class="ruby-node">&quot;Pushed #{name} #{version} to rubygems.org&quot;</span>
76: <span class="ruby-keyword kw">end</span></pre>
</div>
</div>
</div>
<div id="sh-method" class="method-detail ">
<a name="method-i-sh"></a>
<div class="method-heading">
<span class="method-name">sh</span><span
class="method-args">(cmd, &block)</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code"
id="sh-source">
<pre>
<span class="ruby-comment cmt"># File lib/bundler/gem_helper.rb, line 130</span>
130: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sh</span>(<span class="ruby-identifier">cmd</span>, &amp;<span class="ruby-identifier">block</span>)
131: <span class="ruby-identifier">out</span>, <span class="ruby-identifier">code</span> = <span class="ruby-identifier">sh_with_code</span>(<span class="ruby-identifier">cmd</span>, &amp;<span class="ruby-identifier">block</span>)
132: <span class="ruby-identifier">code</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">out</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">raise</span>(<span class="ruby-identifier">out</span>.<span class="ruby-identifier">empty?</span> <span class="ruby-operator">?</span> <span class="ruby-node">&quot;Running `#{cmd}' failed. Run this command directly for more detailed output.&quot;</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">out</span>)
133: <span class="ruby-keyword kw">end</span></pre>
</div>
</div>
</div>
<div id="sh-with-code-method" class="method-detail ">
<a name="method-i-sh_with_code"></a>
<div class="method-heading">
<span class="method-name">sh_with_code</span><span
class="method-args">(cmd, &block)</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code"
id="sh-with-code-source">
<pre>
<span class="ruby-comment cmt"># File lib/bundler/gem_helper.rb, line 135</span>
135: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sh_with_code</span>(<span class="ruby-identifier">cmd</span>, &amp;<span class="ruby-identifier">block</span>)
136: <span class="ruby-identifier">cmd</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot; 2&gt;&amp;1&quot;</span>
137: <span class="ruby-identifier">outbuf</span> = <span class="ruby-value str">''</span>
138: <span class="ruby-constant">Bundler</span>.<span class="ruby-identifier">ui</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-identifier">cmd</span>)
139: <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">chdir</span>(<span class="ruby-identifier">base</span>) {
140: <span class="ruby-identifier">outbuf</span> = <span class="ruby-node">`#{cmd}`</span>
141: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$?</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
142: <span class="ruby-identifier">block</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">outbuf</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block</span>
143: <span class="ruby-keyword kw">end</span>
144: }
145: [<span class="ruby-identifier">outbuf</span>, <span class="ruby-identifier">$?</span>]
146: <span class="ruby-keyword kw">end</span></pre>
</div>
</div>
</div>
<div id="tag-version-method" class="method-detail ">
<a name="method-i-tag_version"></a>
<div class="method-heading">
<span class="method-name">tag_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="tag-version-source">
<pre>
<span class="ruby-comment cmt"># File lib/bundler/gem_helper.rb, line 108</span>
108: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">tag_version</span>
109: <span class="ruby-identifier">sh</span> <span class="ruby-node">&quot;git tag -a -m \&quot;Version #{version}\&quot; #{version_tag}&quot;</span>
110: <span class="ruby-constant">Bundler</span>.<span class="ruby-identifier">ui</span>.<span class="ruby-identifier">confirm</span> <span class="ruby-node">&quot;Tagged #{version_tag}&quot;</span>
111: <span class="ruby-keyword kw">yield</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>
112: <span class="ruby-keyword kw">rescue</span>
113: <span class="ruby-constant">Bundler</span>.<span class="ruby-identifier">ui</span>.<span class="ruby-identifier">error</span> <span class="ruby-node">&quot;Untagged #{version_tag} due to error&quot;</span>
114: <span class="ruby-identifier">sh_with_code</span> <span class="ruby-node">&quot;git tag -d #{version_tag}&quot;</span>
115: <span class="ruby-identifier">raise</span>
116: <span class="ruby-keyword kw">end</span></pre>
</div>
</div>
</div>
<div id="version-method" class="method-detail ">
<a name="method-i-version"></a>
<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 cmt"># File lib/bundler/gem_helper.rb, line 118</span>
118: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">version</span>
119: <span class="ruby-identifier">gemspec</span>.<span class="ruby-identifier">version</span>
120: <span class="ruby-keyword kw">end</span></pre>
</div>
</div>
</div>
<div id="version-tag-method" class="method-detail ">
<a name="method-i-version_tag"></a>
<div class="method-heading">
<span class="method-name">version_tag</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-tag-source">
<pre>
<span class="ruby-comment cmt"># File lib/bundler/gem_helper.rb, line 122</span>
122: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">version_tag</span>
123: <span class="ruby-node">&quot;v#{version}&quot;</span>
124: <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>