P4Change.html #3

  • //
  • guest/
  • tony_smith/
  • perforce/
  • P4Rubylib/
  • triggers/
  • doc/
  • classes/
  • P4Change.html
  • View
  • Commits
  • Open Download .zip Download (13 KB)
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html 
     PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
     "DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
	<title>Class: P4Change</title>
	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
	<meta http-equiv="Content-Script-Type" content="text/javascript" />
	<link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
	<script type="text/javascript">
	// <![CDATA[

	function popupCode( url ) {
		window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
	}

	function toggleCode( id ) {
		if ( document.getElementById )
			elem = document.getElementById( id );
		else if ( document.all )
			elem = eval( "document.all." + id );
		else
			return false;

		elemStyle = elem.style;
		
		if ( elemStyle.display != "block" ) {
			elemStyle.display = "block"
		} else {
			elemStyle.display = "none"
		}

		return true;
	}
	
	// Make codeblocks hidden by default
	document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
	
	// ]]>
	</script>

</head>
<body>



    <div id="classHeader">
        <h1>P4Change <sup class="type-note">(Class)</sup></h1>
        <table class="header-table">
        <tr class="top-aligned-row">
            <td><strong>In:</strong></td>
            <td>
                <a href="../files/P4Triggers_rb.html">
                P4Triggers.rb
                </a>
				<br />
            </td>
        </tr>

        <tr class="top-aligned-row">
            <td><strong>Parent:</strong></td>
            <td>
                Object
            </td>
        </tr>
        </table>
    </div>
  <!-- banner header -->

	<div id="bodyContent">


	<div id="contextContent">

		<div id="description">
			<p>
A class for holding info about a change. This is intended to be populated
be the output of &quot;p4 describe&quot; rather than &quot;p4 change
-o&quot;. The difference is mostly in the case of the hash keys, but
that&#8217;s significant enough.
</p>

		</div>


		<div id="method-list">
			<h2 class="section-bar">Methods</h2>

			<div class="name-list">
			<a href="#M000010">each_file</a>&nbsp;&nbsp;
			<a href="#M000011">each_job</a>&nbsp;&nbsp;
			<a href="#M000009">new</a>&nbsp;&nbsp;
			</div>
		</div>




		<div id="attribute-list">
			<h2 class="section-bar">Attributes</h2>

			<div class="name-list">
				<table>
				<tr class="top-aligned-row context-row">
					<td class="context-item-name">change</td>
					<td class="context-item-value">&nbsp;[R]&nbsp;</td>
					<td class="context-item-desc"></td>
				</tr>
				<tr class="top-aligned-row context-row">
					<td class="context-item-name">client</td>
					<td class="context-item-value">&nbsp;[R]&nbsp;</td>
					<td class="context-item-desc"></td>
				</tr>
				<tr class="top-aligned-row context-row">
					<td class="context-item-name">desc</td>
					<td class="context-item-value">&nbsp;[R]&nbsp;</td>
					<td class="context-item-desc"></td>
				</tr>
				<tr class="top-aligned-row context-row">
					<td class="context-item-name">files</td>
					<td class="context-item-value">&nbsp;[R]&nbsp;</td>
					<td class="context-item-desc"></td>
				</tr>
				<tr class="top-aligned-row context-row">
					<td class="context-item-name">jobs</td>
					<td class="context-item-value">&nbsp;[R]&nbsp;</td>
					<td class="context-item-desc"></td>
				</tr>
				<tr class="top-aligned-row context-row">
					<td class="context-item-name">status</td>
					<td class="context-item-value">&nbsp;[R]&nbsp;</td>
					<td class="context-item-desc"></td>
				</tr>
				<tr class="top-aligned-row context-row">
					<td class="context-item-name">time</td>
					<td class="context-item-value">&nbsp;[R]&nbsp;</td>
					<td class="context-item-desc"></td>
				</tr>
				<tr class="top-aligned-row context-row">
					<td class="context-item-name">user</td>
					<td class="context-item-value">&nbsp;[R]&nbsp;</td>
					<td class="context-item-desc"></td>
				</tr>
				</table>
			</div>
		</div>
			

	</div>



		<!-- if includes -->


		<!-- if method_list -->
		<div id="methods">
			<h2 class="section-bar">Public Class methods</h2>

			<div id="method-M000009" class="method-detail">
				<a name="M000009"></a>

				<div class="method-heading">
					<a href="#M000009" class="method-signature">
					<span class="method-name">new</span><span class="method-args">( hash )</span>
					</a>
				</div>
			
				<div class="method-description">
					<p>
