<!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: Patman — 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#!Patman.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 (P)</a> » <span class="title">Patman</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: Patman </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">Patman</li> </ul> <a href="#" class="inheritanceTree">show all</a> </dd> <dt class="r2 last">Defined in:</dt> <dd class="r2 last">lib/patman.rb<span class="defines">,<br /> lib/version.rb</span> </dd> </dl> <div class="clear"></div> <h2>Overview</h2><div class="docstring"> <div class="discussion"> <h1 id="label-Patman">Patman</h1> <h2 id="label-Introduction">Introduction</h2> <p><span class='object_link'><a href="" title="Patman (class)">Patman</a></span> (Patch Manipulator) is a library for text file patching. It can also be used to extract information from files.</p> <p>Typical <span class='object_link'><a href="" title="Patman (class)">Patman</a></span> script opens a file for editing. The file is read into the library. User finds the place for editing either with Regexp searches or with direct line numbers. The file content is edited by adding, removing, or replacing lines. When all edits are done, the updated file content is written to disk.</p> <p>All editing commands refer to the “current position”. Current position is returned by “line” method. Positions refer to lines that have content. If user wants append to the end of file, then user should jump to last line, with “lastline” method, and then issue “append”. It is also possible to jump to arbitrary lines, <span class='object_link'><a href="" title="Patman (class)">Patman</a></span> does not prevent this. The line positions are just used as an index to Array. For example negative line number will refer from end towards beginning in content.</p> <p>Position can be explicitly changed with “step”, “firstline”, or “lastline” methods (commands). “find” changes position if the pattern is found in selected direction. “append” changes position implicitly with every call.</p> <p>Current line content is returned by “get” and it can be set with “set” method. Current line content can be replaced with “sub”.</p> <p><span class='object_link'><a href="" title="Patman (class)">Patman</a></span> includes many query commands: line, lines, [], get, find, get_range, get_for. They all return the queried item. All other methods return <span class='object_link'><a href="" title="Patman (class)">Patman</a></span> object itself, hence many <span class='object_link'><a href="" title="Patman (class)">Patman</a></span> methods can be “chained”.</p> <p>Block commands perform commands over a range of lines. Block commands are: do_all, do_range, and do_for. These retain the original position, but the final position is stored (actually one after) and it can be activated by calling “blockline” method.</p> <p>Block commands take a pre-defined number of lines to process. Note that, if user deletes lines in block action, the outcome is most likely not what the user expects.</p> <p>Mark feature can be used if user wants to return back to original position after changes. Mark features includes a “default mark” and “named marks”.</p> <p>For debugging purposes it is good to see line content. “view” and “view_ln” can be used to view line content either without or with line numbers respectively.</p> <p>No changes are stored to disk unless “write” is called. If user want to create a “backup” of the edited file, the “copy” method can be used before any editing commands have been applied.</p> <h2 id="label-Example+session">Example session</h2> <pre class="code ruby"><code class="ruby"><span class='comment'># Open file for reading. </span><span class='id identifier rubyid_r'>r</span> <span class='op'>=</span> <span class='const'>Patman</span><span class='period'>.</span><span class='id identifier rubyid_read'>read</span><span class='lparen'>(</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>report.txt</span><span class='tstring_end'>"</span></span> <span class='rparen'>)</span> <span class='comment'># Backup file and find next line with "cpp", method chaining. </span><span class='id identifier rubyid_r'>r</span><span class='period'>.</span><span class='id identifier rubyid_copy'>copy</span><span class='lparen'>(</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>report.txt.org</span><span class='tstring_end'>"</span></span> <span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_find'>find</span><span class='lparen'>(</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>cpp</span><span class='regexp_end'>/</span></span> <span class='rparen'>)</span> <span class='comment'># Collect some lines. </span><span class='id identifier rubyid_data'>data</span> <span class='op'>=</span> <span class='int'>4</span><span class='period'>.</span><span class='id identifier rubyid_times'>times</span><span class='period'>.</span><span class='id identifier rubyid_collect'>collect</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_i'>i</span><span class='op'>|</span> <span class='id identifier rubyid_r'>r</span><span class='period'>.</span><span class='id identifier rubyid_ref'>ref</span><span class='lparen'>(</span> <span class='id identifier rubyid_r'>r</span><span class='period'>.</span><span class='id identifier rubyid_line'>line</span> <span class='op'>+</span> <span class='id identifier rubyid_i'>i</span> <span class='rparen'>)</span> <span class='kw'>end</span> <span class='comment'># Duplicate the lines collected. </span><span class='id identifier rubyid_r'>r</span><span class='period'>.</span><span class='id identifier rubyid_insert'>insert</span><span class='lparen'>(</span> <span class='id identifier rubyid_data'>data</span> <span class='rparen'>)</span> <span class='comment'># Move to line 9. </span><span class='id identifier rubyid_r'>r</span><span class='period'>.</span><span class='id identifier rubyid_line'>line</span> <span class='int'>9</span> <span class='comment'># Append " Hello" to the end of current line. </span><span class='id identifier rubyid_r'>r</span><span class='period'>.</span><span class='id identifier rubyid_set'>set</span><span class='lparen'>(</span> <span class='id identifier rubyid_r'>r</span><span class='period'>.</span><span class='id identifier rubyid_get'>get</span> <span class='op'>+</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'> Hello</span><span class='tstring_end'>"</span></span> <span class='rparen'>)</span> <span class='comment'># Save changes. </span><span class='id identifier rubyid_r'>r</span><span class='period'>.</span><span class='id identifier rubyid_write'>write</span> </code></pre> </div> </div> <div class="tags"> </div><h2>Defined Under Namespace</h2> <p class="children"> <strong class="classes">Classes:</strong> <span class='object_link'><a href="Patman/PatmanError.html" title="Patman::PatmanError (class)">PatmanError</a></span>, <span class='object_link'><a href="Patman/PatmanFileError.html" title="Patman::PatmanFileError (class)">PatmanFileError</a></span>, <span class='object_link'><a href="Patman/PatmanSearchError.html" title="Patman::PatmanSearchError (class)">PatmanSearchError</a></span> </p> <h2>Constant Summary</h2> <dl class="constants"> <dt id="VERSION-constant" class="">VERSION = </dt> <dd><pre class="code"><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>0.0.1</span><span class='tstring_end'>"</span></span></pre></dd> </dl> <h2>Instance Attribute Summary <small>(<a href="#" class="summary_toggle">collapse</a>)</small></h2> <ul class="summary"> <li class="public "> <span class="summary_signature"> <a href="#marks-instance_method" title="#marks (instance method)">- (Object) <strong>marks</strong> </a> </span> <span class="summary_desc"><div class='inline'> <p>Returns the value of attribute marks.</p> </div></span> </li> </ul> <h2> Class Method Summary <small>(<a href="#" class="summary_toggle">collapse</a>)</small> </h2> <ul class="summary"> <li class="public "> <span class="summary_signature"> <a href="#read-class_method" title="read (class method)">+ (Object) <strong>read</strong>(file) </a> </span> <span class="summary_desc"><div class='inline'> <p>Create editing session with file.</p> </div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#version-class_method" title="version (class method)">+ (Object) <strong>version</strong> </a> </span> <span class="summary_desc"><div class='inline'></div></span> </li> </ul> <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="#%5B%5D-instance_method" title="#[] (instance method)">- (Object) <strong>[]</strong>(range) </a> </span> <span class="summary_desc"><div class='inline'> <p>Reference <span class='object_link'><a href="" title="Patman (class)">Patman</a></span> content by range.</p> </div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#append-instance_method" title="#append (instance method)">- (Object) <strong>append</strong>(text = nil) </a> </span> <span class="summary_desc"><div class='inline'> <p>Append after current position.</p> </div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#blockline-instance_method" title="#blockline (instance method)">- (Object) <strong>blockline</strong> </a> </span> <span class="summary_desc"><div class='inline'> <p>Jump to line after block.</p> </div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#clear-instance_method" title="#clear (instance method)">- (Object) <strong>clear</strong> </a> </span> <span class="summary_desc"><div class='inline'> <p>Clear <span class='object_link'><a href="" title="Patman (class)">Patman</a></span> content and reset current line.</p> </div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#copy-instance_method" title="#copy (instance method)">- (Object) <strong>copy</strong>(file) </a> </span> <span class="summary_desc"><div class='inline'> <p>Copy <span class='object_link'><a href="" title="Patman (class)">Patman</a></span> content to file.</p> </div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#delete-instance_method" title="#delete (instance method)">- (Object) <strong>delete</strong>(count = 1) </a> </span> <span class="summary_desc"><div class='inline'> <p>Delete current line.</p> </div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#do_all-instance_method" title="#do_all (instance method)">- (Object) <strong>do_all</strong>(&blk) </a> </span> <span class="summary_desc"><div class='inline'> <p>Execute given block for all lines, i.e.</p> </div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#do_for-instance_method" title="#do_for (instance method)">- (Object) <strong>do_for</strong>(start, count, &blk) </a> </span> <span class="summary_desc"><div class='inline'> <p>Execute given block starting from start by count, and update position.</p> </div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#do_range-instance_method" title="#do_range (instance method)">- (Object) <strong>do_range</strong>(start, stop, &blk) </a> </span> <span class="summary_desc"><div class='inline'> <p>Execute given block between start and stop positions, and update position.</p> </div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#edit-instance_method" title="#edit (instance method)">- (Object) <strong>edit</strong> </a> </span> <span class="summary_desc"><div class='inline'> <p>Mark content modified (explicit).</p> </div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#edited%3F-instance_method" title="#edited? (instance method)">- (Boolean) <strong>edited?</strong> </a> </span> <span class="summary_desc"><div class='inline'> <p>Return true if content is modified.</p> </div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#excursion-instance_method" title="#excursion (instance method)">- (Object) <strong>excursion</strong>(&blk) </a> </span> <span class="summary_desc"><div class='inline'> <p>Execute block, retain current position, and return block value.</p> </div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#filename-instance_method" title="#filename (instance method)">- (Object) <strong>filename</strong> </a> </span> <span class="summary_desc"><div class='inline'> <p>Return <span class='object_link'><a href="" title="Patman (class)">Patman</a></span> file name.</p> </div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#find-instance_method" title="#find (instance method)">- (Object) <strong>find</strong>(re_or_str, forward = true) </a> </span> <span class="summary_desc"><div class='inline'> <p>Find Regexp or literal string forwards or backwards.</p> </div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#firstline-instance_method" title="#firstline (instance method)">- (Object) <strong>firstline</strong> </a> </span> <span class="summary_desc"><div class='inline'> <p>Jump to first line.</p> </div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#get-instance_method" title="#get (instance method)">- (Object) <strong>get</strong>(count = 1) </a> </span> <span class="summary_desc"><div class='inline'> <p>Get current line or lines by count.</p> </div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#get_for-instance_method" title="#get_for (instance method)">- (Object) <strong>get_for</strong>(start, count) </a> </span> <span class="summary_desc"><div class='inline'> <p>Get lines starting from start by count.</p> </div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#get_range-instance_method" title="#get_range (instance method)">- (Object) <strong>get_range</strong>(start, stop) </a> </span> <span class="summary_desc"><div class='inline'> <p>Get lines between start and stop positions inclusive.</p> </div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#initialize-instance_method" title="#initialize (instance method)">- (Patman) <strong>initialize</strong>(file) </a> </span> <span class="note title constructor">constructor</span> <span class="summary_desc"><div class='inline'> <p>Create <span class='object_link'><a href="" title="Patman (class)">Patman</a></span> object.</p> </div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#insert-instance_method" title="#insert (instance method)">- (Object) <strong>insert</strong>(text = nil) </a> </span> <span class="summary_desc"><div class='inline'> <p>Insert line or lines (Array) to current position.</p> </div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#insertfile-instance_method" title="#insertfile (instance method)">- (Object) <strong>insertfile</strong>(file) </a> </span> <span class="summary_desc"><div class='inline'> <p>Insert file to current position.</p> </div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#lastline-instance_method" title="#lastline (instance method)">- (Object) <strong>lastline</strong> </a> </span> <span class="summary_desc"><div class='inline'> <p>Jump to last line.</p> </div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#length-instance_method" title="#length (instance method)">- (Object) <strong>length</strong> </a> </span> <span class="summary_desc"><div class='inline'> <p>Return line count of <span class='object_link'><a href="" title="Patman (class)">Patman</a></span> content.</p> </div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#line-instance_method" title="#line (instance method)">- (Object) <strong>line</strong>(arg = nil) </a> </span> <span class="summary_desc"><div class='inline'> <p>Return or set line.</p> </div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#lines-instance_method" title="#lines (instance method)">- (Object) <strong>lines</strong>(arg = nil) </a> </span> <span class="summary_desc"><div class='inline'> <p>Get or set all <span class='object_link'><a href="" title="Patman (class)">Patman</a></span> content.</p> </div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#mark-instance_method" title="#mark (instance method)">- (Object) <strong>mark</strong>(tag = nil) </a> </span> <span class="summary_desc"><div class='inline'> <p>Mark (store) current position to default or to named mark.</p> </div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#peek-instance_method" title="#peek (instance method)">- (Object) <strong>peek</strong>(count = 0) </a> </span> <span class="summary_desc"><div class='inline'> <p>View line content around current position (by count).</p> </div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#peek_ln-instance_method" title="#peek_ln (instance method)">- (Object) <strong>peek_ln</strong>(count = 0) </a> </span> <span class="summary_desc"><div class='inline'> <p>View line content with line numbers around current position (by count).</p> </div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#read-instance_method" title="#read (instance method)">- (Object) <strong>read</strong> </a> </span> <span class="summary_desc"><div class='inline'> <p>Read file in.</p> </div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#ref-instance_method" title="#ref (instance method)">- (Object) <strong>ref</strong>(line = nil) </a> </span> <span class="summary_desc"><div class='inline'> <p>Get current line or any line.</p> </div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#search-instance_method" title="#search (instance method)">- (Object) <strong>search</strong>(re_or_str, forward = true) </a> </span> <span class="summary_desc"><div class='inline'> <p>Search Regexp or literal string forwards or backwards.</p> </div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#set-instance_method" title="#set (instance method)">- (Object) <strong>set</strong>(text) </a> </span> <span class="summary_desc"><div class='inline'> <p>Set current line.</p> </div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#step-instance_method" title="#step (instance method)">- (Object) <strong>step</strong>(dir = 1) </a> </span> <span class="summary_desc"><div class='inline'> <p>Step forward or backward current position.</p> </div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#sub-instance_method" title="#sub (instance method)">- (Object) <strong>sub</strong>(from, to) </a> </span> <span class="summary_desc"><div class='inline'> <p>Substitution in current line.</p> </div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#unmark-instance_method" title="#unmark (instance method)">- (Object) <strong>unmark</strong>(tag = nil) </a> </span> <span class="summary_desc"><div class='inline'> <p>Unmark (restore) current position from default or from named mark.</p> </div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#update-instance_method" title="#update (instance method)">- (Object) <strong>update</strong>(&blk) </a> </span> <span class="summary_desc"><div class='inline'> <p>Update current line content (i.e. get&set) with the return value of the given block.</p> </div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#view-instance_method" title="#view (instance method)">- (Object) <strong>view</strong>(arg1 = nil, arg2 = nil) </a> </span> <span class="summary_desc"><div class='inline'> <p>View line content.</p> </div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#view_ln-instance_method" title="#view_ln (instance method)">- (Object) <strong>view_ln</strong>(arg1 = nil, arg2 = nil) </a> </span> <span class="summary_desc"><div class='inline'> <p>View line content with line numbers.</p> </div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#write-instance_method" title="#write (instance method)">- (Object) <strong>write</strong>(file = @file) </a> </span> <span class="summary_desc"><div class='inline'> <p>Write <span class='object_link'><a href="" title="Patman (class)">Patman</a></span> content to disk.</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="Patman (class)">Patman</a></span></tt>) <strong>initialize</strong>(file) </h3><div class="docstring"> <div class="discussion"> <p>Create <span class='object_link'><a href="" title="Patman (class)">Patman</a></span> object.</p> </div> </div> <div class="tags"> </div><table class="source_code"> <tr> <td> <pre class="lines"> 106 107 108 109 110 111 112 113 114</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/patman.rb', line 106</span> <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span> <span class='id identifier rubyid_file'>file</span> <span class='rparen'>)</span> <span class='ivar'>@file</span> <span class='op'>=</span> <span class='id identifier rubyid_file'>file</span> <span class='ivar'>@lines</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span> <span class='ivar'>@line</span> <span class='op'>=</span> <span class='int'>0</span> <span class='ivar'>@mark</span> <span class='op'>=</span> <span class='kw'>nil</span> <span class='ivar'>@marks</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span> <span class='ivar'>@blockline</span> <span class='op'>=</span> <span class='kw'>nil</span> <span class='ivar'>@edited</span> <span class='op'>=</span> <span class='kw'>false</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> </div> <div id="instance_attr_details" class="attr_details"> <h2>Instance Attribute Details</h2> <span id="marks=-instance_method"></span> <div class="method_details first"> <h3 class="signature first" id="marks-instance_method"> - (<tt>Object</tt>) <strong>marks</strong> </h3><div class="docstring"> <div class="discussion"> <p>Returns the value of attribute marks</p> </div> </div> <div class="tags"> </div><table class="source_code"> <tr> <td> <pre class="lines"> 95 96 97</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/patman.rb', line 95</span> <span class='kw'>def</span> <span class='id identifier rubyid_marks'>marks</span> <span class='ivar'>@marks</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> </div> <div id="class_method_details" class="method_details_list"> <h2>Class Method Details</h2> <div class="method_details first"> <h3 class="signature first" id="read-class_method"> + (<tt>Object</tt>) <strong>read</strong>(file) </h3><div class="docstring"> <div class="discussion"> <p>Create editing session with file.</p> </div> </div> <div class="tags"> </div><table class="source_code"> <tr> <td> <pre class="lines"> 99 100 101 102 103</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/patman.rb', line 99</span> <span class='kw'>def</span> <span class='const'>Patman</span><span class='period'>.</span><span class='id identifier rubyid_read'>read</span><span class='lparen'>(</span> <span class='id identifier rubyid_file'>file</span> <span class='rparen'>)</span> <span class='id identifier rubyid_p'>p</span> <span class='op'>=</span> <span class='const'>Patman</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span> <span class='id identifier rubyid_file'>file</span> <span class='rparen'>)</span> <span class='id identifier rubyid_p'>p</span><span class='period'>.</span><span class='id identifier rubyid_read'>read</span> <span class='id identifier rubyid_p'>p</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <h3 class="signature " id="version-class_method"> + (<tt>Object</tt>) <strong>version</strong> </h3><table class="source_code"> <tr> <td> <pre class="lines"> 3 4 5</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/version.rb', line 3</span> <span class='kw'>def</span> <span class='const'>Patman</span><span class='period'>.</span><span class='id identifier rubyid_version'>version</span> <span class='const'>Patman</span><span class='op'>::</span><span class='const'>VERSION</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="[]-instance_method"> - (<tt>Object</tt>) <strong>[]</strong>(range) </h3><div class="docstring"> <div class="discussion"> <p>Reference <span class='object_link'><a href="" title="Patman (class)">Patman</a></span> content by range.</p> </div> </div> <div class="tags"> </div><table class="source_code"> <tr> <td> <pre class="lines"> 194 195 196</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/patman.rb', line 194</span> <span class='kw'>def</span> <span class='op'>[]</span><span class='lparen'>(</span> <span class='id identifier rubyid_range'>range</span> <span class='rparen'>)</span> <span class='ivar'>@lines</span><span class='lbracket'>[</span> <span class='id identifier rubyid_range'>range</span> <span class='rbracket'>]</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <h3 class="signature " id="append-instance_method"> - (<tt>Object</tt>) <strong>append</strong>(text = nil) </h3><div class="docstring"> <div class="discussion"> <p>Append after current position.</p> </div> </div> <div class="tags"> </div><table class="source_code"> <tr> <td> <pre class="lines"> 263 264 265 266 267 268 269 270 271 272 273 274</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/patman.rb', line 263</span> <span class='kw'>def</span> <span class='id identifier rubyid_append'>append</span><span class='lparen'>(</span> <span class='id identifier rubyid_text'>text</span> <span class='op'>=</span> <span class='kw'>nil</span> <span class='rparen'>)</span> <span class='ivar'>@edited</span> <span class='op'>=</span> <span class='kw'>true</span> <span class='kw'>if</span> <span class='id identifier rubyid_text'>text</span><span class='period'>.</span><span class='id identifier rubyid_kind_of?'>kind_of?</span> <span class='const'>Array</span> <span class='id identifier rubyid_text'>text</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_txt'>txt</span><span class='op'>|</span> <span class='id identifier rubyid_append'>append</span><span class='lparen'>(</span> <span class='id identifier rubyid_txt'>txt</span> <span class='rparen'>)</span> <span class='kw'>end</span> <span class='kw'>else</span> <span class='id identifier rubyid_step'>step</span> <span class='ivar'>@lines</span><span class='period'>.</span><span class='id identifier rubyid_insert'>insert</span><span class='lparen'>(</span> <span class='ivar'>@line</span><span class='comma'>,</span> <span class='id identifier rubyid_text'>text</span> <span class='rparen'>)</span> <span class='kw'>end</span> <span class='kw'>self</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <h3 class="signature " id="blockline-instance_method"> - (<tt>Object</tt>) <strong>blockline</strong> </h3><div class="docstring"> <div class="discussion"> <p>Jump to line after block.</p> </div> </div> <div class="tags"> </div><table class="source_code"> <tr> <td> <pre class="lines"> 176 177 178 179 180 181</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/patman.rb', line 176</span> <span class='kw'>def</span> <span class='id identifier rubyid_blockline'>blockline</span> <span class='kw'>if</span> <span class='ivar'>@blockline</span> <span class='ivar'>@line</span> <span class='op'>=</span> <span class='ivar'>@blockline</span> <span class='kw'>end</span> <span class='kw'>self</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <h3 class="signature " id="clear-instance_method"> - (<tt>Object</tt>) <strong>clear</strong> </h3><div class="docstring"> <div class="discussion"> <p>Clear <span class='object_link'><a href="" title="Patman (class)">Patman</a></span> content and reset current line.</p> </div> </div> <div class="tags"> </div><table class="source_code"> <tr> <td> <pre class="lines"> 296 297 298 299 300 301</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/patman.rb', line 296</span> <span class='kw'>def</span> <span class='id identifier rubyid_clear'>clear</span> <span class='ivar'>@edited</span> <span class='op'>=</span> <span class='kw'>true</span> <span class='ivar'>@lines</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span> <span class='ivar'>@line</span> <span class='op'>=</span> <span class='int'>0</span> <span class='kw'>self</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <h3 class="signature " id="copy-instance_method"> - (<tt>Object</tt>) <strong>copy</strong>(file) </h3><div class="docstring"> <div class="discussion"> <p>Copy <span class='object_link'><a href="" title="Patman (class)">Patman</a></span> content to file.</p> </div> </div> <div class="tags"> </div><table class="source_code"> <tr> <td> <pre class="lines"> 142 143 144 145</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/patman.rb', line 142</span> <span class='kw'>def</span> <span class='id identifier rubyid_copy'>copy</span><span class='lparen'>(</span> <span class='id identifier rubyid_file'>file</span> <span class='rparen'>)</span> <span class='id identifier rubyid_write'>write</span><span class='lparen'>(</span> <span class='id identifier rubyid_file'>file</span> <span class='rparen'>)</span> <span class='kw'>self</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <h3 class="signature " id="delete-instance_method"> - (<tt>Object</tt>) <strong>delete</strong>(count = 1) </h3><div class="docstring"> <div class="discussion"> <p>Delete current line.</p> </div> </div> <div class="tags"> </div><table class="source_code"> <tr> <td> <pre class="lines"> 277 278 279 280 281 282 283</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/patman.rb', line 277</span> <span class='kw'>def</span> <span class='id identifier rubyid_delete'>delete</span><span class='lparen'>(</span> <span class='id identifier rubyid_count'>count</span> <span class='op'>=</span> <span class='int'>1</span> <span class='rparen'>)</span> <span class='ivar'>@edited</span> <span class='op'>=</span> <span class='kw'>true</span> <span class='id identifier rubyid_count'>count</span><span class='period'>.</span><span class='id identifier rubyid_times'>times</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_i'>i</span><span class='op'>|</span> <span class='ivar'>@lines</span><span class='period'>.</span><span class='id identifier rubyid_delete_at'>delete_at</span><span class='lparen'>(</span> <span class='ivar'>@line</span> <span class='rparen'>)</span> <span class='kw'>end</span> <span class='kw'>self</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <h3 class="signature " id="do_all-instance_method"> - (<tt>Object</tt>) <strong>do_all</strong>(&blk) </h3><div class="docstring"> <div class="discussion"> <p>Execute given block for all lines, i.e. all positions. Block parameter is <span class='object_link'><a href="" title="Patman (class)">Patman</a></span>.</p> </div> </div> <div class="tags"> </div><table class="source_code"> <tr> <td> <pre class="lines"> 377 378 379</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/patman.rb', line 377</span> <span class='kw'>def</span> <span class='id identifier rubyid_do_all'>do_all</span><span class='lparen'>(</span> <span class='op'>&</span><span class='id identifier rubyid_blk'>blk</span> <span class='rparen'>)</span> <span class='id identifier rubyid_do_for'>do_for</span><span class='lparen'>(</span> <span class='int'>1</span><span class='comma'>,</span> <span class='id identifier rubyid_length'>length</span><span class='op'>-</span><span class='int'>1</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_blk'>blk</span> <span class='rparen'>)</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <h3 class="signature " id="do_for-instance_method"> - (<tt>Object</tt>) <strong>do_for</strong>(start, count, &blk) </h3><div class="docstring"> <div class="discussion"> <p>Execute given block starting from start by count, and update position.</p> </div> </div> <div class="tags"> </div><table class="source_code"> <tr> <td> <pre class="lines"> 389 390 391 392 393 394 395 396 397 398 399</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/patman.rb', line 389</span> <span class='kw'>def</span> <span class='id identifier rubyid_do_for'>do_for</span><span class='lparen'>(</span> <span class='id identifier rubyid_start'>start</span><span class='comma'>,</span> <span class='id identifier rubyid_count'>count</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_blk'>blk</span> <span class='rparen'>)</span> <span class='id identifier rubyid_line'>line</span> <span class='op'>=</span> <span class='ivar'>@line</span> <span class='ivar'>@line</span> <span class='op'>=</span> <span class='id identifier rubyid_start'>start</span><span class='op'>-</span><span class='int'>1</span> <span class='id identifier rubyid_count'>count</span><span class='period'>.</span><span class='id identifier rubyid_times'>times</span> <span class='kw'>do</span> <span class='kw'>yield</span> <span class='kw'>self</span> <span class='ivar'>@line</span> <span class='op'>+=</span> <span class='int'>1</span> <span class='kw'>end</span> <span class='ivar'>@blockline</span> <span class='op'>=</span> <span class='ivar'>@line</span> <span class='ivar'>@line</span> <span class='op'>=</span> <span class='id identifier rubyid_line'>line</span> <span class='kw'>self</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <h3 class="signature " id="do_range-instance_method"> - (<tt>Object</tt>) <strong>do_range</strong>(start, stop, &blk) </h3><div class="docstring"> <div class="discussion"> <p>Execute given block between start and stop positions, and update position.</p> </div> </div> <div class="tags"> </div><table class="source_code"> <tr> <td> <pre class="lines"> 383 384 385</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/patman.rb', line 383</span> <span class='kw'>def</span> <span class='id identifier rubyid_do_range'>do_range</span><span class='lparen'>(</span> <span class='id identifier rubyid_start'>start</span><span class='comma'>,</span> <span class='id identifier rubyid_stop'>stop</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_blk'>blk</span> <span class='rparen'>)</span> <span class='id identifier rubyid_do_for'>do_for</span><span class='lparen'>(</span> <span class='id identifier rubyid_start'>start</span><span class='comma'>,</span> <span class='lparen'>(</span><span class='id identifier rubyid_stop'>stop</span><span class='op'>-</span><span class='id identifier rubyid_start'>start</span><span class='op'>+</span><span class='int'>1</span><span class='rparen'>)</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_blk'>blk</span> <span class='rparen'>)</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <h3 class="signature " id="edit-instance_method"> - (<tt>Object</tt>) <strong>edit</strong> </h3><div class="docstring"> <div class="discussion"> <p>Mark content modified (explicit).</p> </div> </div> <div class="tags"> </div><table class="source_code"> <tr> <td> <pre class="lines"> 332 333 334</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/patman.rb', line 332</span> <span class='kw'>def</span> <span class='id identifier rubyid_edit'>edit</span> <span class='ivar'>@edited</span> <span class='op'>=</span> <span class='kw'>true</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <h3 class="signature " id="edited?-instance_method"> - (<tt>Boolean</tt>) <strong>edited?</strong> </h3><div class="docstring"> <div class="discussion"> <p>Return true if content is modified.</p> </div> </div> <div class="tags"> <p class="tag_title">Returns:</p> <ul class="return"> <li> <span class='type'>(<tt>Boolean</tt>)</span> </li> </ul> </div><table class="source_code"> <tr> <td> <pre class="lines"> 337 338 339</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/patman.rb', line 337</span> <span class='kw'>def</span> <span class='id identifier rubyid_edited?'>edited?</span> <span class='ivar'>@edited</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <h3 class="signature " id="excursion-instance_method"> - (<tt>Object</tt>) <strong>excursion</strong>(&blk) </h3><div class="docstring"> <div class="discussion"> <p>Execute block, retain current position, and return block value.</p> </div> </div> <div class="tags"> </div><table class="source_code"> <tr> <td> <pre class="lines"> 342 343 344 345 346 347</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/patman.rb', line 342</span> <span class='kw'>def</span> <span class='id identifier rubyid_excursion'>excursion</span><span class='lparen'>(</span> <span class='op'>&</span><span class='id identifier rubyid_blk'>blk</span> <span class='rparen'>)</span> <span class='id identifier rubyid_line'>line</span> <span class='op'>=</span> <span class='ivar'>@line</span> <span class='id identifier rubyid_ret'>ret</span> <span class='op'>=</span> <span class='id identifier rubyid_instance_eval'>instance_eval</span><span class='lparen'>(</span> <span class='op'>&</span><span class='id identifier rubyid_blk'>blk</span> <span class='rparen'>)</span> <span class='ivar'>@line</span> <span class='op'>=</span> <span class='id identifier rubyid_line'>line</span> <span class='id identifier rubyid_ret'>ret</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <h3 class="signature " id="filename-instance_method"> - (<tt>Object</tt>) <strong>filename</strong> </h3><div class="docstring"> <div class="discussion"> <p>Return <span class='object_link'><a href="" title="Patman (class)">Patman</a></span> file name.</p> </div> </div> <div class="tags"> </div><table class="source_code"> <tr> <td> <pre class="lines"> 327 328 329</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/patman.rb', line 327</span> <span class='kw'>def</span> <span class='id identifier rubyid_filename'>filename</span> <span class='ivar'>@file</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <h3 class="signature " id="find-instance_method"> - (<tt>Object</tt>) <strong>find</strong>(re_or_str, forward = true) </h3><div class="docstring"> <div class="discussion"> <p>Find Regexp or literal string forwards or backwards. Return true on success.</p> </div> </div> <div class="tags"> </div><table class="source_code"> <tr> <td> <pre class="lines"> 305 306 307 308 309 310 311 312</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/patman.rb', line 305</span> <span class='kw'>def</span> <span class='id identifier rubyid_find'>find</span><span class='lparen'>(</span> <span class='id identifier rubyid_re_or_str'>re_or_str</span><span class='comma'>,</span> <span class='id identifier rubyid_forward'>forward</span> <span class='op'>=</span> <span class='kw'>true</span> <span class='rparen'>)</span> <span class='kw'>begin</span> <span class='ivar'>@line</span> <span class='op'>=</span> <span class='id identifier rubyid_search_with_exception'>search_with_exception</span><span class='lparen'>(</span> <span class='id identifier rubyid_re_or_str'>re_or_str</span><span class='comma'>,</span> <span class='id identifier rubyid_forward'>forward</span> <span class='rparen'>)</span> <span class='kw'>true</span> <span class='kw'>rescue</span> <span class='kw'>false</span> <span class='kw'>end</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <h3 class="signature " id="firstline-instance_method"> - (<tt>Object</tt>) <strong>firstline</strong> </h3><div class="docstring"> <div class="discussion"> <p>Jump to first line.</p> </div> </div> <div class="tags"> </div><table class="source_code"> <tr> <td> <pre class="lines"> 164 165 166 167</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/patman.rb', line 164</span> <span class='kw'>def</span> <span class='id identifier rubyid_firstline'>firstline</span> <span class='ivar'>@line</span> <span class='op'>=</span> <span class='int'>0</span> <span class='kw'>self</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <h3 class="signature " id="get-instance_method"> - (<tt>Object</tt>) <strong>get</strong>(count = 1) </h3><div class="docstring"> <div class="discussion"> <p>Get current line or lines by count.</p> </div> </div> <div class="tags"> </div><table class="source_code"> <tr> <td> <pre class="lines"> 199 200 201 202 203 204 205</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/patman.rb', line 199</span> <span class='kw'>def</span> <span class='id identifier rubyid_get'>get</span><span class='lparen'>(</span> <span class='id identifier rubyid_count'>count</span> <span class='op'>=</span> <span class='int'>1</span> <span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_count'>count</span> <span class='op'>==</span> <span class='int'>1</span> <span class='ivar'>@lines</span><span class='lbracket'>[</span> <span class='ivar'>@line</span> <span class='rbracket'>]</span> <span class='kw'>else</span> <span class='ivar'>@lines</span><span class='lbracket'>[</span> <span class='ivar'>@line</span> <span class='op'>..</span> <span class='lparen'>(</span><span class='ivar'>@line</span><span class='op'>+</span><span class='id identifier rubyid_count'>count</span><span class='op'>-</span><span class='int'>1</span><span class='rparen'>)</span> <span class='rbracket'>]</span> <span class='kw'>end</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <h3 class="signature " id="get_for-instance_method"> - (<tt>Object</tt>) <strong>get_for</strong>(start, count) </h3><div class="docstring"> <div class="discussion"> <p>Get lines starting from start by count.</p> </div> </div> <div class="tags"> </div><table class="source_code"> <tr> <td> <pre class="lines"> 407 408 409</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/patman.rb', line 407</span> <span class='kw'>def</span> <span class='id identifier rubyid_get_for'>get_for</span><span class='lparen'>(</span> <span class='id identifier rubyid_start'>start</span><span class='comma'>,</span> <span class='id identifier rubyid_count'>count</span> <span class='rparen'>)</span> <span class='ivar'>@lines</span><span class='lbracket'>[</span> <span class='lparen'>(</span><span class='id identifier rubyid_start'>start</span><span class='op'>-</span><span class='int'>1</span><span class='rparen'>)</span> <span class='op'>...</span> <span class='lparen'>(</span><span class='id identifier rubyid_start'>start</span><span class='op'>-</span><span class='int'>1</span><span class='op'>+</span><span class='id identifier rubyid_count'>count</span><span class='rparen'>)</span> <span class='rbracket'>]</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <h3 class="signature " id="get_range-instance_method"> - (<tt>Object</tt>) <strong>get_range</strong>(start, stop) </h3><div class="docstring"> <div class="discussion"> <p>Get lines between start and stop positions inclusive.</p> </div> </div> <div class="tags"> </div><table class="source_code"> <tr> <td> <pre class="lines"> 402 403 404</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/patman.rb', line 402</span> <span class='kw'>def</span> <span class='id identifier rubyid_get_range'>get_range</span><span class='lparen'>(</span> <span class='id identifier rubyid_start'>start</span><span class='comma'>,</span> <span class='id identifier rubyid_stop'>stop</span> <span class='rparen'>)</span> <span class='ivar'>@lines</span><span class='lbracket'>[</span> <span class='lparen'>(</span><span class='id identifier rubyid_start'>start</span><span class='op'>-</span><span class='int'>1</span><span class='rparen'>)</span> <span class='op'>..</span> <span class='lparen'>(</span><span class='id identifier rubyid_stop'>stop</span><span class='op'>-</span><span class='int'>1</span><span class='rparen'>)</span> <span class='rbracket'>]</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <h3 class="signature " id="insert-instance_method"> - (<tt>Object</tt>) <strong>insert</strong>(text = nil) </h3><div class="docstring"> <div class="discussion"> <p>Insert line or lines (Array) to current position.</p> </div> </div> <div class="tags"> </div><table class="source_code"> <tr> <td> <pre class="lines"> 247 248 249 250 251 252 253 254 255 256 257 258 259 260</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/patman.rb', line 247</span> <span class='kw'>def</span> <span class='id identifier rubyid_insert'>insert</span><span class='lparen'>(</span> <span class='id identifier rubyid_text'>text</span> <span class='op'>=</span> <span class='kw'>nil</span> <span class='rparen'>)</span> <span class='ivar'>@edited</span> <span class='op'>=</span> <span class='kw'>true</span> <span class='kw'>if</span> <span class='id identifier rubyid_text'>text</span><span class='period'>.</span><span class='id identifier rubyid_kind_of?'>kind_of?</span> <span class='const'>Array</span> <span class='id identifier rubyid_line'>line</span> <span class='op'>=</span> <span class='ivar'>@line</span> <span class='id identifier rubyid_step'>step</span> <span class='op'>-</span><span class='int'>1</span> <span class='id identifier rubyid_text'>text</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_txt'>txt</span><span class='op'>|</span> <span class='id identifier rubyid_append'>append</span><span class='lparen'>(</span> <span class='id identifier rubyid_txt'>txt</span> <span class='rparen'>)</span> <span class='kw'>end</span> <span class='ivar'>@line</span> <span class='op'>=</span> <span class='id identifier rubyid_line'>line</span> <span class='kw'>else</span> <span class='ivar'>@lines</span><span class='period'>.</span><span class='id identifier rubyid_insert'>insert</span><span class='lparen'>(</span> <span class='ivar'>@line</span><span class='comma'>,</span> <span class='id identifier rubyid_text'>text</span> <span class='rparen'>)</span> <span class='kw'>end</span> <span class='kw'>self</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <h3 class="signature " id="insertfile-instance_method"> - (<tt>Object</tt>) <strong>insertfile</strong>(file) </h3><div class="docstring"> <div class="discussion"> <p>Insert file to current position.</p> </div> </div> <div class="tags"> </div><table class="source_code"> <tr> <td> <pre class="lines"> 286 287 288 289 290 291 292 293</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/patman.rb', line 286</span> <span class='kw'>def</span> <span class='id identifier rubyid_insertfile'>insertfile</span><span class='lparen'>(</span> <span class='id identifier rubyid_file'>file</span> <span class='rparen'>)</span> <span class='ivar'>@edited</span> <span class='op'>=</span> <span class='kw'>true</span> <span class='id identifier rubyid_step'>step</span> <span class='op'>-</span><span class='int'>1</span> <span class='id identifier rubyid_read_clean'>read_clean</span><span class='lparen'>(</span> <span class='id identifier rubyid_file'>file</span> <span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_line'>line</span><span class='op'>|</span> <span class='id identifier rubyid_append'>append</span> <span class='id identifier rubyid_line'>line</span> <span class='kw'>end</span> <span class='kw'>self</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <h3 class="signature " id="lastline-instance_method"> - (<tt>Object</tt>) <strong>lastline</strong> </h3><div class="docstring"> <div class="discussion"> <p>Jump to last line.</p> </div> </div> <div class="tags"> </div><table class="source_code"> <tr> <td> <pre class="lines"> 170 171 172 173</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/patman.rb', line 170</span> <span class='kw'>def</span> <span class='id identifier rubyid_lastline'>lastline</span> <span class='ivar'>@line</span> <span class='op'>=</span> <span class='ivar'>@lines</span><span class='period'>.</span><span class='id identifier rubyid_length'>length</span><span class='op'>-</span><span class='int'>1</span> <span class='kw'>self</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <h3 class="signature " id="length-instance_method"> - (<tt>Object</tt>) <strong>length</strong> </h3><div class="docstring"> <div class="discussion"> <p>Return line count of <span class='object_link'><a href="" title="Patman (class)">Patman</a></span> content.</p> </div> </div> <div class="tags"> </div><table class="source_code"> <tr> <td> <pre class="lines"> 322 323 324</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/patman.rb', line 322</span> <span class='kw'>def</span> <span class='id identifier rubyid_length'>length</span> <span class='ivar'>@lines</span><span class='period'>.</span><span class='id identifier rubyid_length'>length</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <h3 class="signature " id="line-instance_method"> - (<tt>Object</tt>) <strong>line</strong>(arg = nil) </h3><div class="docstring"> <div class="discussion"> <p>Return or set line.</p> </div> </div> <div class="tags"> </div><table class="source_code"> <tr> <td> <pre class="lines"> 148 149 150 151 152 153 154 155</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/patman.rb', line 148</span> <span class='kw'>def</span> <span class='id identifier rubyid_line'>line</span><span class='lparen'>(</span> <span class='id identifier rubyid_arg'>arg</span> <span class='op'>=</span> <span class='kw'>nil</span> <span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_arg'>arg</span> <span class='ivar'>@line</span> <span class='op'>=</span> <span class='lparen'>(</span><span class='id identifier rubyid_arg'>arg</span><span class='op'>-</span><span class='int'>1</span><span class='rparen'>)</span> <span class='kw'>self</span> <span class='kw'>else</span> <span class='ivar'>@line</span><span class='op'>+</span><span class='int'>1</span> <span class='kw'>end</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <h3 class="signature " id="lines-instance_method"> - (<tt>Object</tt>) <strong>lines</strong>(arg = nil) </h3><div class="docstring"> <div class="discussion"> <p>Get or set all <span class='object_link'><a href="" title="Patman (class)">Patman</a></span> content.</p> </div> </div> <div class="tags"> </div><table class="source_code"> <tr> <td> <pre class="lines"> 184 185 186 187 188 189 190 191</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/patman.rb', line 184</span> <span class='kw'>def</span> <span class='id identifier rubyid_lines'>lines</span><span class='lparen'>(</span> <span class='id identifier rubyid_arg'>arg</span> <span class='op'>=</span> <span class='kw'>nil</span> <span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_arg'>arg</span> <span class='ivar'>@edited</span> <span class='op'>=</span> <span class='kw'>true</span> <span class='ivar'>@lines</span> <span class='op'>=</span> <span class='id identifier rubyid_arg'>arg</span> <span class='kw'>else</span> <span class='ivar'>@lines</span> <span class='kw'>end</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <h3 class="signature " id="mark-instance_method"> - (<tt>Object</tt>) <strong>mark</strong>(tag = nil) </h3><div class="docstring"> <div class="discussion"> <p>Mark (store) current position to default or to named mark.</p> </div> </div> <div class="tags"> </div><table class="source_code"> <tr> <td> <pre class="lines"> 350 351 352 353 354 355 356 357 358</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/patman.rb', line 350</span> <span class='kw'>def</span> <span class='id identifier rubyid_mark'>mark</span><span class='lparen'>(</span> <span class='id identifier rubyid_tag'>tag</span> <span class='op'>=</span> <span class='kw'>nil</span> <span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_tag'>tag</span> <span class='ivar'>@marks</span><span class='lbracket'>[</span> <span class='id identifier rubyid_tag'>tag</span> <span class='rbracket'>]</span> <span class='op'>=</span> <span class='ivar'>@line</span><span class='op'>+</span><span class='int'>1</span> <span class='kw'>self</span> <span class='kw'>else</span> <span class='ivar'>@mark</span> <span class='op'>=</span> <span class='ivar'>@line</span><span class='op'>+</span><span class='int'>1</span> <span class='kw'>self</span> <span class='kw'>end</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <h3 class="signature " id="peek-instance_method"> - (<tt>Object</tt>) <strong>peek</strong>(count = 0) </h3><div class="docstring"> <div class="discussion"> <p>View line content around current position (by count).</p> </div> </div> <div class="tags"> </div><table class="source_code"> <tr> <td> <pre class="lines"> 412 413 414 415</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/patman.rb', line 412</span> <span class='kw'>def</span> <span class='id identifier rubyid_peek'>peek</span><span class='lparen'>(</span> <span class='id identifier rubyid_count'>count</span> <span class='op'>=</span> <span class='int'>0</span> <span class='rparen'>)</span> <span class='id identifier rubyid_view_range'>view_range</span><span class='lparen'>(</span> <span class='ivar'>@line</span><span class='op'>-</span><span class='id identifier rubyid_count'>count</span><span class='comma'>,</span> <span class='ivar'>@line</span><span class='op'>+</span><span class='id identifier rubyid_count'>count</span><span class='op'>+</span><span class='int'>1</span> <span class='rparen'>)</span> <span class='kw'>nil</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <h3 class="signature " id="peek_ln-instance_method"> - (<tt>Object</tt>) <strong>peek_ln</strong>(count = 0) </h3><div class="docstring"> <div class="discussion"> <p>View line content with line numbers around current position (by count).</p> </div> </div> <div class="tags"> </div><table class="source_code"> <tr> <td> <pre class="lines"> 419 420 421 422</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/patman.rb', line 419</span> <span class='kw'>def</span> <span class='id identifier rubyid_peek_ln'>peek_ln</span><span class='lparen'>(</span> <span class='id identifier rubyid_count'>count</span> <span class='op'>=</span> <span class='int'>0</span> <span class='rparen'>)</span> <span class='id identifier rubyid_view_range'>view_range</span><span class='lparen'>(</span> <span class='ivar'>@line</span><span class='op'>-</span><span class='id identifier rubyid_count'>count</span><span class='comma'>,</span> <span class='ivar'>@line</span><span class='op'>+</span><span class='id identifier rubyid_count'>count</span><span class='op'>+</span><span class='int'>1</span><span class='comma'>,</span> <span class='kw'>true</span> <span class='rparen'>)</span> <span class='kw'>nil</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <h3 class="signature " id="read-instance_method"> - (<tt>Object</tt>) <strong>read</strong> </h3><div class="docstring"> <div class="discussion"> <p>Read file in.</p> </div> </div> <div class="tags"> </div><table class="source_code"> <tr> <td> <pre class="lines"> 117 118 119 120 121 122 123</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/patman.rb', line 117</span> <span class='kw'>def</span> <span class='id identifier rubyid_read'>read</span> <span class='kw'>if</span> <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_exist?'>exist?</span><span class='lparen'>(</span> <span class='ivar'>@file</span> <span class='rparen'>)</span> <span class='ivar'>@lines</span> <span class='op'>=</span> <span class='id identifier rubyid_read_clean'>read_clean</span><span class='lparen'>(</span> <span class='ivar'>@file</span> <span class='rparen'>)</span> <span class='kw'>else</span> <span class='id identifier rubyid_raise'>raise</span> <span class='const'>PatmanFileError</span> <span class='kw'>end</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <h3 class="signature " id="ref-instance_method"> - (<tt>Object</tt>) <strong>ref</strong>(line = nil) </h3><div class="docstring"> <div class="discussion"> <p>Get current line or any line.</p> </div> </div> <div class="tags"> </div><table class="source_code"> <tr> <td> <pre class="lines"> 208 209 210 211 212 213 214</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/patman.rb', line 208</span> <span class='kw'>def</span> <span class='id identifier rubyid_ref'>ref</span><span class='lparen'>(</span> <span class='id identifier rubyid_line'>line</span> <span class='op'>=</span> <span class='kw'>nil</span> <span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_line'>line</span> <span class='ivar'>@lines</span><span class='lbracket'>[</span> <span class='id identifier rubyid_line'>line</span><span class='op'>-</span><span class='int'>1</span> <span class='rbracket'>]</span> <span class='kw'>else</span> <span class='ivar'>@lines</span><span class='lbracket'>[</span> <span class='ivar'>@line</span> <span class='rbracket'>]</span> <span class='kw'>end</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <h3 class="signature " id="search-instance_method"> - (<tt>Object</tt>) <strong>search</strong>(re_or_str, forward = true) </h3><div class="docstring"> <div class="discussion"> <p>Search Regexp or literal string forwards or backwards. Fail with expection (PatmanSearchError) if not found.</p> </div> </div> <div class="tags"> </div><table class="source_code"> <tr> <td> <pre class="lines"> 316 317 318 319</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/patman.rb', line 316</span> <span class='kw'>def</span> <span class='id identifier rubyid_search'>search</span><span class='lparen'>(</span> <span class='id identifier rubyid_re_or_str'>re_or_str</span><span class='comma'>,</span> <span class='id identifier rubyid_forward'>forward</span> <span class='op'>=</span> <span class='kw'>true</span> <span class='rparen'>)</span> <span class='ivar'>@line</span> <span class='op'>=</span> <span class='id identifier rubyid_search_with_exception'>search_with_exception</span><span class='lparen'>(</span> <span class='id identifier rubyid_re_or_str'>re_or_str</span><span class='comma'>,</span> <span class='id identifier rubyid_forward'>forward</span> <span class='rparen'>)</span> <span class='kw'>self</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <h3 class="signature " id="set-instance_method"> - (<tt>Object</tt>) <strong>set</strong>(text) </h3><div class="docstring"> <div class="discussion"> <p>Set current line.</p> </div> </div> <div class="tags"> </div><table class="source_code"> <tr> <td> <pre class="lines"> 217 218 219 220 221</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/patman.rb', line 217</span> <span class='kw'>def</span> <span class='id identifier rubyid_set'>set</span><span class='lparen'>(</span> <span class='id identifier rubyid_text'>text</span> <span class='rparen'>)</span> <span class='ivar'>@edited</span> <span class='op'>=</span> <span class='kw'>true</span> <span class='ivar'>@lines</span><span class='lbracket'>[</span> <span class='ivar'>@line</span> <span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_text'>text</span> <span class='kw'>self</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <h3 class="signature " id="step-instance_method"> - (<tt>Object</tt>) <strong>step</strong>(dir = 1) </h3><div class="docstring"> <div class="discussion"> <p>Step forward or backward current position.</p> </div> </div> <div class="tags"> </div><table class="source_code"> <tr> <td> <pre class="lines"> 158 159 160 161</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/patman.rb', line 158</span> <span class='kw'>def</span> <span class='id identifier rubyid_step'>step</span><span class='lparen'>(</span> <span class='id identifier rubyid_dir'>dir</span> <span class='op'>=</span> <span class='int'>1</span> <span class='rparen'>)</span> <span class='ivar'>@line</span> <span class='op'>=</span> <span class='ivar'>@line</span> <span class='op'>+</span> <span class='id identifier rubyid_dir'>dir</span> <span class='kw'>self</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <h3 class="signature " id="sub-instance_method"> - (<tt>Object</tt>) <strong>sub</strong>(from, to) </h3><div class="docstring"> <div class="discussion"> <p>Substitution in current line.</p> </div> </div> <div class="tags"> </div><table class="source_code"> <tr> <td> <pre class="lines"> 224 225 226 227 228</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/patman.rb', line 224</span> <span class='kw'>def</span> <span class='id identifier rubyid_sub'>sub</span><span class='lparen'>(</span> <span class='id identifier rubyid_from'>from</span><span class='comma'>,</span> <span class='id identifier rubyid_to'>to</span> <span class='rparen'>)</span> <span class='ivar'>@edited</span> <span class='op'>=</span> <span class='kw'>true</span> <span class='ivar'>@lines</span><span class='lbracket'>[</span> <span class='ivar'>@line</span> <span class='rbracket'>]</span> <span class='op'>=</span> <span class='ivar'>@lines</span><span class='lbracket'>[</span> <span class='ivar'>@line</span> <span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_sub'>sub</span><span class='lparen'>(</span> <span class='id identifier rubyid_from'>from</span><span class='comma'>,</span> <span class='id identifier rubyid_to'>to</span> <span class='rparen'>)</span> <span class='kw'>self</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <h3 class="signature " id="unmark-instance_method"> - (<tt>Object</tt>) <strong>unmark</strong>(tag = nil) </h3><div class="docstring"> <div class="discussion"> <p>Unmark (restore) current position from default or from named mark.</p> </div> </div> <div class="tags"> </div><table class="source_code"> <tr> <td> <pre class="lines"> 362 363 364 365 366 367 368 369 370 371 372 373</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/patman.rb', line 362</span> <span class='kw'>def</span> <span class='id identifier rubyid_unmark'>unmark</span><span class='lparen'>(</span> <span class='id identifier rubyid_tag'>tag</span> <span class='op'>=</span> <span class='kw'>nil</span> <span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_tag'>tag</span> <span class='op'>&&</span> <span class='ivar'>@marks</span><span class='lbracket'>[</span> <span class='id identifier rubyid_tag'>tag</span> <span class='rbracket'>]</span> <span class='ivar'>@line</span> <span class='op'>=</span> <span class='ivar'>@marks</span><span class='lbracket'>[</span> <span class='id identifier rubyid_tag'>tag</span> <span class='rbracket'>]</span><span class='op'>-</span><span class='int'>1</span> <span class='kw'>self</span> <span class='kw'>elsif</span> <span class='ivar'>@mark</span> <span class='ivar'>@line</span> <span class='op'>=</span> <span class='ivar'>@mark</span><span class='op'>-</span><span class='int'>1</span> <span class='ivar'>@mark</span> <span class='op'>=</span> <span class='kw'>nil</span> <span class='kw'>self</span> <span class='kw'>else</span> <span class='kw'>self</span> <span class='kw'>end</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <h3 class="signature " id="update-instance_method"> - (<tt>Object</tt>) <strong>update</strong>(&blk) </h3><div class="docstring"> <div class="discussion"> <p>Update current line content (i.e. get&set) with the return value of the given block. Hence last stmt should include the new line content.</p> </div> </div> <div class="tags"> <div class="examples"> <p class="tag_title">Examples:</p> <pre class="example code"><code><span class='id identifier rubyid_r'>r</span><span class='period'>.</span><span class='id identifier rubyid_update'>update</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_c'>c</span><span class='op'>|</span> <span class='id identifier rubyid_c'>c</span><span class='period'>.</span><span class='id identifier rubyid_sub!'>sub!</span><span class='lparen'>(</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>foo</span><span class='regexp_end'>/</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>bar</span><span class='tstring_end'>'</span></span> <span class='rparen'>)</span> <span class='id identifier rubyid_c'>c</span> <span class='kw'>end</span></code></pre> </div> </div><table class="source_code"> <tr> <td> <pre class="lines"> 240 241 242 243 244</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/patman.rb', line 240</span> <span class='kw'>def</span> <span class='id identifier rubyid_update'>update</span><span class='lparen'>(</span> <span class='op'>&</span><span class='id identifier rubyid_blk'>blk</span> <span class='rparen'>)</span> <span class='ivar'>@edited</span> <span class='op'>=</span> <span class='kw'>true</span> <span class='id identifier rubyid_set'>set</span><span class='lparen'>(</span> <span class='kw'>yield</span><span class='lparen'>(</span> <span class='id identifier rubyid_get'>get</span> <span class='rparen'>)</span> <span class='rparen'>)</span> <span class='kw'>self</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <h3 class="signature " id="view-instance_method"> - (<tt>Object</tt>) <strong>view</strong>(arg1 = nil, arg2 = nil) </h3><div class="docstring"> <div class="discussion"> <p>View line content.</p> <ul><li> <p>no args: view all</p> </li><li> <p>one arg: view from current onwards by count</p> </li><li> <p>two args: view given range</p> </li></ul> </div> </div> <div class="tags"> </div><table class="source_code"> <tr> <td> <pre class="lines"> 429 430 431 432 433 434 435 436 437 438</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/patman.rb', line 429</span> <span class='kw'>def</span> <span class='id identifier rubyid_view'>view</span><span class='lparen'>(</span> <span class='id identifier rubyid_arg1'>arg1</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_arg2'>arg2</span> <span class='op'>=</span> <span class='kw'>nil</span> <span class='rparen'>)</span> <span class='kw'>if</span> <span class='op'>!</span><span class='id identifier rubyid_arg1'>arg1</span> <span class='op'>&&</span> <span class='op'>!</span><span class='id identifier rubyid_arg2'>arg2</span> <span class='id identifier rubyid_view_range'>view_range</span><span class='lparen'>(</span> <span class='int'>0</span><span class='comma'>,</span> <span class='id identifier rubyid_length'>length</span> <span class='rparen'>)</span> <span class='kw'>elsif</span> <span class='id identifier rubyid_arg1'>arg1</span> <span class='op'>&&</span> <span class='op'>!</span><span class='id identifier rubyid_arg2'>arg2</span> <span class='id identifier rubyid_view_range'>view_range</span><span class='lparen'>(</span> <span class='ivar'>@line</span><span class='comma'>,</span> <span class='ivar'>@line</span><span class='op'>+</span><span class='id identifier rubyid_arg1'>arg1</span> <span class='rparen'>)</span> <span class='kw'>elsif</span> <span class='id identifier rubyid_arg1'>arg1</span> <span class='op'>&&</span> <span class='id identifier rubyid_arg2'>arg2</span> <span class='id identifier rubyid_view_range'>view_range</span><span class='lparen'>(</span> <span class='id identifier rubyid_arg1'>arg1</span><span class='op'>-</span><span class='int'>1</span><span class='comma'>,</span> <span class='id identifier rubyid_arg1'>arg1</span><span class='op'>-</span><span class='int'>1</span><span class='op'>+</span><span class='id identifier rubyid_arg2'>arg2</span> <span class='rparen'>)</span> <span class='kw'>end</span> <span class='kw'>nil</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <h3 class="signature " id="view_ln-instance_method"> - (<tt>Object</tt>) <strong>view_ln</strong>(arg1 = nil, arg2 = nil) </h3><div class="docstring"> <div class="discussion"> <p>View line content with line numbers.</p> <ul><li> <p>no args: view all</p> </li><li> <p>one arg: view from current onwards by count</p> </li><li> <p>two args: view given range</p> </li></ul> </div> </div> <div class="tags"> </div><table class="source_code"> <tr> <td> <pre class="lines"> 445 446 447 448 449 450 451 452 453 454</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/patman.rb', line 445</span> <span class='kw'>def</span> <span class='id identifier rubyid_view_ln'>view_ln</span><span class='lparen'>(</span> <span class='id identifier rubyid_arg1'>arg1</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_arg2'>arg2</span> <span class='op'>=</span> <span class='kw'>nil</span> <span class='rparen'>)</span> <span class='kw'>if</span> <span class='op'>!</span><span class='id identifier rubyid_arg1'>arg1</span> <span class='op'>&&</span> <span class='op'>!</span><span class='id identifier rubyid_arg2'>arg2</span> <span class='id identifier rubyid_view_range'>view_range</span><span class='lparen'>(</span> <span class='int'>0</span><span class='comma'>,</span> <span class='id identifier rubyid_length'>length</span><span class='comma'>,</span> <span class='kw'>true</span> <span class='rparen'>)</span> <span class='kw'>elsif</span> <span class='id identifier rubyid_arg1'>arg1</span> <span class='op'>&&</span> <span class='op'>!</span><span class='id identifier rubyid_arg2'>arg2</span> <span class='id identifier rubyid_view_range'>view_range</span><span class='lparen'>(</span> <span class='ivar'>@line</span><span class='comma'>,</span> <span class='ivar'>@line</span><span class='op'>+</span><span class='id identifier rubyid_arg1'>arg1</span><span class='comma'>,</span> <span class='kw'>true</span> <span class='rparen'>)</span> <span class='kw'>elsif</span> <span class='id identifier rubyid_arg1'>arg1</span> <span class='op'>&&</span> <span class='id identifier rubyid_arg2'>arg2</span> <span class='id identifier rubyid_view_range'>view_range</span><span class='lparen'>(</span> <span class='id identifier rubyid_arg1'>arg1</span><span class='op'>-</span><span class='int'>1</span><span class='comma'>,</span> <span class='id identifier rubyid_arg1'>arg1</span><span class='op'>-</span><span class='int'>1</span><span class='op'>+</span><span class='id identifier rubyid_arg2'>arg2</span><span class='comma'>,</span> <span class='kw'>true</span> <span class='rparen'>)</span> <span class='kw'>end</span> <span class='kw'>nil</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <h3 class="signature " id="write-instance_method"> - (<tt>Object</tt>) <strong>write</strong>(file = @file) </h3><div class="docstring"> <div class="discussion"> <p>Write <span class='object_link'><a href="" title="Patman (class)">Patman</a></span> content to disk.</p> </div> </div> <div class="tags"> </div><table class="source_code"> <tr> <td> <pre class="lines"> 126 127 128 129 130 131 132 133 134 135 136 137 138 139</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/patman.rb', line 126</span> <span class='kw'>def</span> <span class='id identifier rubyid_write'>write</span><span class='lparen'>(</span> <span class='id identifier rubyid_file'>file</span> <span class='op'>=</span> <span class='ivar'>@file</span> <span class='rparen'>)</span> <span class='kw'>return</span> <span class='kw'>unless</span> <span class='ivar'>@edited</span> <span class='id identifier rubyid_fh'>fh</span> <span class='op'>=</span> <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_open'>open</span><span class='lparen'>(</span> <span class='id identifier rubyid_file'>file</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>w</span><span class='tstring_end'>'</span></span> <span class='rparen'>)</span> <span class='ivar'>@lines</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_line'>line</span><span class='op'>|</span> <span class='kw'>if</span> <span class='id identifier rubyid_line'>line</span> <span class='id identifier rubyid_fh'>fh</span><span class='period'>.</span><span class='id identifier rubyid_puts'>puts</span> <span class='id identifier rubyid_line'>line</span> <span class='kw'>else</span> <span class='id identifier rubyid_fh'>fh</span><span class='period'>.</span><span class='id identifier rubyid_puts'>puts</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_end'>"</span></span> <span class='kw'>end</span> <span class='kw'>end</span> <span class='id identifier rubyid_fh'>fh</span><span class='period'>.</span><span class='id identifier rubyid_close'>close</span> <span class='ivar'>@edited</span> <span class='op'>=</span> <span class='kw'>false</span> <span class='kw'>self</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> </div> </div> <div id="footer"> Generated on Sat Dec 16 23:10:27 2017 by <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a> 0.8.7.6 (ruby-2.3.3). </div> </body> </html>