taskjuggler 0.0.8 → 0.0.9

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 (613) hide show
  1. data/CHANGELOG +1144 -2047
  2. data/README +1 -1
  3. data/Rakefile +6 -6
  4. data/data/css/tjmanual.css +20 -0
  5. data/data/css/tjreport.css +7 -6
  6. data/doc/AppConfig.html +136 -130
  7. data/doc/Arguments.html +46 -40
  8. data/doc/CHANGELOG.html +1162 -2057
  9. data/doc/COPYING.html +8 -2
  10. data/doc/Object.html +205 -199
  11. data/doc/README.html +9 -3
  12. data/doc/RuntimeConfig.html +75 -69
  13. data/doc/String.html +69 -63
  14. data/doc/TaskJuggler.html +350 -291
  15. data/doc/TaskJuggler/Account.html +26 -20
  16. data/doc/TaskJuggler/AccountAttribute.html +24 -18
  17. data/doc/TaskJuggler/AccountScenario.html +24 -18
  18. data/doc/TaskJuggler/Allocation.html +74 -68
  19. data/doc/TaskJuggler/AllocationAttribute.html +54 -48
  20. data/doc/TaskJuggler/AttributeBase.html +172 -93
  21. data/doc/TaskJuggler/AttributeDefinition.html +22 -16
  22. data/doc/TaskJuggler/AttributeOverwrite.html +586 -0
  23. data/doc/TaskJuggler/BatchProcessor.html +263 -257
  24. data/doc/TaskJuggler/Booking.html +44 -38
  25. data/doc/TaskJuggler/BookingListAttribute.html +25 -21
  26. data/doc/TaskJuggler/BooleanAttribute.html +24 -18
  27. data/doc/TaskJuggler/CSVFile.html +193 -187
  28. data/doc/TaskJuggler/CellSettingPattern.html +13 -7
  29. data/doc/TaskJuggler/CellSettingPatternList.html +25 -19
  30. data/doc/TaskJuggler/Charge.html +49 -43
  31. data/doc/TaskJuggler/ChargeListAttribute.html +21 -15
  32. data/doc/TaskJuggler/ChargeSet.html +94 -88
  33. data/doc/TaskJuggler/ChargeSetListAttribute.html +29 -25
  34. data/doc/TaskJuggler/CollisionDetector.html +142 -136
  35. data/doc/TaskJuggler/ColumnListAttribute.html +21 -17
  36. data/doc/TaskJuggler/ColumnTable.html +50 -44
  37. data/doc/TaskJuggler/Daemon.html +71 -50
  38. data/doc/TaskJuggler/DataCache.html +110 -58
  39. data/doc/TaskJuggler/DataCacheEntry.html +22 -16
  40. data/doc/TaskJuggler/DateAttribute.html +24 -18
  41. data/doc/TaskJuggler/DefinitionListAttribute.html +12 -6
  42. data/doc/TaskJuggler/DependencyListAttribute.html +29 -25
  43. data/doc/TaskJuggler/DurationAttribute.html +25 -19
  44. data/doc/TaskJuggler/FileList.html +25 -19
  45. data/doc/TaskJuggler/FileRecord.html +17 -11
  46. data/doc/TaskJuggler/FixnumAttribute.html +16 -10
  47. data/doc/TaskJuggler/FlagListAttribute.html +25 -21
  48. data/doc/TaskJuggler/FloatAttribute.html +20 -14
  49. data/doc/TaskJuggler/FormatListAttribute.html +17 -11
  50. data/doc/TaskJuggler/GanttChart.html +242 -236
  51. data/doc/TaskJuggler/GanttContainer.html +71 -67
  52. data/doc/TaskJuggler/GanttHeader.html +113 -107
  53. data/doc/TaskJuggler/GanttHeaderScaleItem.html +26 -20
  54. data/doc/TaskJuggler/GanttLine.html +217 -210
  55. data/doc/TaskJuggler/GanttLoadStack.html +89 -83
  56. data/doc/TaskJuggler/GanttMilestone.html +11 -6
  57. data/doc/TaskJuggler/GanttRouter.html +194 -186
  58. data/doc/TaskJuggler/GanttTaskBar.html +41 -34
  59. data/doc/TaskJuggler/HTMLDocument.html +52 -46
  60. data/doc/TaskJuggler/HTMLGraphics.html +58 -52
  61. data/doc/TaskJuggler/Interval.html +90 -84
  62. data/doc/TaskJuggler/IntervalList.html +777 -0
  63. data/doc/TaskJuggler/IntervalListAttribute.html +29 -25
  64. data/doc/TaskJuggler/JobInfo.html +36 -30
  65. data/doc/TaskJuggler/Journal.html +188 -177
  66. data/doc/TaskJuggler/JournalEntry.html +36 -30
  67. data/doc/TaskJuggler/JournalEntryList.html +88 -82
  68. data/doc/TaskJuggler/KeywordArray.html +12 -6
  69. data/doc/TaskJuggler/KeywordDocumentation.html +512 -503
  70. data/doc/TaskJuggler/Limits.html +111 -105
  71. data/doc/TaskJuggler/Limits/Limit.html +71 -65
  72. data/doc/TaskJuggler/LimitsAttribute.html +21 -15
  73. data/doc/TaskJuggler/ListAttributeBase.html +16 -10
  74. data/doc/TaskJuggler/Log.html +111 -105
  75. data/doc/TaskJuggler/LogFile.html +54 -48
  76. data/doc/TaskJuggler/LogicalAttribute.html +35 -29
  77. data/doc/TaskJuggler/LogicalExpression.html +32 -26
  78. data/doc/TaskJuggler/LogicalExpressionAttribute.html +16 -10
  79. data/doc/TaskJuggler/LogicalExpressionListAttribute.html +671 -0
  80. data/doc/TaskJuggler/LogicalFlag.html +24 -18
  81. data/doc/TaskJuggler/LogicalFunction.html +164 -158
  82. data/doc/TaskJuggler/LogicalOperation.html +138 -132
  83. data/doc/TaskJuggler/Macro.html +14 -8
  84. data/doc/TaskJuggler/MacroTable.html +42 -36
  85. data/doc/TaskJuggler/ManagerResponsibilities.html +19 -13
  86. data/doc/TaskJuggler/ManagerStatusRecord.html +23 -17
  87. data/doc/TaskJuggler/Message.html +56 -50
  88. data/doc/TaskJuggler/MessageHandler.html +73 -67
  89. data/doc/TaskJuggler/Navigator.html +92 -86
  90. data/doc/TaskJuggler/NavigatorElement.html +88 -82
  91. data/doc/TaskJuggler/NikuProject.html +15 -9
  92. data/doc/TaskJuggler/NikuReport.html +405 -370
  93. data/doc/TaskJuggler/NikuResource.html +13 -7
  94. data/doc/TaskJuggler/NodeListAttribute.html +13 -9
  95. data/doc/TaskJuggler/PlaceHolderCell.html +22 -16
  96. data/doc/TaskJuggler/ProcessIntercom.html +116 -110
  97. data/doc/TaskJuggler/ProcessIntercomIface.html +39 -33
  98. data/doc/TaskJuggler/Project.html +1064 -895
  99. data/doc/TaskJuggler/ProjectBroker.html +439 -366
  100. data/doc/TaskJuggler/ProjectBrokerIface.html +63 -53
  101. data/doc/TaskJuggler/ProjectFileParser.html +329 -319
  102. data/doc/TaskJuggler/ProjectFileScanner.html +351 -345
  103. data/doc/TaskJuggler/ProjectRecord.html +66 -60
  104. data/doc/TaskJuggler/ProjectServer.html +287 -280
  105. data/doc/TaskJuggler/ProjectServerIface.html +43 -37
  106. data/doc/TaskJuggler/PropertyAttribute.html +16 -10
  107. data/doc/TaskJuggler/PropertyList.html +205 -199
  108. data/doc/TaskJuggler/PropertySet.html +264 -296
  109. data/doc/TaskJuggler/PropertyTreeNode.html +455 -505
  110. data/doc/TaskJuggler/Query.html +309 -524
  111. data/doc/TaskJuggler/RTFHandlers.html +17 -11
  112. data/doc/TaskJuggler/RTFNavigator.html +33 -27
  113. data/doc/TaskJuggler/RTFQuery.html +135 -129
  114. data/doc/TaskJuggler/RTFReport.html +63 -57
  115. data/doc/TaskJuggler/RTFReportLink.html +55 -49
  116. data/doc/TaskJuggler/RTFWithQuerySupport.html +17 -11
  117. data/doc/TaskJuggler/RealFormat.html +64 -58
  118. data/doc/TaskJuggler/RealFormatAttribute.html +12 -6
  119. data/doc/TaskJuggler/ReferenceAttribute.html +35 -29
  120. data/doc/TaskJuggler/Report.html +294 -249
  121. data/doc/TaskJuggler/ReportBase.html +229 -223
  122. data/doc/TaskJuggler/ReportContext.html +52 -46
  123. data/doc/TaskJuggler/ReportServer.html +143 -137
  124. data/doc/TaskJuggler/ReportServerIface.html +51 -43
  125. data/doc/TaskJuggler/ReportServerRecord.html +36 -30
  126. data/doc/TaskJuggler/ReportServlet.html +167 -140
  127. data/doc/TaskJuggler/ReportTable.html +137 -131
  128. data/doc/TaskJuggler/ReportTableCell.html +332 -292
  129. data/doc/TaskJuggler/ReportTableColumn.html +46 -40
  130. data/doc/TaskJuggler/ReportTableLegend.html +43 -38
  131. data/doc/TaskJuggler/ReportTableLine.html +66 -60
  132. data/doc/TaskJuggler/Resource.html +166 -160
  133. data/doc/TaskJuggler/ResourceListAttribute.html +54 -32
  134. data/doc/TaskJuggler/ResourceListRE.html +47 -41
  135. data/doc/TaskJuggler/ResourceScenario.html +671 -644
  136. data/doc/TaskJuggler/RichText.html +51 -45
  137. data/doc/TaskJuggler/RichTextAttribute.html +28 -22
  138. data/doc/TaskJuggler/RichTextDocument.html +96 -90
  139. data/doc/TaskJuggler/RichTextElement.html +503 -497
  140. data/doc/TaskJuggler/RichTextFunctionExample.html +41 -35
  141. data/doc/TaskJuggler/RichTextFunctionHandler.html +19 -13
  142. data/doc/TaskJuggler/RichTextImage.html +14 -8
  143. data/doc/TaskJuggler/RichTextIntermediate.html +86 -80
  144. data/doc/TaskJuggler/RichTextParser.html +59 -53
  145. data/doc/TaskJuggler/RichTextScanner.html +184 -178
  146. data/doc/TaskJuggler/RichTextSnip.html +69 -63
  147. data/doc/TaskJuggler/RichTextSyntaxRules.html +416 -410
  148. data/doc/TaskJuggler/Scenario.html +13 -7
  149. data/doc/TaskJuggler/ScenarioData.html +40 -34
  150. data/doc/TaskJuggler/ScenarioListAttribute.html +21 -15
  151. data/doc/TaskJuggler/Scoreboard.html +129 -107
  152. data/doc/TaskJuggler/SheetHandlerBase.html +245 -239
  153. data/doc/TaskJuggler/SheetReceiver.html +333 -327
  154. data/doc/TaskJuggler/SheetSender.html +227 -221
  155. data/doc/TaskJuggler/Shift.html +26 -20
  156. data/doc/TaskJuggler/ShiftAssignment.html +45 -39
  157. data/doc/TaskJuggler/ShiftAssignments.html +178 -172
  158. data/doc/TaskJuggler/ShiftAssignmentsAttribute.html +21 -15
  159. data/doc/TaskJuggler/ShiftScenario.html +29 -23
  160. data/doc/TaskJuggler/SimpleQueryExpander.html +36 -30
  161. data/doc/TaskJuggler/SortListAttribute.html +17 -13
  162. data/doc/TaskJuggler/SourceFileInfo.html +19 -13
  163. data/doc/TaskJuggler/StatusSheetReceiver.html +31 -25
  164. data/doc/TaskJuggler/StatusSheetReport.html +166 -159
  165. data/doc/TaskJuggler/StatusSheetSender.html +80 -74
  166. data/doc/TaskJuggler/StringAttribute.html +20 -14
  167. data/doc/TaskJuggler/SymbolAttribute.html +16 -10
  168. data/doc/TaskJuggler/SyntaxReference.html +231 -225
  169. data/doc/TaskJuggler/TOCEntry.html +46 -40
  170. data/doc/TaskJuggler/TSResourceRecord.html +15 -9
  171. data/doc/TaskJuggler/TSTaskRecord.html +16 -10
  172. data/doc/TaskJuggler/TableColumnDefinition.html +84 -39
  173. data/doc/TaskJuggler/TableOfContents.html +28 -22
  174. data/doc/TaskJuggler/TableReport.html +906 -866
  175. data/doc/TaskJuggler/Task.html +99 -93
  176. data/doc/TaskJuggler/TaskDependency.html +24 -18
  177. data/doc/TaskJuggler/TaskListAttribute.html +29 -25
  178. data/doc/TaskJuggler/TaskListRE.html +46 -39
  179. data/doc/TaskJuggler/TaskScenario.html +2218 -1965
  180. data/doc/TaskJuggler/TextFormatter.html +154 -148
  181. data/doc/TaskJuggler/TextParser.html +362 -348
  182. data/doc/TaskJuggler/TextParser/Pattern.html +313 -307
  183. data/doc/TaskJuggler/TextParser/Rule.html +147 -141
  184. data/doc/TaskJuggler/TextParser/StackElement.html +58 -52
  185. data/doc/TaskJuggler/TextParser/State.html +88 -82
  186. data/doc/TaskJuggler/TextParser/StateTransition.html +42 -36
  187. data/doc/TaskJuggler/TextParser/TextParserResultArray.html +20 -14
  188. data/doc/TaskJuggler/TextParser/TokenDoc.html +19 -13
  189. data/doc/TaskJuggler/TextReport.html +80 -74
  190. data/doc/TaskJuggler/TextScanner.html +284 -272
  191. data/doc/TaskJuggler/TextScanner/BufferStreamHandle.html +14 -8
  192. data/doc/TaskJuggler/TextScanner/FileStreamHandle.html +21 -15
  193. data/doc/TaskJuggler/TextScanner/MacroStackEntry.html +15 -9
  194. data/doc/TaskJuggler/TextScanner/StreamHandle.html +102 -96
  195. data/doc/TaskJuggler/TimeSheet.html +123 -117
  196. data/doc/TaskJuggler/TimeSheetReceiver.html +28 -22
  197. data/doc/TaskJuggler/TimeSheetRecord.html +212 -206
  198. data/doc/TaskJuggler/TimeSheetReport.html +206 -199
  199. data/doc/TaskJuggler/TimeSheetSender.html +27 -21
  200. data/doc/TaskJuggler/TimeSheetSummary.html +140 -134
  201. data/doc/TaskJuggler/TimeSheets.html +20 -14
  202. data/doc/TaskJuggler/Tj3AppBase.html +100 -94
  203. data/doc/TaskJuggler/Tj3Client.html +407 -483
  204. data/doc/TaskJuggler/Tj3Daemon.html +116 -107
  205. data/doc/TaskJuggler/Tj3SheetAppBase.html +45 -39
  206. data/doc/TaskJuggler/Tj3SsReceiver.html +31 -25
  207. data/doc/TaskJuggler/Tj3SsSender.html +64 -58
  208. data/doc/TaskJuggler/Tj3TsReceiver.html +31 -25
  209. data/doc/TaskJuggler/Tj3TsSender.html +51 -45
  210. data/doc/TaskJuggler/Tj3TsSummary.html +59 -53
  211. data/doc/TaskJuggler/TjException.html +13 -7
  212. data/doc/TaskJuggler/TjTime.html +444 -438
  213. data/doc/TaskJuggler/TjpExample.html +84 -78
  214. data/doc/TaskJuggler/TjpExportRE.html +356 -349
  215. data/doc/TaskJuggler/TjpSyntaxRules.html +4279 -4151
  216. data/doc/TaskJuggler/URLParameter.html +16 -10
  217. data/doc/TaskJuggler/UserManual.html +185 -179
  218. data/doc/TaskJuggler/VimSyntax.html +144 -138
  219. data/doc/TaskJuggler/WebServer.html +46 -39
  220. data/doc/TaskJuggler/WelcomePage.html +769 -0
  221. data/doc/TaskJuggler/WorkingHours.html +185 -179
  222. data/doc/TaskJuggler/WorkingHoursAttribute.html +42 -36
  223. data/doc/TaskJuggler/XMLBlob.html +21 -15
  224. data/doc/TaskJuggler/XMLComment.html +17 -11
  225. data/doc/TaskJuggler/XMLDocument.html +33 -27
  226. data/doc/TaskJuggler/XMLElement.html +97 -91
  227. data/doc/TaskJuggler/XMLNamedText.html +13 -7
  228. data/doc/TaskJuggler/XMLText.html +32 -26
  229. data/doc/index.html +601 -563
  230. data/doc/lib/AccountScenario_rb.html +5 -3
  231. data/doc/lib/Account_rb.html +5 -3
  232. data/doc/lib/Allocation_rb.html +5 -3
  233. data/doc/lib/AppConfig_rb.html +5 -3
  234. data/doc/lib/AttributeBase_rb.html +5 -3
  235. data/doc/lib/AttributeDefinition_rb.html +5 -3
  236. data/doc/lib/Attributes_rb.html +5 -3
  237. data/doc/lib/BatchProcessor_rb.html +5 -3
  238. data/doc/lib/Booking_rb.html +5 -3
  239. data/doc/lib/ChargeSet_rb.html +5 -3
  240. data/doc/lib/Charge_rb.html +5 -3
  241. data/doc/lib/DataCache_rb.html +5 -3
  242. data/doc/lib/FileList_rb.html +5 -3
  243. data/doc/lib/HTMLDocument_rb.html +5 -3
  244. data/doc/lib/IntervalList_rb.html +69 -0
  245. data/doc/lib/Interval_rb.html +5 -3
  246. data/doc/lib/Journal_rb.html +5 -3
  247. data/doc/lib/KeywordArray_rb.html +5 -3
  248. data/doc/lib/KeywordDocumentation_rb.html +5 -3
  249. data/doc/lib/Limits_rb.html +5 -3
  250. data/doc/lib/LogFile_rb.html +5 -3
  251. data/doc/lib/Log_rb.html +5 -3
  252. data/doc/lib/LogicalExpression_rb.html +5 -3
  253. data/doc/lib/LogicalFunction_rb.html +5 -3
  254. data/doc/lib/LogicalOperation_rb.html +5 -3
  255. data/doc/lib/MacroTable_rb.html +5 -3
  256. data/doc/lib/MessageHandler_rb.html +5 -3
  257. data/doc/lib/ProjectFileParser_rb.html +5 -3
  258. data/doc/lib/ProjectFileScanner_rb.html +5 -3
  259. data/doc/lib/Project_rb.html +5 -3
  260. data/doc/lib/PropertyList_rb.html +5 -3
  261. data/doc/lib/PropertySet_rb.html +5 -3
  262. data/doc/lib/PropertyTreeNode_rb.html +5 -3
  263. data/doc/lib/Query_rb.html +5 -3
  264. data/doc/lib/RTFHandlers_rb.html +5 -3
  265. data/doc/lib/RTFNavigator_rb.html +5 -3
  266. data/doc/lib/RTFQuery_rb.html +5 -3
  267. data/doc/lib/RTFReportLink_rb.html +5 -3
  268. data/doc/lib/RTFReport_rb.html +5 -3
  269. data/doc/lib/RTFWithQuerySupport_rb.html +5 -3
  270. data/doc/lib/RealFormat_rb.html +5 -3
  271. data/doc/lib/ResourceScenario_rb.html +5 -3
  272. data/doc/lib/Resource_rb.html +5 -3
  273. data/doc/lib/RichTextDocument_rb.html +5 -3
  274. data/doc/lib/RichTextElement_rb.html +5 -3
  275. data/doc/lib/RichTextFunctionExample_rb.html +5 -3
  276. data/doc/lib/RichTextFunctionHandler_rb.html +5 -3
  277. data/doc/lib/RichTextParser_rb.html +5 -3
  278. data/doc/lib/RichTextScanner_rb.html +5 -3
  279. data/doc/lib/RichTextSnip_rb.html +5 -3
  280. data/doc/lib/RichTextSyntaxRules_rb.html +5 -3
  281. data/doc/lib/RichText_rb.html +5 -3
  282. data/doc/lib/RuntimeConfig_rb.html +5 -3
  283. data/doc/lib/ScenarioData_rb.html +5 -3
  284. data/doc/lib/Scenario_rb.html +5 -3
  285. data/doc/lib/Scoreboard_rb.html +7 -3
  286. data/doc/lib/SheetHandlerBase_rb.html +5 -3
  287. data/doc/lib/SheetReceiver_rb.html +5 -3
  288. data/doc/lib/SheetSender_rb.html +5 -3
  289. data/doc/lib/ShiftAssignments_rb.html +5 -3
  290. data/doc/lib/ShiftScenario_rb.html +5 -3
  291. data/doc/lib/Shift_rb.html +5 -3
  292. data/doc/lib/SimpleQueryExpander_rb.html +5 -3
  293. data/doc/lib/SourceFileInfo_rb.html +5 -3
  294. data/doc/lib/StatusSheetReceiver_rb.html +5 -3
  295. data/doc/lib/StatusSheetSender_rb.html +5 -3
  296. data/doc/lib/SyntaxReference_rb.html +5 -3
  297. data/doc/lib/TOCEntry_rb.html +5 -3
  298. data/doc/lib/TableColumnDefinition_rb.html +5 -3
  299. data/doc/lib/TableOfContents_rb.html +5 -3
  300. data/doc/lib/TaskDependency_rb.html +5 -3
  301. data/doc/lib/TaskJuggler_rb.html +5 -3
  302. data/doc/lib/TaskScenario_rb.html +5 -3
  303. data/doc/lib/Task_rb.html +5 -3
  304. data/doc/lib/TextFormatter_rb.html +6 -4
  305. data/doc/lib/TextParser/Pattern_rb.html +5 -3
  306. data/doc/lib/TextParser/Rule_rb.html +5 -3
  307. data/doc/lib/TextParser/StackElement_rb.html +5 -3
  308. data/doc/lib/TextParser/State_rb.html +6 -4
  309. data/doc/lib/TextParser/TokenDoc_rb.html +5 -3
  310. data/doc/lib/TextParser_rb.html +5 -3
  311. data/doc/lib/TextScanner_rb.html +5 -3
  312. data/doc/lib/TimeSheetReceiver_rb.html +5 -3
  313. data/doc/lib/TimeSheetSender_rb.html +5 -3
  314. data/doc/lib/TimeSheetSummary_rb.html +6 -4
  315. data/doc/lib/TimeSheets_rb.html +5 -3
  316. data/doc/lib/Tj3AppBase_rb.html +5 -3
  317. data/doc/lib/Tj3Config_rb.html +5 -3
  318. data/doc/lib/Tj3SheetAppBase_rb.html +5 -3
  319. data/doc/lib/TjException_rb.html +5 -3
  320. data/doc/lib/TjTime_rb.html +5 -3
  321. data/doc/lib/TjpExample_rb.html +5 -3
  322. data/doc/lib/TjpSyntaxRules_rb.html +5 -3
  323. data/doc/lib/URLParameter_rb.html +5 -3
  324. data/doc/lib/UTF8String_rb.html +5 -3
  325. data/doc/lib/UserManual_rb.html +5 -3
  326. data/doc/lib/VimSyntax_rb.html +6 -4
  327. data/doc/lib/WorkingHours_rb.html +5 -3
  328. data/doc/lib/XMLDocument_rb.html +5 -3
  329. data/doc/lib/XMLElement_rb.html +5 -3
  330. data/doc/lib/daemon/Daemon_rb.html +5 -3
  331. data/doc/lib/daemon/ProcessIntercom_rb.html +7 -3
  332. data/doc/lib/daemon/ProjectBroker_rb.html +5 -3
  333. data/doc/lib/daemon/ProjectServer_rb.html +5 -3
  334. data/doc/lib/daemon/ReportServer_rb.html +5 -3
  335. data/doc/lib/daemon/ReportServlet_rb.html +69 -0
  336. data/doc/lib/daemon/WebServer_rb.html +9 -3
  337. data/doc/lib/daemon/WelcomePage_rb.html +71 -0
  338. data/doc/lib/deep_copy_rb.html +5 -3
  339. data/doc/lib/reports/CSVFile_rb.html +5 -3
  340. data/doc/lib/reports/CollisionDetector_rb.html +5 -3
  341. data/doc/lib/reports/ColumnTable_rb.html +5 -3
  342. data/doc/lib/reports/GanttChart_rb.html +5 -3
  343. data/doc/lib/reports/GanttContainer_rb.html +5 -3
  344. data/doc/lib/reports/GanttHeaderScaleItem_rb.html +5 -3
  345. data/doc/lib/reports/GanttHeader_rb.html +5 -3
  346. data/doc/lib/reports/GanttLine_rb.html +5 -3
  347. data/doc/lib/reports/GanttLoadStack_rb.html +5 -3
  348. data/doc/lib/reports/GanttMilestone_rb.html +5 -3
  349. data/doc/lib/reports/GanttRouter_rb.html +5 -3
  350. data/doc/lib/reports/GanttTaskBar_rb.html +5 -3
  351. data/doc/lib/reports/HTMLGraphics_rb.html +5 -3
  352. data/doc/lib/reports/Navigator_rb.html +5 -3
  353. data/doc/lib/reports/NikuReport_rb.html +5 -3
  354. data/doc/lib/reports/ReportBase_rb.html +5 -3
  355. data/doc/lib/reports/ReportContext_rb.html +5 -3
  356. data/doc/lib/reports/ReportTableCell_rb.html +5 -3
  357. data/doc/lib/reports/ReportTableColumn_rb.html +5 -3
  358. data/doc/lib/reports/ReportTableLegend_rb.html +5 -3
  359. data/doc/lib/reports/ReportTableLine_rb.html +5 -3
  360. data/doc/lib/reports/ReportTable_rb.html +5 -3
  361. data/doc/lib/reports/Report_rb.html +5 -3
  362. data/doc/lib/reports/ResourceListRE_rb.html +5 -3
  363. data/doc/lib/reports/StatusSheetReport_rb.html +5 -3
  364. data/doc/lib/reports/TableReport_rb.html +5 -3
  365. data/doc/lib/reports/TaskListRE_rb.html +5 -3
  366. data/doc/lib/reports/TextReport_rb.html +5 -3
  367. data/doc/lib/reports/TimeSheetReport_rb.html +5 -3
  368. data/doc/lib/reports/TjpExportRE_rb.html +5 -3
  369. data/doc/lib/{taskjuggler3_rb.html → tj3_rb.html} +7 -5
  370. data/doc/lib/tj3client_rb.html +5 -3
  371. data/doc/lib/tj3d_rb.html +6 -4
  372. data/doc/lib/tj3man_rb.html +5 -3
  373. data/doc/lib/tj3ss_receiver_rb.html +5 -3
  374. data/doc/lib/tj3ss_sender_rb.html +5 -3
  375. data/doc/lib/tj3ts_receiver_rb.html +5 -3
  376. data/doc/lib/tj3ts_sender_rb.html +5 -3
  377. data/doc/lib/tj3ts_summary_rb.html +5 -3
  378. data/examples/tutorial.tjp +13 -5
  379. data/gem_spec.rb +3 -0
  380. data/lib/Account.rb +2 -1
  381. data/lib/AccountScenario.rb +2 -1
  382. data/lib/Allocation.rb +2 -1
  383. data/lib/AppConfig.rb +2 -1
  384. data/lib/AttributeBase.rb +19 -5
  385. data/lib/AttributeDefinition.rb +2 -1
  386. data/lib/Attributes.rb +49 -38
  387. data/lib/BatchProcessor.rb +2 -1
  388. data/lib/Booking.rb +2 -1
  389. data/lib/Charge.rb +2 -1
  390. data/lib/ChargeSet.rb +2 -1
  391. data/lib/DataCache.rb +15 -1
  392. data/lib/FileList.rb +2 -1
  393. data/lib/HTMLDocument.rb +2 -1
  394. data/lib/Interval.rb +2 -1
  395. data/lib/IntervalList.rb +100 -0
  396. data/lib/Journal.rb +8 -2
  397. data/lib/KeywordArray.rb +2 -1
  398. data/lib/KeywordDocumentation.rb +10 -6
  399. data/lib/Limits.rb +2 -1
  400. data/lib/Log.rb +3 -2
  401. data/lib/LogFile.rb +2 -1
  402. data/lib/LogicalExpression.rb +2 -1
  403. data/lib/LogicalFunction.rb +2 -1
  404. data/lib/LogicalOperation.rb +2 -1
  405. data/lib/MacroTable.rb +2 -1
  406. data/lib/MessageHandler.rb +2 -1
  407. data/lib/Project.rb +92 -25
  408. data/lib/ProjectFileParser.rb +7 -2
  409. data/lib/ProjectFileScanner.rb +2 -1
  410. data/lib/PropertyList.rb +2 -1
  411. data/lib/PropertySet.rb +2 -6
  412. data/lib/PropertyTreeNode.rb +22 -44
  413. data/lib/Query.rb +32 -13
  414. data/lib/RTFHandlers.rb +2 -1
  415. data/lib/RTFNavigator.rb +2 -1
  416. data/lib/RTFQuery.rb +3 -2
  417. data/lib/RTFReport.rb +2 -1
  418. data/lib/RTFReportLink.rb +2 -1
  419. data/lib/RTFWithQuerySupport.rb +2 -1
  420. data/lib/RealFormat.rb +2 -1
  421. data/lib/Resource.rb +2 -1
  422. data/lib/ResourceScenario.rb +35 -14
  423. data/lib/RichText.rb +2 -1
  424. data/lib/RichTextDocument.rb +2 -1
  425. data/lib/RichTextElement.rb +2 -1
  426. data/lib/RichTextFunctionExample.rb +2 -1
  427. data/lib/RichTextFunctionHandler.rb +2 -1
  428. data/lib/RichTextParser.rb +2 -1
  429. data/lib/RichTextScanner.rb +2 -1
  430. data/lib/RichTextSnip.rb +2 -1
  431. data/lib/RichTextSyntaxRules.rb +2 -1
  432. data/lib/RuntimeConfig.rb +2 -1
  433. data/lib/Scenario.rb +2 -1
  434. data/lib/ScenarioData.rb +2 -1
  435. data/lib/Scoreboard.rb +27 -8
  436. data/lib/SheetHandlerBase.rb +2 -1
  437. data/lib/SheetReceiver.rb +2 -1
  438. data/lib/SheetSender.rb +2 -1
  439. data/lib/Shift.rb +2 -1
  440. data/lib/ShiftAssignments.rb +2 -1
  441. data/lib/ShiftScenario.rb +2 -1
  442. data/lib/SimpleQueryExpander.rb +2 -1
  443. data/lib/SourceFileInfo.rb +2 -1
  444. data/lib/StatusSheetReceiver.rb +2 -1
  445. data/lib/StatusSheetSender.rb +2 -1
  446. data/lib/SyntaxReference.rb +2 -1
  447. data/lib/TOCEntry.rb +2 -1
  448. data/lib/TableColumnDefinition.rb +9 -2
  449. data/lib/TableOfContents.rb +2 -1
  450. data/lib/Task.rb +2 -1
  451. data/lib/TaskDependency.rb +2 -1
  452. data/lib/TaskJuggler.rb +8 -6
  453. data/lib/TaskScenario.rb +337 -153
  454. data/lib/TextFormatter.rb +3 -2
  455. data/lib/TextParser.rb +7 -2
  456. data/lib/TextParser/Pattern.rb +2 -1
  457. data/lib/TextParser/Rule.rb +2 -1
  458. data/lib/TextParser/StackElement.rb +2 -1
  459. data/lib/TextParser/State.rb +3 -2
  460. data/lib/TextParser/TokenDoc.rb +2 -1
  461. data/lib/TextScanner.rb +12 -5
  462. data/lib/TimeSheetReceiver.rb +2 -1
  463. data/lib/TimeSheetSender.rb +2 -1
  464. data/lib/TimeSheetSummary.rb +3 -2
  465. data/lib/TimeSheets.rb +2 -1
  466. data/lib/Tj3AppBase.rb +6 -5
  467. data/lib/Tj3Config.rb +5 -4
  468. data/lib/Tj3SheetAppBase.rb +2 -1
  469. data/lib/TjException.rb +2 -1
  470. data/lib/TjTime.rb +2 -1
  471. data/lib/TjpExample.rb +2 -1
  472. data/lib/TjpSyntaxRules.rb +264 -65
  473. data/lib/URLParameter.rb +2 -1
  474. data/lib/UTF8String.rb +2 -1
  475. data/lib/UserManual.rb +2 -1
  476. data/lib/VimSyntax.rb +3 -2
  477. data/lib/WorkingHours.rb +2 -1
  478. data/lib/XMLDocument.rb +2 -1
  479. data/lib/XMLElement.rb +2 -1
  480. data/lib/daemon/Daemon.rb +3 -1
  481. data/lib/daemon/ProcessIntercom.rb +3 -1
  482. data/lib/daemon/ProjectBroker.rb +84 -32
  483. data/lib/daemon/ProjectServer.rb +5 -3
  484. data/lib/daemon/ReportServer.rb +8 -5
  485. data/lib/daemon/ReportServlet.rb +166 -0
  486. data/lib/daemon/WebServer.rb +6 -150
  487. data/lib/daemon/WelcomePage.rb +80 -0
  488. data/lib/deep_copy.rb +2 -1
  489. data/lib/reports/CSVFile.rb +2 -1
  490. data/lib/reports/CollisionDetector.rb +2 -1
  491. data/lib/reports/ColumnTable.rb +2 -1
  492. data/lib/reports/GanttChart.rb +2 -1
  493. data/lib/reports/GanttContainer.rb +3 -4
  494. data/lib/reports/GanttHeader.rb +2 -1
  495. data/lib/reports/GanttHeaderScaleItem.rb +2 -1
  496. data/lib/reports/GanttLine.rb +12 -10
  497. data/lib/reports/GanttLoadStack.rb +2 -1
  498. data/lib/reports/GanttMilestone.rb +3 -3
  499. data/lib/reports/GanttRouter.rb +4 -1
  500. data/lib/reports/GanttTaskBar.rb +9 -7
  501. data/lib/reports/HTMLGraphics.rb +2 -1
  502. data/lib/reports/Navigator.rb +2 -1
  503. data/lib/reports/NikuReport.rb +79 -49
  504. data/lib/reports/Report.rb +42 -10
  505. data/lib/reports/ReportBase.rb +2 -1
  506. data/lib/reports/ReportContext.rb +2 -1
  507. data/lib/reports/ReportTable.rb +2 -1
  508. data/lib/reports/ReportTableCell.rb +63 -28
  509. data/lib/reports/ReportTableColumn.rb +2 -1
  510. data/lib/reports/ReportTableLegend.rb +5 -5
  511. data/lib/reports/ReportTableLine.rb +2 -1
  512. data/lib/reports/ResourceListRE.rb +2 -1
  513. data/lib/reports/StatusSheetReport.rb +4 -2
  514. data/lib/reports/TableReport.rb +42 -38
  515. data/lib/reports/TaskListRE.rb +4 -2
  516. data/lib/reports/TextReport.rb +2 -1
  517. data/lib/reports/TimeSheetReport.rb +4 -2
  518. data/lib/reports/TjpExportRE.rb +4 -2
  519. data/lib/{taskjuggler3.rb → tj3.rb} +6 -5
  520. data/lib/tj3client.rb +19 -36
  521. data/lib/tj3d.rb +6 -2
  522. data/lib/tj3man.rb +4 -3
  523. data/lib/tj3ss_receiver.rb +2 -1
  524. data/lib/tj3ss_sender.rb +2 -1
  525. data/lib/tj3ts_receiver.rb +2 -1
  526. data/lib/tj3ts_sender.rb +2 -1
  527. data/lib/tj3ts_summary.rb +2 -1
  528. data/manual/Day_To_Day_Juggling +36 -0
  529. data/manual/How_To_Contribute +9 -4
  530. data/manual/Installation +10 -3
  531. data/manual/TaskJuggler_Internals +0 -2
  532. data/manual/Tutorial +25 -3
  533. data/prj_cfg.rb +4 -2
  534. data/spec/IntervalList_spec.rb +138 -0
  535. data/spec/ProjectBroker_spec.rb +133 -0
  536. data/tasks/changelog.rake +41 -24
  537. data/tasks/csts.rake +1 -0
  538. data/tasks/gem.rake +1 -0
  539. data/tasks/rcov.rake +1 -1
  540. data/tasks/spec.rake +7 -0
  541. data/tasks/test.rake +1 -0
  542. data/test/MessageChecker.rb +2 -1
  543. data/test/TestSuite/CSV-Reports/niku.tjp +70 -0
  544. data/test/TestSuite/CSV-Reports/{celltext-Reference.csv → refs/celltext.csv} +0 -0
  545. data/test/TestSuite/CSV-Reports/refs/niku.csv +5 -0
  546. data/test/TestSuite/CSV-Reports/{resourcereport-Reference.csv → refs/resourcereport.csv} +0 -0
  547. data/test/TestSuite/CSV-Reports/{resourcereport_with_tasks-Reference.csv → refs/resourcereport_with_tasks.csv} +0 -0
  548. data/test/TestSuite/CSV-Reports/{sortByTree-Reference.csv → refs/sortByTree.csv} +0 -0
  549. data/test/TestSuite/CSV-Reports/{sortBy_duration.down-Reference.csv → refs/sortBy_duration.down.csv} +0 -0
  550. data/test/TestSuite/CSV-Reports/{sortBy_effort.up-Reference.csv → refs/sortBy_effort.up.csv} +0 -0
  551. data/test/TestSuite/CSV-Reports/{sortBy_plan.start.down-Reference.csv → refs/sortBy_plan.start.down.csv} +0 -0
  552. data/test/TestSuite/CSV-Reports/{taskreport-Reference.csv → refs/taskreport.csv} +0 -0
  553. data/test/TestSuite/CSV-Reports/{taskreport_with_resources-Reference.csv → refs/taskreport_with_resources.csv} +0 -0
  554. data/test/TestSuite/CSV-Reports/{weekly-Reference.csv → refs/weekly.csv} +0 -0
  555. data/test/TestSuite/HTML-Reports/Alerts.tjp +12 -0
  556. data/test/TestSuite/Scheduler/Correct/Allocate.tjp +2 -2
  557. data/test/TestSuite/Scheduler/Correct/Container-2.tjp +1 -2
  558. data/test/TestSuite/Scheduler/Correct/InheritedAttributes.tjp +77 -0
  559. data/test/TestSuite/Scheduler/Correct/WeakDeps.tjp +40 -0
  560. data/test/TestSuite/Scheduler/Errors/loop_detected_12.tjp +2 -2
  561. data/test/TestSuite/Scheduler/Errors/loop_detected_13.tjp +3 -4
  562. data/test/TestSuite/Scheduler/Errors/loop_detected_3.tjp +2 -2
  563. data/test/TestSuite/Scheduler/Errors/loop_detected_6.tjp +8 -7
  564. data/test/TestSuite/Scheduler/Errors/onend_wrong_direction.tjp +19 -0
  565. data/test/TestSuite/Scheduler/Errors/onstart_wrong_direction.tjp +18 -0
  566. data/test/TestSuite/Scheduler/Errors/task_depend_multi.tjp +1 -2
  567. data/test/TestSuite/StatusSheets/StatusSheetTemplates/2002-03-02/boss_2002-03-02.tji +46 -0
  568. data/test/TestSuite/StatusSheets/StatusSheetTemplates/2002-03-02/dev2_2002-03-02.tji +22 -0
  569. data/test/TestSuite/StatusSheets/StatusSheetTemplates/2002-03-02/resources.yml +11 -0
  570. data/test/TestSuite/StatusSheets/StatusSheetTemplates/acceptable_intervals +1 -0
  571. data/test/TestSuite/StatusSheets/sender.log +256 -0
  572. data/test/TestSuite/StatusSheets/statussheets.log +9 -0
  573. data/test/TestSuite/StatusSheets/tj3d.log +395 -0
  574. data/test/TestSuite/Syntax/Correct/Limits-1.tjp +2 -0
  575. data/test/TestSuite/Syntax/Correct/Niku.tjp +6 -1
  576. data/test/TestSuite/Syntax/Correct/Scenario.tjp +4 -1
  577. data/test/TestSuite/Syntax/Correct/Supplement.tjp +12 -5
  578. data/test/TestSuite/Syntax/Correct/TaskPrefix.tji +3 -0
  579. data/test/TestSuite/Syntax/Correct/TaskPrefix.tjp +24 -0
  580. data/test/TestSuite/Syntax/Correct/css/tjreport.css +7 -2
  581. data/test/TestSuite/Syntax/Correct/tutorial.tjp +15 -5
  582. data/test/all.rb +2 -4
  583. data/test/test_BatchProcessor.rb +2 -1
  584. data/test/test_CSV-Reports.rb +34 -23
  585. data/test/test_CSVFile.rb +2 -1
  586. data/test/test_CollisionDetector.rb +3 -2
  587. data/test/test_Journal.rb +2 -1
  588. data/test/test_Limits.rb +2 -1
  589. data/test/test_LogicalExpression.rb +2 -1
  590. data/test/test_MacroTable.rb +2 -1
  591. data/test/test_Project.rb +3 -2
  592. data/test/test_ProjectFileScanner.rb +2 -1
  593. data/test/test_PropertySet.rb +2 -1
  594. data/test/test_Query.rb +2 -1
  595. data/test/test_RealFormat.rb +2 -1
  596. data/test/test_ReportGenerator.rb +2 -1
  597. data/test/test_RichText.rb +2 -1
  598. data/test/test_Scheduler.rb +2 -1
  599. data/test/test_ShiftAssignments.rb +2 -1
  600. data/test/test_SimpleQueryExpander.rb +2 -1
  601. data/test/test_Syntax.rb +2 -1
  602. data/test/test_TextFormatter.rb +3 -2
  603. data/test/test_TjTime.rb +2 -1
  604. data/test/test_TjpExample.rb +2 -1
  605. data/test/test_URLParameter.rb +2 -1
  606. data/test/test_UTF8String.rb +2 -1
  607. data/test/test_WorkingHours.rb +2 -1
  608. data/test/test_deep_copy.rb +2 -1
  609. metadata +74 -20
  610. data/doc/StringIO.html +0 -595
  611. data/test/TestSuite/Scheduler/Errors/loop_detected_7.tjp +0 -46
  612. data/test/TestSuite/Scheduler/Errors/loop_detected_8.tjp +0 -51
  613. data/test/TestSuite/Scheduler/Errors/multiple_durations.tjp +0 -11
