taskjuggler 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (270) hide show
  1. data/CHANGELOG +1812 -1
  2. data/benchmarks/css/tjmanual.css +20 -0
  3. data/benchmarks/css/tjreport.css +7 -6
  4. data/doc/CHANGELOG.html +1833 -1
  5. data/doc/Object.html +102 -0
  6. data/doc/TaskJuggler.html +283 -283
  7. data/doc/TaskJuggler/HTMLDocument.html +63 -41
  8. data/doc/TaskJuggler/KeywordDocumentation.html +1 -1
  9. data/doc/TaskJuggler/Report.html +148 -147
  10. data/doc/TaskJuggler/ReportServlet.html +1 -1
  11. data/doc/TaskJuggler/RichTextDocument.html +1 -1
  12. data/doc/TaskJuggler/RichTextIntermediate.html +3 -3
  13. data/doc/TaskJuggler/RichTextSnip.html +1 -1
  14. data/doc/TaskJuggler/SheetHandlerBase.html +1 -1
  15. data/doc/TaskJuggler/SyntaxReference.html +2 -2
  16. data/doc/TaskJuggler/TextParser.html +59 -59
  17. data/doc/TaskJuggler/UserManual.html +1 -1
  18. data/doc/TaskJuggler/WelcomePage.html +1 -1
  19. data/doc/index.html +655 -651
  20. data/doc/lib/exchangebug_rb.html +69 -0
  21. data/doc/lib/{taskjuggler/HTMLElements_rb.html → ruby-signal-bug_rb.html} +9 -9
  22. data/doc/lib/taskjuggler/AccountScenario_rb.html +1 -1
  23. data/doc/lib/taskjuggler/Account_rb.html +1 -1
  24. data/doc/lib/taskjuggler/AlgorithmDiff_rb.html +1 -1
  25. data/doc/lib/taskjuggler/Allocation_rb.html +1 -1
  26. data/doc/lib/taskjuggler/AppConfig_rb.html +1 -1
  27. data/doc/lib/taskjuggler/AttributeBase_rb.html +1 -1
  28. data/doc/lib/taskjuggler/AttributeDefinition_rb.html +1 -1
  29. data/doc/lib/taskjuggler/Attributes_rb.html +1 -1
  30. data/doc/lib/taskjuggler/BatchProcessor_rb.html +1 -1
  31. data/doc/lib/taskjuggler/Booking_rb.html +1 -1
  32. data/doc/lib/taskjuggler/ChargeSet_rb.html +1 -1
  33. data/doc/lib/taskjuggler/Charge_rb.html +1 -1
  34. data/doc/lib/taskjuggler/DataCache_rb.html +1 -1
  35. data/doc/lib/taskjuggler/FileList_rb.html +1 -1
  36. data/doc/lib/taskjuggler/HTMLDocument_rb.html +1 -1
  37. data/doc/lib/taskjuggler/IntervalList_rb.html +1 -1
  38. data/doc/lib/taskjuggler/Interval_rb.html +1 -1
  39. data/doc/lib/taskjuggler/Journal_rb.html +1 -1
  40. data/doc/lib/taskjuggler/KeywordArray_rb.html +1 -1
  41. data/doc/lib/taskjuggler/KeywordDocumentation_rb.html +1 -1
  42. data/doc/lib/taskjuggler/Limits_rb.html +1 -1
  43. data/doc/lib/taskjuggler/LogFile_rb.html +1 -1
  44. data/doc/lib/taskjuggler/Log_rb.html +1 -1
  45. data/doc/lib/taskjuggler/LogicalExpression_rb.html +1 -1
  46. data/doc/lib/taskjuggler/LogicalFunction_rb.html +1 -1
  47. data/doc/lib/taskjuggler/LogicalOperation_rb.html +1 -1
  48. data/doc/lib/taskjuggler/MessageHandler_rb.html +1 -1
  49. data/doc/lib/taskjuggler/ProjectFileParser_rb.html +1 -1
  50. data/doc/lib/taskjuggler/ProjectFileScanner_rb.html +1 -1
  51. data/doc/lib/taskjuggler/Project_rb.html +1 -1
  52. data/doc/lib/taskjuggler/PropertyList_rb.html +1 -1
  53. data/doc/lib/taskjuggler/PropertySet_rb.html +1 -1
  54. data/doc/lib/taskjuggler/PropertyTreeNode_rb.html +1 -1
  55. data/doc/lib/taskjuggler/Query_rb.html +1 -1
  56. data/doc/lib/taskjuggler/RealFormat_rb.html +1 -1
  57. data/doc/lib/taskjuggler/ResourceScenario_rb.html +1 -1
  58. data/doc/lib/taskjuggler/Resource_rb.html +1 -1
  59. data/doc/lib/taskjuggler/RichText/Document_rb.html +1 -1
  60. data/doc/lib/taskjuggler/RichText/Element_rb.html +1 -1
  61. data/doc/lib/taskjuggler/RichText/FunctionExample_rb.html +1 -1
  62. data/doc/lib/taskjuggler/RichText/FunctionHandler_rb.html +1 -1
  63. data/doc/lib/taskjuggler/RichText/Parser_rb.html +1 -1
  64. data/doc/lib/taskjuggler/RichText/RTFHandlers_rb.html +1 -1
  65. data/doc/lib/taskjuggler/RichText/RTFNavigator_rb.html +1 -1
  66. data/doc/lib/taskjuggler/RichText/RTFQuery_rb.html +1 -1
  67. data/doc/lib/taskjuggler/RichText/RTFReportLink_rb.html +1 -1
  68. data/doc/lib/taskjuggler/RichText/RTFReport_rb.html +1 -1
  69. data/doc/lib/taskjuggler/RichText/RTFWithQuerySupport_rb.html +1 -1
  70. data/doc/lib/taskjuggler/RichText/Scanner_rb.html +1 -1
  71. data/doc/lib/taskjuggler/RichText/Snip_rb.html +1 -1
  72. data/doc/lib/taskjuggler/RichText/SyntaxRules_rb.html +1 -1
  73. data/doc/lib/taskjuggler/RichText/TOCEntry_rb.html +1 -1
  74. data/doc/lib/taskjuggler/RichText/TableOfContents_rb.html +1 -1
  75. data/doc/lib/taskjuggler/RichText_rb.html +1 -1
  76. data/doc/lib/taskjuggler/RuntimeConfig_rb.html +1 -1
  77. data/doc/lib/taskjuggler/ScenarioData_rb.html +1 -1
  78. data/doc/lib/taskjuggler/Scenario_rb.html +1 -1
  79. data/doc/lib/taskjuggler/Scoreboard_rb.html +1 -1
  80. data/doc/lib/taskjuggler/SheetHandlerBase_rb.html +1 -1
  81. data/doc/lib/taskjuggler/SheetReceiver_rb.html +1 -1
  82. data/doc/lib/taskjuggler/SheetSender_rb.html +1 -1
  83. data/doc/lib/taskjuggler/ShiftAssignments_rb.html +1 -1
  84. data/doc/lib/taskjuggler/ShiftScenario_rb.html +1 -1
  85. data/doc/lib/taskjuggler/Shift_rb.html +1 -1
  86. data/doc/lib/taskjuggler/SimpleQueryExpander_rb.html +1 -1
  87. data/doc/lib/taskjuggler/StatusSheetReceiver_rb.html +1 -1
  88. data/doc/lib/taskjuggler/StatusSheetSender_rb.html +1 -1
  89. data/doc/lib/taskjuggler/StdIoWrapper_rb.html +1 -1
  90. data/doc/lib/taskjuggler/SyntaxReference_rb.html +1 -1
  91. data/doc/lib/taskjuggler/TableColumnDefinition_rb.html +1 -1
  92. data/doc/lib/taskjuggler/TaskDependency_rb.html +1 -1
  93. data/doc/lib/taskjuggler/TaskJuggler_rb.html +1 -1
  94. data/doc/lib/taskjuggler/TaskScenario_rb.html +1 -1
  95. data/doc/lib/taskjuggler/Task_rb.html +1 -1
  96. data/doc/lib/taskjuggler/TernarySearchTree_rb.html +1 -1
  97. data/doc/lib/taskjuggler/TextFormatter_rb.html +1 -1
  98. data/doc/lib/taskjuggler/TextParser/MacroTable_rb.html +1 -1
  99. data/doc/lib/taskjuggler/TextParser/Pattern_rb.html +1 -1
  100. data/doc/lib/taskjuggler/TextParser/Rule_rb.html +1 -1
  101. data/doc/lib/taskjuggler/TextParser/Scanner_rb.html +1 -1
  102. data/doc/lib/taskjuggler/TextParser/SourceFileInfo_rb.html +1 -1
  103. data/doc/lib/taskjuggler/TextParser/StackElement_rb.html +1 -1
  104. data/doc/lib/taskjuggler/TextParser/State_rb.html +1 -1
  105. data/doc/lib/taskjuggler/TextParser/TokenDoc_rb.html +1 -1
  106. data/doc/lib/taskjuggler/TextParser_rb.html +1 -1
  107. data/doc/lib/taskjuggler/TimeSheetReceiver_rb.html +1 -1
  108. data/doc/lib/taskjuggler/TimeSheetSender_rb.html +1 -1
  109. data/doc/lib/taskjuggler/TimeSheetSummary_rb.html +1 -1
  110. data/doc/lib/taskjuggler/TimeSheets_rb.html +1 -1
  111. data/doc/lib/taskjuggler/Tj3AppBase_rb.html +1 -1
  112. data/doc/lib/taskjuggler/Tj3Config_rb.html +1 -1
  113. data/doc/lib/taskjuggler/Tj3SheetAppBase_rb.html +1 -1
  114. data/doc/lib/taskjuggler/TjException_rb.html +1 -1
  115. data/doc/lib/taskjuggler/TjTime_rb.html +1 -1
  116. data/doc/lib/taskjuggler/TjpExample_rb.html +1 -1
  117. data/doc/lib/taskjuggler/TjpSyntaxRules_rb.html +1 -1
  118. data/doc/lib/taskjuggler/URLParameter_rb.html +1 -1
  119. data/doc/lib/taskjuggler/UTF8String_rb.html +1 -1
  120. data/doc/lib/taskjuggler/UserManual_rb.html +1 -1
  121. data/doc/lib/taskjuggler/VimSyntax_rb.html +1 -1
  122. data/doc/lib/taskjuggler/WorkingHours_rb.html +1 -1
  123. data/doc/lib/taskjuggler/XMLDocument_rb.html +1 -1
  124. data/doc/lib/taskjuggler/XMLElement_rb.html +1 -1
  125. data/doc/lib/taskjuggler/apps/Tj3Client_rb.html +1 -1
  126. data/doc/lib/taskjuggler/apps/Tj3Daemon_rb.html +1 -1
  127. data/doc/lib/taskjuggler/apps/Tj3Man_rb.html +1 -1
  128. data/doc/lib/taskjuggler/apps/Tj3SsReceiver_rb.html +1 -1
  129. data/doc/lib/taskjuggler/apps/Tj3SsSender_rb.html +1 -1
  130. data/doc/lib/taskjuggler/apps/Tj3TsReceiver_rb.html +1 -1
  131. data/doc/lib/taskjuggler/apps/Tj3TsSender_rb.html +1 -1
  132. data/doc/lib/taskjuggler/apps/Tj3TsSummary_rb.html +1 -1
  133. data/doc/lib/taskjuggler/apps/Tj3_rb.html +1 -1
  134. data/doc/lib/taskjuggler/daemon/Daemon_rb.html +1 -1
  135. data/doc/lib/taskjuggler/daemon/ProcessIntercom_rb.html +1 -1
  136. data/doc/lib/taskjuggler/daemon/ProjectBroker_rb.html +1 -1
  137. data/doc/lib/taskjuggler/daemon/ProjectServer_rb.html +1 -1
  138. data/doc/lib/taskjuggler/daemon/ReportServer_rb.html +1 -1
  139. data/doc/lib/taskjuggler/daemon/ReportServlet_rb.html +1 -1
  140. data/doc/lib/taskjuggler/daemon/WebServer_rb.html +1 -1
  141. data/doc/lib/taskjuggler/daemon/WelcomePage_rb.html +1 -1
  142. data/doc/lib/taskjuggler/deep_copy_rb.html +1 -1
  143. data/doc/lib/taskjuggler/reports/CSVFile_rb.html +1 -1
  144. data/doc/lib/taskjuggler/reports/CollisionDetector_rb.html +1 -1
  145. data/doc/lib/taskjuggler/reports/ColumnTable_rb.html +1 -1
  146. data/doc/lib/taskjuggler/reports/GanttChart_rb.html +1 -1
  147. data/doc/lib/taskjuggler/reports/GanttContainer_rb.html +1 -1
  148. data/doc/lib/taskjuggler/reports/GanttHeaderScaleItem_rb.html +1 -1
  149. data/doc/lib/taskjuggler/reports/GanttHeader_rb.html +1 -1
  150. data/doc/lib/taskjuggler/reports/GanttLine_rb.html +1 -1
  151. data/doc/lib/taskjuggler/reports/GanttLoadStack_rb.html +1 -1
  152. data/doc/lib/taskjuggler/reports/GanttMilestone_rb.html +1 -1
  153. data/doc/lib/taskjuggler/reports/GanttRouter_rb.html +1 -1
  154. data/doc/lib/taskjuggler/reports/GanttTaskBar_rb.html +1 -1
  155. data/doc/lib/taskjuggler/reports/HTMLGraphics_rb.html +1 -1
  156. data/doc/lib/taskjuggler/reports/Navigator_rb.html +1 -1
  157. data/doc/lib/taskjuggler/reports/NikuReport_rb.html +1 -1
  158. data/doc/lib/taskjuggler/reports/ReportBase_rb.html +1 -1
  159. data/doc/lib/taskjuggler/reports/ReportContext_rb.html +1 -1
  160. data/doc/lib/taskjuggler/reports/ReportTableCell_rb.html +1 -1
  161. data/doc/lib/taskjuggler/reports/ReportTableColumn_rb.html +1 -1
  162. data/doc/lib/taskjuggler/reports/ReportTableLegend_rb.html +1 -1
  163. data/doc/lib/taskjuggler/reports/ReportTableLine_rb.html +1 -1
  164. data/doc/lib/taskjuggler/reports/ReportTable_rb.html +1 -1
  165. data/doc/lib/taskjuggler/reports/Report_rb.html +1 -1
  166. data/doc/lib/taskjuggler/reports/ResourceListRE_rb.html +1 -1
  167. data/doc/lib/taskjuggler/reports/StatusSheetReport_rb.html +1 -1
  168. data/doc/lib/taskjuggler/reports/TableReport_rb.html +1 -1
  169. data/doc/lib/taskjuggler/reports/TaskListRE_rb.html +1 -1
  170. data/doc/lib/taskjuggler/reports/TextReport_rb.html +1 -1
  171. data/doc/lib/taskjuggler/reports/TimeSheetReport_rb.html +1 -1
  172. data/doc/lib/taskjuggler/reports/TjpExportRE_rb.html +1 -1
  173. data/doc/lib/tj3_rb.html +1 -1
  174. data/doc/lib/tj3client_rb.html +1 -1
  175. data/doc/lib/tj3d_rb.html +1 -1
  176. data/doc/lib/tj3man_rb.html +1 -1
  177. data/doc/lib/tj3ss_receiver_rb.html +1 -1
  178. data/doc/lib/tj3ss_sender_rb.html +1 -1
  179. data/doc/lib/tj3ts_receiver_rb.html +1 -1
  180. data/doc/lib/tj3ts_sender_rb.html +1 -1
  181. data/doc/lib/tj3ts_summary_rb.html +1 -1
  182. data/lib/exchangebug.rb +42 -0
  183. data/lib/ruby-signal-bug.rb +55 -0
  184. data/lib/taskjuggler/HTMLDocument.rb +6 -3
  185. data/lib/taskjuggler/KeywordDocumentation.rb +1 -1
  186. data/lib/taskjuggler/RichText/Document.rb +1 -1
  187. data/lib/taskjuggler/RichText/Snip.rb +1 -1
  188. data/lib/taskjuggler/SheetHandlerBase.rb +1 -1
  189. data/lib/taskjuggler/SyntaxReference.rb +2 -2
  190. data/lib/taskjuggler/Tj3Config.rb +1 -1
  191. data/lib/taskjuggler/UserManual.rb +1 -1
  192. data/lib/taskjuggler/daemon/ReportServlet.rb +1 -1
  193. data/lib/taskjuggler/daemon/WelcomePage.rb +1 -1
  194. data/lib/taskjuggler/reports/Report.rb +4 -3
  195. data/tasks/changelog.rake +2 -2
  196. data/test/TestSuite/CSV-Reports/alert.tjp +9 -0
  197. data/test/TestSuite/CSV-Reports/refs/alert.csv +15 -0
  198. data/test/TestSuite/Export-Reports/refs/DST.tjp +60 -0
  199. data/test/TestSuite/Export-Reports/refs/ReleasePlan.tjp +80 -0
  200. data/test/TestSuite/HTML-Reports/Alerts.html +412 -160
  201. data/test/TestSuite/HTML-Reports/TimeSheet.html +79 -0
  202. data/test/TestSuite/HTML-Reports/css/tjmanual.css +20 -0
  203. data/test/TestSuite/HTML-Reports/css/tjreport.css +7 -6
  204. data/test/TestSuite/HTML-Reports/reference.html +51 -0
  205. data/test/TestSuite/ReportGenerator/Correct/Alerts-1.csv +412 -0
  206. data/test/TestSuite/ReportGenerator/Correct/Alerts-1.html +680 -0
  207. data/test/TestSuite/ReportGenerator/Correct/DependencyList.csv +4 -0
  208. data/test/TestSuite/ReportGenerator/Correct/DependencyList.tjp +25 -0
  209. data/test/TestSuite/ReportGenerator/Correct/Journal-1.csv +8 -0
  210. data/test/TestSuite/ReportGenerator/Correct/Journal-2.csv +8 -0
  211. data/test/TestSuite/ReportGenerator/Correct/Journal-3.html +28 -0
  212. data/test/TestSuite/ReportGenerator/Correct/LogicalFunctions2.csv +3 -0
  213. data/test/TestSuite/ReportGenerator/Correct/css/tjmanual.css +86 -0
  214. data/test/TestSuite/ReportGenerator/Correct/css/tjreport.css +413 -0
  215. data/test/TestSuite/ReportGenerator/Correct/icons/details.png +0 -0
  216. data/test/TestSuite/ReportGenerator/Correct/icons/flag-green.png +0 -0
  217. data/test/TestSuite/ReportGenerator/Correct/icons/flag-red.png +0 -0
  218. data/test/TestSuite/ReportGenerator/Correct/icons/flag-yellow.png +0 -0
  219. data/test/TestSuite/ReportGenerator/Correct/icons/resource.png +0 -0
  220. data/test/TestSuite/ReportGenerator/Correct/icons/resourcegroup.png +0 -0
  221. data/test/TestSuite/ReportGenerator/Correct/icons/task.png +0 -0
  222. data/test/TestSuite/ReportGenerator/Correct/icons/taskgroup.png +0 -0
  223. data/test/TestSuite/ReportGenerator/Correct/icons/trend-down.png +0 -0
  224. data/test/TestSuite/ReportGenerator/Correct/icons/trend-flat.png +0 -0
  225. data/test/TestSuite/ReportGenerator/Correct/icons/trend-up.png +0 -0
  226. data/test/TestSuite/ReportGenerator/Correct/opennodes-1.csv +2 -0
  227. data/test/TestSuite/ReportGenerator/Correct/opennodes.csv +2 -0
  228. data/test/TestSuite/ReportGenerator/Correct/opennodes.tjp +26 -0
  229. data/test/TestSuite/ReportGenerator/Correct/refs/opennodes-1.csv +2 -0
  230. data/test/TestSuite/{HTML-Reports/scripts → ReportGenerator/Correct}/scripts/wz_tooltip.js +20 -20
  231. data/test/TestSuite/Scheduler/' +23 -0
  232. data/test/TestSuite/Scheduler/Correct/css/tjmanual.css +86 -0
  233. data/test/TestSuite/Scheduler/Correct/css/tjreport.css +413 -0
  234. data/test/TestSuite/Scheduler/Correct/icons/details.png +0 -0
  235. data/test/TestSuite/Scheduler/Correct/icons/flag-green.png +0 -0
  236. data/test/TestSuite/Scheduler/Correct/icons/flag-red.png +0 -0
  237. data/test/TestSuite/Scheduler/Correct/icons/flag-yellow.png +0 -0
  238. data/test/TestSuite/Scheduler/Correct/icons/resource.png +0 -0
  239. data/test/TestSuite/Scheduler/Correct/icons/resourcegroup.png +0 -0
  240. data/test/TestSuite/Scheduler/Correct/icons/task.png +0 -0
  241. data/test/TestSuite/Scheduler/Correct/icons/taskgroup.png +0 -0
  242. data/test/TestSuite/Scheduler/Correct/icons/trend-down.png +0 -0
  243. data/test/TestSuite/Scheduler/Correct/icons/trend-flat.png +0 -0
  244. data/test/TestSuite/Scheduler/Correct/icons/trend-up.png +0 -0
  245. data/test/TestSuite/Scheduler/Correct/scripts/wz_tooltip.js +1301 -0
  246. data/test/TestSuite/StatusSheetTemplates/project.tji +35 -0
  247. data/test/TestSuite/StatusSheetTemplates/project.tjp +56 -0
  248. data/test/TestSuite/StatusSheets/TimeSheets/2002-03-01/resource1_2002-03-01.tji +0 -0
  249. data/test/TestSuite/Syntax/Correct/DST.tjp +11 -0
  250. data/test/TestSuite/Syntax/Correct/ReleasePlan.tjp +32 -0
  251. data/test/TestSuite/TimeSheets/receiver.log.mod +1056 -0
  252. data/test/TestSuite/TimeSheets/uu.txt +29 -0
  253. metadata +980 -941
  254. data/benchmarks/UTF-8-Strings.rb +0 -58
  255. data/benchmarks/profile.clt +0 -36082
  256. data/benchmarks/profile.html +0 -58182
  257. data/doc/TaskJuggler/HTMLElements.html +0 -599
  258. data/test/TestSuite/Export-Reports/refs/CompletedWork.tji.tjp +0 -40
  259. data/test/TestSuite/HTML-Reports/CellText.html +0 -758
  260. data/test/TestSuite/HTML-Reports/ColumnPeriods.html +0 -156
  261. data/test/TestSuite/HTML-Reports/IsOngoing.html +0 -172
  262. data/test/TestSuite/HTML-Reports/LogicalFunctions.html +0 -245
  263. data/test/TestSuite/HTML-Reports/Query.html +0 -31
  264. data/test/TestSuite/HTML-Reports/depArrows.html +0 -851
  265. data/test/TestSuite/HTML-Reports/profile.html +0 -37581
  266. data/test/TestSuite/StatusSheets/dev2.tji +0 -22
  267. data/test/TestSuite/Syntax/Correct/CompletedWork.tji.tjp +0 -38
  268. data/test/TestSuite/TimeSheets/resrep.tji +0 -7
  269. data/test/TestSuite/TimeSheets/ts.tji +0 -351
  270. data/test/TestSuite/TimeSheets/tsdef.tji +0 -2
