summaryrefslogtreecommitdiff
path: root/doc/LCS/DiffCallbacks.html
diff options
context:
space:
mode:
Diffstat (limited to 'doc/LCS/DiffCallbacks.html')
-rw-r--r--doc/LCS/DiffCallbacks.html305
1 files changed, 305 insertions, 0 deletions
diff --git a/doc/LCS/DiffCallbacks.html b/doc/LCS/DiffCallbacks.html
new file mode 100644
index 0000000..d82b399
--- /dev/null
+++ b/doc/LCS/DiffCallbacks.html
@@ -0,0 +1,305 @@
+<!DOCTYPE html>
+
+<html>
+<head>
+<meta charset="UTF-8">
+
+<title>class LCS::DiffCallbacks - diff-lcs-1.5.0 Documentation</title>
+
+<script type="text/javascript">
+ var rdoc_rel_prefix = "../";
+ var index_rel_prefix = "../";
+</script>
+
+<script src="../js/navigation.js" defer></script>
+<script src="../js/search.js" defer></script>
+<script src="../js/search_index.js" defer></script>
+<script src="../js/searcher.js" defer></script>
+<script src="../js/darkfish.js" defer></script>
+
+<link href="../css/fonts.css" rel="stylesheet">
+<link href="../css/rdoc.css" rel="stylesheet">
+
+
+<body id="top" role="document" class="class">
+<nav role="navigation">
+ <div id="project-navigation">
+ <div id="home-section" role="region" title="Quick navigation" class="nav-section">
+ <h2>
+ <a href="../index.html" rel="home">Home</a>
+ </h2>
+
+ <div id="table-of-contents-navigation">
+ <a href="../table_of_contents.html#pages">Pages</a>
+ <a href="../table_of_contents.html#classes">Classes</a>
+ <a href="../table_of_contents.html#methods">Methods</a>
+ </div>
+</div>
+
+ <div id="search-section" role="search" class="project-section initially-hidden">
+ <form action="#" method="get" accept-charset="utf-8">
+ <div id="search-field-wrapper">
+ <input id="search-field" role="combobox" aria-label="Search"
+ aria-autocomplete="list" aria-controls="search-results"
+ type="text" name="search" placeholder="Search" spellcheck="false"
+ title="Type to search, Up and Down to navigate, Enter to load">
+ </div>
+
+ <ul id="search-results" aria-label="Search Results"
+ aria-busy="false" aria-expanded="false"
+ aria-atomic="false" class="initially-hidden"></ul>
+ </form>
+</div>
+
+ </div>
+
+
+<div class="nav-section">
+ <h3>Table of Contents</h3>
+
+ <ul class="link-list" role="directory">
+ <li><a href="#class-LCS::DiffCallbacks-label-Use">Use</a>
+ <li><a href="#class-LCS::DiffCallbacks-label-Simplified+Array+Format">Simplified Array Format</a>
+ </ul>
+</div>
+
+
+ <div id="class-metadata">
+
+
+<div id="parent-class-section" class="nav-section">
+ <h3>Parent</h3>
+
+ <p class="link">Object
+</div>
+
+
+
+
+<!-- Method Quickref -->
+<div id="method-list-section" class="nav-section">
+ <h3>Methods</h3>
+
+ <ul class="link-list" role="directory">
+ <li ><a href="#method-c-new">::new</a>
+ <li ><a href="#method-i-discard_a">#discard_a</a>
+ <li ><a href="#method-i-discard_b">#discard_b</a>
+ <li ><a href="#method-i-finish">#finish</a>
+ <li ><a href="#method-i-match">#match</a>
+ </ul>
+</div>
+
+ </div>
+</nav>
+
+<main role="main" aria-labelledby="class-LCS::DiffCallbacks">
+ <h1 id="class-LCS::DiffCallbacks" class="class">
+ class LCS::DiffCallbacks
+ </h1>
+
+ <section class="description">
+
+<p>This will produce a compound array of simple diff change objects. Each element in the <a href="DiffCallbacks.html#attribute-i-diffs"><code>diffs</code></a> array is a <code>hunk</code> or <code>hunk</code> array, where each element in each <code>hunk</code> array is a single Change object representing the addition or removal of a single element from one of the two tested sequences. The <code>hunk</code> provides the full context for the changes.</p>
+
+<pre class="ruby"><span class="ruby-identifier">diffs</span> = <span class="ruby-constant">Diff</span><span class="ruby-operator">::</span><span class="ruby-constant">LCS</span>.<span class="ruby-identifier">diff</span>(<span class="ruby-identifier">seq1</span>, <span class="ruby-identifier">seq2</span>)
+ <span class="ruby-comment"># This example shows a simplified array format.</span>
+ <span class="ruby-comment"># [ [ [ &#39;-&#39;, 0, &#39;a&#39; ] ], # 1</span>
+ <span class="ruby-comment"># [ [ &#39;+&#39;, 2, &#39;d&#39; ] ], # 2</span>
+ <span class="ruby-comment"># [ [ &#39;-&#39;, 4, &#39;h&#39; ], # 3</span>
+ <span class="ruby-comment"># [ &#39;+&#39;, 4, &#39;f&#39; ] ],</span>
+ <span class="ruby-comment"># [ [ &#39;+&#39;, 6, &#39;k&#39; ] ], # 4</span>
+ <span class="ruby-comment"># [ [ &#39;-&#39;, 8, &#39;n&#39; ], # 5</span>
+ <span class="ruby-comment"># [ &#39;-&#39;, 9, &#39;p&#39; ],</span>
+ <span class="ruby-comment"># [ &#39;+&#39;, 9, &#39;r&#39; ],</span>
+ <span class="ruby-comment"># [ &#39;+&#39;, 10, &#39;s&#39; ],</span>
+ <span class="ruby-comment"># [ &#39;+&#39;, 11, &#39;t&#39; ] ] ]</span>
+</pre>
+
+<p>There are five hunks here. The first hunk says that the <code>a</code> at position 0 of the first sequence should be deleted (<code>&#39;-&#39;</code>). The second hunk says that the <code>d</code> at position 2 of the second sequence should be inserted (<code>&#39;+&#39;</code>). The third hunk says that the <code>h</code> at position 4 of the first sequence should be removed and replaced with the <code>f</code> from position 4 of the second sequence. The other two hunks are described similarly.</p>
+
+<h3 id="class-LCS::DiffCallbacks-label-Use">Use<span><a href="#class-LCS::DiffCallbacks-label-Use">&para;</a> <a href="#top">&uarr;</a></span></h3>
+
+<p>This callback object must be initialised and is used by the <a href="../LCS.html#method-i-diff"><code>Diff::LCS#diff</code></a> method.</p>
+
+<pre class="ruby"><span class="ruby-identifier">cbo</span> = <span class="ruby-constant">Diff</span><span class="ruby-operator">::</span><span class="ruby-constant">LCS</span><span class="ruby-operator">::</span><span class="ruby-constant">DiffCallbacks</span>.<span class="ruby-identifier">new</span>
+<span class="ruby-constant">Diff</span><span class="ruby-operator">::</span><span class="ruby-constant">LCS</span>.<span class="ruby-constant">LCS</span>(<span class="ruby-identifier">seq1</span>, <span class="ruby-identifier">seq2</span>, <span class="ruby-identifier">cbo</span>)
+<span class="ruby-identifier">cbo</span>.<span class="ruby-identifier">finish</span>
+</pre>
+
+<p>Note that the call to <a href="DiffCallbacks.html#method-i-finish"><code>finish</code></a> is absolutely necessary, or the last set of changes will not be visible. Alternatively, can be used as:</p>
+
+<pre class="ruby"><span class="ruby-identifier">cbo</span> = <span class="ruby-constant">Diff</span><span class="ruby-operator">::</span><span class="ruby-constant">LCS</span><span class="ruby-operator">::</span><span class="ruby-constant">DiffCallbacks</span>.<span class="ruby-identifier">new</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">tcbo</span><span class="ruby-operator">|</span> <span class="ruby-constant">Diff</span><span class="ruby-operator">::</span><span class="ruby-constant">LCS</span>.<span class="ruby-constant">LCS</span>(<span class="ruby-identifier">seq1</span>, <span class="ruby-identifier">seq2</span>, <span class="ruby-identifier">tcbo</span>) }
+</pre>
+
+<p>The necessary <a href="DiffCallbacks.html#method-i-finish"><code>finish</code></a> call will be made.</p>
+
+<h3 id="class-LCS::DiffCallbacks-label-Simplified+Array+Format">Simplified <a href="../Array.html"><code>Array</code></a> Format<span><a href="#class-LCS::DiffCallbacks-label-Simplified+Array+Format">&para;</a> <a href="#top">&uarr;</a></span></h3>
+
+<p>The simplified array format used in the example above can be obtained with:</p>
+
+<pre class="ruby"><span class="ruby-identifier">require</span> <span class="ruby-string">&#39;pp&#39;</span>
+<span class="ruby-identifier">pp</span> <span class="ruby-identifier">diffs</span>.<span class="ruby-identifier">map</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">e</span><span class="ruby-operator">|</span> <span class="ruby-identifier">e</span>.<span class="ruby-identifier">map</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span> <span class="ruby-identifier">f</span>.<span class="ruby-identifier">to_a</span> } }
+</pre>
+
+ </section>
+
+ <section id="5Buntitled-5D" class="documentation-section">
+
+
+
+ <section class="attribute-method-details" class="method-section">
+ <header>
+ <h3>Attributes</h3>
+ </header>
+
+ <div id="attribute-i-diffs" class="method-detail">
+ <div class="method-heading attribute-method-heading">
+ <span class="method-name">diffs</span><span
+ class="attribute-access-type">[R]</span>
+ </div>
+
+ <div class="method-description">
+ <p>Returns the difference set collected during the diff process.</p>
+ </div>
+ </div>
+ </section>
+
+
+ <section id="public-class-5Buntitled-5D-method-details" class="method-section">
+ <header>
+ <h3>Public Class Methods</h3>
+ </header>
+
+ <div id="method-c-new" class="method-detail ">
+ <div class="method-heading">
+ <span class="method-name">new</span><span
+ class="method-args">() { |self| ... }</span>
+ <span class="method-click-advice">click to toggle source</span>
+ </div>
+
+ <div class="method-description">
+
+
+ <div class="method-source-code" id="new-source">
+ <pre><span class="ruby-comment"># File lib/diff/lcs/callbacks.rb, line 110</span>
+<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">initialize</span> <span class="ruby-comment"># :yields self:</span>
+ <span class="ruby-ivar">@hunk</span> = []
+ <span class="ruby-ivar">@diffs</span> = []
+
+ <span class="ruby-keyword">return</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">block_given?</span>
+
+ <span class="ruby-keyword">begin</span>
+ <span class="ruby-keyword">yield</span> <span class="ruby-keyword">self</span>
+ <span class="ruby-keyword">ensure</span>
+ <span class="ruby-identifier">finish</span>
+ <span class="ruby-keyword">end</span>
+<span class="ruby-keyword">end</span></pre>
+ </div>
+ </div>
+
+
+ </div>
+
+ </section>
+
+ <section id="public-instance-5Buntitled-5D-method-details" class="method-section">
+ <header>
+ <h3>Public Instance Methods</h3>
+ </header>
+
+ <div id="method-i-discard_a" class="method-detail ">
+ <div class="method-heading">
+ <span class="method-name">discard_a</span><span
+ class="method-args">(event)</span>
+ <span class="method-click-advice">click to toggle source</span>
+ </div>
+
+ <div class="method-description">
+
+
+ <div class="method-source-code" id="discard_a-source">
+ <pre><span class="ruby-comment"># File lib/diff/lcs/callbacks.rb, line 133</span>
+<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">discard_a</span>(<span class="ruby-identifier">event</span>)
+ <span class="ruby-ivar">@hunk</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">Diff</span><span class="ruby-operator">::</span><span class="ruby-constant">LCS</span><span class="ruby-operator">::</span><span class="ruby-constant">Change</span>.<span class="ruby-identifier">new</span>(<span class="ruby-string">&#39;-&#39;</span>, <span class="ruby-identifier">event</span>.<span class="ruby-identifier">old_position</span>, <span class="ruby-identifier">event</span>.<span class="ruby-identifier">old_element</span>)
+<span class="ruby-keyword">end</span></pre>
+ </div>
+ </div>
+
+
+ </div>
+
+ <div id="method-i-discard_b" class="method-detail ">
+ <div class="method-heading">
+ <span class="method-name">discard_b</span><span
+ class="method-args">(event)</span>
+ <span class="method-click-advice">click to toggle source</span>
+ </div>
+
+ <div class="method-description">
+
+
+ <div class="method-source-code" id="discard_b-source">
+ <pre><span class="ruby-comment"># File lib/diff/lcs/callbacks.rb, line 137</span>
+<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">discard_b</span>(<span class="ruby-identifier">event</span>)
+ <span class="ruby-ivar">@hunk</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">Diff</span><span class="ruby-operator">::</span><span class="ruby-constant">LCS</span><span class="ruby-operator">::</span><span class="ruby-constant">Change</span>.<span class="ruby-identifier">new</span>(<span class="ruby-string">&#39;+&#39;</span>, <span class="ruby-identifier">event</span>.<span class="ruby-identifier">new_position</span>, <span class="ruby-identifier">event</span>.<span class="ruby-identifier">new_element</span>)
+<span class="ruby-keyword">end</span></pre>
+ </div>
+ </div>
+
+
+ </div>
+
+ <div id="method-i-finish" class="method-detail ">
+ <div class="method-heading">
+ <span class="method-name">finish</span><span
+ class="method-args">()</span>
+ <span class="method-click-advice">click to toggle source</span>
+ </div>
+
+ <div class="method-description">
+ <p>Finalizes the diff process. If an unprocessed hunk still exists, then it is appended to the diff list.</p>
+
+ <div class="method-source-code" id="finish-source">
+ <pre><span class="ruby-comment"># File lib/diff/lcs/callbacks.rb, line 125</span>
+<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">finish</span>
+ <span class="ruby-identifier">finish_hunk</span>
+<span class="ruby-keyword">end</span></pre>
+ </div>
+ </div>
+
+
+ </div>
+
+ <div id="method-i-match" class="method-detail ">
+ <div class="method-heading">
+ <span class="method-name">match</span><span
+ class="method-args">(_event)</span>
+ <span class="method-click-advice">click to toggle source</span>
+ </div>
+
+ <div class="method-description">
+
+
+ <div class="method-source-code" id="match-source">
+ <pre><span class="ruby-comment"># File lib/diff/lcs/callbacks.rb, line 129</span>
+<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">match</span>(<span class="ruby-identifier">_event</span>)
+ <span class="ruby-identifier">finish_hunk</span>
+<span class="ruby-keyword">end</span></pre>
+ </div>
+ </div>
+
+
+ </div>
+
+ </section>
+
+ </section>
+</main>
+
+
+<footer id="validator-badges" role="contentinfo">
+ <p><a href="https://validator.w3.org/check/referer">Validate</a>
+ <p>Generated by <a href="https://ruby.github.io/rdoc/">RDoc</a> 6.3.3.
+ <p>Based on <a href="http://deveiate.org/projects/Darkfish-RDoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
+</footer>
+