@@ -135,6 +135,8 @@
135
135
 
136
136
  <li><a href="../TaskJuggler/AttributeDefinition.html">TaskJuggler::AttributeDefinition</a></li>
137
137
 
138
+ <li><a href="../TaskJuggler/AttributeOverwrite.html">TaskJuggler::AttributeOverwrite</a></li>
139
+
138
140
  <li><a href="../TaskJuggler/BatchProcessor.html">TaskJuggler::BatchProcessor</a></li>
139
141
 
140
142
  <li><a href="../TaskJuggler/Booking.html">TaskJuggler::Booking</a></li>
@@ -213,6 +215,8 @@
213
215
 
214
216
  <li><a href="../TaskJuggler/Interval.html">TaskJuggler::Interval</a></li>
215
217
 
218
+ <li><a href="../TaskJuggler/IntervalList.html">TaskJuggler::IntervalList</a></li>
219
+
216
220
  <li><a href="../TaskJuggler/IntervalListAttribute.html">TaskJuggler::IntervalListAttribute</a></li>
217
221
 
218
222
  <li><a href="../TaskJuggler/JobInfo.html">TaskJuggler::JobInfo</a></li>
@@ -245,6 +249,8 @@
245
249
 
246
250
  <li><a href="../TaskJuggler/LogicalExpressionAttribute.html">TaskJuggler::LogicalExpressionAttribute</a></li>