@@ -610,6 +610,27 @@ creation.
610
610
 
611
611
  <!-- Attributes -->
612
612
 
613
+ <div id="attribute-method-details" class="method-section section">
614
+ <h3 class="section-header">Attributes</h3>
615
+
616
+
617
+ <div id="html-attribute-method" class="method-detail">
618
+ <a name="html"></a>
619
+
620
+ <div class="method-heading attribute-method-heading">
621
+ <span class="method-name">html</span><span
622
+ class="attribute-access-type">[R]</span>
623
+ </div>
624
+
625
+ <div class="method-description">
626
+
627
+
628
+
629
+ </div>
630
+ </div>
631
+
632
+ </div>
633
+
613
634
 
614
635
  <!-- Methods -->
615
636
 
@@ -642,31 +663,32 @@ supported for <em>docType</em>.
642
663
  <div class="method-source-code"
643
664
  id="new-source">
644
665
  <pre>
645
- <span class="ruby-comment cmt"># File lib/taskjuggler/HTMLDocument.rb, line 29</span>
646
- 29: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">docType</span> = <span class="ruby-value">:strict</span>, &amp;<span class="ruby-identifier">block</span>)
647
- 30: <span class="ruby-keyword kw">super</span>(&amp;<span class="ruby-identifier">block</span>)
648
- 31:
649
- 32: <span class="ruby-ivar">@elements</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLBlob</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;'</span>)
650
- 33: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">docType</span>
651
- 34: <span class="ruby-keyword kw">when</span> <span class="ruby-value">:strict</span>
652
- 35: <span class="ruby-identifier">dtdRef</span> = <span class="ruby-value str">'Strict'</span>
653
- 36: <span class="ruby-identifier">url</span> = <span class="ruby-value str">'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'</span>
654
- 37: <span class="ruby-keyword kw">when</span> <span class="ruby-value">:transitional</span>
655
- 38: <span class="ruby-identifier">dtdRef</span> = <span class="ruby-value str">'Transitional'</span>
656
- 39: <span class="ruby-identifier">url</span> = <span class="ruby-value str">'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'</span>
657
- 40: <span class="ruby-keyword kw">when</span> <span class="ruby-value">:frameset</span>
658
- 41: <span class="ruby-identifier">dtdRef</span> = <span class="ruby-value str">'Frameset'</span>
659
- 42: <span class="ruby-identifier">url</span> = <span class="ruby-value str">'http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd'</span>
660
- 43: <span class="ruby-keyword kw">else</span>
661
- 44: <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;Unsupported docType&quot;</span>
662
- 45: <span class="ruby-keyword kw">end</span>
663
- 46: <span class="ruby-ivar">@elements</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLBlob</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 '</span> <span class="ruby-operator">+</span>
664
- 47: <span class="ruby-node">&quot;#{dtdRef}//EN\&quot; \&quot;#{url}\&quot;&gt;&quot;</span>)
665
- 48: <span class="ruby-ivar">@elements</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLComment</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'This file has been generated by '</span> <span class="ruby-operator">+</span>
666
- 49: <span class="ruby-node">&quot;#{AppConfig.appName} v#{AppConfig.version}&quot;</span>)
667
- 50: <span class="ruby-ivar">@elements</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">HTML</span>.<span class="ruby-identifier">new</span>({ <span class="ruby-value str">'xml:lang'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'en'</span>, <span class="ruby-value str">'lang'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'en'</span>,
668
- 51: <span class="ruby-value str">'xmlns'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'http://www.w3.org/1999/xhtml'</span> })
669
- 52: <span class="ruby-keyword kw">end</span></pre>
666
+ <span class="ruby-comment cmt"># File lib/taskjuggler/HTMLDocument.rb, line 31</span>
667
+ 31: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">docType</span> = <span class="ruby-value">:strict</span>, &amp;<span class="ruby-identifier">block</span>)
668
+ 32: <span class="ruby-keyword kw">super</span>(&amp;<span class="ruby-identifier">block</span>)
669
+ 33:
670
+ 34: <span class="ruby-ivar">@elements</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLBlob</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;'</span>)
671
+ 35: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">docType</span>
672
+ 36: <span class="ruby-keyword kw">when</span> <span class="ruby-value">:strict</span>
673
+ 37: <span class="ruby-identifier">dtdRef</span> = <span class="ruby-value str">'Strict'</span>
674
+ 38: <span class="ruby-identifier">url</span> = <span class="ruby-value str">'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'</span>
675
+ 39: <span class="ruby-keyword kw">when</span> <span class="ruby-value">:transitional</span>
676
+ 40: <span class="ruby-identifier">dtdRef</span> = <span class="ruby-value str">'Transitional'</span>
677
+ 41: <span class="ruby-identifier">url</span> = <span class="ruby-value str">'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'</span>
678
+ 42: <span class="ruby-keyword kw">when</span> <span class="ruby-value">:frameset</span>
679
+ 43: <span class="ruby-identifier">dtdRef</span> = <span class="ruby-value str">'Frameset'</span>
680
+ 44: <span class="ruby-identifier">url</span> = <span class="ruby-value str">'http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd'</span>
681
+ 45: <span class="ruby-keyword kw">else</span>
682
+ 46: <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;Unsupported docType&quot;</span>
683
+ 47: <span class="ruby-keyword kw">end</span>
684
+ 48: <span class="ruby-ivar">@elements</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLBlob</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 '</span> <span class="ruby-operator">+</span>
685
+ 49: <span class="ruby-node">&quot;#{dtdRef}//EN\&quot; \&quot;#{url}\&quot;&gt;&quot;</span>)
686
+ 50: <span class="ruby-ivar">@elements</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLComment</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'This file has been generated by '</span> <span class="ruby-operator">+</span>
687
+ 51: <span class="ruby-node">&quot;#{AppConfig.appName} v#{AppConfig.version}&quot;</span>)
688
+ 52: <span class="ruby-ivar">@elements</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-ivar">@html</span> =
689
+ 53: <span class="ruby-constant">HTML</span>.<span class="ruby-identifier">new</span>({ <span class="ruby-value str">'xml:lang'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'en'</span>, <span class="ruby-value str">'lang'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'en'</span>,
690
+ 54: <span class="ruby-value str">'xmlns'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'http://www.w3.org/1999/xhtml'</span> }))
691
+ 55: <span class="ruby-keyword kw">end</span></pre>
670
692
  </div>
