summaryrefslogtreecommitdiff
path: root/LCS/SDiffCallbacks.html
diff options
context:
space:
mode:
Diffstat (limited to 'LCS/SDiffCallbacks.html')
-rw-r--r--LCS/SDiffCallbacks.html312
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 &lt;strong&gt;and unchanged&lt;/strong&gt; 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 &lt; -
+- &gt; 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.
+ # [ [ &quot;-&quot;, [ 0, &quot;a&quot;], [ 0, nil ] ],
+ # [ &quot;=&quot;, [ 1, &quot;b&quot;], [ 0, &quot;b&quot; ] ],
+ # [ &quot;=&quot;, [ 2, &quot;c&quot;], [ 1, &quot;c&quot; ] ],
+ # [ &quot;+&quot;, [ 3, nil], [ 2, &quot;d&quot; ] ],
+ # [ &quot;=&quot;, [ 3, &quot;e&quot;], [ 3, &quot;e&quot; ] ],
+ # [ &quot;!&quot;, [ 4, &quot;h&quot;], [ 4, &quot;f&quot; ] ],
+ # [ &quot;=&quot;, [ 5, &quot;j&quot;], [ 5, &quot;j&quot; ] ],
+ # [ &quot;+&quot;, [ 6, nil], [ 6, &quot;k&quot; ] ],
+ # [ &quot;=&quot;, [ 6, &quot;l&quot;], [ 7, &quot;l&quot; ] ],
+ # [ &quot;=&quot;, [ 7, &quot;m&quot;], [ 8, &quot;m&quot; ] ],
+ # [ &quot;!&quot;, [ 8, &quot;n&quot;], [ 9, &quot;r&quot; ] ],
+ # [ &quot;!&quot;, [ 9, &quot;p&quot;], [ 10, &quot;s&quot; ] ],
+ # [ &quot;+&quot;, [ 10, nil], [ 11, &quot;t&quot; ] ] ]</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">&quot;=&quot;</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"># -&gt; true</span>
+</pre>
+
+<h3 id="class-LCS::SDiffCallbacks-label-Use">Use<span><a href="#class-LCS::SDiffCallbacks-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-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">&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">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">&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">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">&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">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">&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">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">&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">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>
+