doc/TaskJuggler/Scoreboard.html in taskjuggler-0.0.8 vs doc/TaskJuggler/Scoreboard.html in taskjuggler-0.0.9

- old
+ new

@@ -145,10 +145,12 @@ <li><a href="../TaskJuggler/AttributeBase.html">TaskJuggler::AttributeBase</a></li> <li><a href="../TaskJuggler/AttributeDefinition.html">TaskJuggler::AttributeDefinition</a></li> + <li><a href="../TaskJuggler/AttributeOverwrite.html">TaskJuggler::AttributeOverwrite</a></li> + <li><a href="../TaskJuggler/BatchProcessor.html">TaskJuggler::BatchProcessor</a></li> <li><a href="../TaskJuggler/Booking.html">TaskJuggler::Booking</a></li> <li><a href="../TaskJuggler/BookingListAttribute.html">TaskJuggler::BookingListAttribute</a></li> @@ -223,10 +225,12 @@ <li><a href="../TaskJuggler/HTMLGraphics.html">TaskJuggler::HTMLGraphics</a></li> <li><a href="../TaskJuggler/Interval.html">TaskJuggler::Interval</a></li> + <li><a href="../TaskJuggler/IntervalList.html">TaskJuggler::IntervalList</a></li> + <li><a href="../TaskJuggler/IntervalListAttribute.html">TaskJuggler::IntervalListAttribute</a></li> <li><a href="../TaskJuggler/JobInfo.html">TaskJuggler::JobInfo</a></li> <li><a href="../TaskJuggler/Journal.html">TaskJuggler::Journal</a></li> @@ -255,10 +259,12 @@ <li><a href="../TaskJuggler/LogicalExpression.html">TaskJuggler::LogicalExpression</a></li> <li><a href="../TaskJuggler/LogicalExpressionAttribute.html">TaskJuggler::LogicalExpressionAttribute</a></li> + <li><a href="../TaskJuggler/LogicalExpressionListAttribute.html">TaskJuggler::LogicalExpressionListAttribute</a></li> + <li><a href="../TaskJuggler/LogicalFlag.html">TaskJuggler::LogicalFlag</a></li> <li><a href="../TaskJuggler/LogicalFunction.html">TaskJuggler::LogicalFunction</a></li> <li><a href="../TaskJuggler/LogicalOperation.html">TaskJuggler::LogicalOperation</a></li> @@ -535,10 +541,12 @@ <li><a href="../TaskJuggler/VimSyntax.html">TaskJuggler::VimSyntax</a></li> <li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li> + <li><a href="../TaskJuggler/WelcomePage.html">TaskJuggler::WelcomePage</a></li> + <li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li> <li><a href="../TaskJuggler/WorkingHoursAttribute.html">TaskJuggler::WorkingHoursAttribute</a></li> <li><a href="../TaskJuggler/XMLBlob.html">TaskJuggler::XMLBlob</a></li> @@ -561,12 +569,10 @@ <li><a href="../RuntimeConfig.html">RuntimeConfig</a></li> <li><a href="../String.html">String</a></li> - <li><a href="../StringIO.html">StringIO</a></li> - </ul> <div id="no-class-search-results" style="display: none;">No matching classes.</div> </div> @@ -688,18 +694,18 @@ <div class="method-source-code" id="new-source"> <pre> - <span class="ruby-comment cmt"># File lib/Scoreboard.rb, line 27</span> -27: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">startDate</span>, <span class="ruby-identifier">endDate</span>, <span class="ruby-identifier">resolution</span>, <span class="ruby-identifier">initVal</span> = <span class="ruby-keyword kw">nil</span>) -28: <span class="ruby-ivar">@startDate</span> = <span class="ruby-identifier">startDate</span> -29: <span class="ruby-ivar">@endDate</span> = <span class="ruby-identifier">endDate</span> -30: <span class="ruby-ivar">@resolution</span> = <span class="ruby-identifier">resolution</span> -31: <span class="ruby-ivar">@size</span> = ((<span class="ruby-identifier">endDate</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">startDate</span>) <span class="ruby-operator">/</span> <span class="ruby-identifier">resolution</span>).<span class="ruby-identifier">ceil</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span> -32: <span class="ruby-identifier">clear</span>(<span class="ruby-identifier">initVal</span>) -33: <span class="ruby-keyword kw">end</span></pre> + <span class="ruby-comment cmt"># File lib/Scoreboard.rb, line 30</span> +30: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">startDate</span>, <span class="ruby-identifier">endDate</span>, <span class="ruby-identifier">resolution</span>, <span class="ruby-identifier">initVal</span> = <span class="ruby-keyword kw">nil</span>) +31: <span class="ruby-ivar">@startDate</span> = <span class="ruby-identifier">startDate</span> +32: <span class="ruby-ivar">@endDate</span> = <span class="ruby-identifier">endDate</span> +33: <span class="ruby-ivar">@resolution</span> = <span class="ruby-identifier">resolution</span> +34: <span class="ruby-ivar">@size</span> = ((<span class="ruby-identifier">endDate</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">startDate</span>) <span class="ruby-operator">/</span> <span class="ruby-identifier">resolution</span>).<span class="ruby-identifier">ceil</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span> +35: <span class="ruby-identifier">clear</span>(<span class="ruby-identifier">initVal</span>) +36: <span class="ruby-keyword kw">end</span></pre> </div> </div> @@ -734,14 +740,14 @@ <div class="method-source-code" id="--source"> <pre> - <span class="ruby-comment cmt"># File lib/Scoreboard.rb, line 87</span> -87: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">[]</span>(<span class="ruby-identifier">idx</span>) -88: <span class="ruby-ivar">@sb</span>[<span class="ruby-identifier">idx</span>] -89: <span class="ruby-keyword kw">end</span></pre> + <span class="ruby-comment cmt"># File lib/Scoreboard.rb, line 90</span> +90: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">[]</span>(<span class="ruby-identifier">idx</span>) +91: <span class="ruby-ivar">@sb</span>[<span class="ruby-identifier">idx</span>] +92: <span class="ruby-keyword kw">end</span></pre> </div> </div> @@ -770,14 +776,14 @@ <div class="method-source-code" id="--source"> <pre> - <span class="ruby-comment cmt"># File lib/Scoreboard.rb, line 92</span> -92: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">[]=</span>(<span class="ruby-identifier">idx</span>, <span class="ruby-identifier">value</span>) -93: <span class="ruby-ivar">@sb</span>[<span class="ruby-identifier">idx</span>] = <span class="ruby-identifier">value</span> -94: <span class="ruby-keyword kw">end</span></pre> + <span class="ruby-comment cmt"># File lib/Scoreboard.rb, line 95</span> +95: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">[]=</span>(<span class="ruby-identifier">idx</span>, <span class="ruby-identifier">value</span>) +96: <span class="ruby-ivar">@sb</span>[<span class="ruby-identifier">idx</span>] = <span class="ruby-identifier">value</span> +97: <span class="ruby-keyword kw">end</span></pre> </div> </div> @@ -806,14 +812,14 @@ <div class="method-source-code" id="clear-source"> <pre> - <span class="ruby-comment cmt"># File lib/Scoreboard.rb, line 36</span> -36: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">clear</span>(<span class="ruby-identifier">initVal</span> = <span class="ruby-keyword kw">nil</span>) -37: <span class="ruby-ivar">@sb</span> = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@size</span>, <span class="ruby-identifier">initVal</span>) -38: <span class="ruby-keyword kw">end</span></pre> + <span class="ruby-comment cmt"># File lib/Scoreboard.rb, line 39</span> +39: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">clear</span>(<span class="ruby-identifier">initVal</span> = <span class="ruby-keyword kw">nil</span>) +40: <span class="ruby-ivar">@sb</span> = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@size</span>, <span class="ruby-identifier">initVal</span>) +41: <span class="ruby-keyword kw">end</span></pre> </div> </div> @@ -842,14 +848,14 @@ <div class="method-source-code" id="collect--source"> <pre> - <span class="ruby-comment cmt"># File lib/Scoreboard.rb, line 82</span> -82: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">collect!</span> -83: <span class="ruby-ivar">@sb</span>.<span class="ruby-identifier">collect!</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">x</span><span class="ruby-operator">|</span> <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">x</span> } -84: <span class="ruby-keyword kw">end</span></pre> + <span class="ruby-comment cmt"># File lib/Scoreboard.rb, line 85</span> +85: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">collect!</span> +86: <span class="ruby-ivar">@sb</span>.<span class="ruby-identifier">collect!</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">x</span><span class="ruby-operator">|</span> <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">x</span> } +87: <span class="ruby-keyword kw">end</span></pre> </div> </div> @@ -873,55 +879,71 @@ <p> Return a list of intervals that describe a contiguous part of the scoreboard that contains only the values that yield true for the passed block. The intervals must be within the interval described by <em>iv</em> -and must be at least <em>minDuration</em> long. The return value is an -Array of [ start, end ] <a href="TjTime.html">TjTime</a> values. +and must be at least <em>minDuration</em> long. The return value is an <a +href="IntervalList.html">IntervalList</a>. </p> <div class="method-source-code" id="collect-ntervals-source"> <pre> - <span class="ruby-comment cmt"># File lib/Scoreboard.rb, line 111</span> -111: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">collectIntervals</span>(<span class="ruby-identifier">iv</span>, <span class="ruby-identifier">minDuration</span>) -112: <span class="ruby-comment cmt"># Determine the start and stop index for the scoreboard search.</span> -113: <span class="ruby-identifier">startIdx</span> = <span class="ruby-identifier">dateToIdx</span>(<span class="ruby-identifier">iv</span>.<span class="ruby-identifier">start</span>, <span class="ruby-keyword kw">true</span>) -114: <span class="ruby-identifier">endIdx</span> = <span class="ruby-identifier">dateToIdx</span>(<span class="ruby-identifier">iv</span>.<span class="ruby-identifier">end</span>, <span class="ruby-keyword kw">true</span>) -115: -116: <span class="ruby-comment cmt"># Convert the minDuration into number of slots.</span> -117: <span class="ruby-identifier">minDuration</span> <span class="ruby-operator">/=</span> <span class="ruby-ivar">@resolution</span> -118: <span class="ruby-identifier">minDuration</span> = <span class="ruby-value">1</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">minDuration</span> <span class="ruby-operator">&lt;=</span> <span class="ruby-value">0</span> + <span class="ruby-comment cmt"># File lib/Scoreboard.rb, line 114</span> +114: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">collectIntervals</span>(<span class="ruby-identifier">iv</span>, <span class="ruby-identifier">minDuration</span>) +115: <span class="ruby-comment cmt"># Determine the start and stop index for the scoreboard search. We save</span> +116: <span class="ruby-comment cmt"># the original values for later use as well.</span> +117: <span class="ruby-identifier">startIdx</span> = <span class="ruby-identifier">sIdx</span> = <span class="ruby-identifier">dateToIdx</span>(<span class="ruby-identifier">iv</span>.<span class="ruby-identifier">start</span>, <span class="ruby-keyword kw">true</span>) +118: <span class="ruby-identifier">endIdx</span> = <span class="ruby-identifier">eIdx</span> = <span class="ruby-identifier">dateToIdx</span>(<span class="ruby-identifier">iv</span>.<span class="ruby-identifier">end</span>, <span class="ruby-keyword kw">true</span>) 119: -120: <span class="ruby-comment cmt"># This is collects the resulting intervals.</span> -121: <span class="ruby-identifier">intervals</span> = [] -122: <span class="ruby-comment cmt"># The duration counter for the currently analyzed interval and the start</span> -123: <span class="ruby-comment cmt"># index.</span> -124: <span class="ruby-identifier">duration</span> = <span class="ruby-identifier">start</span> = <span class="ruby-value">0</span> -125: -126: <span class="ruby-identifier">startIdx</span>.<span class="ruby-identifier">upto</span>(<span class="ruby-identifier">endIdx</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">idx</span><span class="ruby-operator">|</span> -127: <span class="ruby-comment cmt"># Check whether the scoreboard slot matches any of the target values.</span> -128: <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">yield</span>(<span class="ruby-ivar">@sb</span>[<span class="ruby-identifier">idx</span>]) -129: <span class="ruby-comment cmt"># If so, save the start position if this is the first slot and start</span> -130: <span class="ruby-comment cmt"># counting the matching slots.</span> -131: <span class="ruby-identifier">start</span> = <span class="ruby-identifier">idx</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">start</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span> -132: <span class="ruby-identifier">duration</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span> -133: <span class="ruby-keyword kw">else</span> -134: <span class="ruby-comment cmt"># If we don't have a match, check if we've just finished a matching</span> -135: <span class="ruby-comment cmt"># interval.</span> -136: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">duration</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span> -137: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">duration</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-identifier">minDuration</span> -138: <span class="ruby-identifier">intervals</span> <span class="ruby-operator">&lt;&lt;</span> [ <span class="ruby-identifier">idxToDate</span>(<span class="ruby-identifier">start</span>), <span class="ruby-identifier">idxToDate</span>(<span class="ruby-identifier">idx</span>) ] -139: <span class="ruby-keyword kw">end</span> -140: <span class="ruby-identifier">duration</span> = <span class="ruby-identifier">start</span> = <span class="ruby-value">0</span> -141: <span class="ruby-keyword kw">end</span> -142: <span class="ruby-keyword kw">end</span> -143: <span class="ruby-keyword kw">end</span> -144: <span class="ruby-identifier">intervals</span> -145: <span class="ruby-keyword kw">end</span></pre> +120: <span class="ruby-comment cmt"># Convert the minDuration into number of slots.</span> +121: <span class="ruby-identifier">minDuration</span> <span class="ruby-operator">/=</span> <span class="ruby-ivar">@resolution</span> +122: <span class="ruby-identifier">minDuration</span> = <span class="ruby-value">1</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">minDuration</span> <span class="ruby-operator">&lt;=</span> <span class="ruby-value">0</span> +123: +124: <span class="ruby-comment cmt"># Expand the interval with the minDuration to both sides. This will</span> +125: <span class="ruby-comment cmt"># reduce the failure to detect intervals at the iv boundary. However,</span> +126: <span class="ruby-comment cmt"># this will not prevent undetected intervals at the project time frame</span> +127: <span class="ruby-comment cmt"># boundaries.</span> +128: <span class="ruby-identifier">startIdx</span> <span class="ruby-operator">-=</span> <span class="ruby-identifier">minDuration</span> +129: <span class="ruby-identifier">startIdx</span> = <span class="ruby-value">0</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">startIdx</span> <span class="ruby-operator">&lt;</span> <span class="ruby-value">0</span> +130: <span class="ruby-identifier">endIdx</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">minDuration</span> +131: <span class="ruby-identifier">endIdx</span> = <span class="ruby-ivar">@size</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">endIdx</span> <span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@size</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span> +132: +133: <span class="ruby-comment cmt"># This is collects the resulting intervals.</span> +134: <span class="ruby-identifier">intervals</span> = <span class="ruby-constant">IntervalList</span>.<span class="ruby-identifier">new</span> +135: +136: <span class="ruby-comment cmt"># The duration counter for the currently analyzed interval and the start</span> +137: <span class="ruby-comment cmt"># index.</span> +138: <span class="ruby-identifier">duration</span> = <span class="ruby-identifier">start</span> = <span class="ruby-value">0</span> +139: +140: <span class="ruby-identifier">startIdx</span>.<span class="ruby-identifier">upto</span>(<span class="ruby-identifier">endIdx</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">idx</span><span class="ruby-operator">|</span> +141: <span class="ruby-comment cmt"># Check whether the scoreboard slot matches any of the target values.</span> +142: <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">yield</span>(<span class="ruby-ivar">@sb</span>[<span class="ruby-identifier">idx</span>]) +143: <span class="ruby-comment cmt"># If so, save the start position if this is the first slot and start</span> +144: <span class="ruby-comment cmt"># counting the matching slots.</span> +145: <span class="ruby-identifier">start</span> = <span class="ruby-identifier">idx</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">start</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span> +146: <span class="ruby-identifier">duration</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span> +147: <span class="ruby-keyword kw">else</span> +148: <span class="ruby-comment cmt"># If we don't have a match, check if we've just finished a matching</span> +149: <span class="ruby-comment cmt"># interval.</span> +150: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">duration</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span> +151: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">duration</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-identifier">minDuration</span> +152: <span class="ruby-comment cmt"># Make sure that all intervals are within the originally</span> +153: <span class="ruby-comment cmt"># requested Interval.</span> +154: <span class="ruby-identifier">start</span> = <span class="ruby-identifier">sIdx</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">start</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">sIdx</span> +155: <span class="ruby-identifier">idx</span> = <span class="ruby-identifier">eIdx</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">idx</span> <span class="ruby-operator">&gt;</span> <span class="ruby-identifier">eIdx</span> +156: +157: <span class="ruby-identifier">intervals</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">Interval</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">idxToDate</span>(<span class="ruby-identifier">start</span>), <span class="ruby-identifier">idxToDate</span>(<span class="ruby-identifier">idx</span>)) +158: <span class="ruby-keyword kw">end</span> +159: <span class="ruby-identifier">duration</span> = <span class="ruby-identifier">start</span> = <span class="ruby-value">0</span> +160: <span class="ruby-keyword kw">end</span> +161: <span class="ruby-keyword kw">end</span> +162: <span class="ruby-keyword kw">end</span> +163: <span class="ruby-identifier">intervals</span> +164: <span class="ruby-keyword kw">end</span></pre> </div> </div> @@ -951,24 +973,24 @@ <div class="method-source-code" id="date-o-dx-source"> <pre> - <span class="ruby-comment cmt"># File lib/Scoreboard.rb, line 54</span> -54: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">dateToIdx</span>(<span class="ruby-identifier">date</span>, <span class="ruby-identifier">forceIntoProject</span> = <span class="ruby-keyword kw">false</span>) -55: <span class="ruby-identifier">idx</span> = ((<span class="ruby-identifier">date</span> <span class="ruby-operator">-</span> <span class="ruby-ivar">@startDate</span>) <span class="ruby-operator">/</span> <span class="ruby-ivar">@resolution</span>).<span class="ruby-identifier">to_i</span> -56: -57: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">forceIntoProject</span> -58: <span class="ruby-keyword kw">return</span> <span class="ruby-value">0</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">idx</span> <span class="ruby-operator">&lt;</span> <span class="ruby-value">0</span> -59: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@size</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">idx</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-ivar">@size</span> -60: <span class="ruby-keyword kw">elsif</span> (<span class="ruby-identifier">idx</span> <span class="ruby-operator">&lt;</span> <span class="ruby-value">0</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">idx</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-ivar">@size</span>) -61: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Date #{date} is out of project time range &quot;</span> <span class="ruby-operator">+</span> -62: <span class="ruby-node">&quot;(#{@startDate} - #{@endDate})&quot;</span> -63: <span class="ruby-keyword kw">end</span> -64: -65: <span class="ruby-identifier">idx</span> -66: <span class="ruby-keyword kw">end</span></pre> + <span class="ruby-comment cmt"># File lib/Scoreboard.rb, line 57</span> +57: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">dateToIdx</span>(<span class="ruby-identifier">date</span>, <span class="ruby-identifier">forceIntoProject</span> = <span class="ruby-keyword kw">false</span>) +58: <span class="ruby-identifier">idx</span> = ((<span class="ruby-identifier">date</span> <span class="ruby-operator">-</span> <span class="ruby-ivar">@startDate</span>) <span class="ruby-operator">/</span> <span class="ruby-ivar">@resolution</span>).<span class="ruby-identifier">to_i</span> +59: +60: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">forceIntoProject</span> +61: <span class="ruby-keyword kw">return</span> <span class="ruby-value">0</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">idx</span> <span class="ruby-operator">&lt;</span> <span class="ruby-value">0</span> +62: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@size</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">idx</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-ivar">@size</span> +63: <span class="ruby-keyword kw">elsif</span> (<span class="ruby-identifier">idx</span> <span class="ruby-operator">&lt;</span> <span class="ruby-value">0</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">idx</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-ivar">@size</span>) +64: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Date #{date} is out of project time range &quot;</span> <span class="ruby-operator">+</span> +65: <span class="ruby-node">&quot;(#{@startDate} - #{@endDate})&quot;</span> +66: <span class="ruby-keyword kw">end</span> +67: +68: <span class="ruby-identifier">idx</span> +69: <span class="ruby-keyword kw">end</span></pre> </div> </div> @@ -997,22 +1019,22 @@ <div class="method-source-code" id="each-source"> <pre> - <span class="ruby-comment cmt"># File lib/Scoreboard.rb, line 69</span> -69: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">each</span>(<span class="ruby-identifier">startIdx</span> = <span class="ruby-value">0</span>, <span class="ruby-identifier">endIdx</span> = <span class="ruby-ivar">@size</span>) -70: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">startIdx</span> <span class="ruby-operator">!=</span> <span class="ruby-value">0</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">endIdx</span> <span class="ruby-operator">!=</span> <span class="ruby-ivar">@size</span> -71: <span class="ruby-identifier">startIdx</span>.<span class="ruby-identifier">upto</span>(<span class="ruby-identifier">endIdx</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span> -72: <span class="ruby-keyword kw">yield</span> <span class="ruby-ivar">@sb</span>[<span class="ruby-identifier">i</span>] -73: <span class="ruby-keyword kw">end</span> -74: <span class="ruby-keyword kw">else</span> -75: <span class="ruby-ivar">@sb</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">entry</span><span class="ruby-operator">|</span> -76: <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">entry</span> -77: <span class="ruby-keyword kw">end</span> -78: <span class="ruby-keyword kw">end</span> -79: <span class="ruby-keyword kw">end</span></pre> + <span class="ruby-comment cmt"># File lib/Scoreboard.rb, line 72</span> +72: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">each</span>(<span class="ruby-identifier">startIdx</span> = <span class="ruby-value">0</span>, <span class="ruby-identifier">endIdx</span> = <span class="ruby-ivar">@size</span>) +73: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">startIdx</span> <span class="ruby-operator">!=</span> <span class="ruby-value">0</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">endIdx</span> <span class="ruby-operator">!=</span> <span class="ruby-ivar">@size</span> +74: <span class="ruby-identifier">startIdx</span>.<span class="ruby-identifier">upto</span>(<span class="ruby-identifier">endIdx</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span> +75: <span class="ruby-keyword kw">yield</span> <span class="ruby-ivar">@sb</span>[<span class="ruby-identifier">i</span>] +76: <span class="ruby-keyword kw">end</span> +77: <span class="ruby-keyword kw">else</span> +78: <span class="ruby-ivar">@sb</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">entry</span><span class="ruby-operator">|</span> +79: <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">entry</span> +80: <span class="ruby-keyword kw">end</span> +81: <span class="ruby-keyword kw">end</span> +82: <span class="ruby-keyword kw">end</span></pre> </div> </div> @@ -1041,14 +1063,14 @@ <div class="method-source-code" id="get-source"> <pre> - <span class="ruby-comment cmt"># File lib/Scoreboard.rb, line 97</span> -97: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get</span>(<span class="ruby-identifier">date</span>) -98: <span class="ruby-ivar">@sb</span>[<span class="ruby-identifier">dateToIdx</span>(<span class="ruby-identifier">date</span>)] -99: <span class="ruby-keyword kw">end</span></pre> + <span class="ruby-comment cmt"># File lib/Scoreboard.rb, line 100</span> +100: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get</span>(<span class="ruby-identifier">date</span>) +101: <span class="ruby-ivar">@sb</span>[<span class="ruby-identifier">dateToIdx</span>(<span class="ruby-identifier">date</span>)] +102: <span class="ruby-keyword kw">end</span></pre> </div> </div> @@ -1078,20 +1100,20 @@ <div class="method-source-code" id="idx-o-ate-source"> <pre> - <span class="ruby-comment cmt"># File lib/Scoreboard.rb, line 42</span> -42: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">idxToDate</span>(<span class="ruby-identifier">idx</span>, <span class="ruby-identifier">forceIntoProject</span> = <span class="ruby-keyword kw">false</span>) -43: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">forceIntoProject</span> -44: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@startDate</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">kdx</span> <span class="ruby-operator">&lt;</span> <span class="ruby-value">0</span> -45: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@endDate</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@size</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">idx</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-ivar">@size</span> -46: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">idx</span> <span class="ruby-operator">&lt;</span> <span class="ruby-value">0</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">idx</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-ivar">@size</span> -47: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Index #{idx} is out of scoreboard range (#{size - 1})&quot;</span> -48: <span class="ruby-keyword kw">end</span> -49: <span class="ruby-ivar">@startDate</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">idx</span> * <span class="ruby-ivar">@resolution</span> -50: <span class="ruby-keyword kw">end</span></pre> + <span class="ruby-comment cmt"># File lib/Scoreboard.rb, line 45</span> +45: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">idxToDate</span>(<span class="ruby-identifier">idx</span>, <span class="ruby-identifier">forceIntoProject</span> = <span class="ruby-keyword kw">false</span>) +46: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">forceIntoProject</span> +47: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@startDate</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">kdx</span> <span class="ruby-operator">&lt;</span> <span class="ruby-value">0</span> +48: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@endDate</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@size</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">idx</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-ivar">@size</span> +49: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">idx</span> <span class="ruby-operator">&lt;</span> <span class="ruby-value">0</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">idx</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-ivar">@size</span> +50: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Index #{idx} is out of scoreboard range (#{size - 1})&quot;</span> +51: <span class="ruby-keyword kw">end</span> +52: <span class="ruby-ivar">@startDate</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">idx</span> * <span class="ruby-ivar">@resolution</span> +53: <span class="ruby-keyword kw">end</span></pre> </div> </div> @@ -1120,13 +1142,13 @@ <div class="method-source-code" id="set-source"> <pre> - <span class="ruby-comment cmt"># File lib/Scoreboard.rb, line 102</span> -102: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">set</span>(<span class="ruby-identifier">date</span>, <span class="ruby-identifier">value</span>) -103: <span class="ruby-ivar">@sb</span>[<span class="ruby-identifier">dateToIdx</span>(<span class="ruby-identifier">date</span>)] = <span class="ruby-identifier">value</span> -104: <span class="ruby-keyword kw">end</span></pre> + <span class="ruby-comment cmt"># File lib/Scoreboard.rb, line 105</span> +105: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">set</span>(<span class="ruby-identifier">date</span>, <span class="ruby-identifier">value</span>) +106: <span class="ruby-ivar">@sb</span>[<span class="ruby-identifier">dateToIdx</span>(<span class="ruby-identifier">date</span>)] = <span class="ruby-identifier">value</span> +107: <span class="ruby-keyword kw">end</span></pre> </div> </div>