Constructor. Pass the hash returned by <a
href="P4.html#M000012">P4#run_describe</a>( &quot;-s&quot; ) in tagged
mode.
</p>
					<p><a class="source-toggle" href="#"
					  onclick="toggleCode('M000009-source');return false;">[Source]</a></p>
					<div class="method-source-code" id="M000009-source">
<pre>
    <span class="ruby-comment cmt"># File P4Triggers.rb, line 47</span>
47:     <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>( <span class="ruby-identifier">hash</span> )
48:         <span class="ruby-ivar">@change</span> = <span class="ruby-identifier">hash</span>[ <span class="ruby-value str">&quot;change&quot;</span>  ]
49:         <span class="ruby-ivar">@user</span>  = <span class="ruby-identifier">hash</span>[ <span class="ruby-value str">&quot;user&quot;</span>    ]
50:         <span class="ruby-ivar">@client</span> = <span class="ruby-identifier">hash</span>[ <span class="ruby-value str">&quot;client&quot;</span>  ]
51:         <span class="ruby-ivar">@desc</span>  = <span class="ruby-identifier">hash</span>[ <span class="ruby-value str">&quot;desc&quot;</span>    ]
52:         <span class="ruby-ivar">@time</span>  = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">at</span>( <span class="ruby-identifier">hash</span>[ <span class="ruby-value str">&quot;time&quot;</span> ].<span class="ruby-identifier">to_i</span> )
53: 
54:         <span class="ruby-ivar">@status</span>        = <span class="ruby-identifier">hash</span>[ <span class="ruby-value str">&quot;status&quot;</span>  ]
55:         <span class="ruby-ivar">@files</span> = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>
56:         <span class="ruby-ivar">@jobs</span> = <span class="ruby-constant">Hash</span>.<span class="ruby-identifier">new</span>
57: 
58:         <span class="ruby-keyword kw">if</span> ( <span class="ruby-identifier">hash</span>.<span class="ruby-identifier">has_key?</span>( <span class="ruby-value str">&quot;depotFile&quot;</span> ) )
59:             <span class="ruby-identifier">hash</span>[ <span class="ruby-value str">&quot;depotFile&quot;</span> ].<span class="ruby-identifier">each_index</span> <span class="ruby-keyword kw">do</span>
60:                 <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
61:                 <span class="ruby-identifier">name</span> = <span class="ruby-identifier">hash</span>[ <span class="ruby-value str">&quot;depotFile&quot;</span>      ][ <span class="ruby-identifier">i</span> ]
62:                 <span class="ruby-identifier">type</span> = <span class="ruby-identifier">hash</span>[ <span class="ruby-value str">&quot;type&quot;</span>           ][ <span class="ruby-identifier">i</span> ]
63:                 <span class="ruby-identifier">rev</span>    = <span class="ruby-identifier">hash</span>[ <span class="ruby-value str">&quot;rev&quot;</span>            ][ <span class="ruby-identifier">i</span> ]
64:                 <span class="ruby-identifier">act</span>    = <span class="ruby-identifier">hash</span>[ <span class="ruby-value str">&quot;action&quot;</span> ][ <span class="ruby-identifier">i</span> ]
65: 
66:                 <span class="ruby-identifier">df</span> = <span class="ruby-constant">P4DepotFile</span>.<span class="ruby-identifier">new</span>( <span class="ruby-identifier">name</span> )
67:                 <span class="ruby-identifier">dr</span> = <span class="ruby-identifier">df</span>.<span class="ruby-identifier">new_revision</span>
68: 
69:                 <span class="ruby-identifier">dr</span>.<span class="ruby-identifier">type</span>       = <span class="ruby-identifier">type</span>
70:                 <span class="ruby-identifier">dr</span>.<span class="ruby-identifier">revno</span>      = <span class="ruby-identifier">rev</span>.<span class="ruby-identifier">to_i</span>
71:                 <span class="ruby-identifier">dr</span>.<span class="ruby-identifier">action</span>     = <span class="ruby-identifier">act</span>
72: 
73:                 <span class="ruby-ivar">@files</span>.<span class="ruby-identifier">push</span>( <span class="ruby-identifier">df</span> )
74:             <span class="ruby-keyword kw">end</span>
75:         <span class="ruby-keyword kw">end</span>
76: 
77:         <span class="ruby-keyword kw">if</span> ( <span class="ruby-identifier">hash</span>.<span class="ruby-identifier">has_key?</span>( <span class="ruby-value str">&quot;job&quot;</span> ) )
78:             <span class="ruby-identifier">hash</span>[ <span class="ruby-value str">&quot;job&quot;</span> ].<span class="ruby-identifier">each_index</span> <span class="ruby-keyword kw">do</span>
79:                 <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
80:                 <span class="ruby-identifier">job</span>   = <span class="ruby-identifier">hash</span>[ <span class="ruby-value str">&quot;job&quot;</span>      ][ <span class="ruby-identifier">i</span> ]
81:                 <span class="ruby-identifier">status</span>        = <span class="ruby-identifier">hash</span>[ <span class="ruby-value str">&quot;jobstat&quot;</span> ][ <span class="ruby-identifier">i</span> ]
82:                 <span class="ruby-ivar">@jobs</span>[ <span class="ruby-identifier">job</span> ] = <span class="ruby-identifier">status</span>
83:             <span class="ruby-keyword kw">end</span>
84:         <span class="ruby-keyword kw">end</span>
85:     <span class="ruby-keyword kw">end</span>
</pre>
					</div>
				</div>
			</div>

			<h2 class="section-bar">Public Instance methods</h2>

			<div id="method-M000010" class="method-detail">
				<a name="M000010"></a>

				<div class="method-heading">
					<a href="#M000010" class="method-signature">
					<span class="method-name">each_file</span><span class="method-args">( &amp;block ) {|f| ...}</span>
					</a>
				</div>
			
				<div class="method-description">
					<p>
