<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title> Class: HWSP4Cleanup — Documentation by YARD 0.8.7.6 </title> <link rel="stylesheet" href="css/style.css" type="text/css" charset="utf-8" /> <link rel="stylesheet" href="css/common.css" type="text/css" charset="utf-8" /> <script type="text/javascript" charset="utf-8"> hasFrames = window.top.frames.main ? true : false; relpath = ''; framesUrl = "frames.html#!HWSP4Cleanup.html"; </script> <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script> <script type="text/javascript" charset="utf-8" src="js/app.js"></script> </head> <body> <div id="header"> <div id="menu"> <a href="_index.html">Index (H)</a> » <span class="title">HWSP4Cleanup</span> <div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div> </div> <div id="search"> <a class="full_list_link" id="class_list_link" href="class_list.html"> Class List </a> <a class="full_list_link" id="method_list_link" href="method_list.html"> Method List </a> <a class="full_list_link" id="file_list_link" href="file_list.html"> File List </a> </div> <div class="clear"></div> </div> <iframe id="search_frame"></iframe> <div id="content"><h1>Class: HWSP4Cleanup </h1> <dl class="box"> <dt class="r1">Inherits:</dt> <dd class="r1"> <span class="inheritName">Object</span> <ul class="fullTree"> <li>Object</li> <li class="next">HWSP4Cleanup</li> </ul> <a href="#" class="inheritanceTree">show all</a> </dd> <dt class="r2 last">Defined in:</dt> <dd class="r2 last">lib/hws_p4_cleanup.rb</dd> </dl> <div class="clear"></div> <h2>Overview</h2><div class="docstring"> <div class="discussion"> <p>Rack middleware that cleans up any 'p4' handle added to the environment during processing.</p> <p>This should always run, even in the face of exceptions. Make sure any middleware configured after this step does <em>NOT</em> swallow exceptions.</p> <p>This expects that if a temporary workspace was generated, the 'p4_root' variable was also added into the environment. See P4Helpers.</p> </div> </div> <div class="tags"> </div> <h2> Instance Method Summary <small>(<a href="#" class="summary_toggle">collapse</a>)</small> </h2> <ul class="summary"> <li class="public "> <span class="summary_signature"> <a href="#call-instance_method" title="#call (instance method)">- (Object) <strong>call</strong>(env) </a> </span> <span class="summary_desc"><div class='inline'></div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#cleanup_p4-instance_method" title="#cleanup_p4 (instance method)">- (Object) <strong>cleanup_p4</strong>(p4: nil, p4_root: nil) </a> </span> <span class="summary_desc"><div class='inline'></div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#initialize-instance_method" title="#initialize (instance method)">- (HWSP4Cleanup) <strong>initialize</strong>(app) </a> </span> <span class="note title constructor">constructor</span> <span class="summary_desc"><div class='inline'> <p>A new instance of HWSP4Cleanup.</p> </div></span> </li> </ul> <div id="constructor_details" class="method_details_list"> <h2>Constructor Details</h2> <div class="method_details first"> <h3 class="signature first" id="initialize-instance_method"> - (<tt><span class='object_link'><a href="" title="HWSP4Cleanup (class)">HWSP4Cleanup</a></span></tt>) <strong>initialize</strong>(app) </h3><div class="docstring"> <div class="discussion"> <p>Returns a new instance of HWSP4Cleanup</p> </div> </div> <div class="tags"> </div><table class="source_code"> <tr> <td> <pre class="lines"> 13 14 15</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/hws_p4_cleanup.rb', line 13</span> <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_app'>app</span><span class='rparen'>)</span> <span class='ivar'>@app</span> <span class='op'>=</span> <span class='id identifier rubyid_app'>app</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> </div> <div id="instance_method_details" class="method_details_list"> <h2>Instance Method Details</h2> <div class="method_details first"> <h3 class="signature first" id="call-instance_method"> - (<tt>Object</tt>) <strong>call</strong>(env) </h3><table class="source_code"> <tr> <td> <pre class="lines"> 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/hws_p4_cleanup.rb', line 17</span> <span class='kw'>def</span> <span class='id identifier rubyid_call'>call</span><span class='lparen'>(</span><span class='id identifier rubyid_env'>env</span><span class='rparen'>)</span> <span class='id identifier rubyid_ex'>ex</span> <span class='op'>=</span> <span class='kw'>nil</span> <span class='kw'>begin</span> <span class='id identifier rubyid_results'>results</span> <span class='op'>=</span> <span class='ivar'>@app</span><span class='period'>.</span><span class='id identifier rubyid_call'>call</span><span class='lparen'>(</span><span class='id identifier rubyid_env'>env</span><span class='rparen'>)</span> <span class='kw'>rescue</span> <span class='const'>StandardError</span> <span class='op'>=></span> <span class='id identifier rubyid_e'>e</span> <span class='id identifier rubyid_ex'>ex</span> <span class='op'>=</span> <span class='id identifier rubyid_e'>e</span> <span class='kw'>end</span> <span class='comment'># We need to convert any exception before attempting to delete, </span> <span class='comment'># otherwise the p4.messages and p4.errors will get reset at the next </span> <span class='comment'># method call. </span> <span class='kw'>if</span> <span class='id identifier rubyid_ex'>ex</span><span class='period'>.</span><span class='id identifier rubyid_instance_of?'>instance_of?</span><span class='lparen'>(</span><span class='const'>P4Exception</span><span class='rparen'>)</span> <span class='comment'># TODO define common error classes and replace this </span> <span class='comment'># ex = Util.make_p4_error(p4) </span> <span class='kw'>end</span> <span class='kw'>if</span> <span class='id identifier rubyid_env'>env</span><span class='period'>.</span><span class='id identifier rubyid_key?'>key?</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>p4</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span> <span class='id identifier rubyid_cleanup_p4'>cleanup_p4</span><span class='lparen'>(</span><span class='label'>p4:</span> <span class='id identifier rubyid_env'>env</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>p4</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='label'>p4_root:</span> <span class='id identifier rubyid_env'>env</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>p4_root</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span><span class='rparen'>)</span> <span class='kw'>end</span> <span class='id identifier rubyid_raise'>raise</span> <span class='id identifier rubyid_ex'>ex</span> <span class='kw'>unless</span> <span class='id identifier rubyid_ex'>ex</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='id identifier rubyid_results'>results</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <h3 class="signature " id="cleanup_p4-instance_method"> - (<tt>Object</tt>) <strong>cleanup_p4</strong>(p4: nil, p4_root: nil) </h3><table class="source_code"> <tr> <td> <pre class="lines"> 43 44 45 46 47 48 49 50 51</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/hws_p4_cleanup.rb', line 43</span> <span class='kw'>def</span> <span class='id identifier rubyid_cleanup_p4'>cleanup_p4</span><span class='lparen'>(</span><span class='label'>p4:</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='label'>p4_root:</span> <span class='kw'>nil</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_p4'>p4</span> <span class='kw'>and</span> <span class='id identifier rubyid_p4'>p4</span><span class='period'>.</span><span class='id identifier rubyid_client'>client</span> <span class='op'>!=</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>INVALID</span><span class='tstring_end'>'</span></span> <span class='id identifier rubyid_p4'>p4</span><span class='period'>.</span><span class='id identifier rubyid_at_exception_level'>at_exception_level</span><span class='lparen'>(</span><span class='const'>P4</span><span class='op'>::</span><span class='const'>RAISE_NONE</span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='id identifier rubyid_p4'>p4</span><span class='period'>.</span><span class='id identifier rubyid_run_client'>run_client</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>-d</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>-f</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='id identifier rubyid_p4'>p4</span><span class='period'>.</span><span class='id identifier rubyid_client'>client</span><span class='rparen'>)</span> <span class='const'>FileUtils</span><span class='period'>.</span><span class='id identifier rubyid_rmtree'>rmtree</span><span class='lparen'>(</span><span class='id identifier rubyid_p4_root'>p4_root</span><span class='rparen'>)</span> <span class='kw'>unless</span> <span class='id identifier rubyid_p4_root'>p4_root</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='kw'>end</span> <span class='kw'>end</span> <span class='id identifier rubyid_p4'>p4</span><span class='period'>.</span><span class='id identifier rubyid_disconnect'>disconnect</span> <span class='kw'>if</span> <span class='id identifier rubyid_p4'>p4</span> <span class='kw'>and</span> <span class='id identifier rubyid_p4'>p4</span><span class='period'>.</span><span class='id identifier rubyid_connected?'>connected?</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> </div> </div> <div id="footer"> Generated on Thu Jul 30 13:12:28 2015 by <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a> 0.8.7.6 (ruby-2.2.1). </div> </body> </html>
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#59 | 16346 | tjuricek | Removing build directory prior to migration | ||
#58 | 16334 | tjuricek |
HWS/NOARCH/2015.1.main/201510211937 Documentation updates for new system configuration options. |
||
#57 | 16331 | tjuricek |
HWS/NOARCH/2015.1.main/201510211755 This is a large revision to the deployment: - nginx is now part of the system - perforce-server is *not* installed during post-install configuration The only change for migration should be to uninstall (and purge) your current nginx setup. |
||
#56 | 16206 | tjuricek | HWS/NOARCH/2015.1.main/201510122220 | ||
#55 | 16194 | tjuricek |
HWS/NOARCH/2015.1.main/201510121820 Implemented DELETE methods to help uninstallation processes for Helix Sync. |
||
#54 | 16168 | tjuricek | HWS/NOARCH/2015.1.main/201510092323 | ||
#53 | 16161 | tjuricek |
HWS/NOARCH/2015.1.main/201510082242 - Ability for custom middleware to filter P4PORT agressively - If p4d deems login not necessary, return an empty string for the valid ticket value. |
||
#52 | 16144 | tjuricek |
HWS/NOARCH/2015.1.main/201510081946 Major revision to URL structure. This is a breaking change to the API. |
||
#51 | 16093 | tjuricek |
HWS/NOARCH/2015.1.main/201510061647 Rename of trust setting, and adjustments to Helix Sync logic for selecting pending changelists |
||
#50 | 16077 | tjuricek |
HWS/NOARCH/2015.1.main/201510051630 Includes changes to trust behavior |
||
#49 | 16075 | tjuricek |
HWS/NOARCH/2015.1.main/201510051543 This includes a first implementation of the Helix Cloud integration with Helix Sync. |
||
#48 | 16007 | tjuricek |
HWS/NOARCH/2015.1.main/201510011648 Documentation updates for the new default parameter to getting the latest helix sync client |
||
#47 | 15994 | tjuricek | HWS/NOARCH/2015.1.main/201509302210 | ||
#46 | 15975 | tjuricek |
HWS/NOARCH/2015.1.main/201509291925 Add support for repo creation/update and deletion, same for SSH keys. Add util module for supporting methods, modify temp client to dissapear. (Modified submit of review 15549 by @ptomiak) |
||
#45 | 15962 | tjuricek | HWS/NOARCH/2015.1.main/201509290120 | ||
#44 | 15895 | tjuricek | HWS/NOARCH/2015.1.main/201509242158 | ||
#43 | 15887 | tjuricek | HWS/NOARCH/2015.1.main/201509241712 | ||
#42 | 15874 | tjuricek | HWS/NOARCH/2015.1.main/201509232127 | ||
#41 | 15867 | tjuricek | HWS/NOARCH/2015.1.main/201509230120 | ||
#40 | 15836 | tjuricek | HWS/NOARCH/2015.1.main/201509221612 | ||
#39 | 15826 | tjuricek | HWS/NOARCH/2015.1.main/201509212055 | ||
#38 | 15783 | tjuricek | HWS/NOARCH/2015.1.main/201509180120 | ||
#37 | 15769 | tjuricek | HWS/NOARCH/2015.1.main/201509170120 | ||
#36 | 15758 | tjuricek | HWS/NOARCH/2015.1.main/201509161743 | ||
#35 | 15737 | tjuricek | HWS/NOARCH/2015.1.main/201509150120 | ||
#34 | 15708 | tjuricek | HWS/NOARCH/2015.1.main/201509140120 | ||
#33 | 15699 | tjuricek | HWS/NOARCH/2015.1.main/201509111845 | ||
#32 | 15690 | tjuricek | HWS/NOARCH/2015.1.main/201509110141 | ||
#31 | 15676 | tjuricek | HWS/NOARCH/2015.1.main/201509092205 | ||
#30 | 15589 | tjuricek | Update path to test output and update docs. | ||
#29 | 15542 | tjuricek |
Add spaces to our basic 'component encode' mechanism, and use it for HVE project IDs. In general, this will make the HVE IDs a bit more readable. |
||
#28 | 15517 | tjuricek | Do not require changelist ID for submitting Helix Sync pending changelists. | ||
#27 | 15499 | tjuricek | Naive implementation of helix sync project submit for "helix versioning engine projects". | ||
#26 | 15487 | tjuricek | Add basic ability to create pending changelists for helix sync projects. | ||
#25 | 15479 | tjuricek | Added a basic "HVE project" implementation for creating clients. | ||
#24 | 15447 | tjuricek |
Add simple Example application to list "projects" in a HVE instance. Qt's a little weird to follow, so I may have to find a different kind of example to write. It does work, however. |
||
#23 | 15240 | tjuricek |
Set api level via request path on all Helix Versioning Engine methods. This will allow migration of applications to different P4D versions. Our internal methods (like project API) should attempt to handle backward compatibility similarly. P4WEBAPI-118 |
||
#22 | 15228 | tjuricek | Revise triggers implementation, tests, and documentation. | ||
#21 | 15227 | tjuricek |
Revise implementation, tests, and documentation for protections management. Remove some specs I will not be revising from the helix_web_services project. |
||
#20 | 15225 | tjuricek |
Revise counter implementation, tests, and documentation Wasn't available in the Ruby client before, so, it's now available. |
||
#19 | 15222 | tjuricek |
Revise server specs testing and documentation. Note: also fixed issues with setting P4PORT via headers. For whatever reason, the host setting doesn't seem to work like I expect it to, though P4PORT works just fine. |
||
#18 | 15211 | tjuricek | Implement tests and documentation for label spec management. | ||
#17 | 15210 | tjuricek | Implement tests and documentation for job spec management. | ||
#16 | 15209 | tjuricek | Implement tests and documentation for group spec management. | ||
#15 | 15208 | tjuricek |
Revise 'command' implementation, tests, and documentaiton. This includes a change from a command blacklist to a whitelist. See P4WEBAPI-21 |
||
#14 | 15205 | tjuricek | Implemented tests and documentation for depot spec editing. | ||
#13 | 15189 | tjuricek | Update files implementation, testing, and documentation. | ||
#12 | 15185 | tjuricek | Update user spec management implementation, tests, and documentation. | ||
#11 | 15144 | tjuricek |
Setup stream spec tests and documentation. Also revised the documentation folder http_p4_web_api -> helix_versioning_engine |
||
#10 | 15132 | tjuricek | Provde a basic submit -e mechanism on classic perforce workspaces. | ||
#9 | 15110 | tjuricek | Revise changes methods for new p4 connection handling, add server specs, remove model references in client, and update asciidoc documentation. | ||
#8 | 15099 | tjuricek | Revise project services to be our simple 'container' for other systems. | ||
#7 | 15098 | tjuricek |
Revised project services to GET-only forms. With Helix Sync revising to integrate purely with Helix Cloud, this is the only thing we can reasonably define. |
||
#6 | 15090 | tjuricek |
Update _proposed_ API for project services. This is *very likely* to change, and will not be implemented until reviewed. |
||
#5 | 15078 | tjuricek |
clients spec method revisions Updated some other documentation. |
||
#4 | 15077 | tjuricek |
Add new 'model' technique, revised branch spec operations, test Auth::Middleware. The Ruby client now does *not* strictly type anything, but extends OpenStruct with helper methods to help deal with inconsistent data formats. See the OpenModel class documentation for more details. The Auth::Middleware class is also *finally* implemented as well. This does not take into account all possible variations of server behavior (yet), but that will happen in follow-up work. |
||
#3 | 15073 | tjuricek | Update Auth::Middleware and add spec | ||
#2 | 15053 | tjuricek |
Revise the client API to use the new login method. The current specs will need to be revised since data normalization is moving out of the server and into the client. |
||
#1 | 15038 | tjuricek | Document 'login' auth method and client programming overview. |