247
251
 
252
+ <li><a href="../TaskJuggler/LogicalExpressionListAttribute.html">TaskJuggler::LogicalExpressionListAttribute</a></li>
253
+
248
254
  <li><a href="../TaskJuggler/LogicalFlag.html">TaskJuggler::LogicalFlag</a></li>
249
255
 
250
256
  <li><a href="../TaskJuggler/LogicalFunction.html">TaskJuggler::LogicalFunction</a></li>
@@ -525,6 +531,8 @@
525
531
 
526
532
  <li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
527
533
 
534
+ <li><a href="../TaskJuggler/WelcomePage.html">TaskJuggler::WelcomePage</a></li>
535
+
528
536
  <li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
529
537
 
530
538
  <li><a href="../TaskJuggler/WorkingHoursAttribute.html">TaskJuggler::WorkingHoursAttribute</a></li>
@@ -551,8 +559,6 @@
551
559
 
552
560
  <li><a href="../String.html">String</a></li>
553
561
 
554
- <li><a href="../StringIO.html">StringIO</a></li>
555
-
556
562
  </ul>
557
563
  <div id="no-class-search-results" style="display: none;">No matching classes.</div>
558
564
  </div>
@@ -661,14 +667,14 @@ href="Navigator.html">Navigator</a> depends on the output format.
661
667
  <div class="method-source-code"
