<!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
  
    &mdash; 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> &raquo;
    
    
    <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'>&quot;</span><span class='tstring_content'>report.txt</span><span class='tstring_end'>&quot;</span></span> <span class='rparen'>)</span>

<span class='comment'># Backup file and find next line with &quot;cpp&quot;, 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'>&quot;</span><span class='tstring_content'>report.txt.org</span><span class='tstring_end'>&quot;</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 &quot; Hello&quot; 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'>&quot;</span><span class='tstring_content'> Hello</span><span class='tstring_end'>&quot;</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'>&quot;</span><span class='tstring_content'>0.0.1</span><span class='tstring_end'>&quot;</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>(&amp;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, &amp;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, &amp;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>(&amp;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>(&amp;blk) </a>
    

    
  </span>
  
  
  
  
  
  
  

  
    <span class="summary_desc"><div class='inline'>
<p>Update current line content (i.e. get&amp;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>(&amp;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'>&amp;</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'>&amp;</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, &amp;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'>&amp;</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, &amp;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'>&amp;</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'>&amp;</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>(&amp;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'>&amp;</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'>&amp;</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'>&amp;&amp;</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>(&amp;blk) 
  

  

  
</h3><div class="docstring">
  <div class="discussion">
    
<p>Update current line content (i.e. get&amp;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'>&#39;</span><span class='tstring_content'>bar</span><span class='tstring_end'>&#39;</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'>&amp;</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'>&amp;&amp;</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'>&amp;&amp;</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'>&amp;&amp;</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'>&amp;&amp;</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'>&amp;&amp;</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'>&amp;&amp;</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'>&#39;</span><span class='tstring_content'>w</span><span class='tstring_end'>&#39;</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'>&quot;</span><span class='tstring_end'>&quot;</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>