671
693
 
672
694
  </div>
@@ -705,22 +727,22 @@ Generate the &#8216;head&#8217; section of an HTML page.
705
727
  <div class="method-source-code"
706
728
  id="generate-ead-source">
707
729
  <pre>
708
- <span class="ruby-comment cmt"># File lib/taskjuggler/HTMLDocument.rb, line 55</span>
709
- 55: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateHead</span>(<span class="ruby-identifier">title</span>, <span class="ruby-identifier">metaTags</span> = {})
710
- 56: <span class="ruby-keyword kw">self</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">HEAD</span>.<span class="ruby-identifier">new</span> {
711
- 57: <span class="ruby-identifier">e</span> = [
712
- 58: <span class="ruby-constant">TITLE</span>.<span class="ruby-identifier">new</span> { <span class="ruby-identifier">title</span> },
713
- 59: <span class="ruby-constant">META</span>.<span class="ruby-identifier">new</span>({ <span class="ruby-value str">'http-equiv'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'Content-Type'</span>,
714
- 60: <span class="ruby-value str">'content'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'text/html; charset=utf-8'</span> }),
715
- 61: ]
716
- 62: <span class="ruby-comment cmt"># Include optional meta tags.</span>
717
- 63: <span class="ruby-identifier">metaTags</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">name</span>, <span class="ruby-identifier">content</span><span class="ruby-operator">|</span>
718
- 64: <span class="ruby-identifier">e</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">META</span>.<span class="ruby-identifier">new</span>({ <span class="ruby-value str">'name'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">name</span>, <span class="ruby-value str">'content'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">content</span> })
719
- 65: <span class="ruby-keyword kw">end</span>
720
- 66:
721
- 67: <span class="ruby-identifier">e</span>
722
- 68: }
723
- 69: <span class="ruby-keyword kw">end</span></pre>
730
+ <span class="ruby-comment cmt"># File lib/taskjuggler/HTMLDocument.rb, line 58</span>
731
+ 58: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateHead</span>(<span class="ruby-identifier">title</span>, <span class="ruby-identifier">metaTags</span> = {})
732
+ 59: <span class="ruby-ivar">@html</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">HEAD</span>.<span class="ruby-identifier">new</span> {
733
+ 60: <span class="ruby-identifier">e</span> = [
734
+ 61: <span class="ruby-constant">TITLE</span>.<span class="ruby-identifier">new</span> { <span class="ruby-identifier">title</span> },
735
+ 62: <span class="ruby-constant">META</span>.<span class="ruby-identifier">new</span>({ <span class="ruby-value str">'http-equiv'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'Content-Type'</span>,
736
+ 63: <span class="ruby-value str">'content'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'text/html; charset=utf-8'</span> }),
737
+ 64: ]
738
+ 65: <span class="ruby-comment cmt"># Include optional meta tags.</span>
739
+ 66: <span class="ruby-identifier">metaTags</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">name</span>, <span class="ruby-identifier">content</span><span class="ruby-operator">|</span>
740
+ 67: <span class="ruby-identifier">e</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">META</span>.<span class="ruby-identifier">new</span>({ <span class="ruby-value str">'name'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">name</span>, <span class="ruby-value str">'content'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">content</span> })
741
+ 68: <span class="ruby-keyword kw">end</span>
742
+ 69:
743
+ 70: <span class="ruby-identifier">e</span>
744
+ 71: }
745
+ 72: <span class="ruby-keyword kw">end</span></pre>
724
746
  </div>