662
668
  id="new-source">
663
669
  <pre>
664
- <span class="ruby-comment cmt"># File lib/reports/Navigator.rb, line 119</span>
665
- 119: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">project</span>)
666
- 120: <span class="ruby-ivar">@id</span> = <span class="ruby-identifier">id</span>
667
- 121: <span class="ruby-ivar">@project</span> = <span class="ruby-identifier">project</span>
668
- 122: <span class="ruby-ivar">@hideReport</span> = <span class="ruby-constant">LogicalExpression</span>.<span class="ruby-identifier">new</span>(<span class="ruby-constant">LogicalOperation</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value">0</span>))
669
- 123: <span class="ruby-ivar">@reportRoot</span> = <span class="ruby-keyword kw">nil</span>
670
- 124: <span class="ruby-ivar">@elements</span> = []
671
- 125: <span class="ruby-keyword kw">end</span></pre>
670
+ <span class="ruby-comment cmt"># File lib/reports/Navigator.rb, line 120</span>
671
+ 120: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">project</span>)
672
+ 121: <span class="ruby-ivar">@id</span> = <span class="ruby-identifier">id</span>
673
+ 122: <span class="ruby-ivar">@project</span> = <span class="ruby-identifier">project</span>
674
+ 123: <span class="ruby-ivar">@hideReport</span> = <span class="ruby-constant">LogicalExpression</span>.<span class="ruby-identifier">new</span>(<span class="ruby-constant">LogicalOperation</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value">0</span>))
675
+ 124: <span class="ruby-ivar">@reportRoot</span> = <span class="ruby-keyword kw">nil</span>
676
+ 125: <span class="ruby-ivar">@elements</span> = []
677
+ 126: <span class="ruby-keyword kw">end</span></pre>
672
678
  </div>
673
679
 
674
680
  </div>
@@ -708,50 +714,50 @@ tree of <a href="NavigatorElement.html">NavigatorElement</a> objects.
708
714
  <div class="method-source-code"
709
715
  id="generate-source">
710
716
  <pre>
711
- <span class="ruby-comment cmt"># File lib/reports/Navigator.rb, line 129</span>
712
- 129: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generate</span>(<span class="ruby-identifier">reports</span>, <span class="ruby-identifier">reportRoot</span>, <span class="ruby-identifier">parentElement</span>)
713
- 130: <span class="ruby-identifier">reportDef</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">reportContexts</span>.<span class="ruby-identifier">last</span>.<span class="ruby-identifier">report</span>
714
- 131: <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;Report context missing&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">reportDef</span>
715
- 132:
716
- 133: <span class="ruby-identifier">interactive</span> = <span class="ruby-keyword kw">false</span>
717
- 134: <span class="ruby-identifier">reports</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">report</span><span class="ruby-operator">|</span>
718
- 135: <span class="ruby-comment cmt"># The outermost (top-level) report determines whether the report</span>
719
- 136: <span class="ruby-comment cmt"># should be rendered interactive or not.</span>
720
- 137: <span class="ruby-identifier">interactive</span> = <span class="ruby-identifier">report</span>.<span class="ruby-identifier">interactive?</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">interactive</span>
721
- 138:
722
- 139: <span class="ruby-identifier">hasURL</span> = <span class="ruby-identifier">report</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value str">'formats'</span>).<span class="ruby-identifier">include?</span>(<span class="ruby-value">:html</span>)
723
- 140: <span class="ruby-comment cmt"># Only generate menu entries for reports that are not the reportRoot,</span>
724
- 141: <span class="ruby-comment cmt"># that are leaf reports and have an HTML output format.</span>
725
- 142: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">report</span>.<span class="ruby-identifier">parent</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">reportRoot</span>) <span class="ruby-operator">||</span>
726
- 143: (<span class="ruby-identifier">report</span>.<span class="ruby-identifier">leaf?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">hasURL</span>)
727
- 144:
728
- 145: <span class="ruby-identifier">label</span> = <span class="ruby-identifier">report</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value str">'title'</span>) <span class="ruby-operator">||</span> <span class="ruby-identifier">report</span>.<span class="ruby-identifier">name</span>
729
- 146: <span class="ruby-comment cmt"># Determine the URL for this element.</span>
730
- 147: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">hasURL</span>
731
- 148: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">interactive</span>
732
- 149: <span class="ruby-identifier">url</span> = <span class="ruby-node">&quot;/taskjuggler?project=#{report.project['projectid']};&quot;</span> <span class="ruby-operator">+</span>
733
- 150: <span class="ruby-node">&quot;report=#{report.fullId}&quot;</span>
734
- 151: <span class="ruby-keyword kw">else</span>
735
- 152: <span class="ruby-identifier">url</span> = <span class="ruby-identifier">report</span>.<span class="ruby-identifier">name</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'.html'</span>
736
- 153: <span class="ruby-identifier">url</span> = <span class="ruby-identifier">normalizeURL</span>(<span class="ruby-identifier">url</span>, <span class="ruby-identifier">reportDef</span>.<span class="ruby-identifier">name</span>)
737
- 154: <span class="ruby-keyword kw">end</span>
738
- 155: <span class="ruby-keyword kw">end</span>
739
- 156: <span class="ruby-identifier">parentElement</span>.<span class="ruby-identifier">elements</span> <span class="ruby-operator">&lt;&lt;</span>
740
- 157: (<span class="ruby-identifier">element</span> = <span class="ruby-constant">NavigatorElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">parentElement</span>, <span class="ruby-identifier">label</span>, <span class="ruby-identifier">url</span>))
741
- 158:
742
- 159: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">report</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">reportDef</span>
743
- 160: <span class="ruby-identifier">element</span>.<span class="ruby-identifier">currentUrl</span> = <span class="ruby-identifier">url</span>
744
- 161: <span class="ruby-comment cmt"># Mark this element and all its parents as current.</span>
745
- 162: <span class="ruby-identifier">nEl</span> = <span class="ruby-identifier">element</span>
746
- 163: <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">nEl</span>
747
- 164: <span class="ruby-identifier">nEl</span>.<span class="ruby-identifier">current</span> = <span class="ruby-keyword kw">true</span>
748
- 165: <span class="ruby-identifier">nEl</span> = <span class="ruby-identifier">nEl</span>.<span class="ruby-identifier">parent</span>
749
- 166: <span class="ruby-keyword kw">end</span>
750
- 167: <span class="ruby-keyword kw">end</span>
751
- 168:
752
- 169: <span class="ruby-identifier">generate</span>(<span class="ruby-identifier">reports</span>, <span class="ruby-identifier">report</span>, <span class="ruby-identifier">element</span>)
753
- 170: <span class="ruby-keyword kw">end</span>
754
- 171: <span class="ruby-keyword kw">end</span></pre>
717
+ <span class="ruby-comment cmt"># File lib/reports/Navigator.rb, line 130</span>
718
+ 130: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generate</span>(<span class="ruby-identifier">reports</span>, <span class="ruby-identifier">reportRoot</span>, <span class="ruby-identifier">parentElement</span>)
719
+ 131: <span class="ruby-identifier">reportDef</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">reportContexts</span>.<span class="ruby-identifier">last</span>.<span class="ruby-identifier">report</span>
720
+ 132: <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;Report context missing&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">reportDef</span>
721
+ 133:
722
+ 134: <span class="ruby-identifier">interactive</span> = <span class="ruby-keyword kw">false</span>
723
+ 135: <span class="ruby-identifier">reports</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">report</span><span class="ruby-operator">|</span>
724
+ 136: <span class="ruby-comment cmt"># The outermost (top-level) report determines whether the report</span>
725
+ 137: <span class="ruby-comment cmt"># should be rendered interactive or not.</span>
726
+ 138: <span class="ruby-identifier">interactive</span> = <span class="ruby-identifier">report</span>.<span class="ruby-identifier">interactive?</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">interactive</span>
727
+ 139:
728
+ 140: <span class="ruby-identifier">hasURL</span> = <span class="ruby-identifier">report</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value str">'formats'</span>).<span class="ruby-identifier">include?</span>(<span class="ruby-value">:html</span>)
729
+ 141: <span class="ruby-comment cmt"># Only generate menu entries for reports that are not the reportRoot,</span>
730
+ 142: <span class="ruby-comment cmt"># that are leaf reports and have an HTML output format.</span>
731
+ 143: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">report</span>.<span class="ruby-identifier">parent</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">reportRoot</span>) <span class="ruby-operator">||</span>
732
+ 144: (<span class="ruby-identifier">report</span>.<span class="ruby-identifier">leaf?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">hasURL</span>)
733
+ 145:
734
+ 146: <span class="ruby-identifier">label</span> = <span class="ruby-identifier">report</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value str">'title'</span>) <span class="ruby-operator">||</span> <span class="ruby-identifier">report</span>.<span class="ruby-identifier">name</span>
735
+ 147: <span class="ruby-comment cmt"># Determine the URL for this element.</span>
736
+ 148: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">hasURL</span>
737
+ 149: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">interactive</span>
738
+ 150: <span class="ruby-identifier">url</span> = <span class="ruby-node">&quot;/taskjuggler?project=#{report.project['projectid']};&quot;</span> <span class="ruby-operator">+</span>
739
+ 151: <span class="ruby-node">&quot;report=#{report.fullId}&quot;</span>
740
+ 152: <span class="ruby-keyword kw">else</span>
741
+ 153: <span class="ruby-identifier">url</span> = <span class="ruby-identifier">report</span>.<span class="ruby-identifier">name</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'.html'</span>
742
+ 154: <span class="ruby-identifier">url</span> = <span class="ruby-identifier">normalizeURL</span>(<span class="ruby-identifier">url</span>, <span class="ruby-identifier">reportDef</span>.<span class="ruby-identifier">name</span>)
743
+ 155: <span class="ruby-keyword kw">end</span>
744
+ 156: <span class="ruby-keyword kw">end</span>
745
+ 157: <span class="ruby-identifier">parentElement</span>.<span class="ruby-identifier">elements</span> <span class="ruby-operator">&lt;&lt;</span>
746
+ 158: (<span class="ruby-identifier">element</span> = <span class="ruby-constant">NavigatorElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">parentElement</span>, <span class="ruby-identifier">label</span>, <span class="ruby-identifier">url</span>))
747
+ 159:
748
+ 160: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">report</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">reportDef</span>
749
+ 161: <span class="ruby-identifier">element</span>.<span class="ruby-identifier">currentUrl</span> = <span class="ruby-identifier">url</span>
750
+ 162: <span class="ruby-comment cmt"># Mark this element and all its parents as current.</span>
751
+ 163: <span class="ruby-identifier">nEl</span> = <span class="ruby-identifier">element</span>
752
+ 164: <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">nEl</span>
753
+ 165: <span class="ruby-identifier">nEl</span>.<span class="ruby-identifier">current</span> = <span class="ruby-keyword kw">true</span>
754
+ 166: <span class="ruby-identifier">nEl</span> = <span class="ruby-identifier">nEl</span>.<span class="ruby-identifier">parent</span>
755
+ 167: <span class="ruby-keyword kw">end</span>
756
+ 168: <span class="ruby-keyword kw">end</span>
757
+ 169:
758
+ 170: <span class="ruby-identifier">generate</span>(<span class="ruby-identifier">reports</span>, <span class="ruby-identifier">report</span>, <span class="ruby-identifier">element</span>)
759
+ 171: <span class="ruby-keyword kw">end</span>
760
+ 172: <span class="ruby-keyword kw">end</span></pre>
755
761
  </div>
756
762
 
757
763
  </div>
@@ -782,14 +788,14 @@ tree of <a href="NavigatorElement.html">NavigatorElement</a> objects.
782
788
  <div class="method-source-code"
783
789
  id="to-html-source">
784
790
  <pre>
785
- <span class="ruby-comment cmt"># File lib/reports/Navigator.rb, line 173</span>
786
- 173: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_html</span>
787
- 174: <span class="ruby-identifier">reports</span> = <span class="ruby-identifier">filterReports</span>
788
- 175: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">reports</span>.<span class="ruby-identifier">empty?</span>
789
- 176:
790
- 177: <span class="ruby-identifier">generate</span>(<span class="ruby-identifier">reports</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">content</span> = <span class="ruby-constant">NavigatorElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">nil</span>))
791
- 178: <span class="ruby-identifier">content</span>.<span class="ruby-identifier">to_html</span>
792
- 179: <span class="ruby-keyword kw">end</span></pre>
791
+ <span class="ruby-comment cmt"># File lib/reports/Navigator.rb, line 174</span>
792
+ 174: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_html</span>
793
+ 175: <span class="ruby-identifier">reports</span> = <span class="ruby-identifier">filterReports</span>
794
+ 176: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">reports</span>.<span class="ruby-identifier">empty?</span>
795
+ 177:
796
+ 178: <span class="ruby-identifier">generate</span>(<span class="ruby-identifier">reports</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">content</span> = <span class="ruby-constant">NavigatorElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">nil</span>))
797
+ 179: <span class="ruby-identifier">content</span>.<span class="ruby-identifier">to_html</span>
798
+ 180: <span class="ruby-keyword kw">end</span></pre>
793
799
  </div>
794
800
 
795
801
  </div>
@@ -826,20 +832,20 @@ tree of <a href="NavigatorElement.html">NavigatorElement</a> objects.
826
832
  <div class="method-source-code"
827
833
  id="filter-eports-source">
828
834
  <pre>
829
- <span class="ruby-comment cmt"># File lib/reports/Navigator.rb, line 183</span>
830
- 183: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">filterReports</span>
831
- 184: <span class="ruby-identifier">list</span> = <span class="ruby-constant">PropertyList</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@project</span>.<span class="ruby-identifier">reports</span>)
832
- 185: <span class="ruby-identifier">list</span>.<span class="ruby-identifier">setSorting</span>([[ <span class="ruby-value str">'seqno'</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-value">1</span> ]])
833
- 186: <span class="ruby-identifier">list</span>.<span class="ruby-identifier">sort!</span>
834
- 187: <span class="ruby-comment cmt"># Remove all reports that the user doesn't want to have include.</span>
835
- 188: <span class="ruby-identifier">query</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">reportContexts</span>.<span class="ruby-identifier">last</span>.<span class="ruby-identifier">query</span>.<span class="ruby-identifier">dup</span>
836
- 189: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">scopeProperty</span> = <span class="ruby-keyword kw">nil</span>
837
- 190: <span class="ruby-identifier">list</span>.<span class="ruby-identifier">delete_if</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">property</span><span class="ruby-operator">|</span>
838
- 191: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">property</span> = <span class="ruby-identifier">property</span>
839
- 192: <span class="ruby-ivar">@hideReport</span>.<span class="ruby-identifier">eval</span>(<span class="ruby-identifier">query</span>)
840
- 193: <span class="ruby-keyword kw">end</span>
841
- 194: <span class="ruby-identifier">list</span>
842
- 195: <span class="ruby-keyword kw">end</span></pre>
835
+ <span class="ruby-comment cmt"># File lib/reports/Navigator.rb, line 184</span>
836
+ 184: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">filterReports</span>
837
+ 185: <span class="ruby-identifier">list</span> = <span class="ruby-constant">PropertyList</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@project</span>.<span class="ruby-identifier">reports</span>)
838
+ 186: <span class="ruby-identifier">list</span>.<span class="ruby-identifier">setSorting</span>([[ <span class="ruby-value str">'seqno'</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-value">1</span> ]])
839
+ 187: <span class="ruby-identifier">list</span>.<span class="ruby-identifier">sort!</span>
840
+ 188: <span class="ruby-comment cmt"># Remove all reports that the user doesn't want to have include.</span>
841
+ 189: <span class="ruby-identifier">query</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">reportContexts</span>.<span class="ruby-identifier">last</span>.<span class="ruby-identifier">query</span>.<span class="ruby-identifier">dup</span>
842
+ 190: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">scopeProperty</span> = <span class="ruby-keyword kw">nil</span>
843
+ 191: <span class="ruby-identifier">list</span>.<span class="ruby-identifier">delete_if</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">property</span><span class="ruby-operator">|</span>
844
+ 192: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">property</span> = <span class="ruby-identifier">property</span>
845
+ 193: <span class="ruby-ivar">@hideReport</span>.<span class="ruby-identifier">eval</span>(<span class="ruby-identifier">query</span>)
846
+ 194: <span class="ruby-keyword kw">end</span>
847
+ 195: <span class="ruby-identifier">list</span>
848
+ 196: <span class="ruby-keyword kw">end</span></pre>
843
849
  </div>
844
850
 
845
851
  </div>
@@ -873,16 +879,16 @@ Remove the URL or directory path from <em>url1</em> that is identical to
873
879
  <div class="method-source-code"
874
880
  id="normalize--source">
875
881
  <pre>
876
- <span class="ruby-comment cmt"># File lib/reports/Navigator.rb, line 199</span>
877
- 199: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">normalizeURL</span>(<span class="ruby-identifier">url1</span>, <span class="ruby-identifier">url2</span>)
878
- 200: <span class="ruby-identifier">cut</span> = <span class="ruby-value">0</span>
879
- 201: <span class="ruby-identifier">url1</span>.<span class="ruby-identifier">length</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
880
- 202: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">url1</span>[<span class="ruby-identifier">cut</span>, <span class="ruby-identifier">url1</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">cut</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">url1</span>[<span class="ruby-identifier">i</span>] <span class="ruby-operator">!=</span> <span class="ruby-identifier">url2</span>[<span class="ruby-identifier">i</span>]
881
- 203: <span class="ruby-identifier">cut</span> = <span class="ruby-identifier">i</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">url1</span>[<span class="ruby-identifier">i</span>] <span class="ruby-operator">==</span> <span class="ruby-value">//</span>
882
- 204: <span class="ruby-keyword kw">end</span>
883
- 205:
884
- 206: <span class="ruby-identifier">url1</span>
885
- 207: <span class="ruby-keyword kw">end</span></pre>
882
+ <span class="ruby-comment cmt"># File lib/reports/Navigator.rb, line 200</span>
883
+ 200: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">normalizeURL</span>(<span class="ruby-identifier">url1</span>, <span class="ruby-identifier">url2</span>)
884
+ 201: <span class="ruby-identifier">cut</span> = <span class="ruby-value">0</span>
885
+ 202: <span class="ruby-identifier">url1</span>.<span class="ruby-identifier">length</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
886
+ 203: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">url1</span>[<span class="ruby-identifier">cut</span>, <span class="ruby-identifier">url1</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">cut</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">url1</span>[<span class="ruby-identifier">i</span>] <span class="ruby-operator">!=</span> <span class="ruby-identifier">url2</span>[<span class="ruby-identifier">i</span>]
887
+ 204: <span class="ruby-identifier">cut</span> = <span class="ruby-identifier">i</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">url1</span>[<span class="ruby-identifier">i</span>] <span class="ruby-operator">==</span> <span class="ruby-value">//</span>
888
+ 205: <span class="ruby-keyword kw">end</span>
889
+ 206:
890
+ 207: <span class="ruby-identifier">url1</span>
891
+ 208: <span class="ruby-keyword kw">end</span></pre>
886
892
  </div>
887
893
 
888
894
  </div>
@@ -137,6 +137,8 @@
137
137
 
138
138
  <li><a href="../TaskJuggler/AttributeDefinition.html">TaskJuggler::AttributeDefinition</a></li>
139
139
 
140
+ <li><a href="../TaskJuggler/AttributeOverwrite.html">TaskJuggler::AttributeOverwrite</a></li>
141
+
140
142
  <li><a href="../TaskJuggler/BatchProcessor.html">TaskJuggler::BatchProcessor</a></li>
141
143
 
142
144
  <li><a href="../TaskJuggler/Booking.html">TaskJuggler::Booking</a></li>
@@ -215,6 +217,8 @@
215
217
 
216
218
  <li><a href="../TaskJuggler/Interval.html">TaskJuggler::Interval</a></li>
217
219
 
220
+ <li><a href="../TaskJuggler/IntervalList.html">TaskJuggler::IntervalList</a></li>
221
+
218
222
  <li><a href="../TaskJuggler/IntervalListAttribute.html">TaskJuggler::IntervalListAttribute</a></li>
219
223
 
220
224
  <li><a href="../TaskJuggler/JobInfo.html">TaskJuggler::JobInfo</a></li>
@@ -247,6 +251,8 @@
247
251
 
248
252
  <li><a href="../TaskJuggler/LogicalExpressionAttribute.html">TaskJuggler::LogicalExpressionAttribute</a></li>
249
253
 
254
+ <li><a href="../TaskJuggler/LogicalExpressionListAttribute.html">TaskJuggler::LogicalExpressionListAttribute</a></li>
255
+
250
256
  <li><a href="../TaskJuggler/LogicalFlag.html">TaskJuggler::LogicalFlag</a></li>
251
257
 
252
258
  <li><a href="../TaskJuggler/LogicalFunction.html">TaskJuggler::LogicalFunction</a></li>
@@ -527,6 +533,8 @@
527
533
 
528
534
  <li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
529
535
 
536
+ <li><a href="../TaskJuggler/WelcomePage.html">TaskJuggler::WelcomePage</a></li>
537
+
530
538
  <li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
531
539
 
532
540
  <li><a href="../TaskJuggler/WorkingHoursAttribute.html">TaskJuggler::WorkingHoursAttribute</a></li>
@@ -553,8 +561,6 @@
553
561
 
554
562
  <li><a href="../String.html">String</a></li>
555
563
 
556
- <li><a href="../StringIO.html">StringIO</a></li>
557
-
558
564
  </ul>
559
565
  <div id="no-class-search-results" style="display: none;">No matching classes.</div>
560
566
  </div>
@@ -689,16 +695,16 @@
689
695
  <div class="method-source-code"
690
696
  id="new-source">
691
697
  <pre>
692
- <span class="ruby-comment cmt"># File lib/reports/Navigator.rb, line 22</span>
693
- 22: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">parent</span>, <span class="ruby-identifier">label</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">url</span> = <span class="ruby-keyword kw">nil</span>)
694
- 23: <span class="ruby-ivar">@parent</span> = <span class="ruby-identifier">parent</span>
695
- 24: <span class="ruby-ivar">@label</span> = <span class="ruby-identifier">label</span>
696
- 25: <span class="ruby-ivar">@url</span> = <span class="ruby-identifier">url</span>
697
- 26: <span class="ruby-ivar">@elements</span> = []
698
- 27: <span class="ruby-comment cmt"># True if the current report is included in this NavigatorElement or any</span>
699
- 28: <span class="ruby-comment cmt"># of its sub elements.</span>
700
- 29: <span class="ruby-ivar">@current</span> = <span class="ruby-keyword kw">false</span>
701
- 30: <span class="ruby-keyword kw">end</span></pre>
698
+ <span class="ruby-comment cmt"># File lib/reports/Navigator.rb, line 23</span>
699
+ 23: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">parent</span>, <span class="ruby-identifier">label</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">url</span> = <span class="ruby-keyword kw">nil</span>)
700
+ 24: <span class="ruby-ivar">@parent</span> = <span class="ruby-identifier">parent</span>
701
+ 25: <span class="ruby-ivar">@label</span> = <span class="ruby-identifier">label</span>
702
+ 26: <span class="ruby-ivar">@url</span> = <span class="ruby-identifier">url</span>
703
+ 27: <span class="ruby-ivar">@elements</span> = []
704
+ 28: <span class="ruby-comment cmt"># True if the current report is included in this NavigatorElement or any</span>
705
+ 29: <span class="ruby-comment cmt"># of its sub elements.</span>
706
+ 30: <span class="ruby-ivar">@current</span> = <span class="ruby-keyword kw">false</span>
707
+ 31: <span class="ruby-keyword kw">end</span></pre>
702
708
  </div>
703
709
 
704
710
  </div>
@@ -737,10 +743,10 @@ Get the URL of the current report from the root node.
737
743
  <div class="method-source-code"
738
744
  id="current-rl-source">
739
745
  <pre>
740
- <span class="ruby-comment cmt"># File lib/reports/Navigator.rb, line 95</span>
741
- 95: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">currentUrl</span>
742
- 96: <span class="ruby-identifier">root</span>.<span class="ruby-identifier">url</span>
743
- 97: <span class="ruby-keyword kw">end</span></pre>
746
+ <span class="ruby-comment cmt"># File lib/reports/Navigator.rb, line 96</span>
747
+ 96: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">currentUrl</span>
748
+ 97: <span class="ruby-identifier">root</span>.<span class="ruby-identifier">url</span>
749
+ 98: <span class="ruby-keyword kw">end</span></pre>
744
750
  </div>
745
751
 
746
752
  </div>
@@ -775,10 +781,10 @@ used, we use it to store the current URL there.
775
781
  <div class="method-source-code"
776
782
  id="current-rl--source">
777
783
  <pre>
778
- <span class="ruby-comment cmt"># File lib/reports/Navigator.rb, line 90</span>
779
- 90: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">currentUrl=</span>(<span class="ruby-identifier">url</span>)
780
- 91: <span class="ruby-identifier">root</span>.<span class="ruby-identifier">url</span> = <span class="ruby-identifier">url</span>
781
- 92: <span class="ruby-keyword kw">end</span></pre>
784
+ <span class="ruby-comment cmt"># File lib/reports/Navigator.rb, line 91</span>
785
+ 91: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">currentUrl=</span>(<span class="ruby-identifier">url</span>)
786
+ 92: <span class="ruby-identifier">root</span>.<span class="ruby-identifier">url</span> = <span class="ruby-identifier">url</span>
787
+ 93: <span class="ruby-keyword kw">end</span></pre>
782
788
  </div>
783
789
 
784
790
  </div>
@@ -811,14 +817,14 @@ Traverse the tree all the way to the top and return the root element.
811
817
  <div class="method-source-code"
812
818
  id="root-source">
813
819
  <pre>
814
- <span class="ruby-comment cmt"># File lib/reports/Navigator.rb, line 100</span>
815
- 100: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">root</span>
816
- 101: <span class="ruby-identifier">p</span> = <span class="ruby-keyword kw">self</span>
817
- 102: <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">p</span>.<span class="ruby-identifier">parent</span>
818
- 103: <span class="ruby-identifier">p</span> = <span class="ruby-identifier">p</span>.<span class="ruby-identifier">parent</span>
819
- 104: <span class="ruby-keyword kw">end</span>
820
- 105: <span class="ruby-identifier">p</span>
821
- 106: <span class="ruby-keyword kw">end</span></pre>
820
+ <span class="ruby-comment cmt"># File lib/reports/Navigator.rb, line 101</span>
821
+ 101: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">root</span>
822
+ 102: <span class="ruby-identifier">p</span> = <span class="ruby-keyword kw">self</span>
823
+ 103: <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">p</span>.<span class="ruby-identifier">parent</span>
824
+ 104: <span class="ruby-identifier">p</span> = <span class="ruby-identifier">p</span>.<span class="ruby-identifier">parent</span>
825
+ 105: <span class="ruby-keyword kw">end</span>
826
+ 106: <span class="ruby-identifier">p</span>
827
+ 107: <span class="ruby-keyword kw">end</span></pre>
822
828
  </div>
823
829
 
824
830
  </div>
@@ -849,51 +855,51 @@ Traverse the tree all the way to the top and return the root element.
849
855
  <div class="method-source-code"
850
856
  id="to-html-source">
851
857
  <pre>
852
- <span class="ruby-comment cmt"># File lib/reports/Navigator.rb, line 32</span>
853
- 32: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_html</span>
854
- 33: <span class="ruby-identifier">first</span> = <span class="ruby-keyword kw">true</span>
855
- 34: <span class="ruby-identifier">html</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>))
856
- 35:
857
- 36: <span class="ruby-ivar">@elements</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">element</span><span class="ruby-operator">|</span>
858
- 37: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">label</span>
859
- 38:
860
- 39: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">first</span>
861
- 40: <span class="ruby-identifier">first</span> = <span class="ruby-keyword kw">false</span>
862
- 41: <span class="ruby-keyword kw">else</span>
863
- 42: <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-value str">'|'</span>)
864
- 43: <span class="ruby-keyword kw">end</span>
865
- 44:
866
- 45: <span class="ruby-identifier">url</span> = <span class="ruby-identifier">element</span>.<span class="ruby-identifier">url</span>
867
- 46: <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">url</span>
868
- 47: <span class="ruby-identifier">nEl</span> = <span class="ruby-identifier">element</span>
869
- 48: <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">nEl</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value">0</span>]
870
- 49: <span class="ruby-keyword kw">break</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">nEl</span>.<span class="ruby-identifier">current</span>
871
- 50:
872
- 51: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">nEl</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">url</span>
873
- 52: <span class="ruby-identifier">url</span> = <span class="ruby-identifier">nEl</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">url</span>
874
- 53: <span class="ruby-keyword kw">break</span>
875
- 54: <span class="ruby-keyword kw">end</span>
876
- 55: <span class="ruby-identifier">nEl</span> = <span class="ruby-identifier">nEl</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value">0</span>]
877
- 56: <span class="ruby-keyword kw">end</span>
878
- 57: <span class="ruby-keyword kw">end</span>
879
- 58: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">url</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">url</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">currentUrl</span>
880
- 59: <span class="ruby-identifier">div</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">span</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'span'</span>, <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'navbar_other'</span>))
881
- 60: <span class="ruby-identifier">span</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">a</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'a'</span>, <span class="ruby-value str">'href'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">url</span>))
882
- 61: <span class="ruby-identifier">a</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">element</span>.<span class="ruby-identifier">label</span>)
883
- 62: <span class="ruby-keyword kw">else</span>
884
- 63: <span class="ruby-identifier">div</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">span</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'span'</span>,
885
- 64: <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'navbar_current'</span>))
886
- 65: <span class="ruby-identifier">span</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">element</span>.<span class="ruby-identifier">label</span>)
887
- 66: <span class="ruby-keyword kw">end</span>
888
- 67: <span class="ruby-keyword kw">end</span>
889
- 68: <span class="ruby-ivar">@elements</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">element</span><span class="ruby-operator">|</span>
890
- 69: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">element</span>.<span class="ruby-identifier">current</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">element</span>.<span class="ruby-identifier">elements</span>.<span class="ruby-identifier">empty?</span>
891
- 70: <span class="ruby-identifier">html</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">'hr'</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">first</span>
892
- 71: <span class="ruby-identifier">html</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">element</span>.<span class="ruby-identifier">to_html</span>
893
- 72: <span class="ruby-keyword kw">end</span>
894
- 73: <span class="ruby-keyword kw">end</span>
895
- 74: <span class="ruby-identifier">html</span>
896
- 75: <span class="ruby-keyword kw">end</span></pre>
858
+ <span class="ruby-comment cmt"># File lib/reports/Navigator.rb, line 33</span>
859
+ 33: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_html</span>
860
+ 34: <span class="ruby-identifier">first</span> = <span class="ruby-keyword kw">true</span>
861
+ 35: <span class="ruby-identifier">html</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>))
862
+ 36:
863
+ 37: <span class="ruby-ivar">@elements</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">element</span><span class="ruby-operator">|</span>
864
+ 38: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">label</span>
865
+ 39:
866
+ 40: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">first</span>
867
+ 41: <span class="ruby-identifier">first</span> = <span class="ruby-keyword kw">false</span>
868
+ 42: <span class="ruby-keyword kw">else</span>
869
+ 43: <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-value str">'|'</span>)
870
+ 44: <span class="ruby-keyword kw">end</span>
871
+ 45:
872
+ 46: <span class="ruby-identifier">url</span> = <span class="ruby-identifier">element</span>.<span class="ruby-identifier">url</span>
873
+ 47: <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">url</span>
874
+ 48: <span class="ruby-identifier">nEl</span> = <span class="ruby-identifier">element</span>
875
+ 49: <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">nEl</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value">0</span>]
876
+ 50: <span class="ruby-keyword kw">break</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">nEl</span>.<span class="ruby-identifier">current</span>
877
+ 51:
878
+ 52: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">nEl</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">url</span>
879
+ 53: <span class="ruby-identifier">url</span> = <span class="ruby-identifier">nEl</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">url</span>
880
+ 54: <span class="ruby-keyword kw">break</span>
881
+ 55: <span class="ruby-keyword kw">end</span>
882
+ 56: <span class="ruby-identifier">nEl</span> = <span class="ruby-identifier">nEl</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value">0</span>]
883
+ 57: <span class="ruby-keyword kw">end</span>
884
+ 58: <span class="ruby-keyword kw">end</span>
885
+ 59: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">url</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">url</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">currentUrl</span>
886
+ 60: <span class="ruby-identifier">div</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">span</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'span'</span>, <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'navbar_other'</span>))
887
+ 61: <span class="ruby-identifier">span</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">a</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'a'</span>, <span class="ruby-value str">'href'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">url</span>))
888
+ 62: <span class="ruby-identifier">a</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">element</span>.<span class="ruby-identifier">label</span>)
889
+ 63: <span class="ruby-keyword kw">else</span>
890
+ 64: <span class="ruby-identifier">div</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">span</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'span'</span>,
891
+ 65: <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'navbar_current'</span>))
892
+ 66: <span class="ruby-identifier">span</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">element</span>.<span class="ruby-identifier">label</span>)
893
+ 67: <span class="ruby-keyword kw">end</span>
894
+ 68: <span class="ruby-keyword kw">end</span>
895
+ 69: <span class="ruby-ivar">@elements</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">element</span><span class="ruby-operator">|</span>
896
+ 70: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">element</span>.<span class="ruby-identifier">current</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">element</span>.<span class="ruby-identifier">elements</span>.<span class="ruby-identifier">empty?</span>
897
+ 71: <span class="ruby-identifier">html</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">'hr'</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">first</span>
898
+ 72: <span class="ruby-identifier">html</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">element</span>.<span class="ruby-identifier">to_html</span>
899
+ 73: <span class="ruby-keyword kw">end</span>
900
+ 74: <span class="ruby-keyword kw">end</span>
901
+ 75: <span class="ruby-identifier">html</span>
902
+ 76: <span class="ruby-keyword kw">end</span></pre>
897
903
  </div>