Shorthand iterator for looking at the files in the change
</p>
					<p><a class="source-toggle" href="#"
					  onclick="toggleCode('M000010-source');return false;">[Source]</a></p>
					<div class="method-source-code" id="M000010-source">
<pre>
    <span class="ruby-comment cmt"># File P4Triggers.rb, line 90</span>
90:     <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">each_file</span>( <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span> )
91:         <span class="ruby-ivar">@files</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span> <span class="ruby-keyword kw">yield</span>( <span class="ruby-identifier">f</span> ) }
92:     <span class="ruby-keyword kw">end</span>
</pre>
					</div>
				</div>
			</div>

			<div id="method-M000011" class="method-detail">
				<a name="M000011"></a>

				<div class="method-heading">
					<a href="#M000011" class="method-signature">
					<span class="method-name">each_job</span><span class="method-args">( &amp;block ) {|j| ...}</span>
					</a>
				</div>
			
				<div class="method-description">
					<p>
Shorthand iterator for looking at the jobs fixed by the change
</p>
					<p><a class="source-toggle" href="#"
					  onclick="toggleCode('M000011-source');return false;">[Source]</a></p>
					<div class="method-source-code" id="M000011-source">
<pre>
    <span class="ruby-comment cmt"># File P4Triggers.rb, line 95</span>
95:     <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">each_job</span>( <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span> )
96:         <span class="ruby-ivar">@jobs</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">j</span><span class="ruby-operator">|</span> <span class="ruby-keyword kw">yield</span>( <span class="ruby-identifier">j</span> ) }
97:     <span class="ruby-keyword kw">end</span>
</pre>
					</div>
				</div>
			</div>


		</div>


	</div>


<div id="validator-badges">
  <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
</div>

</body>
</html>
# Change User Description Committed
#3 4654 Tony Smith Add an example spec trigger to show how you might restrict the
default view for all new clients to a pre-defined set of
mappings.
#2 4640 Tony Smith Add a sample post-commit trigger that can be used to keep a master
and slave branch in sync.
#1 3637 Tony Smith Add RDoc documentation to the sample triggers.