725
747
 
726
748
  </div>
@@ -1101,7 +1101,7 @@ documentation in an XML formatted form.
1101
1101
  314: <span class="ruby-value str">'taskjuggler, project, management'</span> })
1102
1102
  315: <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>
1103
1103
  316:
1104
- 317: <span class="ruby-identifier">html</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">BODY</span>.<span class="ruby-identifier">new</span> <span class="ruby-keyword kw">do</span>
1104
+ 317: <span class="ruby-identifier">html</span>.<span class="ruby-identifier">html</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">BODY</span>.<span class="ruby-identifier">new</span> <span class="ruby-keyword kw">do</span>
1105
1105
  318: [
1106
1106
  319: <span class="ruby-ivar">@manual</span>.<span class="ruby-identifier">generateHTMLHeader</span>,
1107
1107
  320: <span class="ruby-identifier">generateHTMLNavigationBar</span>,
@@ -1065,15 +1065,15 @@ Convenience function to access a report attribute
1065
1065
  <div class="method-source-code"
1066
1066
  id="copy-uxiliary-iles-source">
1067
1067
  <pre>
1068
- <span class="ruby-comment cmt"># File lib/taskjuggler/reports/Report.rb, line 295</span>
1069
- 295: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">copyAuxiliaryFiles</span>
1070
- 296: <span class="ruby-comment cmt"># Don't copy files if output is stdout.</span>
1071
- 297: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@name</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'.'</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'interactive'</span>)
1072
- 298:
1073
- 299: <span class="ruby-identifier">copyDirectory</span>(<span class="ruby-value str">'css'</span>)
1074
- 300: <span class="ruby-identifier">copyDirectory</span>(<span class="ruby-value str">'icons'</span>)
1075
- 301: <span class="ruby-identifier">copyDirectory</span>(<span class="ruby-value str">'scripts'</span>)
1076
- 302: <span class="ruby-keyword kw">end</span></pre>
1068
+ <span class="ruby-comment cmt"># File lib/taskjuggler/reports/Report.rb, line 296</span>
1069
+ 296: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">copyAuxiliaryFiles</span>
1070
+ 297: <span class="ruby-comment cmt"># Don't copy files if output is stdout.</span>
1071
+ 298: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@name</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'.'</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'interactive'</span>)
1072
+ 299:
1073
+ 300: <span class="ruby-identifier">copyDirectory</span>(<span class="ruby-value str">'css'</span>)
1074
+ 301: <span class="ruby-identifier">copyDirectory</span>(<span class="ruby-value str">'icons'</span>)
1075
+ 302: <span class="ruby-identifier">copyDirectory</span>(<span class="ruby-value str">'scripts'</span>)
1076
+ 303: <span class="ruby-keyword kw">end</span></pre>
1077
1077
  </div>
