diff options
Diffstat (limited to 'doc/LCS/DiffCallbacks.html')
-rw-r--r-- | doc/LCS/DiffCallbacks.html | 305 |
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"># [ [ [ '-', 0, 'a' ] ], # 1</span> + <span class="ruby-comment"># [ [ '+', 2, 'd' ] ], # 2</span> + <span class="ruby-comment"># [ [ '-', 4, 'h' ], # 3</span> + <span class="ruby-comment"># [ '+', 4, 'f' ] ],</span> + <span class="ruby-comment"># [ [ '+', 6, 'k' ] ], # 4</span> + <span class="ruby-comment"># [ [ '-', 8, 'n' ], # 5</span> + <span class="ruby-comment"># [ '-', 9, 'p' ],</span> + <span class="ruby-comment"># [ '+', 9, 'r' ],</span> + <span class="ruby-comment"># [ '+', 10, 's' ],</span> + <span class="ruby-comment"># [ '+', 11, 't' ] ] ]</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>'-'</code>). The second hunk says that the <code>d</code> at position 2 of the second sequence should be inserted (<code>'+'</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">¶</a> <a href="#top">↑</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">¶</a> <a href="#top">↑</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">'pp'</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"><<</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">'-'</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"><<</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">'+'</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> + |