diff options
Diffstat (limited to 'LCS/SDiffCallbacks.html')
-rw-r--r-- | LCS/SDiffCallbacks.html | 312 |
1 files changed, 312 insertions, 0 deletions
diff --git a/LCS/SDiffCallbacks.html b/LCS/SDiffCallbacks.html new file mode 100644 index 0000000..46b385f --- /dev/null +++ b/LCS/SDiffCallbacks.html @@ -0,0 +1,312 @@ +<!DOCTYPE html> + +<html> +<head> +<meta charset="UTF-8"> + +<title>class LCS::SDiffCallbacks - 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::SDiffCallbacks-label-Use">Use</a> + <li><a href="#class-LCS::SDiffCallbacks-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-change">#change</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-match">#match</a> + </ul> +</div> + + </div> +</nav> + +<main role="main" aria-labelledby="class-LCS::SDiffCallbacks"> + <h1 id="class-LCS::SDiffCallbacks" class="class"> + class LCS::SDiffCallbacks + </h1> + + <section class="description"> + +<p>This will produce a simple array of diff change objects. Each element in the <a href="SDiffCallbacks.html#attribute-i-diffs"><code>diffs</code></a> array is a single ContextChange. In the set of <a href="SDiffCallbacks.html#attribute-i-diffs"><code>diffs</code></a> provided by <a href="SDiffCallbacks.html"><code>SDiffCallbacks</code></a>, both old and new objects will be presented for both changed <strong>and unchanged</strong> objects. <code>nil</code> will be substituted for a discarded object.</p> + +<p>The diffset produced by this callback, when provided to <a href="../LCS.html#method-i-sdiff"><code>Diff::LCS#sdiff</code></a>, will compute and display the necessary components to show two sequences and their minimized differences side by side, just like the Unix utility <code>sdiff</code>.</p> + +<pre>same same +before | after +old < - +- > new + +seq1 = %w(a b c e h j l m n p) +seq2 = %w(b c d e f j k l m r s t) + +diffs = Diff::LCS.sdiff(seq1, seq2) + # This example shows a simplified array format. + # [ [ "-", [ 0, "a"], [ 0, nil ] ], + # [ "=", [ 1, "b"], [ 0, "b" ] ], + # [ "=", [ 2, "c"], [ 1, "c" ] ], + # [ "+", [ 3, nil], [ 2, "d" ] ], + # [ "=", [ 3, "e"], [ 3, "e" ] ], + # [ "!", [ 4, "h"], [ 4, "f" ] ], + # [ "=", [ 5, "j"], [ 5, "j" ] ], + # [ "+", [ 6, nil], [ 6, "k" ] ], + # [ "=", [ 6, "l"], [ 7, "l" ] ], + # [ "=", [ 7, "m"], [ 8, "m" ] ], + # [ "!", [ 8, "n"], [ 9, "r" ] ], + # [ "!", [ 9, "p"], [ 10, "s" ] ], + # [ "+", [ 10, nil], [ 11, "t" ] ] ]</pre> + +<p>The result of this operation is similar to that of Diff::LCS::ContextDiffCallbacks. They may be compared as:</p> + +<pre class="ruby"><span class="ruby-identifier">s</span> = <span class="ruby-constant">Diff</span><span class="ruby-operator">::</span><span class="ruby-constant">LCS</span>.<span class="ruby-identifier">sdiff</span>(<span class="ruby-identifier">seq1</span>, <span class="ruby-identifier">seq2</span>).<span class="ruby-identifier">reject</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">action</span> <span class="ruby-operator">==</span> <span class="ruby-string">"="</span> } +<span class="ruby-identifier">c</span> = <span class="ruby-constant">Diff</span><span class="ruby-operator">::</span><span class="ruby-constant">LCS</span>.<span class="ruby-identifier">sdiff</span>(<span class="ruby-identifier">seq1</span>, <span class="ruby-identifier">seq2</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">ContextDiffCallbacks</span>).<span class="ruby-identifier">flatten</span>(<span class="ruby-value">1</span>) + +<span class="ruby-identifier">s</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">c</span> <span class="ruby-comment"># -> true</span> +</pre> + +<h3 id="class-LCS::SDiffCallbacks-label-Use">Use<span><a href="#class-LCS::SDiffCallbacks-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-sdiff"><code>Diff::LCS#sdiff</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">SDiffCallbacks</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>) +</pre> + +<p>As with the other initialisable callback objects, Diff::LCS::SDiffCallbacks can be initialised with a block. As there is no “fininishing” to be done, this has no effect on the state of the object.</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">SDiffCallbacks</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> + +<h3 id="class-LCS::SDiffCallbacks-label-Simplified+Array+Format">Simplified <a href="../Array.html"><code>Array</code></a> Format<span><a href="#class-LCS::SDiffCallbacks-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">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 305</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">@diffs</span> = [] + <span class="ruby-keyword">yield</span> <span class="ruby-keyword">self</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">block_given?</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-change" class="method-detail "> + <div class="method-heading"> + <span class="method-name">change</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="change-source"> + <pre><span class="ruby-comment"># File lib/diff/lcs/callbacks.rb, line 322</span> +<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">change</span>(<span class="ruby-identifier">event</span>) + <span class="ruby-ivar">@diffs</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">ContextChange</span>.<span class="ruby-identifier">simplify</span>(<span class="ruby-identifier">event</span>) +<span class="ruby-keyword">end</span></pre> + </div> + </div> + + + </div> + + <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 314</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">@diffs</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">ContextChange</span>.<span class="ruby-identifier">simplify</span>(<span class="ruby-identifier">event</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 318</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">@diffs</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">ContextChange</span>.<span class="ruby-identifier">simplify</span>(<span class="ruby-identifier">event</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 310</span> +<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">match</span>(<span class="ruby-identifier">event</span>) + <span class="ruby-ivar">@diffs</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">ContextChange</span>.<span class="ruby-identifier">simplify</span>(<span class="ruby-identifier">event</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> + |