1078
1078
 
1079
1079
  </div>
@@ -1104,23 +1104,23 @@ Convenience function to access a report attribute
1104
1104
  <div class="method-source-code"
1105
1105
  id="copy-irectory-source">
1106
1106
  <pre>
1107
- <span class="ruby-comment cmt"># File lib/taskjuggler/reports/Report.rb, line 304</span>
1108
- 304: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">copyDirectory</span>(<span class="ruby-identifier">dirName</span>)
1109
- 305: <span class="ruby-comment cmt"># The directory needs to be in the same directory as the HTML report.</span>
1110
- 306: <span class="ruby-identifier">auxDstDir</span> = (<span class="ruby-constant">File</span>.<span class="ruby-identifier">dirname</span>((<span class="ruby-ivar">@name</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">'/'</span> <span class="ruby-operator">?</span> <span class="ruby-value str">''</span> <span class="ruby-operator">:</span> <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">outputDir</span>) <span class="ruby-operator">+</span>
1111
- 307: <span class="ruby-ivar">@name</span>) <span class="ruby-operator">+</span> <span class="ruby-value str">'/'</span>).<span class="ruby-identifier">untaint</span>
1112
- 308: <span class="ruby-comment cmt"># Find the data directory that came with the TaskJuggler installation.</span>
1113
- 309: <span class="ruby-identifier">auxSrcDir</span> = <span class="ruby-constant">AppConfig</span>.<span class="ruby-identifier">dataDirs</span>(<span class="ruby-node">&quot;data/#{dirName}&quot;</span>)[<span class="ruby-value">0</span>].<span class="ruby-identifier">untaint</span>
1114
- 310: <span class="ruby-comment cmt"># Raise an error if we haven't found the data directory</span>
1115
- 311: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">auxSrcDir</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-operator">!</span><span class="ruby-constant">File</span>.<span class="ruby-identifier">exists?</span>(<span class="ruby-identifier">auxSrcDir</span>)
1116
- 312: <span class="ruby-identifier">dataDirError</span>(<span class="ruby-identifier">dirName</span>, <span class="ruby-constant">AppConfig</span>.<span class="ruby-identifier">dataSearchDirs</span>(<span class="ruby-node">&quot;data/#{dirName}&quot;</span>))
1117
- 313: <span class="ruby-keyword kw">end</span>
1118
- 314: <span class="ruby-comment cmt"># Don't copy directory if all files are up-to-date.</span>
1119
- 315: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">directoryUpToDate?</span>(<span class="ruby-identifier">auxSrcDir</span>, <span class="ruby-identifier">auxDstDir</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">dirName</span>)
1120
- 316:
1121
- 317: <span class="ruby-comment cmt"># Recursively copy the directory and all content.</span>
1122
- 318: <span class="ruby-constant">FileUtils</span>.<span class="ruby-identifier">cp_r</span>(<span class="ruby-identifier">auxSrcDir</span>, <span class="ruby-identifier">auxDstDir</span>)
1123
- 319: <span class="ruby-keyword kw">end</span></pre>
1107
+ <span class="ruby-comment cmt"># File lib/taskjuggler/reports/Report.rb, line 305</span>
1108
+ 305: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">copyDirectory</span>(<span class="ruby-identifier">dirName</span>)
1109
+ 306: <span class="ruby-comment cmt"># The directory needs to be in the same directory as the HTML report.</span>
1110
+ 307: <span class="ruby-identifier">auxDstDir</span> = (<span class="ruby-constant">File</span>.<span class="ruby-identifier">dirname</span>((<span class="ruby-ivar">@name</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">'/'</span> <span class="ruby-operator">?</span> <span class="ruby-value str">''</span> <span class="ruby-operator">:</span> <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">outputDir</span>) <span class="ruby-operator">+</span>
1111
+ 308: <span class="ruby-ivar">@name</span>) <span class="ruby-operator">+</span> <span class="ruby-value str">'/'</span>).<span class="ruby-identifier">untaint</span>
1112
+ 309: <span class="ruby-comment cmt"># Find the data directory that came with the TaskJuggler installation.</span>
1113
+ 310: <span class="ruby-identifier">auxSrcDir</span> = <span class="ruby-constant">AppConfig</span>.<span class="ruby-identifier">dataDirs</span>(<span class="ruby-node">&quot;data/#{dirName}&quot;</span>)[<span class="ruby-value">0</span>].<span class="ruby-identifier">untaint</span>
1114
+ 311: <span class="ruby-comment cmt"># Raise an error if we haven't found the data directory</span>
1115
+ 312: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">auxSrcDir</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-operator">!</span><span class="ruby-constant">File</span>.<span class="ruby-identifier">exists?</span>(<span class="ruby-identifier">auxSrcDir</span>)
1116
+ 313: <span class="ruby-identifier">dataDirError</span>(<span class="ruby-identifier">dirName</span>, <span class="ruby-constant">AppConfig</span>.<span class="ruby-identifier">dataSearchDirs</span>(<span class="ruby-node">&quot;data/#{dirName}&quot;</span>))
1117
+ 314: <span class="ruby-keyword kw">end</span>
1118
+ 315: <span class="ruby-comment cmt"># Don't copy directory if all files are up-to-date.</span>
1119
+ 316: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">directoryUpToDate?</span>(<span class="ruby-identifier">auxSrcDir</span>, <span class="ruby-identifier">auxDstDir</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">dirName</span>)
1120
+ 317:
1121
+ 318: <span class="ruby-comment cmt"># Recursively copy the directory and all content.</span>
1122
+ 319: <span class="ruby-constant">FileUtils</span>.<span class="ruby-identifier">cp_r</span>(<span class="ruby-identifier">auxSrcDir</span>, <span class="ruby-identifier">auxDstDir</span>)
1123
+ 320: <span class="ruby-keyword kw">end</span></pre>
1124
1124
  </div>
1125
1125
 
1126
1126
  </div>
@@ -1151,11 +1151,11 @@ Convenience function to access a report attribute
1151
1151
  <div class="method-source-code"
1152
1152
  id="data-ir-rror-source">
1153
1153
  <pre>
1154
- <span class="ruby-comment cmt"># File lib/taskjuggler/reports/Report.rb, line 335</span>
1155
- 335: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">dataDirError</span>(<span class="ruby-identifier">dirName</span>, <span class="ruby-identifier">dirs</span>)
1156
- 336: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'data_dir_error'</span>, <span class="ruby-value str">Cannot find the #{dirName} directory. This is usually the result of animproper TaskJuggler installation. If you know the directory, you can use theTASKJUGGLER_DATA_PATH environment variable to specify the location. Thevariable should be set to the path without the /data at the end. Multipledirectories must be separated by colons. The following directories have beentried:#{dirs.join(&quot;\n&quot;)}</span>
1157
- 337: )
1158
- 338: <span class="ruby-keyword kw">end</span></pre>
1154
+ <span class="ruby-comment cmt"># File lib/taskjuggler/reports/Report.rb, line 336</span>
1155
+ 336: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">dataDirError</span>(<span class="ruby-identifier">dirName</span>, <span class="ruby-identifier">dirs</span>)
1156
+ 337: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'data_dir_error'</span>, <span class="ruby-value str">Cannot find the #{dirName} directory. This is usually the result of animproper TaskJuggler installation. If you know the directory, you can use theTASKJUGGLER_DATA_PATH environment variable to specify the location. Thevariable should be set to the path without the /data at the end. Multipledirectories must be separated by colons. The following directories have beentried:#{dirs.join(&quot;\n&quot;)}</span>
1157
+ 338: )
1158
+ 339: <span class="ruby-keyword kw">end</span></pre>
1159
1159
  </div>
1160
1160
 
1161
1161
  </div>
@@ -1186,20 +1186,20 @@ Convenience function to access a report attribute
1186
1186
  <div class="method-source-code"
1187
1187
  id="directory-p-o-ate--source">
1188
1188
  <pre>
1189
- <span class="ruby-comment cmt"># File lib/taskjuggler/reports/Report.rb, line 321</span>
1190
- 321: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">directoryUpToDate?</span>(<span class="ruby-identifier">auxSrcDir</span>, <span class="ruby-identifier">auxDstDir</span>)
1191
- 322: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">exists?</span>(<span class="ruby-identifier">auxDstDir</span>.<span class="ruby-identifier">untaint</span>)
1192
- 323:
1193
- 324: <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">entries</span>(<span class="ruby-identifier">auxSrcDir</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">file</span><span class="ruby-operator">|</span>
1194
- 325: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">file</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'.'</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">file</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'..'</span>
1195
- 326:
1196
- 327: <span class="ruby-identifier">srcFile</span> = (<span class="ruby-identifier">auxSrcDir</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'/'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">file</span>).<span class="ruby-identifier">untaint</span>
1197
- 328: <span class="ruby-identifier">dstFile</span> = (<span class="ruby-identifier">auxDstDir</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'/'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">file</span>).<span class="ruby-identifier">untaint</span>
1198
- 329: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-constant">File</span>.<span class="ruby-identifier">exist?</span>(<span class="ruby-identifier">dstFile</span>) <span class="ruby-operator">||</span>
1199
- 330: <span class="ruby-constant">File</span>.<span class="ruby-identifier">mtime</span>(<span class="ruby-identifier">srcFile</span>) <span class="ruby-operator">&gt;</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">mtime</span>(<span class="ruby-identifier">dstFile</span>)
1200
- 331: <span class="ruby-keyword kw">end</span>
1201
- 332: <span class="ruby-keyword kw">true</span>
1202
- 333: <span class="ruby-keyword kw">end</span></pre>
1189
+ <span class="ruby-comment cmt"># File lib/taskjuggler/reports/Report.rb, line 322</span>
1190
+ 322: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">directoryUpToDate?</span>(<span class="ruby-identifier">auxSrcDir</span>, <span class="ruby-identifier">auxDstDir</span>)
1191
+ 323: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">exists?</span>(<span class="ruby-identifier">auxDstDir</span>.<span class="ruby-identifier">untaint</span>)
1192
+ 324:
1193
+ 325: <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">entries</span>(<span class="ruby-identifier">auxSrcDir</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">file</span><span class="ruby-operator">|</span>
1194
+ 326: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">file</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'.'</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">file</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'..'</span>
1195
+ 327:
1196
+ 328: <span class="ruby-identifier">srcFile</span> = (<span class="ruby-identifier">auxSrcDir</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'/'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">file</span>).<span class="ruby-identifier">untaint</span>
1197
+ 329: <span class="ruby-identifier">dstFile</span> = (<span class="ruby-identifier">auxDstDir</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'/'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">file</span>).<span class="ruby-identifier">untaint</span>
1198
+ 330: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-constant">File</span>.<span class="ruby-identifier">exist?</span>(<span class="ruby-identifier">dstFile</span>) <span class="ruby-operator">||</span>
1199
+ 331: <span class="ruby-constant">File</span>.<span class="ruby-identifier">mtime</span>(<span class="ruby-identifier">srcFile</span>) <span class="ruby-operator">&gt;</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">mtime</span>(<span class="ruby-identifier">dstFile</span>)
1200
+ 332: <span class="ruby-keyword kw">end</span>
1201
+ 333: <span class="ruby-keyword kw">true</span>
1202
+ 334: <span class="ruby-keyword kw">end</span></pre>
1203
1203
  </div>
1204
1204
 
1205
1205
  </div>
@@ -1232,31 +1232,31 @@ Generate a CSV version of the report.
1232
1232
  <div class="method-source-code"
1233
1233
  id="generate--source">
1234
1234
  <pre>
1235
- <span class="ruby-comment cmt"># File lib/taskjuggler/reports/Report.rb, line 234</span>
1236
- 234: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateCSV</span>
1237
- 235: <span class="ruby-comment cmt"># The CSV format can only handle the first element of a report.</span>
1238
- 236: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@content</span>
1239
- 237:
1240
- 238: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@content</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-value str">'to_csv'</span>)
1241
- 239: <span class="ruby-identifier">warning</span>(<span class="ruby-value str">'csv_not_supported'</span>,
1242
- 240: <span class="ruby-node">&quot;CSV format is not supported for report #{@id} of &quot;</span> <span class="ruby-operator">+</span>
1243
- 241: <span class="ruby-node">&quot;type #{@typeSpec}.&quot;</span>)
1244
- 242: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
1245
- 243: <span class="ruby-keyword kw">end</span>
1246
- 244:
1247
- 245: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">unless</span> (<span class="ruby-identifier">csv</span> = <span class="ruby-ivar">@content</span>.<span class="ruby-identifier">to_csv</span>)
1248
- 246:
1249
- 247: <span class="ruby-comment cmt"># Use the CSVFile class to write the Array of Arrays to a colon</span>
1250
- 248: <span class="ruby-comment cmt"># separated file. Write to $stdout if the filename was set to '.'.</span>
1251
- 249: <span class="ruby-keyword kw">begin</span>
1252
- 250: <span class="ruby-identifier">fileName</span> = (<span class="ruby-ivar">@name</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'.'</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@name</span> <span class="ruby-operator">:</span>
1253
- 251: (<span class="ruby-ivar">@name</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">'/'</span> <span class="ruby-operator">?</span> <span class="ruby-value str">''</span> <span class="ruby-operator">:</span> <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">outputDir</span>) <span class="ruby-operator">+</span>
1254
- 252: <span class="ruby-ivar">@name</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'.csv'</span>).<span class="ruby-identifier">untaint</span>
1255
- 253: <span class="ruby-constant">CSVFile</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">csv</span>, <span class="ruby-value str">';'</span>).<span class="ruby-identifier">write</span>(<span class="ruby-identifier">fileName</span>)
1256
- 254: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">IOError</span>
1257
- 255: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'write_csv'</span>, <span class="ruby-node">&quot;Cannot write to file #{fileName}.\n#{$!}&quot;</span>)
1258
- 256: <span class="ruby-keyword kw">end</span>
1259
- 257: <span class="ruby-keyword kw">end</span></pre>
1235
+ <span class="ruby-comment cmt"># File lib/taskjuggler/reports/Report.rb, line 235</span>
1236
+ 235: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateCSV</span>
1237
+ 236: <span class="ruby-comment cmt"># The CSV format can only handle the first element of a report.</span>
1238
+ 237: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@content</span>
1239
+ 238:
1240
+ 239: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@content</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-value str">'to_csv'</span>)
1241
+ 240: <span class="ruby-identifier">warning</span>(<span class="ruby-value str">'csv_not_supported'</span>,
1242
+ 241: <span class="ruby-node">&quot;CSV format is not supported for report #{@id} of &quot;</span> <span class="ruby-operator">+</span>
1243
+ 242: <span class="ruby-node">&quot;type #{@typeSpec}.&quot;</span>)
1244
+ 243: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
1245
+ 244: <span class="ruby-keyword kw">end</span>
1246
+ 245:
1247
+ 246: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">unless</span> (<span class="ruby-identifier">csv</span> = <span class="ruby-ivar">@content</span>.<span class="ruby-identifier">to_csv</span>)
1248
+ 247:
1249
+ 248: <span class="ruby-comment cmt"># Use the CSVFile class to write the Array of Arrays to a colon</span>
1250
+ 249: <span class="ruby-comment cmt"># separated file. Write to $stdout if the filename was set to '.'.</span>
1251
+ 250: <span class="ruby-keyword kw">begin</span>
1252
+ 251: <span class="ruby-identifier">fileName</span> = (<span class="ruby-ivar">@name</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'.'</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@name</span> <span class="ruby-operator">:</span>
1253
+ 252: (<span class="ruby-ivar">@name</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">'/'</span> <span class="ruby-operator">?</span> <span class="ruby-value str">''</span> <span class="ruby-operator">:</span> <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">outputDir</span>) <span class="ruby-operator">+</span>
1254
+ 253: <span class="ruby-ivar">@name</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'.csv'</span>).<span class="ruby-identifier">untaint</span>
1255
+ 254: <span class="ruby-constant">CSVFile</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">csv</span>, <span class="ruby-value str">';'</span>).<span class="ruby-identifier">write</span>(<span class="ruby-identifier">fileName</span>)
1256
+ 255: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">IOError</span>
1257
+ 256: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'write_csv'</span>, <span class="ruby-node">&quot;Cannot write to file #{fileName}.\n#{$!}&quot;</span>)
1258
+ 257: <span class="ruby-keyword kw">end</span>
1259
+ 258: <span class="ruby-keyword kw">end</span></pre>
1260
1260
  </div>
1261
1261
 
1262
1262
  </div>
@@ -1326,50 +1326,51 @@ Generate an HTML version of the report.
1326
1326
  182: <span class="ruby-value str">'type'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'text/css'</span>,
1327
1327
  183: <span class="ruby-value str">'href'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'css/tjreport.css'</span>)
1328
1328
  184: <span class="ruby-keyword kw">end</span>
1329
- 185: <span class="ruby-identifier">html</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLComment</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">&quot;Dynamic Report ID: &quot;</span> <span class="ruby-operator">+</span>
1330
- 186: <span class="ruby-node">&quot;#{@project.reportContexts.last.dynamicReportId}&quot;</span>)
1331
- 187: <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>))
1332
- 188:
1333
- 189: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'selfcontained'</span>)
1334
- 190: <span class="ruby-identifier">body</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">'script'</span>, <span class="ruby-value str">'type'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'text/javascript'</span>,
1335
- 191: <span class="ruby-value str">'src'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'scripts/wz_tooltip.js'</span>)
1336
- 192: <span class="ruby-identifier">body</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">noscript</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'noscript'</span>))
1337
- 193: <span class="ruby-identifier">noscript</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">nsdiv</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'div'</span>,
1338
- 194: <span class="ruby-value str">'style'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'text-align:center; '</span> <span class="ruby-operator">+</span>
1339
- 195: <span class="ruby-value str">'color:#FF0000'</span>))
1340
- 196: <span class="ruby-identifier">nsdiv</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">This page requires Javascript for full functionality. Please enable itin your browser settings!</span>
1341
- 197: )
1342
- 198: <span class="ruby-keyword kw">end</span>
1343
- 199:
1329
+ 185: <span class="ruby-identifier">html</span>.<span class="ruby-identifier">html</span> <span class="ruby-operator">&lt;&lt;</span>
1330
+ 186: <span class="ruby-constant">XMLComment</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">&quot;Dynamic Report ID: &quot;</span> <span class="ruby-operator">+</span>
1331
+ 187: <span class="ruby-node">&quot;#{@project.reportContexts.last.dynamicReportId}&quot;</span>)
1332
+ 188: <span class="ruby-identifier">html</span>.<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>))
1333
+ 189:
1334
+ 190: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'selfcontained'</span>)
1335
+ 191: <span class="ruby-identifier">body</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">'script'</span>, <span class="ruby-value str">'type'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'text/javascript'</span>,
1336
+ 192: <span class="ruby-value str">'src'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'scripts/wz_tooltip.js'</span>)
1337
+ 193: <span class="ruby-identifier">body</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">noscript</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'noscript'</span>))
1338
+ 194: <span class="ruby-identifier">noscript</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">nsdiv</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'div'</span>,
1339
+ 195: <span class="ruby-value str">'style'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'text-align:center; '</span> <span class="ruby-operator">+</span>
1340
+ 196: <span class="ruby-value str">'color:#FF0000'</span>))
1341
+ 197: <span class="ruby-identifier">nsdiv</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">This page requires Javascript for full functionality. Please enable itin your browser settings!</span>
1342
+ 198: )
1343
+ 199: <span class="ruby-keyword kw">end</span>
1344
1344
  200:
