doc/TaskJuggler/KeywordDocumentation.html in taskjuggler-0.0.6 vs doc/TaskJuggler/KeywordDocumentation.html in taskjuggler-0.0.7

- old
+ new

@@ -81,12 +81,16 @@ <li><a href="#method-i-generateHTML">#generateHTML</a></li> <li><a href="#method-i-generateHTMLNavigationBar">#generateHTMLNavigationBar</a></li> + <li><a href="#method-i-globalScope%3F">#globalScope?</a></li> + <li><a href="#method-i-indent">#indent</a></li> + <li><a href="#method-i-isProperty%3F">#isProperty?</a></li> + <li><a href="#method-i-keywordHTMLRef">#keywordHTMLRef</a></li> <li><a href="#method-i-listHTMLAttributes">#listHTMLAttributes</a></li> <li><a href="#method-i-newRichText">#newRichText</a></li> @@ -185,10 +189,14 @@ <li><a href="../TaskJuggler/DependencyListAttribute.html">TaskJuggler::DependencyListAttribute</a></li> <li><a href="../TaskJuggler/DurationAttribute.html">TaskJuggler::DurationAttribute</a></li> + <li><a href="../TaskJuggler/FileList.html">TaskJuggler::FileList</a></li> + + <li><a href="../TaskJuggler/FileRecord.html">TaskJuggler::FileRecord</a></li> + <li><a href="../TaskJuggler/FixnumAttribute.html">TaskJuggler::FixnumAttribute</a></li> <li><a href="../TaskJuggler/FlagListAttribute.html">TaskJuggler::FlagListAttribute</a></li> <li><a href="../TaskJuggler/FloatAttribute.html">TaskJuggler::FloatAttribute</a></li> @@ -257,12 +265,10 @@ <li><a href="../TaskJuggler/LogicalOperation.html">TaskJuggler::LogicalOperation</a></li> <li><a href="../TaskJuggler/Macro.html">TaskJuggler::Macro</a></li> - <li><a href="../TaskJuggler/MacroParser.html">TaskJuggler::MacroParser</a></li> - <li><a href="../TaskJuggler/MacroTable.html">TaskJuggler::MacroTable</a></li> <li><a href="../TaskJuggler/ManagerResponsibilities.html">TaskJuggler::ManagerResponsibilities</a></li> <li><a href="../TaskJuggler/ManagerStatusRecord.html">TaskJuggler::ManagerStatusRecord</a></li> @@ -323,10 +329,12 @@ <li><a href="../TaskJuggler/RTFReport.html">TaskJuggler::RTFReport</a></li> <li><a href="../TaskJuggler/RTFReportLink.html">TaskJuggler::RTFReportLink</a></li> + <li><a href="../TaskJuggler/RTFWithQuerySupport.html">TaskJuggler::RTFWithQuerySupport</a></li> + <li><a href="../TaskJuggler/RealFormat.html">TaskJuggler::RealFormat</a></li> <li><a href="../TaskJuggler/RealFormatAttribute.html">TaskJuggler::RealFormatAttribute</a></li> <li><a href="../TaskJuggler/ReferenceAttribute.html">TaskJuggler::ReferenceAttribute</a></li> @@ -369,12 +377,10 @@ <li><a href="../TaskJuggler/RichTextDocument.html">TaskJuggler::RichTextDocument</a></li> <li><a href="../TaskJuggler/RichTextElement.html">TaskJuggler::RichTextElement</a></li> - <li><a href="../TaskJuggler/RichTextException.html">TaskJuggler::RichTextException</a></li> - <li><a href="../TaskJuggler/RichTextFunctionExample.html">TaskJuggler::RichTextFunctionExample</a></li> <li><a href="../TaskJuggler/RichTextFunctionHandler.html">TaskJuggler::RichTextFunctionHandler</a></li> <li><a href="../TaskJuggler/RichTextImage.html">TaskJuggler::RichTextImage</a></li> @@ -411,10 +417,12 @@ <li><a href="../TaskJuggler/ShiftAssignmentsAttribute.html">TaskJuggler::ShiftAssignmentsAttribute</a></li> <li><a href="../TaskJuggler/ShiftScenario.html">TaskJuggler::ShiftScenario</a></li> + <li><a href="../TaskJuggler/SimpleQueryExpander.html">TaskJuggler::SimpleQueryExpander</a></li> + <li><a href="../TaskJuggler/SortListAttribute.html">TaskJuggler::SortListAttribute</a></li> <li><a href="../TaskJuggler/SourceFileInfo.html">TaskJuggler::SourceFileInfo</a></li> <li><a href="../TaskJuggler/StatusSheetReceiver.html">TaskJuggler::StatusSheetReceiver</a></li> @@ -521,10 +529,12 @@ <li><a href="../TaskJuggler/URLParameter.html">TaskJuggler::URLParameter</a></li> <li><a href="../TaskJuggler/UserManual.html">TaskJuggler::UserManual</a></li> + <li><a href="../TaskJuggler/VimSyntax.html">TaskJuggler::VimSyntax</a></li> + <li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li> <li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li> <li><a href="../TaskJuggler/WorkingHoursAttribute.html">TaskJuggler::WorkingHoursAttribute</a></li> @@ -603,10 +613,25 @@ </div> </div> + <div id="names-attribute-method" class="method-detail"> + <a name="names"></a> + + <div class="method-heading attribute-method-heading"> + <span class="method-name">names</span><span + class="attribute-access-type">[R]</span> + </div> + + <div class="method-description"> + + + + </div> + </div> + <div id="pattern-attribute-method" class="method-detail"> <a name="pattern"></a> <div class="method-heading attribute-method-heading"> <span class="method-name">pattern</span><span @@ -633,10 +658,25 @@ </div> </div> + <div id="optional-ttributes-attribute-method" class="method-detail"> + <a name="optionalAttributes"></a> + + <div class="method-heading attribute-method-heading"> + <span class="method-name">optionalAttributes</span><span + class="attribute-access-type">[R]</span> + </div> + + <div class="method-description"> + + + + </div> + </div> + <div id="contexts-attribute-method" class="method-detail"> <a name="contexts"></a> <a name="contexts="></a> @@ -776,34 +816,40 @@ <div class="method-source-code" id="new-source"> <pre> <span class="ruby-comment cmt"># File lib/KeywordDocumentation.rb, line 43</span> 43: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">rule</span>, <span class="ruby-identifier">pattern</span>, <span class="ruby-identifier">syntax</span>, <span class="ruby-identifier">args</span>, <span class="ruby-identifier">optAttrPatterns</span>, <span class="ruby-identifier">manual</span>) -44: <span class="ruby-ivar">@rule</span> = <span class="ruby-identifier">rule</span> -45: <span class="ruby-ivar">@pattern</span> = <span class="ruby-identifier">pattern</span> -46: <span class="ruby-ivar">@keyword</span> = <span class="ruby-identifier">pattern</span>.<span class="ruby-identifier">keyword</span> -47: <span class="ruby-ivar">@syntax</span> = <span class="ruby-identifier">syntax</span> -48: <span class="ruby-ivar">@args</span> = <span class="ruby-identifier">args</span> -49: <span class="ruby-comment cmt"># Hash that maps patterns of optional attributes to a boolean value. It</span> -50: <span class="ruby-comment cmt"># is true if the pattern is a scenario specific attribute.</span> -51: <span class="ruby-ivar">@optAttrPatterns</span> = <span class="ruby-identifier">optAttrPatterns</span> -52: <span class="ruby-ivar">@manual</span> = <span class="ruby-identifier">manual</span> -53: <span class="ruby-comment cmt"># The above hash is later converted into a list that points to the</span> -54: <span class="ruby-comment cmt"># keyword documentation of the optional attribute.</span> -55: <span class="ruby-ivar">@optionalAttributes</span> = [] -56: <span class="ruby-ivar">@scenarioSpecific</span> = <span class="ruby-keyword kw">false</span> -57: <span class="ruby-ivar">@inheritedFromProject</span>= <span class="ruby-keyword kw">false</span> -58: <span class="ruby-ivar">@inheritedFromParent</span> = <span class="ruby-keyword kw">false</span> -59: <span class="ruby-ivar">@contexts</span> = [] -60: <span class="ruby-ivar">@seeAlso</span> = [] -61: <span class="ruby-comment cmt"># The following are references to the neighboring keyword in an</span> -62: <span class="ruby-comment cmt"># alphabetically sorted list.</span> -63: <span class="ruby-ivar">@predecessor</span> = <span class="ruby-keyword kw">nil</span> -64: <span class="ruby-ivar">@successor</span> = <span class="ruby-keyword kw">nil</span> -65: <span class="ruby-comment cmt"># Array to collect all references to other RichText objects.</span> -66: <span class="ruby-ivar">@references</span> = [] -67: <span class="ruby-keyword kw">end</span></pre> +44: <span class="ruby-ivar">@messageHandler</span> = <span class="ruby-constant">MessageHandler</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">true</span>) +45: <span class="ruby-ivar">@rule</span> = <span class="ruby-identifier">rule</span> +46: <span class="ruby-ivar">@pattern</span> = <span class="ruby-identifier">pattern</span> +47: <span class="ruby-comment cmt"># The unique identifier. Usually the attribute or property name. To</span> +48: <span class="ruby-comment cmt"># disambiguate a .&lt;scope&gt; can be added.</span> +49: <span class="ruby-ivar">@keyword</span> = <span class="ruby-identifier">pattern</span>.<span class="ruby-identifier">keyword</span> +50: <span class="ruby-comment cmt"># Similar to @keyword, but without the scope. Since there could be</span> +51: <span class="ruby-comment cmt"># several, this is an Array of String objects.</span> +52: <span class="ruby-ivar">@names</span> = [] +53: <span class="ruby-ivar">@syntax</span> = <span class="ruby-identifier">syntax</span> +54: <span class="ruby-ivar">@args</span> = <span class="ruby-identifier">args</span> +55: <span class="ruby-ivar">@manual</span> = <span class="ruby-identifier">manual</span> +56: <span class="ruby-comment cmt"># Hash that maps patterns of optional attributes to a boolean value. It</span> +57: <span class="ruby-comment cmt"># is true if the pattern is a scenario specific attribute.</span> +58: <span class="ruby-ivar">@optAttrPatterns</span> = <span class="ruby-identifier">optAttrPatterns</span> +59: <span class="ruby-comment cmt"># The above hash is later converted into a list that points to the</span> +60: <span class="ruby-comment cmt"># keyword documentation of the optional attribute.</span> +61: <span class="ruby-ivar">@optionalAttributes</span> = [] +62: <span class="ruby-ivar">@scenarioSpecific</span> = <span class="ruby-keyword kw">false</span> +63: <span class="ruby-ivar">@inheritedFromProject</span>= <span class="ruby-keyword kw">false</span> +64: <span class="ruby-ivar">@inheritedFromParent</span> = <span class="ruby-keyword kw">false</span> +65: <span class="ruby-ivar">@contexts</span> = [] +66: <span class="ruby-ivar">@seeAlso</span> = [] +67: <span class="ruby-comment cmt"># The following are references to the neighboring keyword in an</span> +68: <span class="ruby-comment cmt"># alphabetically sorted list.</span> +69: <span class="ruby-ivar">@predecessor</span> = <span class="ruby-keyword kw">nil</span> +70: <span class="ruby-ivar">@successor</span> = <span class="ruby-keyword kw">nil</span> +71: <span class="ruby-comment cmt"># Array to collect all references to other RichText objects.</span> +72: <span class="ruby-ivar">@references</span> = [] +73: <span class="ruby-keyword kw">end</span></pre> </div> </div> @@ -836,41 +882,41 @@ <div class="method-source-code" id="compute-nheritance-source"> <pre> - <span class="ruby-comment cmt"># File lib/KeywordDocumentation.rb, line 106</span> -106: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">computeInheritance</span>(<span class="ruby-identifier">keywords</span>, <span class="ruby-identifier">rules</span>) -107: <span class="ruby-identifier">property</span> = <span class="ruby-keyword kw">nil</span> -108: <span class="ruby-ivar">@contexts</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">kwd</span><span class="ruby-operator">|</span> -109: <span class="ruby-keyword kw">if</span> <span class="ruby-node">%( task resource account report shift scenario)</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">kwd</span>.<span class="ruby-identifier">keyword</span>) -110: <span class="ruby-identifier">property</span> = <span class="ruby-identifier">kwd</span>.<span class="ruby-identifier">keyword</span> -111: <span class="ruby-keyword kw">break</span> -112: <span class="ruby-keyword kw">end</span> -113: <span class="ruby-keyword kw">end</span> -114: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">property</span> -115: <span class="ruby-identifier">project</span> = <span class="ruby-constant">Project</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'id'</span>, <span class="ruby-value str">'dummy'</span>, <span class="ruby-value str">'1.0'</span>, <span class="ruby-keyword kw">nil</span>) -116: <span class="ruby-identifier">propertySet</span> = <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">property</span> -117: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'task'</span> -118: <span class="ruby-identifier">project</span>.<span class="ruby-identifier">tasks</span> -119: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'resource'</span> -120: <span class="ruby-identifier">project</span>.<span class="ruby-identifier">resources</span> -121: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'account'</span> -122: <span class="ruby-identifier">project</span>.<span class="ruby-identifier">accounts</span> -123: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'report'</span> -124: <span class="ruby-identifier">project</span>.<span class="ruby-identifier">reports</span> -125: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'shift'</span> -126: <span class="ruby-identifier">project</span>.<span class="ruby-identifier">shifts</span> -127: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'scenario'</span> -128: <span class="ruby-identifier">project</span>.<span class="ruby-identifier">scenarios</span> -129: <span class="ruby-keyword kw">end</span> -130: <span class="ruby-identifier">keyword</span> = <span class="ruby-ivar">@keyword</span> -131: <span class="ruby-identifier">keyword</span> = <span class="ruby-identifier">keyword</span>.<span class="ruby-identifier">split</span>(<span class="ruby-value str">'.'</span>)[<span class="ruby-value">0</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">keyword</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-value str">'.'</span>) -132: <span class="ruby-ivar">@inheritedFromProject</span> = <span class="ruby-identifier">propertySet</span>.<span class="ruby-identifier">inheritedFromProject?</span>(<span class="ruby-identifier">keyword</span>) -133: <span class="ruby-ivar">@inheritedFromParent</span> = <span class="ruby-identifier">propertySet</span>.<span class="ruby-identifier">inheritedFromParent?</span>(<span class="ruby-identifier">keyword</span>) -134: <span class="ruby-keyword kw">end</span> -135: <span class="ruby-keyword kw">end</span></pre> + <span class="ruby-comment cmt"># File lib/KeywordDocumentation.rb, line 142</span> +142: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">computeInheritance</span>(<span class="ruby-identifier">keywords</span>, <span class="ruby-identifier">rules</span>) +143: <span class="ruby-identifier">property</span> = <span class="ruby-keyword kw">nil</span> +144: <span class="ruby-ivar">@contexts</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">kwd</span><span class="ruby-operator">|</span> +145: <span class="ruby-keyword kw">if</span> <span class="ruby-node">%( task resource account report shift scenario)</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">kwd</span>.<span class="ruby-identifier">keyword</span>) +146: <span class="ruby-identifier">property</span> = <span class="ruby-identifier">kwd</span>.<span class="ruby-identifier">keyword</span> +147: <span class="ruby-keyword kw">break</span> +148: <span class="ruby-keyword kw">end</span> +149: <span class="ruby-keyword kw">end</span> +150: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">property</span> +151: <span class="ruby-identifier">project</span> = <span class="ruby-constant">Project</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'id'</span>, <span class="ruby-value str">'dummy'</span>, <span class="ruby-value str">'1.0'</span>, <span class="ruby-keyword kw">nil</span>) +152: <span class="ruby-identifier">propertySet</span> = <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">property</span> +153: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'task'</span> +154: <span class="ruby-identifier">project</span>.<span class="ruby-identifier">tasks</span> +155: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'resource'</span> +156: <span class="ruby-identifier">project</span>.<span class="ruby-identifier">resources</span> +157: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'account'</span> +158: <span class="ruby-identifier">project</span>.<span class="ruby-identifier">accounts</span> +159: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'report'</span> +160: <span class="ruby-identifier">project</span>.<span class="ruby-identifier">reports</span> +161: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'shift'</span> +162: <span class="ruby-identifier">project</span>.<span class="ruby-identifier">shifts</span> +163: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'scenario'</span> +164: <span class="ruby-identifier">project</span>.<span class="ruby-identifier">scenarios</span> +165: <span class="ruby-keyword kw">end</span> +166: <span class="ruby-identifier">keyword</span> = <span class="ruby-ivar">@keyword</span> +167: <span class="ruby-identifier">keyword</span> = <span class="ruby-identifier">keyword</span>.<span class="ruby-identifier">split</span>(<span class="ruby-value str">'.'</span>)[<span class="ruby-value">0</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">keyword</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-value str">'.'</span>) +168: <span class="ruby-ivar">@inheritedFromProject</span> = <span class="ruby-identifier">propertySet</span>.<span class="ruby-identifier">inheritedFromProject?</span>(<span class="ruby-identifier">keyword</span>) +169: <span class="ruby-ivar">@inheritedFromParent</span> = <span class="ruby-identifier">propertySet</span>.<span class="ruby-identifier">inheritedFromParent?</span>(<span class="ruby-identifier">keyword</span>) +170: <span class="ruby-keyword kw">end</span> +171: <span class="ruby-keyword kw">end</span></pre> </div> </div> @@ -900,45 +946,54 @@ <div class="method-source-code" id="cross-eference-source"> <pre> - <span class="ruby-comment cmt"># File lib/KeywordDocumentation.rb, line 71</span> - 71: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">crossReference</span>(<span class="ruby-identifier">keywords</span>, <span class="ruby-identifier">rules</span>) - 72: <span class="ruby-comment cmt"># Some arguments are references to other patterns. The current keyword</span> - 73: <span class="ruby-comment cmt"># is added as context to such patterns.</span> - 74: <span class="ruby-ivar">@args</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">arg</span><span class="ruby-operator">|</span> - 75: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">pattern</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">checkReference</span>(<span class="ruby-identifier">arg</span>.<span class="ruby-identifier">pattern</span>) - 76: <span class="ruby-identifier">kwd</span> = <span class="ruby-identifier">keywords</span>[<span class="ruby-identifier">arg</span>.<span class="ruby-identifier">pattern</span>.<span class="ruby-identifier">keyword</span>] - 77: <span class="ruby-identifier">kwd</span>.<span class="ruby-identifier">contexts</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-keyword kw">self</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">kwd</span>.<span class="ruby-identifier">contexts</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-keyword kw">self</span>) - 78: <span class="ruby-keyword kw">end</span> - 79: <span class="ruby-keyword kw">end</span> - 80: - 81: <span class="ruby-comment cmt"># Optional attributes are treated similarly. In addition we add them to</span> - 82: <span class="ruby-comment cmt"># the @optionalAttributes list of this keyword.</span> - 83: <span class="ruby-ivar">@optAttrPatterns</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">pattern</span>, <span class="ruby-identifier">scenarioSpecific</span><span class="ruby-operator">|</span> - 84: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">checkReference</span>(<span class="ruby-identifier">pattern</span>) - 85: - 86: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">kwd</span> = <span class="ruby-identifier">keywords</span>[<span class="ruby-identifier">pattern</span>.<span class="ruby-identifier">keyword</span>]).<span class="ruby-identifier">nil?</span> - 87: <span class="ruby-identifier">token</span> = <span class="ruby-identifier">pattern</span>.<span class="ruby-identifier">terminalToken</span>(<span class="ruby-identifier">rules</span>) - 88: <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;Keyword #{keyword} has undocumented optional &quot;</span> <span class="ruby-operator">+</span> - 89: <span class="ruby-node">&quot;attribute #{token[0]}&quot;</span> - 90: <span class="ruby-keyword kw">else</span> - 91: <span class="ruby-ivar">@optionalAttributes</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">kwd</span> - 92: <span class="ruby-identifier">kwd</span>.<span class="ruby-identifier">contexts</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-keyword kw">self</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">kwd</span>.<span class="ruby-identifier">contexts</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-keyword kw">self</span>) - 93: <span class="ruby-identifier">kwd</span>.<span class="ruby-identifier">scenarioSpecific</span> = <span class="ruby-keyword kw">true</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">scenarioSpecific</span> - 94: <span class="ruby-keyword kw">end</span> - 95: <span class="ruby-keyword kw">end</span> - 96: - 97: <span class="ruby-comment cmt"># Resolve the seeAlso patterns to keyword references.</span> - 98: <span class="ruby-ivar">@pattern</span>.<span class="ruby-identifier">seeAlso</span>.<span class="ruby-identifier">sort</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">also</span><span class="ruby-operator">|</span> - 99: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">keywords</span>[<span class="ruby-identifier">also</span>].<span class="ruby-identifier">nil?</span> -100: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;See also reference #{also} of #{@pattern} is unknown&quot;</span> -101: <span class="ruby-keyword kw">end</span> -102: <span class="ruby-ivar">@seeAlso</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">keywords</span>[<span class="ruby-identifier">also</span>] -103: <span class="ruby-keyword kw">end</span> -104: <span class="ruby-keyword kw">end</span></pre> + <span class="ruby-comment cmt"># File lib/KeywordDocumentation.rb, line 98</span> + 98: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">crossReference</span>(<span class="ruby-identifier">keywords</span>, <span class="ruby-identifier">rules</span>) + 99: <span class="ruby-comment cmt"># Get the attribute or property name of the Keyword. This is not unique</span> +100: <span class="ruby-comment cmt"># like @keyword since it's got no scope.</span> +101: <span class="ruby-ivar">@pattern</span>.<span class="ruby-identifier">terminalTokens</span>(<span class="ruby-identifier">rules</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">tok</span><span class="ruby-operator">|</span> +102: <span class="ruby-comment cmt"># Ignore patterns that don't have a real name.</span> +103: <span class="ruby-keyword kw">break</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">tok</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">'{'</span> +104: +105: <span class="ruby-ivar">@names</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">tok</span>[<span class="ruby-value">0</span>] +106: <span class="ruby-keyword kw">end</span> +107: +108: <span class="ruby-comment cmt"># Some arguments are references to other patterns. The current keyword</span> +109: <span class="ruby-comment cmt"># is added as context to such patterns.</span> +110: <span class="ruby-ivar">@args</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">arg</span><span class="ruby-operator">|</span> +111: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">pattern</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">checkReference</span>(<span class="ruby-identifier">arg</span>.<span class="ruby-identifier">pattern</span>) +112: <span class="ruby-identifier">kwd</span> = <span class="ruby-identifier">keywords</span>[<span class="ruby-identifier">arg</span>.<span class="ruby-identifier">pattern</span>.<span class="ruby-identifier">keyword</span>] +113: <span class="ruby-identifier">kwd</span>.<span class="ruby-identifier">contexts</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-keyword kw">self</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">kwd</span>.<span class="ruby-identifier">contexts</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-keyword kw">self</span>) +114: <span class="ruby-keyword kw">end</span> +115: <span class="ruby-keyword kw">end</span> +116: +117: <span class="ruby-comment cmt"># Optional attributes are treated similarly. In addition we add them to</span> +118: <span class="ruby-comment cmt"># the @optionalAttributes list of this keyword.</span> +119: <span class="ruby-ivar">@optAttrPatterns</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">pattern</span>, <span class="ruby-identifier">scenarioSpecific</span><span class="ruby-operator">|</span> +120: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">checkReference</span>(<span class="ruby-identifier">pattern</span>) +121: +122: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">kwd</span> = <span class="ruby-identifier">keywords</span>[<span class="ruby-identifier">pattern</span>.<span class="ruby-identifier">keyword</span>]).<span class="ruby-identifier">nil?</span> +123: <span class="ruby-identifier">token</span> = <span class="ruby-identifier">pattern</span>.<span class="ruby-identifier">terminalToken</span>(<span class="ruby-identifier">rules</span>) +124: <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;Keyword #{keyword} has undocumented optional &quot;</span> <span class="ruby-operator">+</span> +125: <span class="ruby-node">&quot;attribute #{token[0]}&quot;</span> +126: <span class="ruby-keyword kw">else</span> +127: <span class="ruby-ivar">@optionalAttributes</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">kwd</span> +128: <span class="ruby-identifier">kwd</span>.<span class="ruby-identifier">contexts</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-keyword kw">self</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">kwd</span>.<span class="ruby-identifier">contexts</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-keyword kw">self</span>) +129: <span class="ruby-identifier">kwd</span>.<span class="ruby-identifier">scenarioSpecific</span> = <span class="ruby-keyword kw">true</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">scenarioSpecific</span> +130: <span class="ruby-keyword kw">end</span> +131: <span class="ruby-keyword kw">end</span> +132: +133: <span class="ruby-comment cmt"># Resolve the seeAlso patterns to keyword references.</span> +134: <span class="ruby-ivar">@pattern</span>.<span class="ruby-identifier">seeAlso</span>.<span class="ruby-identifier">sort</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">also</span><span class="ruby-operator">|</span> +135: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">keywords</span>[<span class="ruby-identifier">also</span>].<span class="ruby-identifier">nil?</span> +136: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;See also reference #{also} of #{@pattern} is unknown&quot;</span> +137: <span class="ruby-keyword kw">end</span> +138: <span class="ruby-ivar">@seeAlso</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">keywords</span>[<span class="ruby-identifier">also</span>] +139: <span class="ruby-keyword kw">end</span> +140: <span class="ruby-keyword kw">end</span></pre> </div> </div> @@ -968,218 +1023,302 @@ <div class="method-source-code" id="generate--source"> <pre> - <span class="ruby-comment cmt"># File lib/KeywordDocumentation.rb, line 269</span> -269: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateHTML</span>(<span class="ruby-identifier">directory</span>) -270: <span class="ruby-identifier">html</span> = <span class="ruby-constant">HTMLDocument</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value">:strict</span>) -271: <span class="ruby-identifier">head</span> = <span class="ruby-identifier">html</span>.<span class="ruby-identifier">generateHead</span>(<span class="ruby-identifier">keyword</span>, -272: { <span class="ruby-value str">'description'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'The TaskJuggler Manual'</span>, -273: <span class="ruby-value str">'keywords'</span> =<span class="ruby-operator">&gt;</span> -274: <span class="ruby-value str">'taskjuggler, project, management'</span> }) -275: <span class="ruby-identifier">head</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-ivar">@manual</span>.<span class="ruby-identifier">generateStyleSheet</span> -276: -277: <span class="ruby-identifier">html</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">body</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'body'</span>)) -278: <span class="ruby-identifier">body</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-ivar">@manual</span>.<span class="ruby-identifier">generateHTMLHeader</span> <span class="ruby-operator">&lt;&lt;</span> -279: <span class="ruby-identifier">generateHTMLNavigationBar</span> -280: -281: <span class="ruby-comment cmt"># Box with keyword name.</span> -282: <span class="ruby-identifier">body</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">bbox</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'div'</span>, -283: <span class="ruby-value str">'style'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'margin-left:5%; margin-right:5%'</span>)) -284: <span class="ruby-identifier">bbox</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">p</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'p'</span>)) -285: <span class="ruby-identifier">p</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">tab</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'table'</span>, <span class="ruby-value str">'align'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'center'</span>, -286: <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'table'</span>)) -287: -288: <span class="ruby-identifier">tab</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">tr</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'tr'</span>, <span class="ruby-value str">'align'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'left'</span>)) -289: <span class="ruby-identifier">tr</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLNamedText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'Keyword'</span>, <span class="ruby-value str">'td'</span>, <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'tag'</span>, -290: <span class="ruby-value str">'style'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'width:15%'</span>) -291: <span class="ruby-identifier">tr</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLNamedText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">title</span>, <span class="ruby-value str">'td'</span>, <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'descr'</span>, -292: <span class="ruby-value str">'style'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'width:85%; font-weight:bold'</span>) -293: -294: <span class="ruby-comment cmt"># Box with purpose, syntax, arguments and context.</span> -295: <span class="ruby-identifier">bbox</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">p</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'p'</span>)) -296: <span class="ruby-identifier">p</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">tab</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'table'</span>, <span class="ruby-value str">'align'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'center'</span>, -297: <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'table'</span>)) -298: <span class="ruby-identifier">tab</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">colgroup</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'colgroup'</span>)) -299: <span class="ruby-identifier">colgroup</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'col'</span>, <span class="ruby-value str">'width'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'15%'</span>) -300: <span class="ruby-identifier">colgroup</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'col'</span>, <span class="ruby-value str">'width'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'85%'</span>) -301: -302: <span class="ruby-identifier">tab</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">tr</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'tr'</span>, <span class="ruby-value str">'align'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'left'</span>)) -303: <span class="ruby-identifier">tr</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLNamedText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'Purpose'</span>, <span class="ruby-value str">'td'</span>, <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'tag'</span>) -304: <span class="ruby-identifier">tr</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">td</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'td'</span>, <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'descr'</span>)) -305: <span class="ruby-identifier">td</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">newRichText</span>(<span class="ruby-ivar">@pattern</span>.<span class="ruby-identifier">doc</span>).<span class="ruby-identifier">to_html</span> -306: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@syntax</span> <span class="ruby-operator">!=</span> <span class="ruby-value str">'[{ &lt;attributes&gt; }]'</span> -307: <span class="ruby-identifier">tab</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">tr</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'tr'</span>, <span class="ruby-value str">'align'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'left'</span>)) -308: <span class="ruby-identifier">tr</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLNamedText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'Syntax'</span>, <span class="ruby-value str">'td'</span>, <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'tag'</span>) -309: <span class="ruby-identifier">tr</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">td</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'td'</span>, <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'descr'</span>)) -310: <span class="ruby-identifier">td</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLNamedText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">&quot;#{@syntax}&quot;</span>, <span class="ruby-value str">'code'</span>) -311: -312: <span class="ruby-identifier">tab</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">tr</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'tr'</span>, <span class="ruby-value str">'align'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'left'</span>)) -313: <span class="ruby-identifier">tr</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLNamedText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'Arguments'</span>, <span class="ruby-value str">'td'</span>, <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'tag'</span>) -314: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@args</span>.<span class="ruby-identifier">empty?</span> -315: <span class="ruby-identifier">tr</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLNamedText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'none'</span>, <span class="ruby-value str">'td'</span>, <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'descr'</span>) -316: <span class="ruby-keyword kw">else</span> -317: <span class="ruby-identifier">tr</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">td</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'td'</span>, <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'descr'</span>)) -318: <span class="ruby-identifier">td</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">tab1</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'table'</span>, <span class="ruby-value str">'width'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'100%'</span>)) -319: <span class="ruby-ivar">@args</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">arg</span><span class="ruby-operator">|</span> -320: <span class="ruby-identifier">tab1</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">tr1</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'tr'</span>)) -321: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">typeSpec</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> (<span class="ruby-value str">'&lt;'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">name</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'&gt;'</span>) <span class="ruby-operator">==</span> <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">typeSpec</span> -322: <span class="ruby-identifier">tr1</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLNamedText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">&quot;#{arg.name}&quot;</span>, <span class="ruby-value str">'td'</span>, <span class="ruby-value str">'width'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'30%'</span>) -323: <span class="ruby-keyword kw">else</span> -324: <span class="ruby-identifier">typeSpec</span> = <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">typeSpec</span> -325: <span class="ruby-identifier">typeName</span> = <span class="ruby-identifier">typeSpec</span>[<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">2</span>] -326: <span class="ruby-identifier">typeSpec</span>[<span class="ruby-value">0</span>] = <span class="ruby-value str">'['</span> -327: <span class="ruby-identifier">typeSpec</span>[<span class="ruby-value">1</span>] = <span class="ruby-value str">']'</span> -328: <span class="ruby-identifier">tr1</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">td</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'td'</span>, <span class="ruby-value str">'width'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'30%'</span>)) -329: <span class="ruby-identifier">td</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">&quot;#{arg.name} [&quot;</span>) -330: <span class="ruby-identifier">td</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLNamedText</span>.<span class="ruby-identifier">new</span>( -331: <span class="ruby-identifier">typeName</span>, <span class="ruby-value str">'a'</span>, <span class="ruby-value str">'href'</span> =<span class="ruby-operator">&gt;</span> -332: <span class="ruby-node">&quot;The_TaskJuggler_Syntax.html\##{typeName}&quot;</span>) -333: <span class="ruby-identifier">td</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">']'</span>) -334: <span class="ruby-keyword kw">end</span> -335: <span class="ruby-identifier">tr1</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">td</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'td'</span>, -336: <span class="ruby-value str">'style'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'margin-top:2px; margin-bottom:2px;'</span>)) -337: <span class="ruby-identifier">td</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">newRichText</span>(<span class="ruby-identifier">arg</span>.<span class="ruby-identifier">text</span> <span class="ruby-operator">||</span> -338: <span class="ruby-node">&quot;See [[#{arg.name}]] for details.&quot;</span>).<span class="ruby-identifier">to_html</span> -339: <span class="ruby-keyword kw">end</span> -340: <span class="ruby-keyword kw">end</span> -341: <span class="ruby-keyword kw">end</span> -342: -343: <span class="ruby-identifier">tab</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">tr</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'tr'</span>, <span class="ruby-value str">'align'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'left'</span>)) -344: <span class="ruby-identifier">tr</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLNamedText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'Context'</span>, <span class="ruby-value str">'td'</span>, <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'tag'</span>) -345: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@contexts</span>.<span class="ruby-identifier">empty?</span> -346: <span class="ruby-identifier">tr</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">td</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'td'</span>, <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'descr'</span>)) -347: <span class="ruby-identifier">td</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLNamedText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'Global scope'</span>, <span class="ruby-value str">'a'</span>, -348: <span class="ruby-value str">'href'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'Getting_Started.html#Structure_of_a_TJP_File'</span>) -349: <span class="ruby-keyword kw">else</span> -350: <span class="ruby-identifier">tr</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">td</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'td'</span>, <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'descr'</span>)) -351: <span class="ruby-identifier">first</span> = <span class="ruby-keyword kw">true</span> -352: <span class="ruby-ivar">@contexts</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">context</span><span class="ruby-operator">|</span> -353: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">first</span> -354: <span class="ruby-identifier">first</span> = <span class="ruby-keyword kw">false</span> -355: <span class="ruby-keyword kw">else</span> -356: <span class="ruby-identifier">td</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">', '</span>) -357: <span class="ruby-keyword kw">end</span> -358: <span class="ruby-identifier">keywordHTMLRef</span>(<span class="ruby-identifier">td</span>, <span class="ruby-identifier">context</span>) -359: <span class="ruby-keyword kw">end</span> -360: <span class="ruby-keyword kw">end</span> -361: -362: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@seeAlso</span>.<span class="ruby-identifier">empty?</span> -363: <span class="ruby-identifier">tab</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">tr</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'tr'</span>, <span class="ruby-value str">'align'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'left'</span>)) -364: <span class="ruby-identifier">tr</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLNamedText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'See also'</span>, <span class="ruby-value str">'td'</span>, <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'tag'</span>) -365: <span class="ruby-identifier">first</span> = <span class="ruby-keyword kw">true</span> -366: <span class="ruby-identifier">tr</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">td</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'td'</span>, <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'descr'</span>)) -367: <span class="ruby-ivar">@seeAlso</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">also</span><span class="ruby-operator">|</span> -368: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">first</span> -369: <span class="ruby-identifier">first</span> = <span class="ruby-keyword kw">false</span> -370: <span class="ruby-keyword kw">else</span> -371: <span class="ruby-identifier">td</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">', '</span>) -372: <span class="ruby-keyword kw">end</span> -373: <span class="ruby-identifier">keywordHTMLRef</span>(<span class="ruby-identifier">td</span>, <span class="ruby-identifier">also</span>) -374: <span class="ruby-keyword kw">end</span> -375: <span class="ruby-keyword kw">end</span> -376: -377: <span class="ruby-comment cmt"># Box with attributes.</span> -378: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@optionalAttributes</span>.<span class="ruby-identifier">empty?</span> -379: <span class="ruby-ivar">@optionalAttributes</span>.<span class="ruby-identifier">sort!</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">a</span>, <span class="ruby-identifier">b</span><span class="ruby-operator">|</span> -380: <span class="ruby-identifier">a</span>.<span class="ruby-identifier">keyword</span> <span class="ruby-operator">&lt;=&gt;</span> <span class="ruby-identifier">b</span>.<span class="ruby-identifier">keyword</span> -381: <span class="ruby-keyword kw">end</span> -382: -383: <span class="ruby-identifier">showDetails</span> = <span class="ruby-keyword kw">false</span> -384: <span class="ruby-ivar">@optionalAttributes</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">attr</span><span class="ruby-operator">|</span> -385: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">attr</span>.<span class="ruby-identifier">scenarioSpecific</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">attr</span>.<span class="ruby-identifier">inheritedFromProject</span> <span class="ruby-operator">||</span> -386: <span class="ruby-identifier">attr</span>.<span class="ruby-identifier">inheritedFromParent</span> -387: <span class="ruby-identifier">showDetails</span> = <span class="ruby-keyword kw">true</span> -388: <span class="ruby-keyword kw">break</span> -389: <span class="ruby-keyword kw">end</span> -390: <span class="ruby-keyword kw">end</span> -391: -392: <span class="ruby-identifier">bbox</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">p</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'p'</span>)) -393: <span class="ruby-identifier">p</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">tab</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'table'</span>, <span class="ruby-value str">'align'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'center'</span>, -394: <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'table'</span>)) -395: <span class="ruby-identifier">tab</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">tr</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'tr'</span>, <span class="ruby-value str">'align'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'left'</span>)) -396: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">showDetails</span> -397: <span class="ruby-comment cmt"># Table of all attributes with checkmarks for being scenario</span> -398: <span class="ruby-comment cmt"># specific, inherited from parent and inherited from global scope.</span> -399: <span class="ruby-identifier">tr</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLNamedText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'Attributes'</span>, <span class="ruby-value str">'td'</span>, <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'tag'</span>, -400: <span class="ruby-value str">'rowspan'</span> =<span class="ruby-operator">&gt;</span> -401: <span class="ruby-node">&quot;#{@optionalAttributes.length + 1}&quot;</span>, -402: <span class="ruby-value str">'style'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'width:15%'</span>) -403: <span class="ruby-identifier">tr</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLNamedText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'Name'</span>, <span class="ruby-value str">'td'</span>, <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'tag'</span>, -404: <span class="ruby-value str">'style'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'width:40%'</span>) -405: <span class="ruby-identifier">tr</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLNamedText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'Scen. spec.'</span>, <span class="ruby-value str">'td'</span>, <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'tag'</span>, -406: <span class="ruby-value str">'style'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'width:15%'</span>) -407: <span class="ruby-identifier">tr</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLNamedText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'Inh. fm. Global'</span>, <span class="ruby-value str">'td'</span>, <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'tag'</span>, -408: <span class="ruby-value str">'style'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'width:15%'</span>) -409: <span class="ruby-identifier">tr</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLNamedText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'Inh. fm. Parent'</span>, <span class="ruby-value str">'td'</span>, <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'tag'</span>, -410: <span class="ruby-value str">'style'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'width:15%'</span>) -411: <span class="ruby-ivar">@optionalAttributes</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">attr</span><span class="ruby-operator">|</span> -412: <span class="ruby-identifier">tab</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">tr</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'tr'</span>, <span class="ruby-value str">'align'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'left'</span>)) -413: <span class="ruby-identifier">tr</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">td</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'td'</span>, <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'descr'</span>)) -414: <span class="ruby-identifier">keywordHTMLRef</span>(<span class="ruby-identifier">td</span>, <span class="ruby-identifier">attr</span>) -415: <span class="ruby-identifier">tr</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">td</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'td'</span>, <span class="ruby-value str">'align'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'center'</span>, -416: <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'descr'</span>)) -417: <span class="ruby-identifier">td</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'x'</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">attr</span>.<span class="ruby-identifier">scenarioSpecific</span> -418: <span class="ruby-identifier">tr</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">td</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'td'</span>, <span class="ruby-value str">'align'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'center'</span>, -419: <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'descr'</span>)) -420: <span class="ruby-identifier">td</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'x'</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">attr</span>.<span class="ruby-identifier">inheritedFromProject</span> -421: <span class="ruby-identifier">tr</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">td</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'td'</span>, <span class="ruby-value str">'align'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'center'</span>, -422: <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'descr'</span>)) -423: <span class="ruby-identifier">td</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'x'</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">attr</span>.<span class="ruby-identifier">inheritedFromParent</span> -424: <span class="ruby-keyword kw">end</span> -425: <span class="ruby-keyword kw">else</span> -426: <span class="ruby-comment cmt"># Comma separated list of all attributes.</span> -427: <span class="ruby-identifier">tr</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLNamedText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'Attributes'</span>, <span class="ruby-value str">'td'</span>, <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'tag'</span>, -428: <span class="ruby-value str">'style'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'width:15%'</span>) -429: <span class="ruby-identifier">tr</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">td</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'td'</span>, <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'descr'</span>, -430: <span class="ruby-value str">'style'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'width:85%'</span>)) -431: <span class="ruby-identifier">first</span> = <span class="ruby-keyword kw">true</span> -432: <span class="ruby-ivar">@optionalAttributes</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">attr</span><span class="ruby-operator">|</span> -433: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">first</span> -434: <span class="ruby-identifier">first</span> = <span class="ruby-keyword kw">false</span> -435: <span class="ruby-keyword kw">else</span> -436: <span class="ruby-identifier">td</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">', '</span>) -437: <span class="ruby-keyword kw">end</span> -438: <span class="ruby-identifier">keywordHTMLRef</span>(<span class="ruby-identifier">td</span>, <span class="ruby-identifier">attr</span>) -439: <span class="ruby-keyword kw">end</span> -440: <span class="ruby-keyword kw">end</span> -441: <span class="ruby-keyword kw">end</span> -442: -443: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@pattern</span>.<span class="ruby-identifier">exampleFile</span> -444: <span class="ruby-identifier">exampleDir</span> = <span class="ruby-constant">AppConfig</span>.<span class="ruby-identifier">dataDirs</span>(<span class="ruby-value str">'test'</span>)[<span class="ruby-value">0</span>] <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;TestSuite/Syntax/Correct/&quot;</span> -445: <span class="ruby-identifier">example</span> = <span class="ruby-constant">TjpExample</span>.<span class="ruby-identifier">new</span> -446: <span class="ruby-identifier">fileName</span> = <span class="ruby-node">&quot;#{exampleDir}/#{@pattern.exampleFile}.tjp&quot;</span> -447: <span class="ruby-identifier">example</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">fileName</span>) -448: <span class="ruby-identifier">bbox</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">frame</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'div'</span>, <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'codeframe'</span>)) -449: <span class="ruby-identifier">frame</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">pre</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'pre'</span>, <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'code'</span>)) -450: <span class="ruby-keyword kw">unless</span> (<span class="ruby-identifier">text</span> = <span class="ruby-identifier">example</span>.<span class="ruby-identifier">to_s</span>(<span class="ruby-ivar">@pattern</span>.<span class="ruby-identifier">exampleTag</span>)) -451: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;There is no tag '#{@pattern.exampleTag}' in file &quot;</span> <span class="ruby-operator">+</span> -452: <span class="ruby-node">&quot;#{fileName}.&quot;</span> -453: <span class="ruby-keyword kw">end</span> -454: <span class="ruby-identifier">pre</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">text</span>) -455: <span class="ruby-keyword kw">end</span> -456: -457: <span class="ruby-identifier">body</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">generateHTMLNavigationBar</span> -458: <span class="ruby-identifier">body</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-ivar">@manual</span>.<span class="ruby-identifier">generateHTMLFooter</span> -459: -460: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">directory</span> -461: <span class="ruby-identifier">html</span>.<span class="ruby-identifier">write</span>(<span class="ruby-identifier">directory</span> <span class="ruby-operator">+</span> <span class="ruby-node">&quot;#{keyword}.html&quot;</span>) -462: <span class="ruby-keyword kw">else</span> -463: <span class="ruby-identifier">puts</span> <span class="ruby-identifier">html</span>.<span class="ruby-identifier">to_s</span> -464: <span class="ruby-keyword kw">end</span> -465: <span class="ruby-keyword kw">end</span></pre> + <span class="ruby-comment cmt"># File lib/KeywordDocumentation.rb, line 305</span> +305: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateHTML</span>(<span class="ruby-identifier">directory</span>) +306: <span class="ruby-identifier">html</span> = <span class="ruby-constant">HTMLDocument</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value">:strict</span>) +307: <span class="ruby-identifier">head</span> = <span class="ruby-identifier">html</span>.<span class="ruby-identifier">generateHead</span>(<span class="ruby-identifier">keyword</span>, +308: { <span class="ruby-value str">'description'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'The TaskJuggler Manual'</span>, +309: <span class="ruby-value str">'keywords'</span> =<span class="ruby-operator">&gt;</span> +310: <span class="ruby-value str">'taskjuggler, project, management'</span> }) +311: <span class="ruby-identifier">head</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-ivar">@manual</span>.<span class="ruby-identifier">generateStyleSheet</span> +312: +313: <span class="ruby-identifier">html</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">body</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'body'</span>)) +314: <span class="ruby-identifier">body</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-ivar">@manual</span>.<span class="ruby-identifier">generateHTMLHeader</span> <span class="ruby-operator">&lt;&lt;</span> +315: <span class="ruby-identifier">generateHTMLNavigationBar</span> +316: +317: <span class="ruby-comment cmt"># Box with keyword name.</span> +318: <span class="ruby-identifier">body</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">bbox</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'div'</span>, +319: <span class="ruby-value str">'style'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'margin-left:5%; margin-right:5%'</span>)) +320: <span class="ruby-identifier">bbox</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">p</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'p'</span>)) +321: <span class="ruby-identifier">p</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">tab</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'table'</span>, <span class="ruby-value str">'align'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'center'</span>, +322: <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'table'</span>)) +323: +324: <span class="ruby-identifier">tab</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">tr</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'tr'</span>, <span class="ruby-value str">'align'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'left'</span>)) +325: <span class="ruby-identifier">tr</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLNamedText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'Keyword'</span>, <span class="ruby-value str">'td'</span>, <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'tag'</span>, +326: <span class="ruby-value str">'style'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'width:15%'</span>) +327: <span class="ruby-identifier">tr</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLNamedText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">title</span>, <span class="ruby-value str">'td'</span>, <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'descr'</span>, +328: <span class="ruby-value str">'style'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'width:85%; font-weight:bold'</span>) +329: +330: <span class="ruby-comment cmt"># Box with purpose, syntax, arguments and context.</span> +331: <span class="ruby-identifier">bbox</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">p</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'p'</span>)) +332: <span class="ruby-identifier">p</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">tab</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'table'</span>, <span class="ruby-value str">'align'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'center'</span>, +333: <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'table'</span>)) +334: <span class="ruby-identifier">tab</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">colgroup</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'colgroup'</span>)) +335: <span class="ruby-identifier">colgroup</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'col'</span>, <span class="ruby-value str">'width'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'15%'</span>) +336: <span class="ruby-identifier">colgroup</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'col'</span>, <span class="ruby-value str">'width'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'85%'</span>) +337: +338: <span class="ruby-identifier">tab</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">tr</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'tr'</span>, <span class="ruby-value str">'align'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'left'</span>)) +339: <span class="ruby-identifier">tr</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLNamedText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'Purpose'</span>, <span class="ruby-value str">'td'</span>, <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'tag'</span>) +340: <span class="ruby-identifier">tr</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">td</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'td'</span>, <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'descr'</span>)) +341: <span class="ruby-identifier">td</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">newRichText</span>(<span class="ruby-ivar">@pattern</span>.<span class="ruby-identifier">doc</span>).<span class="ruby-identifier">to_html</span> +342: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@syntax</span> <span class="ruby-operator">!=</span> <span class="ruby-value str">'[{ &lt;attributes&gt; }]'</span> +343: <span class="ruby-identifier">tab</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">tr</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'tr'</span>, <span class="ruby-value str">'align'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'left'</span>)) +344: <span class="ruby-identifier">tr</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLNamedText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'Syntax'</span>, <span class="ruby-value str">'td'</span>, <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'tag'</span>) +345: <span class="ruby-identifier">tr</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">td</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'td'</span>, <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'descr'</span>)) +346: <span class="ruby-identifier">td</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLNamedText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">&quot;#{@syntax}&quot;</span>, <span class="ruby-value str">'code'</span>) +347: +348: <span class="ruby-identifier">tab</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">tr</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'tr'</span>, <span class="ruby-value str">'align'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'left'</span>)) +349: <span class="ruby-identifier">tr</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLNamedText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'Arguments'</span>, <span class="ruby-value str">'td'</span>, <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'tag'</span>) +350: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@args</span>.<span class="ruby-identifier">empty?</span> +351: <span class="ruby-identifier">tr</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLNamedText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'none'</span>, <span class="ruby-value str">'td'</span>, <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'descr'</span>) +352: <span class="ruby-keyword kw">else</span> +353: <span class="ruby-identifier">tr</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">td</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'td'</span>, <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'descr'</span>)) +354: <span class="ruby-identifier">td</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">tab1</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'table'</span>, <span class="ruby-value str">'width'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'100%'</span>)) +355: <span class="ruby-ivar">@args</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">arg</span><span class="ruby-operator">|</span> +356: <span class="ruby-identifier">tab1</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">tr1</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'tr'</span>)) +357: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">typeSpec</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> (<span class="ruby-value str">'&lt;'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">name</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'&gt;'</span>) <span class="ruby-operator">==</span> <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">typeSpec</span> +358: <span class="ruby-identifier">tr1</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLNamedText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">&quot;#{arg.name}&quot;</span>, <span class="ruby-value str">'td'</span>, <span class="ruby-value str">'width'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'30%'</span>) +359: <span class="ruby-keyword kw">else</span> +360: <span class="ruby-identifier">typeSpec</span> = <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">typeSpec</span> +361: <span class="ruby-identifier">typeName</span> = <span class="ruby-identifier">typeSpec</span>[<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">2</span>] +362: <span class="ruby-identifier">typeSpec</span>[<span class="ruby-value">0</span>] = <span class="ruby-value str">'['</span> +363: <span class="ruby-identifier">typeSpec</span>[<span class="ruby-value">1</span>] = <span class="ruby-value str">']'</span> +364: <span class="ruby-identifier">tr1</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">td</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'td'</span>, <span class="ruby-value str">'width'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'30%'</span>)) +365: <span class="ruby-identifier">td</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">&quot;#{arg.name} [&quot;</span>) +366: <span class="ruby-identifier">td</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLNamedText</span>.<span class="ruby-identifier">new</span>( +367: <span class="ruby-identifier">typeName</span>, <span class="ruby-value str">'a'</span>, <span class="ruby-value str">'href'</span> =<span class="ruby-operator">&gt;</span> +368: <span class="ruby-node">&quot;The_TaskJuggler_Syntax.html\##{typeName}&quot;</span>) +369: <span class="ruby-identifier">td</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">']'</span>) +370: <span class="ruby-keyword kw">end</span> +371: <span class="ruby-identifier">tr1</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">td</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'td'</span>, +372: <span class="ruby-value str">'style'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'margin-top:2px; margin-bottom:2px;'</span>)) +373: <span class="ruby-identifier">td</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">newRichText</span>(<span class="ruby-identifier">arg</span>.<span class="ruby-identifier">text</span> <span class="ruby-operator">||</span> +374: <span class="ruby-node">&quot;See [[#{arg.name}]] for details.&quot;</span>).<span class="ruby-identifier">to_html</span> +375: <span class="ruby-keyword kw">end</span> +376: <span class="ruby-keyword kw">end</span> +377: <span class="ruby-keyword kw">end</span> +378: +379: <span class="ruby-identifier">tab</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">tr</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'tr'</span>, <span class="ruby-value str">'align'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'left'</span>)) +380: <span class="ruby-identifier">tr</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLNamedText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'Context'</span>, <span class="ruby-value str">'td'</span>, <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'tag'</span>) +381: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@contexts</span>.<span class="ruby-identifier">empty?</span> +382: <span class="ruby-identifier">tr</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">td</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'td'</span>, <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'descr'</span>)) +383: <span class="ruby-identifier">td</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLNamedText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'Global scope'</span>, <span class="ruby-value str">'a'</span>, +384: <span class="ruby-value str">'href'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'Getting_Started.html#Structure_of_a_TJP_File'</span>) +385: <span class="ruby-keyword kw">else</span> +386: <span class="ruby-identifier">tr</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">td</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'td'</span>, <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'descr'</span>)) +387: <span class="ruby-identifier">first</span> = <span class="ruby-keyword kw">true</span> +388: <span class="ruby-ivar">@contexts</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">context</span><span class="ruby-operator">|</span> +389: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">first</span> +390: <span class="ruby-identifier">first</span> = <span class="ruby-keyword kw">false</span> +391: <span class="ruby-keyword kw">else</span> +392: <span class="ruby-identifier">td</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">', '</span>) +393: <span class="ruby-keyword kw">end</span> +394: <span class="ruby-identifier">keywordHTMLRef</span>(<span class="ruby-identifier">td</span>, <span class="ruby-identifier">context</span>) +395: <span class="ruby-keyword kw">end</span> +396: <span class="ruby-keyword kw">end</span> +397: +398: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@seeAlso</span>.<span class="ruby-identifier">empty?</span> +399: <span class="ruby-identifier">tab</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">tr</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'tr'</span>, <span class="ruby-value str">'align'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'left'</span>)) +400: <span class="ruby-identifier">tr</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLNamedText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'See also'</span>, <span class="ruby-value str">'td'</span>, <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'tag'</span>) +401: <span class="ruby-identifier">first</span> = <span class="ruby-keyword kw">true</span> +402: <span class="ruby-identifier">tr</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">td</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'td'</span>, <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'descr'</span>)) +403: <span class="ruby-ivar">@seeAlso</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">also</span><span class="ruby-operator">|</span> +404: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">first</span> +405: <span class="ruby-identifier">first</span> = <span class="ruby-keyword kw">false</span> +406: <span class="ruby-keyword kw">else</span> +407: <span class="ruby-identifier">td</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">', '</span>) +408: <span class="ruby-keyword kw">end</span> +409: <span class="ruby-identifier">keywordHTMLRef</span>(<span class="ruby-identifier">td</span>, <span class="ruby-identifier">also</span>) +410: <span class="ruby-keyword kw">end</span> +411: <span class="ruby-keyword kw">end</span> +412: +413: <span class="ruby-comment cmt"># Box with attributes.</span> +414: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@optionalAttributes</span>.<span class="ruby-identifier">empty?</span> +415: <span class="ruby-ivar">@optionalAttributes</span>.<span class="ruby-identifier">sort!</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">a</span>, <span class="ruby-identifier">b</span><span class="ruby-operator">|</span> +416: <span class="ruby-identifier">a</span>.<span class="ruby-identifier">keyword</span> <span class="ruby-operator">&lt;=&gt;</span> <span class="ruby-identifier">b</span>.<span class="ruby-identifier">keyword</span> +417: <span class="ruby-keyword kw">end</span> +418: +419: <span class="ruby-identifier">showDetails</span> = <span class="ruby-keyword kw">false</span> +420: <span class="ruby-ivar">@optionalAttributes</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">attr</span><span class="ruby-operator">|</span> +421: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">attr</span>.<span class="ruby-identifier">scenarioSpecific</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">attr</span>.<span class="ruby-identifier">inheritedFromProject</span> <span class="ruby-operator">||</span> +422: <span class="ruby-identifier">attr</span>.<span class="ruby-identifier">inheritedFromParent</span> +423: <span class="ruby-identifier">showDetails</span> = <span class="ruby-keyword kw">true</span> +424: <span class="ruby-keyword kw">break</span> +425: <span class="ruby-keyword kw">end</span> +426: <span class="ruby-keyword kw">end</span> +427: +428: <span class="ruby-identifier">bbox</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">p</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'p'</span>)) +429: <span class="ruby-identifier">p</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">tab</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'table'</span>, <span class="ruby-value str">'align'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'center'</span>, +430: <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'table'</span>)) +431: <span class="ruby-identifier">tab</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">tr</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'tr'</span>, <span class="ruby-value str">'align'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'left'</span>)) +432: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">showDetails</span> +433: <span class="ruby-comment cmt"># Table of all attributes with checkmarks for being scenario</span> +434: <span class="ruby-comment cmt"># specific, inherited from parent and inherited from global scope.</span> +435: <span class="ruby-identifier">tr</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLNamedText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'Attributes'</span>, <span class="ruby-value str">'td'</span>, <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'tag'</span>, +436: <span class="ruby-value str">'rowspan'</span> =<span class="ruby-operator">&gt;</span> +437: <span class="ruby-node">&quot;#{@optionalAttributes.length + 1}&quot;</span>, +438: <span class="ruby-value str">'style'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'width:15%'</span>) +439: <span class="ruby-identifier">tr</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLNamedText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'Name'</span>, <span class="ruby-value str">'td'</span>, <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'tag'</span>, +440: <span class="ruby-value str">'style'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'width:40%'</span>) +441: <span class="ruby-identifier">tr</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLNamedText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'Scen. spec.'</span>, <span class="ruby-value str">'td'</span>, <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'tag'</span>, +442: <span class="ruby-value str">'style'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'width:15%'</span>) +443: <span class="ruby-identifier">tr</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLNamedText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'Inh. fm. Global'</span>, <span class="ruby-value str">'td'</span>, <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'tag'</span>, +444: <span class="ruby-value str">'style'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'width:15%'</span>) +445: <span class="ruby-identifier">tr</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLNamedText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'Inh. fm. Parent'</span>, <span class="ruby-value str">'td'</span>, <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'tag'</span>, +446: <span class="ruby-value str">'style'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'width:15%'</span>) +447: <span class="ruby-ivar">@optionalAttributes</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">attr</span><span class="ruby-operator">|</span> +448: <span class="ruby-identifier">tab</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">tr</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'tr'</span>, <span class="ruby-value str">'align'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'left'</span>)) +449: <span class="ruby-identifier">tr</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">td</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'td'</span>, <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'descr'</span>)) +450: <span class="ruby-identifier">keywordHTMLRef</span>(<span class="ruby-identifier">td</span>, <span class="ruby-identifier">attr</span>) +451: <span class="ruby-identifier">tr</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">td</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'td'</span>, <span class="ruby-value str">'align'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'center'</span>, +452: <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'descr'</span>)) +453: <span class="ruby-identifier">td</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'x'</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">attr</span>.<span class="ruby-identifier">scenarioSpecific</span> +454: <span class="ruby-identifier">tr</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">td</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'td'</span>, <span class="ruby-value str">'align'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'center'</span>, +455: <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'descr'</span>)) +456: <span class="ruby-identifier">td</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'x'</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">attr</span>.<span class="ruby-identifier">inheritedFromProject</span> +457: <span class="ruby-identifier">tr</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">td</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'td'</span>, <span class="ruby-value str">'align'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'center'</span>, +458: <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'descr'</span>)) +459: <span class="ruby-identifier">td</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'x'</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">attr</span>.<span class="ruby-identifier">inheritedFromParent</span> +460: <span class="ruby-keyword kw">end</span> +461: <span class="ruby-keyword kw">else</span> +462: <span class="ruby-comment cmt"># Comma separated list of all attributes.</span> +463: <span class="ruby-identifier">tr</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLNamedText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'Attributes'</span>, <span class="ruby-value str">'td'</span>, <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'tag'</span>, +464: <span class="ruby-value str">'style'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'width:15%'</span>) +465: <span class="ruby-identifier">tr</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">td</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'td'</span>, <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'descr'</span>, +466: <span class="ruby-value str">'style'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'width:85%'</span>)) +467: <span class="ruby-identifier">first</span> = <span class="ruby-keyword kw">true</span> +468: <span class="ruby-ivar">@optionalAttributes</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">attr</span><span class="ruby-operator">|</span> +469: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">first</span> +470: <span class="ruby-identifier">first</span> = <span class="ruby-keyword kw">false</span> +471: <span class="ruby-keyword kw">else</span> +472: <span class="ruby-identifier">td</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">', '</span>) +473: <span class="ruby-keyword kw">end</span> +474: <span class="ruby-identifier">keywordHTMLRef</span>(<span class="ruby-identifier">td</span>, <span class="ruby-identifier">attr</span>) +475: <span class="ruby-keyword kw">end</span> +476: <span class="ruby-keyword kw">end</span> +477: <span class="ruby-keyword kw">end</span> +478: +479: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@pattern</span>.<span class="ruby-identifier">exampleFile</span> +480: <span class="ruby-identifier">exampleDir</span> = <span class="ruby-constant">AppConfig</span>.<span class="ruby-identifier">dataDirs</span>(<span class="ruby-value str">'test'</span>)[<span class="ruby-value">0</span>] <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;TestSuite/Syntax/Correct/&quot;</span> +481: <span class="ruby-identifier">example</span> = <span class="ruby-constant">TjpExample</span>.<span class="ruby-identifier">new</span> +482: <span class="ruby-identifier">fileName</span> = <span class="ruby-node">&quot;#{exampleDir}/#{@pattern.exampleFile}.tjp&quot;</span> +483: <span class="ruby-identifier">example</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">fileName</span>) +484: <span class="ruby-identifier">bbox</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">frame</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'div'</span>, <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'codeframe'</span>)) +485: <span class="ruby-identifier">frame</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">pre</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'pre'</span>, <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'code'</span>)) +486: <span class="ruby-keyword kw">unless</span> (<span class="ruby-identifier">text</span> = <span class="ruby-identifier">example</span>.<span class="ruby-identifier">to_s</span>(<span class="ruby-ivar">@pattern</span>.<span class="ruby-identifier">exampleTag</span>)) +487: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;There is no tag '#{@pattern.exampleTag}' in file &quot;</span> <span class="ruby-operator">+</span> +488: <span class="ruby-node">&quot;#{fileName}.&quot;</span> +489: <span class="ruby-keyword kw">end</span> +490: <span class="ruby-identifier">pre</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">text</span>) +491: <span class="ruby-keyword kw">end</span> +492: +493: <span class="ruby-identifier">body</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">generateHTMLNavigationBar</span> +494: <span class="ruby-identifier">body</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-ivar">@manual</span>.<span class="ruby-identifier">generateHTMLFooter</span> +495: +496: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">directory</span> +497: <span class="ruby-identifier">html</span>.<span class="ruby-identifier">write</span>(<span class="ruby-identifier">directory</span> <span class="ruby-operator">+</span> <span class="ruby-node">&quot;#{keyword}.html&quot;</span>) +498: <span class="ruby-keyword kw">else</span> +499: <span class="ruby-identifier">puts</span> <span class="ruby-identifier">html</span>.<span class="ruby-identifier">to_s</span> +500: <span class="ruby-keyword kw">end</span> +501: <span class="ruby-keyword kw">end</span></pre> </div> </div> </div> + <div id="global-cope--method" class="method-detail "> + <a name="method-i-globalScope%3F"></a> + + <div class="method-heading"> + + <span class="method-name">globalScope?</span><span + class="method-args">()</span> + <span class="method-click-advice">click to toggle source</span> + + </div> + + <div class="method-description"> + + <p> +Returns true of the keyword can be used outside of any other keyword +context. +</p> + + + + <div class="method-source-code" + id="global-cope--source"> +<pre> + <span class="ruby-comment cmt"># File lib/KeywordDocumentation.rb, line 88</span> +88: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">globalScope?</span> +89: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@contexts</span>.<span class="ruby-identifier">empty?</span> +90: <span class="ruby-ivar">@contexts</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">context</span><span class="ruby-operator">|</span> +91: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">context</span>.<span class="ruby-identifier">keyword</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'properties'</span> +92: <span class="ruby-keyword kw">end</span> +93: <span class="ruby-keyword kw">false</span> +94: <span class="ruby-keyword kw">end</span></pre> + </div> + + </div> + + + + + </div> + + + <div id="is-roperty--method" class="method-detail "> + <a name="method-i-isProperty%3F"></a> + + <div class="method-heading"> + + <span class="method-name">isProperty?</span><span + class="method-args">()</span> + <span class="method-click-advice">click to toggle source</span> + + </div> + + <div class="method-description"> + + <p> +Returns true of the <a +href="KeywordDocumentation.html">KeywordDocumentation</a> is documenting a +TJP property (task, resources, etc.). A TJP property can be nested. +</p> + + + + <div class="method-source-code" + id="is-roperty--source"> +<pre> + <span class="ruby-comment cmt"># File lib/KeywordDocumentation.rb, line 77</span> +77: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">isProperty?</span> +78: <span class="ruby-comment cmt"># I haven't found a good way to automatically detect all the various</span> +79: <span class="ruby-comment cmt"># report types as properties. The non-nestable ones need to be added</span> +80: <span class="ruby-comment cmt"># manually here.</span> +81: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span> <span class="ruby-keyword kw">if</span> <span class="ruby-node">%( export nikureport timesheetreport statussheetreport)</span>. +82: <span class="ruby-identifier">include?</span>(<span class="ruby-identifier">keyword</span>) +83: <span class="ruby-ivar">@optionalAttributes</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-keyword kw">self</span>) +84: <span class="ruby-keyword kw">end</span></pre> + </div> + + </div> + + + + + </div> + + <div id="title-method" class="method-detail "> <a name="method-i-title"></a> <div class="method-heading"> @@ -1200,20 +1339,20 @@ <div class="method-source-code" id="title-source"> <pre> - <span class="ruby-comment cmt"># File lib/KeywordDocumentation.rb, line 139</span> -139: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">title</span> -140: <span class="ruby-identifier">kwTokens</span> = <span class="ruby-ivar">@keyword</span>.<span class="ruby-identifier">split</span>(<span class="ruby-value str">'.'</span>) -141: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">kwTokens</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span> -142: <span class="ruby-identifier">title</span> = <span class="ruby-ivar">@keyword</span> -143: <span class="ruby-keyword kw">else</span> -144: <span class="ruby-identifier">title</span> = <span class="ruby-node">&quot;#{kwTokens[0]} (#{kwTokens[1]})&quot;</span> -145: <span class="ruby-keyword kw">end</span> -146: <span class="ruby-identifier">title</span> -147: <span class="ruby-keyword kw">end</span></pre> + <span class="ruby-comment cmt"># File lib/KeywordDocumentation.rb, line 175</span> +175: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">title</span> +176: <span class="ruby-identifier">kwTokens</span> = <span class="ruby-ivar">@keyword</span>.<span class="ruby-identifier">split</span>(<span class="ruby-value str">'.'</span>) +177: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">kwTokens</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span> +178: <span class="ruby-identifier">title</span> = <span class="ruby-ivar">@keyword</span> +179: <span class="ruby-keyword kw">else</span> +180: <span class="ruby-identifier">title</span> = <span class="ruby-node">&quot;#{kwTokens[0]} (#{kwTokens[1]})&quot;</span> +181: <span class="ruby-keyword kw">end</span> +182: <span class="ruby-identifier">title</span> +183: <span class="ruby-keyword kw">end</span></pre> </div> </div> @@ -1242,126 +1381,126 @@ <div class="method-source-code" id="to-s-source"> <pre> - <span class="ruby-comment cmt"># File lib/KeywordDocumentation.rb, line 151</span> -151: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_s</span> -152: <span class="ruby-identifier">tagW</span> = <span class="ruby-value">13</span> -153: <span class="ruby-identifier">textW</span> = <span class="ruby-value">79</span> -154: -155: <span class="ruby-comment cmt"># Top line with multiple elements</span> -156: <span class="ruby-identifier">str</span> = <span class="ruby-node">&quot;Keyword: #{@keyword} &quot;</span> <span class="ruby-operator">+</span> -157: <span class="ruby-node">&quot;Scenario Specific: #{@scenarioSpecific ? 'Yes' : 'No'} &quot;</span> <span class="ruby-operator">+</span> -158: <span class="ruby-node">&quot;Inherited: #{@inheritedFromParent ? 'Yes' : 'No'}\n\n&quot;</span> -159: -160: <span class="ruby-identifier">str</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot;Purpose: #{format(tagW, newRichText(@pattern.doc).to_s, -161: textW)}\n\n&quot;</span> -162: -163: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@syntax</span> <span class="ruby-operator">!=</span> <span class="ruby-value str">'[{ &lt;attributes&gt; }]'</span> -164: <span class="ruby-identifier">str</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot;Syntax: #{format(tagW, @syntax, textW)}\n\n&quot;</span> -165: -166: <span class="ruby-identifier">str</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">&quot;Arguments: &quot;</span> -167: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@args</span>.<span class="ruby-identifier">empty?</span> -168: <span class="ruby-identifier">str</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">format</span>(<span class="ruby-identifier">tagW</span>, <span class="ruby-value str">&quot;none\n\n&quot;</span>, <span class="ruby-identifier">textW</span>) -169: <span class="ruby-keyword kw">else</span> -170: <span class="ruby-identifier">argStr</span> = <span class="ruby-value str">''</span> -171: <span class="ruby-ivar">@args</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">arg</span><span class="ruby-operator">|</span> -172: <span class="ruby-identifier">argText</span> = <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">text</span> <span class="ruby-operator">||</span> <span class="ruby-node">&quot;See #{arg.name} for details.&quot;</span> -173: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">typeSpec</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> (<span class="ruby-value str">'&lt;'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">name</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'&gt;'</span>) <span class="ruby-operator">==</span> <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">typeSpec</span> -174: <span class="ruby-identifier">indent</span> = <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">name</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">+</span> <span class="ruby-value">2</span> -175: <span class="ruby-identifier">argStr</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot;#{arg.name}: &quot;</span> <span class="ruby-operator">+</span> -176: <span class="ruby-node">&quot;#{format(indent, argText, textW - tagW)}\n&quot;</span> -177: <span class="ruby-keyword kw">else</span> -178: <span class="ruby-identifier">typeSpec</span> = <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">typeSpec</span> -179: <span class="ruby-identifier">typeSpec</span>[<span class="ruby-value">0</span>] = <span class="ruby-value str">'['</span> -180: <span class="ruby-identifier">typeSpec</span>[<span class="ruby-value">1</span>] = <span class="ruby-value str">']'</span> -181: <span class="ruby-identifier">indent</span> = <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">name</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">typeSpec</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">+</span> <span class="ruby-value">3</span> -182: <span class="ruby-identifier">argStr</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot;#{arg.name} #{typeSpec}: &quot;</span> <span class="ruby-operator">+</span> -183: <span class="ruby-node">&quot;#{format(indent, argText, textW - tagW)}\n&quot;</span> -184: <span class="ruby-keyword kw">end</span> -185: <span class="ruby-keyword kw">end</span> -186: <span class="ruby-identifier">str</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">indent</span>(<span class="ruby-identifier">tagW</span>, <span class="ruby-identifier">argStr</span>) -187: <span class="ruby-keyword kw">end</span> -188: <span class="ruby-identifier">str</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">&quot;\n&quot;</span> -189: <span class="ruby-keyword kw">end</span> + <span class="ruby-comment cmt"># File lib/KeywordDocumentation.rb, line 187</span> +187: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_s</span> +188: <span class="ruby-identifier">tagW</span> = <span class="ruby-value">13</span> +189: <span class="ruby-identifier">textW</span> = <span class="ruby-value">79</span> 190: -191: <span class="ruby-identifier">str</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">'Context: '</span> -192: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@contexts</span>.<span class="ruby-identifier">empty?</span> -193: <span class="ruby-identifier">str</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">format</span>(<span class="ruby-identifier">tagW</span>, <span class="ruby-value str">'Global scope'</span>, <span class="ruby-identifier">textW</span>) -194: <span class="ruby-keyword kw">else</span> -195: <span class="ruby-identifier">cxtStr</span> = <span class="ruby-value str">''</span> -196: <span class="ruby-ivar">@contexts</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">context</span><span class="ruby-operator">|</span> -197: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">cxtStr</span>.<span class="ruby-identifier">empty?</span> -198: <span class="ruby-identifier">cxtStr</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">', '</span> -199: <span class="ruby-keyword kw">end</span> -200: <span class="ruby-identifier">cxtStr</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">context</span>.<span class="ruby-identifier">keyword</span> -201: <span class="ruby-keyword kw">end</span> -202: <span class="ruby-identifier">str</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">format</span>(<span class="ruby-identifier">tagW</span>, <span class="ruby-identifier">cxtStr</span>, <span class="ruby-identifier">textW</span>) -203: <span class="ruby-keyword kw">end</span> -204: -205: <span class="ruby-identifier">str</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">&quot;\n\nAttributes: &quot;</span> -206: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@optionalAttributes</span>.<span class="ruby-identifier">empty?</span> -207: <span class="ruby-identifier">str</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">&quot;none\n\n&quot;</span> -208: <span class="ruby-keyword kw">else</span> -209: <span class="ruby-identifier">attrStr</span> = <span class="ruby-value str">''</span> -210: <span class="ruby-ivar">@optionalAttributes</span>.<span class="ruby-identifier">sort!</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">a</span>, <span class="ruby-identifier">b</span><span class="ruby-operator">|</span> -211: <span class="ruby-identifier">a</span>.<span class="ruby-identifier">keyword</span> <span class="ruby-operator">&lt;=&gt;</span> <span class="ruby-identifier">b</span>.<span class="ruby-identifier">keyword</span> -212: <span class="ruby-keyword kw">end</span> -213: <span class="ruby-identifier">showLegend</span> = <span class="ruby-keyword kw">false</span> -214: <span class="ruby-ivar">@optionalAttributes</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">attr</span><span class="ruby-operator">|</span> -215: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">attrStr</span>.<span class="ruby-identifier">empty?</span> -216: <span class="ruby-identifier">attrStr</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">', '</span> -217: <span class="ruby-keyword kw">end</span> -218: <span class="ruby-identifier">attrStr</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">attr</span>.<span class="ruby-identifier">keyword</span> -219: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">attr</span>.<span class="ruby-identifier">scenarioSpecific</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">attr</span>.<span class="ruby-identifier">inheritedFromProject</span> <span class="ruby-operator">||</span> -220: <span class="ruby-identifier">attr</span>.<span class="ruby-identifier">inheritedFromParent</span> -221: <span class="ruby-identifier">first</span> = <span class="ruby-keyword kw">true</span> -222: <span class="ruby-identifier">showLegend</span> = <span class="ruby-keyword kw">true</span> -223: <span class="ruby-identifier">attrStr</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">'['</span> -224: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">attr</span>.<span class="ruby-identifier">scenarioSpecific</span> -225: <span class="ruby-identifier">attrStr</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">'sc'</span> -226: <span class="ruby-identifier">first</span> = <span class="ruby-keyword kw">false</span> -227: <span class="ruby-keyword kw">end</span> -228: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">attr</span>.<span class="ruby-identifier">inheritedFromProject</span> -229: <span class="ruby-identifier">attrStr</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">':'</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">first</span> -230: <span class="ruby-identifier">attrStr</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">'ig'</span> -231: <span class="ruby-identifier">first</span> = <span class="ruby-keyword kw">false</span> -232: <span class="ruby-keyword kw">end</span> -233: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">attr</span>.<span class="ruby-identifier">inheritedFromParent</span> -234: <span class="ruby-identifier">attrStr</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">':'</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">first</span> -235: <span class="ruby-identifier">attrStr</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">'ip'</span> -236: <span class="ruby-keyword kw">end</span> -237: <span class="ruby-identifier">attrStr</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">']'</span> -238: <span class="ruby-keyword kw">end</span> -239: <span class="ruby-keyword kw">end</span> -240: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">showLegend</span> -241: <span class="ruby-identifier">attrStr</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">&quot;\n\n[sc] : Attribute is scenario specific&quot;</span> <span class="ruby-operator">+</span> -242: <span class="ruby-value str">&quot;\n[ig] : Attribute is inherited from global attribute&quot;</span> <span class="ruby-operator">+</span> -243: <span class="ruby-value str">&quot;\n[ip] : Attribute is inherited from parent property&quot;</span> -244: <span class="ruby-keyword kw">end</span> -245: <span class="ruby-identifier">str</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">format</span>(<span class="ruby-identifier">tagW</span>, <span class="ruby-identifier">attrStr</span>, <span class="ruby-identifier">textW</span>) -246: <span class="ruby-identifier">str</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">&quot;\n&quot;</span> -247: <span class="ruby-keyword kw">end</span> -248: -249: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@seeAlso</span>.<span class="ruby-identifier">empty?</span> -250: <span class="ruby-identifier">str</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">&quot;See also: &quot;</span> -251: <span class="ruby-identifier">alsoStr</span> = <span class="ruby-value str">''</span> -252: <span class="ruby-ivar">@seeAlso</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">also</span><span class="ruby-operator">|</span> -253: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">alsoStr</span>.<span class="ruby-identifier">empty?</span> -254: <span class="ruby-identifier">alsoStr</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">', '</span> -255: <span class="ruby-keyword kw">end</span> -256: <span class="ruby-identifier">alsoStr</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">also</span>.<span class="ruby-identifier">keyword</span> -257: <span class="ruby-keyword kw">end</span> -258: <span class="ruby-identifier">str</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">format</span>(<span class="ruby-identifier">tagW</span>, <span class="ruby-identifier">alsoStr</span>, <span class="ruby-identifier">textW</span>) -259: <span class="ruby-identifier">str</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">&quot;\n&quot;</span> -260: <span class="ruby-keyword kw">end</span> -261: -262: <span class="ruby-comment cmt"># str += &quot;Rule: #{@rule.name}\n&quot; if @rule</span> -263: <span class="ruby-comment cmt"># str += &quot;Pattern: #{@pattern.tokens.join(' ')}\n&quot; if @pattern</span> -264: <span class="ruby-identifier">str</span> -265: <span class="ruby-keyword kw">end</span></pre> +191: <span class="ruby-comment cmt"># Top line with multiple elements</span> +192: <span class="ruby-identifier">str</span> = <span class="ruby-node">&quot;Keyword: #{@keyword} &quot;</span> <span class="ruby-operator">+</span> +193: <span class="ruby-node">&quot;Scenario Specific: #{@scenarioSpecific ? 'Yes' : 'No'} &quot;</span> <span class="ruby-operator">+</span> +194: <span class="ruby-node">&quot;Inherited: #{@inheritedFromParent ? 'Yes' : 'No'}\n\n&quot;</span> +195: +196: <span class="ruby-identifier">str</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot;Purpose: #{format(tagW, newRichText(@pattern.doc).to_s, +197: textW)}\n\n&quot;</span> +198: +199: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@syntax</span> <span class="ruby-operator">!=</span> <span class="ruby-value str">'[{ &lt;attributes&gt; }]'</span> +200: <span class="ruby-identifier">str</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot;Syntax: #{format(tagW, @syntax, textW)}\n\n&quot;</span> +201: +202: <span class="ruby-identifier">str</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">&quot;Arguments: &quot;</span> +203: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@args</span>.<span class="ruby-identifier">empty?</span> +204: <span class="ruby-identifier">str</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">format</span>(<span class="ruby-identifier">tagW</span>, <span class="ruby-value str">&quot;none\n\n&quot;</span>, <span class="ruby-identifier">textW</span>) +205: <span class="ruby-keyword kw">else</span> +206: <span class="ruby-identifier">argStr</span> = <span class="ruby-value str">''</span> +207: <span class="ruby-ivar">@args</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">arg</span><span class="ruby-operator">|</span> +208: <span class="ruby-identifier">argText</span> = <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">text</span> <span class="ruby-operator">||</span> <span class="ruby-node">&quot;See #{arg.name} for details.&quot;</span> +209: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">typeSpec</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> (<span class="ruby-value str">'&lt;'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">name</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'&gt;'</span>) <span class="ruby-operator">==</span> <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">typeSpec</span> +210: <span class="ruby-identifier">indent</span> = <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">name</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">+</span> <span class="ruby-value">2</span> +211: <span class="ruby-identifier">argStr</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot;#{arg.name}: &quot;</span> <span class="ruby-operator">+</span> +212: <span class="ruby-node">&quot;#{format(indent, argText, textW - tagW)}\n&quot;</span> +213: <span class="ruby-keyword kw">else</span> +214: <span class="ruby-identifier">typeSpec</span> = <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">typeSpec</span> +215: <span class="ruby-identifier">typeSpec</span>[<span class="ruby-value">0</span>] = <span class="ruby-value str">'['</span> +216: <span class="ruby-identifier">typeSpec</span>[<span class="ruby-value">1</span>] = <span class="ruby-value str">']'</span> +217: <span class="ruby-identifier">indent</span> = <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">name</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">typeSpec</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">+</span> <span class="ruby-value">3</span> +218: <span class="ruby-identifier">argStr</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot;#{arg.name} #{typeSpec}: &quot;</span> <span class="ruby-operator">+</span> +219: <span class="ruby-node">&quot;#{format(indent, argText, textW - tagW)}\n&quot;</span> +220: <span class="ruby-keyword kw">end</span> +221: <span class="ruby-keyword kw">end</span> +222: <span class="ruby-identifier">str</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">indent</span>(<span class="ruby-identifier">tagW</span>, <span class="ruby-identifier">argStr</span>) +223: <span class="ruby-keyword kw">end</span> +224: <span class="ruby-identifier">str</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">&quot;\n&quot;</span> +225: <span class="ruby-keyword kw">end</span> +226: +227: <span class="ruby-identifier">str</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">'Context: '</span> +228: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@contexts</span>.<span class="ruby-identifier">empty?</span> +229: <span class="ruby-identifier">str</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">format</span>(<span class="ruby-identifier">tagW</span>, <span class="ruby-value str">'Global scope'</span>, <span class="ruby-identifier">textW</span>) +230: <span class="ruby-keyword kw">else</span> +231: <span class="ruby-identifier">cxtStr</span> = <span class="ruby-value str">''</span> +232: <span class="ruby-ivar">@contexts</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">context</span><span class="ruby-operator">|</span> +233: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">cxtStr</span>.<span class="ruby-identifier">empty?</span> +234: <span class="ruby-identifier">cxtStr</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">', '</span> +235: <span class="ruby-keyword kw">end</span> +236: <span class="ruby-identifier">cxtStr</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">context</span>.<span class="ruby-identifier">keyword</span> +237: <span class="ruby-keyword kw">end</span> +238: <span class="ruby-identifier">str</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">format</span>(<span class="ruby-identifier">tagW</span>, <span class="ruby-identifier">cxtStr</span>, <span class="ruby-identifier">textW</span>) +239: <span class="ruby-keyword kw">end</span> +240: +241: <span class="ruby-identifier">str</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">&quot;\n\nAttributes: &quot;</span> +242: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@optionalAttributes</span>.<span class="ruby-identifier">empty?</span> +243: <span class="ruby-identifier">str</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">&quot;none\n\n&quot;</span> +244: <span class="ruby-keyword kw">else</span> +245: <span class="ruby-identifier">attrStr</span> = <span class="ruby-value str">''</span> +246: <span class="ruby-ivar">@optionalAttributes</span>.<span class="ruby-identifier">sort!</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">a</span>, <span class="ruby-identifier">b</span><span class="ruby-operator">|</span> +247: <span class="ruby-identifier">a</span>.<span class="ruby-identifier">keyword</span> <span class="ruby-operator">&lt;=&gt;</span> <span class="ruby-identifier">b</span>.<span class="ruby-identifier">keyword</span> +248: <span class="ruby-keyword kw">end</span> +249: <span class="ruby-identifier">showLegend</span> = <span class="ruby-keyword kw">false</span> +250: <span class="ruby-ivar">@optionalAttributes</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">attr</span><span class="ruby-operator">|</span> +251: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">attrStr</span>.<span class="ruby-identifier">empty?</span> +252: <span class="ruby-identifier">attrStr</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">', '</span> +253: <span class="ruby-keyword kw">end</span> +254: <span class="ruby-identifier">attrStr</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">attr</span>.<span class="ruby-identifier">keyword</span> +255: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">attr</span>.<span class="ruby-identifier">scenarioSpecific</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">attr</span>.<span class="ruby-identifier">inheritedFromProject</span> <span class="ruby-operator">||</span> +256: <span class="ruby-identifier">attr</span>.<span class="ruby-identifier">inheritedFromParent</span> +257: <span class="ruby-identifier">first</span> = <span class="ruby-keyword kw">true</span> +258: <span class="ruby-identifier">showLegend</span> = <span class="ruby-keyword kw">true</span> +259: <span class="ruby-identifier">attrStr</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">'['</span> +260: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">attr</span>.<span class="ruby-identifier">scenarioSpecific</span> +261: <span class="ruby-identifier">attrStr</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">'sc'</span> +262: <span class="ruby-identifier">first</span> = <span class="ruby-keyword kw">false</span> +263: <span class="ruby-keyword kw">end</span> +264: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">attr</span>.<span class="ruby-identifier">inheritedFromProject</span> +265: <span class="ruby-identifier">attrStr</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">':'</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">first</span> +266: <span class="ruby-identifier">attrStr</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">'ig'</span> +267: <span class="ruby-identifier">first</span> = <span class="ruby-keyword kw">false</span> +268: <span class="ruby-keyword kw">end</span> +269: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">attr</span>.<span class="ruby-identifier">inheritedFromParent</span> +270: <span class="ruby-identifier">attrStr</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">':'</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">first</span> +271: <span class="ruby-identifier">attrStr</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">'ip'</span> +272: <span class="ruby-keyword kw">end</span> +273: <span class="ruby-identifier">attrStr</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">']'</span> +274: <span class="ruby-keyword kw">end</span> +275: <span class="ruby-keyword kw">end</span> +276: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">showLegend</span> +277: <span class="ruby-identifier">attrStr</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">&quot;\n\n[sc] : Attribute is scenario specific&quot;</span> <span class="ruby-operator">+</span> +278: <span class="ruby-value str">&quot;\n[ig] : Attribute is inherited from global attribute&quot;</span> <span class="ruby-operator">+</span> +279: <span class="ruby-value str">&quot;\n[ip] : Attribute is inherited from parent property&quot;</span> +280: <span class="ruby-keyword kw">end</span> +281: <span class="ruby-identifier">str</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">format</span>(<span class="ruby-identifier">tagW</span>, <span class="ruby-identifier">attrStr</span>, <span class="ruby-identifier">textW</span>) +282: <span class="ruby-identifier">str</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">&quot;\n&quot;</span> +283: <span class="ruby-keyword kw">end</span> +284: +285: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@seeAlso</span>.<span class="ruby-identifier">empty?</span> +286: <span class="ruby-identifier">str</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">&quot;See also: &quot;</span> +287: <span class="ruby-identifier">alsoStr</span> = <span class="ruby-value str">''</span> +288: <span class="ruby-ivar">@seeAlso</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">also</span><span class="ruby-operator">|</span> +289: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">alsoStr</span>.<span class="ruby-identifier">empty?</span> +290: <span class="ruby-identifier">alsoStr</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">', '</span> +291: <span class="ruby-keyword kw">end</span> +292: <span class="ruby-identifier">alsoStr</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">also</span>.<span class="ruby-identifier">keyword</span> +293: <span class="ruby-keyword kw">end</span> +294: <span class="ruby-identifier">str</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">format</span>(<span class="ruby-identifier">tagW</span>, <span class="ruby-identifier">alsoStr</span>, <span class="ruby-identifier">textW</span>) +295: <span class="ruby-identifier">str</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">&quot;\n&quot;</span> +296: <span class="ruby-keyword kw">end</span> +297: +298: <span class="ruby-comment cmt"># str += &quot;Rule: #{@rule.name}\n&quot; if @rule</span> +299: <span class="ruby-comment cmt"># str += &quot;Pattern: #{@pattern.tokens.join(' ')}\n&quot; if @pattern</span> +300: <span class="ruby-identifier">str</span> +301: <span class="ruby-keyword kw">end</span></pre> </div> </div> @@ -1394,19 +1533,19 @@ <div class="method-source-code" id="check-eference-source"> <pre> - <span class="ruby-comment cmt"># File lib/KeywordDocumentation.rb, line 469</span> -469: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">checkReference</span>(<span class="ruby-identifier">pattern</span>) -470: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">pattern</span>.<span class="ruby-identifier">keyword</span>.<span class="ruby-identifier">nil?</span> -471: <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;Pattern #{pattern} is undocumented but referenced by &quot;</span> <span class="ruby-operator">+</span> -472: <span class="ruby-node">&quot;#{@keyword}.&quot;</span> -473: <span class="ruby-keyword kw">false</span> -474: <span class="ruby-keyword kw">end</span> -475: <span class="ruby-keyword kw">true</span> -476: <span class="ruby-keyword kw">end</span></pre> + <span class="ruby-comment cmt"># File lib/KeywordDocumentation.rb, line 505</span> +505: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">checkReference</span>(<span class="ruby-identifier">pattern</span>) +506: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">pattern</span>.<span class="ruby-identifier">keyword</span>.<span class="ruby-identifier">nil?</span> +507: <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;Pattern #{pattern} is undocumented but referenced by &quot;</span> <span class="ruby-operator">+</span> +508: <span class="ruby-node">&quot;#{@keyword}.&quot;</span> +509: <span class="ruby-keyword kw">false</span> +510: <span class="ruby-keyword kw">end</span> +511: <span class="ruby-keyword kw">true</span> +512: <span class="ruby-keyword kw">end</span></pre> </div> </div> @@ -1433,14 +1572,14 @@ <div class="method-source-code" id="format-source"> <pre> - <span class="ruby-comment cmt"># File lib/KeywordDocumentation.rb, line 532</span> -532: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">format</span>(<span class="ruby-identifier">indent</span>, <span class="ruby-identifier">str</span>, <span class="ruby-identifier">width</span>) -533: <span class="ruby-constant">TextFormatter</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">width</span>, <span class="ruby-identifier">indent</span>).<span class="ruby-identifier">format</span>(<span class="ruby-identifier">str</span>)[<span class="ruby-identifier">indent</span><span class="ruby-operator">..</span><span class="ruby-value">1</span>] -534: <span class="ruby-keyword kw">end</span></pre> + <span class="ruby-comment cmt"># File lib/KeywordDocumentation.rb, line 566</span> +566: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">format</span>(<span class="ruby-identifier">indent</span>, <span class="ruby-identifier">str</span>, <span class="ruby-identifier">width</span>) +567: <span class="ruby-constant">TextFormatter</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">width</span>, <span class="ruby-identifier">indent</span>).<span class="ruby-identifier">format</span>(<span class="ruby-identifier">str</span>)[<span class="ruby-identifier">indent</span><span class="ruby-operator">..</span><span class="ruby-value">1</span>] +568: <span class="ruby-keyword kw">end</span></pre> </div> </div> @@ -1469,18 +1608,18 @@ <div class="method-source-code" id="generate-avigation-ar-source"> <pre> - <span class="ruby-comment cmt"># File lib/KeywordDocumentation.rb, line 483</span> -483: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateHTMLNavigationBar</span> -484: <span class="ruby-ivar">@manual</span>.<span class="ruby-identifier">generateHTMLNavigationBar</span>( -485: <span class="ruby-ivar">@predecessor</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@predecessor</span>.<span class="ruby-identifier">title</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>, -486: <span class="ruby-ivar">@predecessor</span> <span class="ruby-operator">?</span> <span class="ruby-node">&quot;#{@predecessor.keyword}.html&quot;</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>, -487: <span class="ruby-ivar">@successor</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@successor</span>.<span class="ruby-identifier">title</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>, -488: <span class="ruby-ivar">@successor</span> <span class="ruby-operator">?</span> <span class="ruby-node">&quot;#{@successor.keyword}.html&quot;</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>) -489: <span class="ruby-keyword kw">end</span></pre> + <span class="ruby-comment cmt"># File lib/KeywordDocumentation.rb, line 519</span> +519: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateHTMLNavigationBar</span> +520: <span class="ruby-ivar">@manual</span>.<span class="ruby-identifier">generateHTMLNavigationBar</span>( +521: <span class="ruby-ivar">@predecessor</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@predecessor</span>.<span class="ruby-identifier">title</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>, +522: <span class="ruby-ivar">@predecessor</span> <span class="ruby-operator">?</span> <span class="ruby-node">&quot;#{@predecessor.keyword}.html&quot;</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>, +523: <span class="ruby-ivar">@successor</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@successor</span>.<span class="ruby-identifier">title</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>, +524: <span class="ruby-ivar">@successor</span> <span class="ruby-operator">?</span> <span class="ruby-node">&quot;#{@successor.keyword}.html&quot;</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>) +525: <span class="ruby-keyword kw">end</span></pre> </div> </div> @@ -1507,14 +1646,14 @@ <div class="method-source-code" id="indent-source"> <pre> - <span class="ruby-comment cmt"># File lib/KeywordDocumentation.rb, line 478</span> -478: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">indent</span>(<span class="ruby-identifier">width</span>, <span class="ruby-identifier">str</span>) -479: <span class="ruby-constant">TextFormatter</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value">0</span>, <span class="ruby-identifier">width</span>).<span class="ruby-identifier">indent</span>(<span class="ruby-identifier">str</span>)[<span class="ruby-identifier">width</span><span class="ruby-operator">..</span><span class="ruby-value">1</span>] -480: <span class="ruby-keyword kw">end</span></pre> + <span class="ruby-comment cmt"># File lib/KeywordDocumentation.rb, line 514</span> +514: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">indent</span>(<span class="ruby-identifier">width</span>, <span class="ruby-identifier">str</span>) +515: <span class="ruby-constant">TextFormatter</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value">0</span>, <span class="ruby-identifier">width</span>).<span class="ruby-identifier">indent</span>(<span class="ruby-identifier">str</span>)[<span class="ruby-identifier">width</span><span class="ruby-operator">..</span><span class="ruby-value">1</span>] +516: <span class="ruby-keyword kw">end</span></pre> </div> </div> @@ -1543,15 +1682,15 @@ <div class="method-source-code" id="keyword-ef-source"> <pre> - <span class="ruby-comment cmt"># File lib/KeywordDocumentation.rb, line 492</span> -492: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">keywordHTMLRef</span>(<span class="ruby-identifier">parent</span>, <span class="ruby-identifier">keyword</span>) -493: <span class="ruby-identifier">parent</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLNamedText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">keyword</span>.<span class="ruby-identifier">title</span>, -494: <span class="ruby-value str">'a'</span>, <span class="ruby-value str">'href'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-node">&quot;#{keyword.keyword}.html&quot;</span>) -495: <span class="ruby-keyword kw">end</span></pre> + <span class="ruby-comment cmt"># File lib/KeywordDocumentation.rb, line 528</span> +528: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">keywordHTMLRef</span>(<span class="ruby-identifier">parent</span>, <span class="ruby-identifier">keyword</span>) +529: <span class="ruby-identifier">parent</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLNamedText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">keyword</span>.<span class="ruby-identifier">title</span>, +530: <span class="ruby-value str">'a'</span>, <span class="ruby-value str">'href'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-node">&quot;#{keyword.keyword}.html&quot;</span>) +531: <span class="ruby-keyword kw">end</span></pre> </div> </div> @@ -1584,25 +1723,26 @@ <div class="method-source-code" id="list-ttributes-source"> <pre> - <span class="ruby-comment cmt"># File lib/KeywordDocumentation.rb, line 517</span> -517: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">listHTMLAttributes</span>(<span class="ruby-identifier">list</span>, <span class="ruby-identifier">width</span>) -518: <span class="ruby-identifier">td</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'td'</span>, <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'descr'</span>, <span class="ruby-value str">'style'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-node">&quot;width:#{width}%&quot;</span>) -519: <span class="ruby-identifier">first</span> = <span class="ruby-keyword kw">true</span> -520: <span class="ruby-identifier">list</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">attr</span><span class="ruby-operator">|</span> -521: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">first</span> -522: <span class="ruby-identifier">first</span> = <span class="ruby-keyword kw">false</span> -523: <span class="ruby-keyword kw">else</span> -524: <span class="ruby-identifier">td</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">', '</span>) -525: <span class="ruby-keyword kw">end</span> -526: <span class="ruby-identifier">keywordHTMLRef</span>(<span class="ruby-identifier">td</span>, <span class="ruby-identifier">attr</span>) -527: <span class="ruby-keyword kw">end</span> -528: -529: <span class="ruby-identifier">td</span> -530: <span class="ruby-keyword kw">end</span></pre> + <span class="ruby-comment cmt"># File lib/KeywordDocumentation.rb, line 550</span> +550: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">listHTMLAttributes</span>(<span class="ruby-identifier">list</span>, <span class="ruby-identifier">width</span>) +551: <span class="ruby-identifier">td</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'td'</span>, <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'descr'</span>, +552: <span class="ruby-value str">'style'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-node">&quot;width:#{width}%&quot;</span>) +553: <span class="ruby-identifier">first</span> = <span class="ruby-keyword kw">true</span> +554: <span class="ruby-identifier">list</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">attr</span><span class="ruby-operator">|</span> +555: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">first</span> +556: <span class="ruby-identifier">first</span> = <span class="ruby-keyword kw">false</span> +557: <span class="ruby-keyword kw">else</span> +558: <span class="ruby-identifier">td</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">', '</span>) +559: <span class="ruby-keyword kw">end</span> +560: <span class="ruby-identifier">keywordHTMLRef</span>(<span class="ruby-identifier">td</span>, <span class="ruby-identifier">attr</span>) +561: <span class="ruby-keyword kw">end</span> +562: +563: <span class="ruby-identifier">td</span> +564: <span class="ruby-keyword kw">end</span></pre> </div> </div> @@ -1634,22 +1774,19 @@ <div class="method-source-code" id="new-ich-ext-source"> <pre> - <span class="ruby-comment cmt"># File lib/KeywordDocumentation.rb, line 500</span> -500: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">newRichText</span>(<span class="ruby-identifier">text</span>) -501: <span class="ruby-keyword kw">begin</span> -502: <span class="ruby-identifier">rText</span> = <span class="ruby-constant">RichText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">text</span>) -503: <span class="ruby-identifier">rti</span> = <span class="ruby-identifier">rText</span>.<span class="ruby-identifier">generateIntermediateFormat</span> -504: <span class="ruby-ivar">@references</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">rti</span>.<span class="ruby-identifier">internalReferences</span> -505: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">RichTextException</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">msg</span> -506: <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;Error in RichText of rule #{@keyword}\n&quot;</span> <span class="ruby-operator">+</span> -507: <span class="ruby-node">&quot;Line #{msg.lineNo}: #{msg.text}\n&quot;</span> <span class="ruby-operator">+</span> -508: <span class="ruby-node">&quot;#{msg.line}&quot;</span> -509: <span class="ruby-keyword kw">end</span> -510: <span class="ruby-identifier">rti</span> -511: <span class="ruby-keyword kw">end</span></pre> + <span class="ruby-comment cmt"># File lib/KeywordDocumentation.rb, line 536</span> +536: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">newRichText</span>(<span class="ruby-identifier">text</span>) +537: <span class="ruby-identifier">rText</span> = <span class="ruby-constant">RichText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">text</span>, [], <span class="ruby-ivar">@messageHandler</span>) +538: <span class="ruby-keyword kw">unless</span> (<span class="ruby-identifier">rti</span> = <span class="ruby-identifier">rText</span>.<span class="ruby-identifier">generateIntermediateFormat</span>) +539: <span class="ruby-ivar">@messageHandler</span>.<span class="ruby-identifier">error</span>(<span class="ruby-value str">'rich_text'</span>, +540: <span class="ruby-node">&quot;Error in RichText of rule #{@keyword}&quot;</span>) +541: <span class="ruby-keyword kw">end</span> +542: <span class="ruby-ivar">@references</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">rti</span>.<span class="ruby-identifier">internalReferences</span> +543: <span class="ruby-identifier">rti</span> +544: <span class="ruby-keyword kw">end</span></pre> </div> </div>