<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>
  Class: Patman
  
    &mdash; Documentation by YARD 0.9.16
  
</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">
  pathId = "Patman";
  relpath = '';
</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 class="nav_wrap">
      <iframe id="nav" src="class_list.html?1"></iframe>
      <div id="resizer"></div>
    </div>

    <div id="main" tabindex="-1">
      <div id="header">
        <div id="menu">
  
    <a href="_index.html">Index (P)</a> &raquo;
    
    
    <span class="title">Patman</span>
  
</div>

        <div id="search">
  
    <a class="full_list_link" id="class_list_link"
        href="class_list.html">

        <svg width="24" height="24">
          <rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
          <rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
          <rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
        </svg>
    </a>
  
</div>
        <div class="clear"></div>
      </div>

      <div id="content"><h1>Class: Patman
  
  
  
</h1>
<div class="box_info">
  
  <dl>
    <dt>Inherits:</dt>
    <dd>
      <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>
  </dl>
  

  
  
  
  
  

  

  
  <dl>
    <dt>Defined in:</dt>
    <dd>lib/patman.rb<span class="defines">,<br />
  lib/version.rb</span>
</dd>
  </dl>
  
</div>

<h2>Overview</h2><div class="docstring">
  <div class="discussion">
    
<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>


  </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
      <small><a href="#" class="constants_summary_toggle">collapse</a></small>
    </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.4</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)">#<strong>marks</strong>  &#x21d2; Object </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="#edit-class_method" title="edit (class method)">.<strong>edit</strong>(file, &amp;blk)  &#x21d2; Object </a>
    

    
  </span>
  
  
  
  
  
  
  

  
    <span class="summary_desc"><div class='inline'>
<p>Edit file and also create it if it does not exist.</p>
</div></span>
  
</li>

      
        <li class="public ">
  <span class="summary_signature">
    
      <a href="#read-class_method" title="read (class method)">.<strong>read</strong>(file)  &#x21d2; Object </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)">.<strong>version</strong>  &#x21d2; Object </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="#[]-instance_method" title="#[] (instance method)">#<strong>[]</strong>(range)  &#x21d2; Object </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)">#<strong>append</strong>(text = nil)  &#x21d2; Object </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)">#<strong>blockline</strong>  &#x21d2; Object </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)">#<strong>clear</strong>  &#x21d2; Object </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)">#<strong>copy</strong>(file)  &#x21d2; Object </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)">#<strong>delete</strong>(count = 1)  &#x21d2; Object </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)">#<strong>do_all</strong>(&amp;blk)  &#x21d2; Object </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)">#<strong>do_for</strong>(start, count, &amp;blk)  &#x21d2; Object </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)">#<strong>do_range</strong>(start, stop, &amp;blk)  &#x21d2; Object </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)">#<strong>edit</strong>  &#x21d2; Object </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)">#<strong>edited?</strong>  &#x21d2; Boolean </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)">#<strong>excursion</strong>(&amp;blk)  &#x21d2; Object </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)">#<strong>filename</strong>  &#x21d2; Object </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)">#<strong>find</strong>(re_or_str, forward = true)  &#x21d2; Object </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)">#<strong>firstline</strong>  &#x21d2; Object </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)">#<strong>get</strong>(count = 1)  &#x21d2; Object </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)">#<strong>get_for</strong>(start, count)  &#x21d2; Object </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)">#<strong>get_range</strong>(start, stop)  &#x21d2; Object </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)">#<strong>initialize</strong>(file)  &#x21d2; Patman </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)">#<strong>insert</strong>(text = nil)  &#x21d2; Object </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)">#<strong>insertfile</strong>(file)  &#x21d2; Object </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)">#<strong>lastline</strong>  &#x21d2; Object </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)">#<strong>length</strong>  &#x21d2; Object </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)">#<strong>line</strong>(arg = nil)  &#x21d2; Object </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)">#<strong>lines</strong>(arg = nil)  &#x21d2; Object </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)">#<strong>mark</strong>(tag = nil)  &#x21d2; Object </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)">#<strong>peek</strong>(count = 0)  &#x21d2; Object </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)">#<strong>peek_ln</strong>(count = 0)  &#x21d2; Object </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)">#<strong>read</strong>(file = @file)  &#x21d2; Object </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)">#<strong>ref</strong>(line = nil)  &#x21d2; Object </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)">#<strong>search</strong>(re_or_str, forward = true)  &#x21d2; Object </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)">#<strong>set</strong>(text)  &#x21d2; Object </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)">#<strong>step</strong>(dir = 1)  &#x21d2; Object </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)">#<strong>sub</strong>(from, to)  &#x21d2; Object </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)">#<strong>unmark</strong>(tag = nil)  &#x21d2; Object </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)">#<strong>update</strong>(&amp;blk)  &#x21d2; Object </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)">#<strong>view</strong>(arg1 = nil, arg2 = nil)  &#x21d2; Object </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)">#<strong>view_ln</strong>(arg1 = nil, arg2 = nil)  &#x21d2; Object </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)">#<strong>write</strong>(file = @file)  &#x21d2; Object </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">
  
    #<strong>initialize</strong>(file)  &#x21d2; <tt><span class='object_link'><a href="" title="Patman (class)">Patman</a></span></tt> 
  

  

  