1345
- 201: <span class="ruby-comment cmt"># Make sure we have some margins around the report.</span>
1346
- 202: <span class="ruby-identifier">body</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">'tj_page'</span>))
1347
- 203:
1348
- 204: <span class="ruby-identifier">frame</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-ivar">@content</span>.<span class="ruby-identifier">to_html</span>
1349
- 205:
1350
- 206: <span class="ruby-comment cmt"># The footer with some administrative information.</span>
1351
- 207: <span class="ruby-identifier">frame</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">div</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">'copyright'</span>))
1352
- 208: <span class="ruby-identifier">div</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@project</span>[<span class="ruby-value str">'copyright'</span>] <span class="ruby-operator">+</span> <span class="ruby-value str">&quot; - &quot;</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'copyright'</span>]
1353
- 209: <span class="ruby-identifier">div</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;Project: #{@project['name']} &quot;</span> <span class="ruby-operator">+</span>
1354
- 210: <span class="ruby-node">&quot;Version: #{@project['version']} - &quot;</span> <span class="ruby-operator">+</span>
1355
- 211: <span class="ruby-node">&quot;Created on #{TjTime.new.to_s(&quot;%Y-%m-%d %H:%M:%S&quot;)} &quot;</span> <span class="ruby-operator">+</span>
1356
- 212: <span class="ruby-value str">&quot;with &quot;</span>)
1357
- 213: <span class="ruby-identifier">div</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;#{AppConfig.softwareName}&quot;</span>, <span class="ruby-value str">'a'</span>,
1358
- 214: <span class="ruby-value str">'href'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-node">&quot;#{AppConfig.contact}&quot;</span>)
1359
- 215: <span class="ruby-identifier">div</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; v#{AppConfig.version}&quot;</span>)
1360
- 216:
1361
- 217: <span class="ruby-identifier">fileName</span> =
1362
- 218: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'interactive'</span>) <span class="ruby-operator">||</span> <span class="ruby-ivar">@name</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'.'</span>
1363
- 219: <span class="ruby-comment cmt"># Interactive HTML reports are always sent to stdout.</span>
1364
- 220: <span class="ruby-value str">'.'</span>
1365
- 221: <span class="ruby-keyword kw">else</span>
1366
- 222: <span class="ruby-comment cmt"># Prepend the specified output directory unless the provided file</span>
1367
- 223: <span class="ruby-comment cmt"># name is an absolute file name.</span>
1368
- 224: ((<span class="ruby-ivar">@name</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">'/'</span> <span class="ruby-operator">?</span> <span class="ruby-value str">''</span> <span class="ruby-operator">:</span> <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">outputDir</span>) <span class="ruby-operator">+</span>
1369
- 225: <span class="ruby-ivar">@name</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'.html'</span>).<span class="ruby-identifier">untaint</span>
1370
- 226: <span class="ruby-keyword kw">end</span>
1371
- 227: <span class="ruby-identifier">html</span>.<span class="ruby-identifier">write</span>(<span class="ruby-identifier">fileName</span>)
1372
- 228: <span class="ruby-keyword kw">end</span></pre>
1345
+ 201:
1346
+ 202: <span class="ruby-comment cmt"># Make sure we have some margins around the report.</span>
1347
+ 203: <span class="ruby-identifier">body</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">'tj_page'</span>))
1348
+ 204:
1349
+ 205: <span class="ruby-identifier">frame</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-ivar">@content</span>.<span class="ruby-identifier">to_html</span>
1350
+ 206:
1351
+ 207: <span class="ruby-comment cmt"># The footer with some administrative information.</span>
1352
+ 208: <span class="ruby-identifier">frame</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">div</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">'copyright'</span>))
1353
+ 209: <span class="ruby-identifier">div</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@project</span>[<span class="ruby-value str">'copyright'</span>] <span class="ruby-operator">+</span> <span class="ruby-value str">&quot; - &quot;</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'copyright'</span>]
1354
+ 210: <span class="ruby-identifier">div</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;Project: #{@project['name']} &quot;</span> <span class="ruby-operator">+</span>
1355
+ 211: <span class="ruby-node">&quot;Version: #{@project['version']} - &quot;</span> <span class="ruby-operator">+</span>
1356
+ 212: <span class="ruby-node">&quot;Created on #{TjTime.new.to_s(&quot;%Y-%m-%d %H:%M:%S&quot;)} &quot;</span> <span class="ruby-operator">+</span>
1357
+ 213: <span class="ruby-value str">&quot;with &quot;</span>)
1358
+ 214: <span class="ruby-identifier">div</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;#{AppConfig.softwareName}&quot;</span>, <span class="ruby-value str">'a'</span>,
1359
+ 215: <span class="ruby-value str">'href'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-node">&quot;#{AppConfig.contact}&quot;</span>)
1360
+ 216: <span class="ruby-identifier">div</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; v#{AppConfig.version}&quot;</span>)
1361
+ 217:
1362
+ 218: <span class="ruby-identifier">fileName</span> =
1363
+ 219: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'interactive'</span>) <span class="ruby-operator">||</span> <span class="ruby-ivar">@name</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'.'</span>
1364
+ 220: <span class="ruby-comment cmt"># Interactive HTML reports are always sent to stdout.</span>
1365
+ 221: <span class="ruby-value str">'.'</span>
1366
+ 222: <span class="ruby-keyword kw">else</span>
1367
+ 223: <span class="ruby-comment cmt"># Prepend the specified output directory unless the provided file</span>
1368
+ 224: <span class="ruby-comment cmt"># name is an absolute file name.</span>
1369
+ 225: ((<span class="ruby-ivar">@name</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">'/'</span> <span class="ruby-operator">?</span> <span class="ruby-value str">''</span> <span class="ruby-operator">:</span> <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">outputDir</span>) <span class="ruby-operator">+</span>
1370
+ 226: <span class="ruby-ivar">@name</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'.html'</span>).<span class="ruby-identifier">untaint</span>
1371
+ 227: <span class="ruby-keyword kw">end</span>
1372
+ 228: <span class="ruby-identifier">html</span>.<span class="ruby-identifier">write</span>(<span class="ruby-identifier">fileName</span>)
1373
+ 229: <span class="ruby-keyword kw">end</span></pre>
1373
1374
  </div>