898
904
 
899
905
  </div>
@@ -926,15 +932,15 @@ Return a text version of the tree. Currently used for debugging only.
926
932
  <div class="method-source-code"
927
933
  id="to-s-source">
928
934
  <pre>
929
- <span class="ruby-comment cmt"># File lib/reports/Navigator.rb, line 78</span>
930
- 78: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_s</span>(<span class="ruby-identifier">indent</span> = <span class="ruby-value">0</span>)
931
- 79: <span class="ruby-ivar">@elements</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">element</span><span class="ruby-operator">|</span>
932
- 80: <span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;#{' ' * indent}#{element.current ? '&lt;' : ''}&quot;</span> <span class="ruby-operator">+</span>
933
- 81: <span class="ruby-node">&quot;#{element.label}#{element.current ? '&gt;' : ''}&quot;</span> <span class="ruby-operator">+</span>
934
- 82: <span class="ruby-node">&quot; -&gt; #{element.url}&quot;</span>
935
- 83: <span class="ruby-identifier">element</span>.<span class="ruby-identifier">to_s</span>(<span class="ruby-identifier">indent</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>)
936
- 84: <span class="ruby-keyword kw">end</span>
937
- 85: <span class="ruby-keyword kw">end</span></pre>
935
+ <span class="ruby-comment cmt"># File lib/reports/Navigator.rb, line 79</span>
936
+ 79: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_s</span>(<span class="ruby-identifier">indent</span> = <span class="ruby-value">0</span>)
937
+ 80: <span class="ruby-ivar">@elements</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">element</span><span class="ruby-operator">|</span>
938
+ 81: <span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;#{' ' * indent}#{element.current ? '&lt;' : ''}&quot;</span> <span class="ruby-operator">+</span>
939
+ 82: <span class="ruby-node">&quot;#{element.label}#{element.current ? '&gt;' : ''}&quot;</span> <span class="ruby-operator">+</span>
940
+ 83: <span class="ruby-node">&quot; -&gt; #{element.url}&quot;</span>
941
+ 84: <span class="ruby-identifier">element</span>.<span class="ruby-identifier">to_s</span>(<span class="ruby-identifier">indent</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>)
942
+ 85: <span class="ruby-keyword kw">end</span>
943
+ 86: <span class="ruby-keyword kw">end</span></pre>
938
944
  </div>
939
945
 
940
946
  </div>