</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">


45
46
47
48
49
50
51
52
53</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/patman.rb', line 45</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">
  
    #<strong>marks</strong>  &#x21d2; <tt>Object</tt> 
  

  

  
</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">


15
16
17</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/patman.rb', line 15</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="edit-class_method">
  
    .<strong>edit</strong>(file, &amp;blk)  &#x21d2; <tt>Object</tt> 
  

  

  
</h3><div class="docstring">
  <div class="discussion">
    
<p>Edit file and also create it if it does not exist.</p>

<p>If block is given, a file will be opened and block with Patman commands
will be executed for it. Otherwise a Patman object is returned for further
use.</p>


  </div>
</div>
<div class="tags">
  

</div><table class="source_code">
  <tr>
    <td>
      <pre class="lines">


31
32
33
34
35
36
37
38
39
40
41
42</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/patman.rb', line 31</span>

<span class='kw'>def</span> <span class='const'><span class='object_link'><a href="" title="Patman (class)">Patman</a></span></span><span class='period'>.</span><span class='id identifier rubyid_edit'>edit</span><span class='lparen'>(</span> <span class='id identifier rubyid_file'>file</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_p'>p</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="" title="Patman (class)">Patman</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="#initialize-instance_method" title="Patman#initialize (method)">new</a></span></span><span class='lparen'>(</span> <span class='id identifier rubyid_file'>file</span> <span class='rparen'>)</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='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_send'>send</span><span class='lparen'>(</span> <span class='symbol'>:read</span><span class='comma'>,</span> <span class='id identifier rubyid_file'>file</span> <span class='rparen'>)</span>
    <span class='kw'>end</span>
    <span class='kw'>if</span> <span class='id identifier rubyid_block_given?'>block_given?</span>
        <span class='id identifier rubyid_p'>p</span><span class='period'>.</span><span class='id identifier rubyid_instance_exec'>instance_exec</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_p'>p</span><span class='period'>.</span><span class='id identifier rubyid_send'>send</span><span class='lparen'>(</span> <span class='symbol'>:write</span> <span class='rparen'>)</span>
    <span class='kw'>else</span>
        <span class='id identifier rubyid_p'>p</span>
    <span class='kw'>end</span>
<span class='kw'>end</span></pre>
    </td>
  </tr>
</table>
</div>
    
      <div class="method_details ">
  <h3 class="signature " id="read-class_method">
  
    .<strong>read</strong>(file)  &#x21d2; <tt>Object</tt> 
  

  

  
</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">


19
20
21
22
23</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/patman.rb', line 19</span>

<span class='kw'>def</span> <span class='const'><span class='object_link'><a href="" title="Patman (class)">Patman</a></span></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'><span class='object_link'><a href="" title="Patman (class)">Patman</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="#initialize-instance_method" title="Patman#initialize (method)">new</a></span></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">
  
    .<strong>version</strong>  &#x21d2; <tt>Object</tt> 
  

  

  
</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'><span class='object_link'><a href="" title="Patman (class)">Patman</a></span></span><span class='period'>.</span><span class='id identifier rubyid_version'>version</span>
    <span class='const'><span class='object_link'><a href="" title="Patman (class)">Patman</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="#VERSION-constant" title="Patman::VERSION (constant)">VERSION</a></span></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">
  
    #<strong>[]</strong>(range)  &#x21d2; <tt>Object</tt> 
  

  

  
</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">


141
142
143</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/patman.rb', line 141</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">
  
    #<strong>append</strong>(text = nil)  &#x21d2; <tt>Object</tt> 
  

  

  
</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">


210
211
212
213
214
215
216
217
218
219
220
221</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/patman.rb', line 210</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">
  
    #<strong>blockline</strong>  &#x21d2; <tt>Object</tt> 
  

  

  
</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">


123
124
125
126
127
128</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/patman.rb', line 123</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">
  
    #<strong>clear</strong>  &#x21d2; <tt>Object</tt> 
  

  

  
</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">


243
244
245
246
247
248</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/patman.rb', line 243</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">
  
    #<strong>copy</strong>(file)  &#x21d2; <tt>Object</tt> 
  

  

  
</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">


89
90
91
92</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/patman.rb', line 89</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">
  
    #<strong>delete</strong>(count = 1)  &#x21d2; <tt>Object</tt> 
  

  

  
</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">


224
225
226
227
228
229
230</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_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">
  
    #<strong>do_all</strong>(&amp;blk)  &#x21d2; <tt>Object</tt> 
  

  

  
</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">


324
325
326</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/patman.rb', line 324</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">
  
    #<strong>do_for</strong>(start, count, &amp;blk)  &#x21d2; <tt>Object</tt> 
  

  

  
</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">


336
337
338
339
340
341
342
343
344
345
346</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/patman.rb', line 336</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">
  
    #<strong>do_range</strong>(start, stop, &amp;blk)  &#x21d2; <tt>Object</tt> 
  

  

  
</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">


330
331
332</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/patman.rb', line 330</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">
  
    #<strong>edit</strong>  &#x21d2; <tt>Object</tt> 
  

  

  
</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">


279
280
281</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/patman.rb', line 279</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">
  
    #<strong>edited?</strong>  &#x21d2; <tt>Boolean</tt> 
  

  

  
</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">


284
285
286</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/patman.rb', line 284</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">
  
    #<strong>excursion</strong>(&amp;blk)  &#x21d2; <tt>Object</tt> 
  

  

  
</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">


289
290
291
292
293
294</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/patman.rb', line 289</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">
  
    #<strong>filename</strong>  &#x21d2; <tt>Object</tt> 
  

  

  
</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">


274
275
276</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/patman.rb', line 274</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">
  
    #<strong>find</strong>(re_or_str, forward = true)  &#x21d2; <tt>Object</tt> 
  

  

  
</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">


252
253
254
255
256
257
258
259</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/patman.rb', line 252</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">
  
    #<strong>firstline</strong>  &#x21d2; <tt>Object</tt> 
  

  

  
</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">


111
112
113
114</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/patman.rb', line 111</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">
  
    #<strong>get</strong>(count = 1)  &#x21d2; <tt>Object</tt> 
  

  

  
</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">


146
147
148
149
150
151
152</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/patman.rb', line 146</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">
  
    #<strong>get_for</strong>(start, count)  &#x21d2; <tt>Object</tt> 
  

  

  
</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">


354
355
356</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/patman.rb', line 354</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">
  
    #<strong>get_range</strong>(start, stop)  &#x21d2; <tt>Object</tt> 
  

  

  
</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">


349
350
351</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/patman.rb', line 349</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">
  
    #<strong>insert</strong>(text = nil)  &#x21d2; <tt>Object</tt> 
  

  

  
</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">


194
195
196
197
198
199
200
201
202
203
204
205
206
207</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/patman.rb', line 194</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='lparen'>(</span> <span class='op'>-</span><span class='int'>1</span> <span class='rparen'>)</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">
  
    #<strong>insertfile</strong>(file)  &#x21d2; <tt>Object</tt> 
  

  

  
</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">


233
234
235
236
237
238
239
240</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/patman.rb', line 233</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='lparen'>(</span> <span class='op'>-</span><span class='int'>1</span> <span class='rparen'>)</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">
  
    #<strong>lastline</strong>  &#x21d2; <tt>Object</tt> 
  

  

  
</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">


117
118
119
120</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_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">
  
    #<strong>length</strong>  &#x21d2; <tt>Object</tt> 
  

  

  
</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">


269
270
271</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/patman.rb', line 269</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">
  
    #<strong>line</strong>(arg = nil)  &#x21d2; <tt>Object</tt> 
  

  

  
</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">


95
96
97
98
99
100
101
102</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_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">
  
    #<strong>lines</strong>(arg = nil)  &#x21d2; <tt>Object</tt> 
  

  

  
</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">


131
132
133
134
135
136
137
138</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/patman.rb', line 131</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">
  
    #<strong>mark</strong>(tag = nil)  &#x21d2; <tt>Object</tt> 
  

  

  
</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">


297
298
299
300
301
302
303
304
305</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/patman.rb', line 297</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">
  
    #<strong>peek</strong>(count = 0)  &#x21d2; <tt>Object</tt> 
  

  

  
</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">


359
360
361
362</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/patman.rb', line 359</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">
  
    #<strong>peek_ln</strong>(count = 0)  &#x21d2; <tt>Object</tt> 
  

  

  
</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">


366
367
368
369</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/patman.rb', line 366</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">
  
    #<strong>read</strong>(file = @file)  &#x21d2; <tt>Object</tt> 
  

  

  
</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">


56
57
58
59
60
61
62</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/patman.rb', line 56</span>

<span class='kw'>def</span> <span class='id identifier rubyid_read'>read</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'>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='id identifier rubyid_file'>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='id identifier rubyid_file'>file</span> <span class='rparen'>)</span>
    <span class='kw'>else</span>
        <span class='id identifier rubyid_raise'>raise</span> <span class='const'><span class='object_link'><a href="Patman/PatmanFileError.html" title="Patman::PatmanFileError (class)">PatmanFileError</a></span></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">
  
    #<strong>ref</strong>(line = nil)  &#x21d2; <tt>Object</tt> 
  

  

  
</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">


155
156
157
158
159
160
161</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/patman.rb', line 155</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">
  
    #<strong>search</strong>(re_or_str, forward = true)  &#x21d2; <tt>Object</tt> 
  

  

  
</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">


263
264
265
266</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_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">
  
    #<strong>set</strong>(text)  &#x21d2; <tt>Object</tt> 
  

  

  
</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">


164
165
166
167
168</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_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">
  
    #<strong>step</strong>(dir = 1)  &#x21d2; <tt>Object</tt> 
  

  

  
</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">


105
106
107
108</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/patman.rb', line 105</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">
  
    #<strong>sub</strong>(from, to)  &#x21d2; <tt>Object</tt> 
  

  

  
</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">


171
172
173
174
175</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/patman.rb', line 171</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">
  
    #<strong>unmark</strong>(tag = nil)  &#x21d2; <tt>Object</tt> 
  

  

  
</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">


309
310
311
312
313
314
315
316
317
318
319
320</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/patman.rb', line 309</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">
  
    #<strong>update</strong>(&amp;blk)  &#x21d2; <tt>Object</tt> 
  

  

  
</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">


187
188
189
190
191</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/patman.rb', line 187</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">
  
    #<strong>view</strong>(arg1 = nil, arg2 = nil)  &#x21d2; <tt>Object</tt> 
  

  

  
</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">


376
377
378
379
380
381
382
383
384
385</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/patman.rb', line 376</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">
  
    #<strong>view_ln</strong>(arg1 = nil, arg2 = nil)  &#x21d2; <tt>Object</tt> 
  

  

  
</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">


392
393
394
395
396
397
398
399
400
401</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/patman.rb', line 392</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">
  
    #<strong>write</strong>(file = @file)  &#x21d2; <tt>Object</tt> 
  

  

  
</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">


65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/patman.rb', line 65</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_file_dir'>file_dir</span> <span class='op'>=</span> <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_dirname'>dirname</span><span class='lparen'>(</span> <span class='id identifier rubyid_file'>file</span> <span class='rparen'>)</span>
    <span class='kw'>unless</span> <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_exist?'>exist?</span><span class='lparen'>(</span> <span class='id identifier rubyid_file_dir'>file_dir</span> <span class='rparen'>)</span>
        <span class='id identifier rubyid_require'>require</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>fileutils</span><span class='tstring_end'>&#39;</span></span>
        <span class='const'>FileUtils</span><span class='period'>.</span><span class='id identifier rubyid_mkdir_p'>mkdir_p</span><span class='lparen'>(</span> <span class='id identifier rubyid_file_dir'>file_dir</span> <span class='rparen'>)</span>
    <span class='kw'>end</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 Oct 20 17:33:29 2018 by
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
  0.9.16 (ruby-2.5.1).
</div>

    </div>
  </body>
</html>