1374
1375
 
1375
1376
  </div>
@@ -1402,24 +1403,24 @@ Generate Niku report
1402
1403
  <div class="method-source-code"
1403
1404
  id="generate-iku-source">
1404
1405
  <pre>
1405
- <span class="ruby-comment cmt"># File lib/taskjuggler/reports/Report.rb, line 277</span>
1406
- 277: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateNiku</span>
1407
- 278: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@content</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-value str">'to_niku'</span>)
1408
- 279: <span class="ruby-identifier">warning</span>(<span class="ruby-value str">'niku_not_supported'</span>,
1409
- 280: <span class="ruby-node">&quot;niku format is not supported for report #{@id} of &quot;</span> <span class="ruby-operator">+</span>
1410
- 281: <span class="ruby-node">&quot;type #{@typeSpec}.&quot;</span>)
1411
- 282: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
1412
- 283: <span class="ruby-keyword kw">end</span>
1413
- 284:
1414
- 285: <span class="ruby-keyword kw">begin</span>
1415
- 286: <span class="ruby-identifier">f</span> = <span class="ruby-ivar">@name</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'.'</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">$stdout</span> <span class="ruby-operator">:</span>
1416
- 287: <span class="ruby-constant">File</span>.<span class="ruby-identifier">new</span>(((<span class="ruby-ivar">@name</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">'/'</span> <span class="ruby-operator">?</span> <span class="ruby-value str">''</span> <span class="ruby-operator">:</span> <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">outputDir</span>) <span class="ruby-operator">+</span>
1417
- 288: <span class="ruby-ivar">@name</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'.xml'</span>).<span class="ruby-identifier">untaint</span>, <span class="ruby-value str">'w'</span>)
1418
- 289: <span class="ruby-identifier">f</span>.<span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;#{@content.to_niku}&quot;</span>
1419
- 290: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">IOError</span>
1420
- 291: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'write_niku'</span>, <span class="ruby-node">&quot;Cannot write to file #{@name}.\n#{$!}&quot;</span>)
1421
- 292: <span class="ruby-keyword kw">end</span>
1422
- 293: <span class="ruby-keyword kw">end</span></pre>
1406
+ <span class="ruby-comment cmt"># File lib/taskjuggler/reports/Report.rb, line 278</span>
1407
+ 278: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateNiku</span>
1408
+ 279: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@content</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-value str">'to_niku'</span>)
1409
+ 280: <span class="ruby-identifier">warning</span>(<span class="ruby-value str">'niku_not_supported'</span>,
1410
+ 281: <span class="ruby-node">&quot;niku format is not supported for report #{@id} of &quot;</span> <span class="ruby-operator">+</span>
1411
+ 282: <span class="ruby-node">&quot;type #{@typeSpec}.&quot;</span>)
1412
+ 283: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
1413
+ 284: <span class="ruby-keyword kw">end</span>
1414
+ 285:
1415
+ 286: <span class="ruby-keyword kw">begin</span>
1416
+ 287: <span class="ruby-identifier">f</span> = <span class="ruby-ivar">@name</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'.'</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">$stdout</span> <span class="ruby-operator">:</span>
1417
+ 288: <span class="ruby-constant">File</span>.<span class="ruby-identifier">new</span>(((<span class="ruby-ivar">@name</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">'/'</span> <span class="ruby-operator">?</span> <span class="ruby-value str">''</span> <span class="ruby-operator">:</span> <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">outputDir</span>) <span class="ruby-operator">+</span>
1418
+ 289: <span class="ruby-ivar">@name</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'.xml'</span>).<span class="ruby-identifier">untaint</span>, <span class="ruby-value str">'w'</span>)
1419
+ 290: <span class="ruby-identifier">f</span>.<span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;#{@content.to_niku}&quot;</span>
1420
+ 291: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">IOError</span>
1421
+ 292: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'write_niku'</span>, <span class="ruby-node">&quot;Cannot write to file #{@name}.\n#{$!}&quot;</span>)
1422
+ 293: <span class="ruby-keyword kw">end</span>
1423
+ 294: <span class="ruby-keyword kw">end</span></pre>
1423
1424
  </div>
1424
1425
 
1425
1426
  </div>
@@ -1452,22 +1453,22 @@ Generate time sheet drafts.
1452
1453
  <div class="method-source-code"
1453
1454
  id="generate--source">
1454
1455
  <pre>
1455
- <span class="ruby-comment cmt"># File lib/taskjuggler/reports/Report.rb, line 260</span>
1456
- 260: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateTJP</span>
1457
- 261: <span class="ruby-keyword kw">begin</span>
1458
- 262: <span class="ruby-identifier">fileName</span> = <span class="ruby-value str">'.'</span>
1459
- 263: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@name</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'.'</span>
1460
- 264: <span class="ruby-identifier">$stdout</span>.<span class="ruby-identifier">write</span>(<span class="ruby-ivar">@content</span>.<span class="ruby-identifier">to_tjp</span>)
1461
- 265: <span class="ruby-keyword kw">else</span>
1462
- 266: <span class="ruby-identifier">fileName</span> = (<span class="ruby-ivar">@name</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">'/'</span> <span class="ruby-operator">?</span> <span class="ruby-value str">''</span> <span class="ruby-operator">:</span> <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">outputDir</span>) <span class="ruby-operator">+</span> <span class="ruby-ivar">@name</span>
1463
- 267: <span class="ruby-identifier">fileName</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'definitions'</span>).<span class="ruby-identifier">include?</span>(<span class="ruby-value str">'project'</span>) <span class="ruby-operator">?</span> <span class="ruby-value str">'.tjp'</span> <span class="ruby-operator">:</span> <span class="ruby-value str">'.tji'</span>
1464
- 268: <span class="ruby-identifier">fileName</span>.<span class="ruby-identifier">untaint</span>
1465
- 269: <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">fileName</span>, <span class="ruby-value str">'w'</span>) { <span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span> <span class="ruby-identifier">f</span>.<span class="ruby-identifier">write</span>(<span class="ruby-ivar">@content</span>.<span class="ruby-identifier">to_tjp</span>) }
1466
- 270: <span class="ruby-keyword kw">end</span>
1467
- 271: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">IOError</span>
1468
- 272: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'write_tjp'</span>, <span class="ruby-node">&quot;Cannot write to file #{fileName}.\n#{$!}&quot;</span>)
1469
- 273: <span class="ruby-keyword kw">end</span>
1470
- 274: <span class="ruby-keyword kw">end</span></pre>
1456
+ <span class="ruby-comment cmt"># File lib/taskjuggler/reports/Report.rb, line 261</span>
1457
+ 261: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateTJP</span>
1458
+ 262: <span class="ruby-keyword kw">begin</span>
1459
+ 263: <span class="ruby-identifier">fileName</span> = <span class="ruby-value str">'.'</span>
1460
+ 264: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@name</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'.'</span>
1461
+ 265: <span class="ruby-identifier">$stdout</span>.<span class="ruby-identifier">write</span>(<span class="ruby-ivar">@content</span>.<span class="ruby-identifier">to_tjp</span>)
1462
+ 266: <span class="ruby-keyword kw">else</span>
1463
+ 267: <span class="ruby-identifier">fileName</span> = (<span class="ruby-ivar">@name</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">'/'</span> <span class="ruby-operator">?</span> <span class="ruby-value str">''</span> <span class="ruby-operator">:</span> <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">outputDir</span>) <span class="ruby-operator">+</span> <span class="ruby-ivar">@name</span>
1464
+ 268: <span class="ruby-identifier">fileName</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'definitions'</span>).<span class="ruby-identifier">include?</span>(<span class="ruby-value str">'project'</span>) <span class="ruby-operator">?</span> <span class="ruby-value str">'.tjp'</span> <span class="ruby-operator">:</span> <span class="ruby-value str">'.tji'</span>
1465
+ 269: <span class="ruby-identifier">fileName</span>.<span class="ruby-identifier">untaint</span>
1466
+ 270: <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">fileName</span>, <span class="ruby-value str">'w'</span>) { <span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span> <span class="ruby-identifier">f</span>.<span class="ruby-identifier">write</span>(<span class="ruby-ivar">@content</span>.<span class="ruby-identifier">to_tjp</span>) }
1467
+ 271: <span class="ruby-keyword kw">end</span>
1468
+ 272: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">IOError</span>
1469
+ 273: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'write_tjp'</span>, <span class="ruby-node">&quot;Cannot write to file #{fileName}.\n#{$!}&quot;</span>)
1470
+ 274: <span class="ruby-keyword kw">end</span>
1471
+ 275: <span class="ruby-keyword kw">end</span></pre>
1471
1472
  </div>
1472
1473
 
1473
1474
  </div>