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>
@@ -623,13 +629,13 @@ Create a new <a href="TjpExample.html">TjpExample</a> object.
623
629
  <div class="method-source-code"
624
630
  id="new-source">
625
631
  <pre>
626
- <span class="ruby-comment cmt"># File lib/TjpExample.rb, line 35</span>
627
- 35: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>
628
- 36: <span class="ruby-ivar">@snippets</span> = { }
629
- 37: <span class="ruby-comment cmt"># Here we will store the complete example.</span>
630
- 38: <span class="ruby-ivar">@snippets</span>[<span class="ruby-value str">'full text'</span>] = []
631
- 39: <span class="ruby-ivar">@file</span> = <span class="ruby-keyword kw">nil</span>
632
- 40: <span class="ruby-keyword kw">end</span></pre>
632
+ <span class="ruby-comment cmt"># File lib/TjpExample.rb, line 36</span>
633
+ 36: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>
634
+ 37: <span class="ruby-ivar">@snippets</span> = { }
635
+ 38: <span class="ruby-comment cmt"># Here we will store the complete example.</span>
636
+ 39: <span class="ruby-ivar">@snippets</span>[<span class="ruby-value str">'full text'</span>] = []
637
+ 40: <span class="ruby-ivar">@file</span> = <span class="ruby-keyword kw">nil</span>
638
+ 41: <span class="ruby-keyword kw">end</span></pre>
633
639
  </div>
634
640
 
635
641
  </div>
@@ -668,12 +674,12 @@ Use this function to process the file called <em>fileName</em>.
668
674
  <div class="method-source-code"
669
675
  id="open-source">
670
676
  <pre>
671
- <span class="ruby-comment cmt"># File lib/TjpExample.rb, line 43</span>
672
- 43: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">open</span>(<span class="ruby-identifier">fileName</span>)
673
- 44: <span class="ruby-ivar">@file</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">fileName</span>, <span class="ruby-value str">'r'</span>)
674
- 45: <span class="ruby-identifier">process</span>
675
- 46: <span class="ruby-ivar">@file</span>.<span class="ruby-identifier">close</span>
676
- 47: <span class="ruby-keyword kw">end</span></pre>
677
+ <span class="ruby-comment cmt"># File lib/TjpExample.rb, line 44</span>
678
+ 44: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">open</span>(<span class="ruby-identifier">fileName</span>)
679
+ 45: <span class="ruby-ivar">@file</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">fileName</span>, <span class="ruby-value str">'r'</span>)
680
+ 46: <span class="ruby-identifier">process</span>
681
+ 47: <span class="ruby-ivar">@file</span>.<span class="ruby-identifier">close</span>
682
+ 48: <span class="ruby-keyword kw">end</span></pre>
677
683
  </div>
678
684
 
679
685
  </div>
@@ -707,11 +713,11 @@ Use this function to process the <a href="../String.html">String</a>
707
713
  <div class="method-source-code"
708
714
  id="parse-source">
709
715
  <pre>
710
- <span class="ruby-comment cmt"># File lib/TjpExample.rb, line 50</span>
711
- 50: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse</span>(<span class="ruby-identifier">text</span>)
712
- 51: <span class="ruby-ivar">@file</span> = <span class="ruby-constant">StringIO</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">text</span>)
713
- 52: <span class="ruby-identifier">process</span>
714
- 53: <span class="ruby-keyword kw">end</span></pre>
716
+ <span class="ruby-comment cmt"># File lib/TjpExample.rb, line 51</span>
717
+ 51: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse</span>(<span class="ruby-identifier">text</span>)
718
+ 52: <span class="ruby-ivar">@file</span> = <span class="ruby-constant">StringIO</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">text</span>)
719
+ 53: <span class="ruby-identifier">process</span>
720
+ 54: <span class="ruby-keyword kw">end</span></pre>
715
721
  </div>
716
722
 
717
723
  </div>
@@ -744,15 +750,15 @@ This method returns the snip identified by <em>tag</em>.
744
750
  <div class="method-source-code"
745
751
  id="to-s-source">
746
752
  <pre>
747
- <span class="ruby-comment cmt"># File lib/TjpExample.rb, line 56</span>
748
- 56: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_s</span>(<span class="ruby-identifier">tag</span> = <span class="ruby-keyword kw">nil</span>)
749
- 57: <span class="ruby-identifier">tag</span> = <span class="ruby-value str">'full text'</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">tag</span>
750
- 58: <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">@snippets</span>[<span class="ruby-identifier">tag</span>]
751
- 59:
752
- 60: <span class="ruby-identifier">s</span> = <span class="ruby-value str">''</span>
753
- 61: <span class="ruby-ivar">@snippets</span>[<span class="ruby-identifier">tag</span>].<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">l</span><span class="ruby-operator">|</span> <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">l</span> }
754
- 62: <span class="ruby-identifier">s</span>
755
- 63: <span class="ruby-keyword kw">end</span></pre>
753
+ <span class="ruby-comment cmt"># File lib/TjpExample.rb, line 57</span>
754
+ 57: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_s</span>(<span class="ruby-identifier">tag</span> = <span class="ruby-keyword kw">nil</span>)
755
+ 58: <span class="ruby-identifier">tag</span> = <span class="ruby-value str">'full text'</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">tag</span>
756
+ 59: <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">@snippets</span>[<span class="ruby-identifier">tag</span>]
757
+ 60:
758
+ 61: <span class="ruby-identifier">s</span> = <span class="ruby-value str">''</span>
759
+ 62: <span class="ruby-ivar">@snippets</span>[<span class="ruby-identifier">tag</span>].<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">l</span><span class="ruby-operator">|</span> <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">l</span> }
760
+ 63: <span class="ruby-identifier">s</span>
761
+ 64: <span class="ruby-keyword kw">end</span></pre>
756
762
  </div>
757
763
 
758
764
  </div>
@@ -789,55 +795,55 @@ This method returns the snip identified by <em>tag</em>.
789
795
  <div class="method-source-code"
790
796
  id="process-source">
791
797
  <pre>
792
- <span class="ruby-comment cmt"># File lib/TjpExample.rb, line 67</span>
793
- 67: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">process</span>
794
- 68: <span class="ruby-comment cmt"># This mark identifies the annotation lines.</span>
795
- 69: <span class="ruby-identifier">mark</span> = <span class="ruby-value str">'# *** EXAMPLE: '</span>
796
- 70:
797
- 71: <span class="ruby-comment cmt"># We need this to remember what snippets are currently active.</span>
798
- 72: <span class="ruby-identifier">snippetState</span> = { }
799
- 73: <span class="ruby-comment cmt"># Now process the file or String line by line.</span>
800
- 74: <span class="ruby-ivar">@file</span>.<span class="ruby-identifier">each_line</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">line</span><span class="ruby-operator">|</span>
801
- 75: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">line</span>[<span class="ruby-value">0</span>, <span class="ruby-identifier">mark</span>.<span class="ruby-identifier">length</span>] <span class="ruby-operator">==</span> <span class="ruby-identifier">mark</span>
802
- 76: <span class="ruby-comment cmt"># We've found an annotation line. Get the tag and indicator.</span>
803
- 77: <span class="ruby-identifier">dum</span>, <span class="ruby-identifier">dum</span>, <span class="ruby-identifier">dum</span>, <span class="ruby-identifier">tag</span>, <span class="ruby-identifier">indicator</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">split</span>
804
- 78:
805
- 79: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">indicator</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'+'</span>
806
- 80: <span class="ruby-comment cmt"># Start a new snip</span>
807
- 81: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">snippetState</span>[<span class="ruby-identifier">tag</span>]
808
- 82: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Snippet #{tag} has already been started&quot;</span>
809
- 83: <span class="ruby-keyword kw">end</span>
810
- 84: <span class="ruby-identifier">snippetState</span>[<span class="ruby-identifier">tag</span>] = <span class="ruby-keyword kw">true</span>
811
- 85: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">indicator</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'-'</span>
812
- 86: <span class="ruby-comment cmt"># Stop an existing snip</span>
813
- 87: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">snippetState</span>[<span class="ruby-identifier">tag</span>]
814
- 88: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Snippet #{tag} has not yet been started&quot;</span>
815
- 89: <span class="ruby-keyword kw">end</span>
816
- 90: <span class="ruby-identifier">snippetState</span>[<span class="ruby-identifier">tag</span>] = <span class="ruby-keyword kw">false</span>
817
- 91: <span class="ruby-keyword kw">else</span>
818
- 92: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Bad indicator #{indicator}. Must be '+' or '-': #{line}&quot;</span>
819
- 93: <span class="ruby-keyword kw">end</span>
820
- 94: <span class="ruby-keyword kw">else</span>
821
- 95: <span class="ruby-comment cmt"># Process the regular lines and add them to all currently active</span>
822
- 96: <span class="ruby-comment cmt"># snippets.</span>
823
- 97: <span class="ruby-identifier">snippetState</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">t</span>, <span class="ruby-identifier">state</span><span class="ruby-operator">|</span>
824
- 98: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">state</span>
825
- 99: <span class="ruby-comment cmt"># Create a new snip buffer if it does not yet exist.</span>
826
- 100: <span class="ruby-ivar">@snippets</span>[<span class="ruby-identifier">t</span>] = [] <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@snippets</span>[<span class="ruby-identifier">t</span>]
827
- 101: <span class="ruby-comment cmt"># Add the line.</span>
828
- 102: <span class="ruby-ivar">@snippets</span>[<span class="ruby-identifier">t</span>] <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">line</span>
829
- 103: <span class="ruby-keyword kw">end</span>
830
- 104: <span class="ruby-keyword kw">end</span>
831
- 105: <span class="ruby-comment cmt"># Add all lines to this buffer.</span>
832
- 106: <span class="ruby-ivar">@snippets</span>[<span class="ruby-value str">'full text'</span>] <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">line</span>
833
- 107: <span class="ruby-keyword kw">end</span>
834
- 108: <span class="ruby-keyword kw">end</span>
835
- 109:
836
- 110: <span class="ruby-comment cmt"># Remove empty lines at end of all snips</span>
837
- 111: <span class="ruby-ivar">@snippets</span>.<span class="ruby-identifier">each_value</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">snip</span><span class="ruby-operator">|</span>
838
- 112: <span class="ruby-identifier">snip</span>.<span class="ruby-identifier">delete_at</span>(<span class="ruby-value">1</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">snip</span>[<span class="ruby-value">1</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;\n&quot;</span>
839
- 113: <span class="ruby-keyword kw">end</span>
840
- 114: <span class="ruby-keyword kw">end</span></pre>
798
+ <span class="ruby-comment cmt"># File lib/TjpExample.rb, line 68</span>
799
+ 68: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">process</span>
800
+ 69: <span class="ruby-comment cmt"># This mark identifies the annotation lines.</span>
801
+ 70: <span class="ruby-identifier">mark</span> = <span class="ruby-value str">'# *** EXAMPLE: '</span>
802
+ 71:
803
+ 72: <span class="ruby-comment cmt"># We need this to remember what snippets are currently active.</span>
804
+ 73: <span class="ruby-identifier">snippetState</span> = { }
805
+ 74: <span class="ruby-comment cmt"># Now process the file or String line by line.</span>
806
+ 75: <span class="ruby-ivar">@file</span>.<span class="ruby-identifier">each_line</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">line</span><span class="ruby-operator">|</span>
807
+ 76: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">line</span>[<span class="ruby-value">0</span>, <span class="ruby-identifier">mark</span>.<span class="ruby-identifier">length</span>] <span class="ruby-operator">==</span> <span class="ruby-identifier">mark</span>
808
+ 77: <span class="ruby-comment cmt"># We've found an annotation line. Get the tag and indicator.</span>
809
+ 78: <span class="ruby-identifier">dum</span>, <span class="ruby-identifier">dum</span>, <span class="ruby-identifier">dum</span>, <span class="ruby-identifier">tag</span>, <span class="ruby-identifier">indicator</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">split</span>
810
+ 79:
811
+ 80: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">indicator</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'+'</span>
812
+ 81: <span class="ruby-comment cmt"># Start a new snip</span>
813
+ 82: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">snippetState</span>[<span class="ruby-identifier">tag</span>]
814
+ 83: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Snippet #{tag} has already been started&quot;</span>
815
+ 84: <span class="ruby-keyword kw">end</span>
816
+ 85: <span class="ruby-identifier">snippetState</span>[<span class="ruby-identifier">tag</span>] = <span class="ruby-keyword kw">true</span>
817
+ 86: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">indicator</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'-'</span>
818
+ 87: <span class="ruby-comment cmt"># Stop an existing snip</span>
819
+ 88: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">snippetState</span>[<span class="ruby-identifier">tag</span>]
820
+ 89: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Snippet #{tag} has not yet been started&quot;</span>
821
+ 90: <span class="ruby-keyword kw">end</span>
822
+ 91: <span class="ruby-identifier">snippetState</span>[<span class="ruby-identifier">tag</span>] = <span class="ruby-keyword kw">false</span>
823
+ 92: <span class="ruby-keyword kw">else</span>
824
+ 93: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Bad indicator #{indicator}. Must be '+' or '-': #{line}&quot;</span>
825
+ 94: <span class="ruby-keyword kw">end</span>
826
+ 95: <span class="ruby-keyword kw">else</span>
827
+ 96: <span class="ruby-comment cmt"># Process the regular lines and add them to all currently active</span>
828
+ 97: <span class="ruby-comment cmt"># snippets.</span>
829
+ 98: <span class="ruby-identifier">snippetState</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">t</span>, <span class="ruby-identifier">state</span><span class="ruby-operator">|</span>
830
+ 99: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">state</span>
831
+ 100: <span class="ruby-comment cmt"># Create a new snip buffer if it does not yet exist.</span>
832
+ 101: <span class="ruby-ivar">@snippets</span>[<span class="ruby-identifier">t</span>] = [] <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@snippets</span>[<span class="ruby-identifier">t</span>]
833
+ 102: <span class="ruby-comment cmt"># Add the line.</span>
834
+ 103: <span class="ruby-ivar">@snippets</span>[<span class="ruby-identifier">t</span>] <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">line</span>
835
+ 104: <span class="ruby-keyword kw">end</span>
836
+ 105: <span class="ruby-keyword kw">end</span>
837
+ 106: <span class="ruby-comment cmt"># Add all lines to this buffer.</span>
838
+ 107: <span class="ruby-ivar">@snippets</span>[<span class="ruby-value str">'full text'</span>] <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">line</span>
839
+ 108: <span class="ruby-keyword kw">end</span>
840
+ 109: <span class="ruby-keyword kw">end</span>
841
+ 110:
842
+ 111: <span class="ruby-comment cmt"># Remove empty lines at end of all snips</span>
843
+ 112: <span class="ruby-ivar">@snippets</span>.<span class="ruby-identifier">each_value</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">snip</span><span class="ruby-operator">|</span>
844
+ 113: <span class="ruby-identifier">snip</span>.<span class="ruby-identifier">delete_at</span>(<span class="ruby-value">1</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">snip</span>[<span class="ruby-value">1</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;\n&quot;</span>
845
+ 114: <span class="ruby-keyword kw">end</span>
846
+ 115: <span class="ruby-keyword kw">end</span></pre>
841
847
  </div>
842
848
 
843
849
  </div>
@@ -163,6 +163,8 @@
163
163
 
164
164
  <li><a href="../TaskJuggler/AttributeDefinition.html">TaskJuggler::AttributeDefinition</a></li>
165
165
 
166
+ <li><a href="../TaskJuggler/AttributeOverwrite.html">TaskJuggler::AttributeOverwrite</a></li>
167
+
166
168
  <li><a href="../TaskJuggler/BatchProcessor.html">TaskJuggler::BatchProcessor</a></li>
167
169
 
168
170
  <li><a href="../TaskJuggler/Booking.html">TaskJuggler::Booking</a></li>
@@ -241,6 +243,8 @@
241
243
 
242
244
  <li><a href="../TaskJuggler/Interval.html">TaskJuggler::Interval</a></li>
243
245
 
246
+ <li><a href="../TaskJuggler/IntervalList.html">TaskJuggler::IntervalList</a></li>
247
+
244
248
  <li><a href="../TaskJuggler/IntervalListAttribute.html">TaskJuggler::IntervalListAttribute</a></li>
245
249
 
246
250
  <li><a href="../TaskJuggler/JobInfo.html">TaskJuggler::JobInfo</a></li>
@@ -273,6 +277,8 @@
273
277
 
274
278
  <li><a href="../TaskJuggler/LogicalExpressionAttribute.html">TaskJuggler::LogicalExpressionAttribute</a></li>
275
279
 
280
+ <li><a href="../TaskJuggler/LogicalExpressionListAttribute.html">TaskJuggler::LogicalExpressionListAttribute</a></li>
281
+
276
282
  <li><a href="../TaskJuggler/LogicalFlag.html">TaskJuggler::LogicalFlag</a></li>
277
283
 
278
284
  <li><a href="../TaskJuggler/LogicalFunction.html">TaskJuggler::LogicalFunction</a></li>
@@ -553,6 +559,8 @@
553
559
 
554
560
  <li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
555
561
 
562
+ <li><a href="../TaskJuggler/WelcomePage.html">TaskJuggler::WelcomePage</a></li>
563
+
556
564
  <li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
557
565
 
558
566
  <li><a href="../TaskJuggler/WorkingHoursAttribute.html">TaskJuggler::WorkingHoursAttribute</a></li>
@@ -579,8 +587,6 @@
579
587
 
580
588
  <li><a href="../String.html">String</a></li>
581
589
 
582
- <li><a href="../StringIO.html">StringIO</a></li>
583
-
584
590
  </ul>
585
591
  <div id="no-class-search-results" style="display: none;">No matching classes.</div>
586
592
  </div>
@@ -634,24 +640,24 @@ Create a new object and set some default values.
634
640
  <div class="method-source-code"
635
641
  id="new-source">
636
642
  <pre>
637
- <span class="ruby-comment cmt"># File lib/reports/TjpExportRE.rb, line 22</span>
638
- 22: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">report</span>)
639
- 23: <span class="ruby-keyword kw">super</span>(<span class="ruby-identifier">report</span>)
640
- 24:
641
- 25: <span class="ruby-ivar">@supportedTaskAttrs</span> = <span class="ruby-node">%( booking complete depends flags maxend
642
- 26: maxstart minend minstart note priority
643
- 27: responsible )</span>
644
- 28: <span class="ruby-ivar">@supportedResourceAttrs</span> = <span class="ruby-node">%( vacation workinghours )</span>
645
- 29: <span class="ruby-ivar">@report</span>.<span class="ruby-identifier">set</span>(<span class="ruby-value str">'scenarios'</span>, [ <span class="ruby-value">0</span> ])
646
- 30:
647
- 31: <span class="ruby-comment cmt"># Show all tasks, sorted by seqno-up.</span>
648
- 32: <span class="ruby-ivar">@report</span>.<span class="ruby-identifier">set</span>(<span class="ruby-value str">'hideTask'</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>)))
649
- 33: <span class="ruby-ivar">@report</span>.<span class="ruby-identifier">set</span>(<span class="ruby-value str">'sortTasks'</span>, [ [ <span class="ruby-value str">'seqno'</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-value">1</span> ] ])
650
- 34: <span class="ruby-comment cmt"># Show all resources, sorted by seqno-up.</span>
651
- 35: <span class="ruby-ivar">@report</span>.<span class="ruby-identifier">set</span>(<span class="ruby-value str">'hideResource'</span>,
652
- 36: <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>)))
653
- 37: <span class="ruby-ivar">@report</span>.<span class="ruby-identifier">set</span>(<span class="ruby-value str">'sortResources'</span>, [ [ <span class="ruby-value str">'seqno'</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-value">1</span> ] ])
654
- 38: <span class="ruby-keyword kw">end</span></pre>
643
+ <span class="ruby-comment cmt"># File lib/reports/TjpExportRE.rb, line 23</span>
644
+ 23: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">report</span>)
645
+ 24: <span class="ruby-keyword kw">super</span>(<span class="ruby-identifier">report</span>)
646
+ 25:
647
+ 26: <span class="ruby-ivar">@supportedTaskAttrs</span> = <span class="ruby-node">%( booking complete depends flags maxend
648
+ 27: maxstart minend minstart note priority
649
+ 28: responsible )</span>
650
+ 29: <span class="ruby-ivar">@supportedResourceAttrs</span> = <span class="ruby-node">%( vacation workinghours )</span>
651
+ 30: <span class="ruby-ivar">@report</span>.<span class="ruby-identifier">set</span>(<span class="ruby-value str">'scenarios'</span>, [ <span class="ruby-value">0</span> ])
652
+ 31:
653
+ 32: <span class="ruby-comment cmt"># Show all tasks, sorted by seqno-up.</span>
654
+ 33: <span class="ruby-ivar">@report</span>.<span class="ruby-identifier">set</span>(<span class="ruby-value str">'hideTask'</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>)))
655
+ 34: <span class="ruby-ivar">@report</span>.<span class="ruby-identifier">set</span>(<span class="ruby-value str">'sortTasks'</span>, [ [ <span class="ruby-value str">'seqno'</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-value">1</span> ] ])
656
+ 35: <span class="ruby-comment cmt"># Show all resources, sorted by seqno-up.</span>
657
+ 36: <span class="ruby-ivar">@report</span>.<span class="ruby-identifier">set</span>(<span class="ruby-value str">'hideResource'</span>,
658
+ 37: <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>)))
659
+ 38: <span class="ruby-ivar">@report</span>.<span class="ruby-identifier">set</span>(<span class="ruby-value str">'sortResources'</span>, [ [ <span class="ruby-value str">'seqno'</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-value">1</span> ] ])
660
+ 39: <span class="ruby-keyword kw">end</span></pre>
655
661
  </div>
656
662
 
657
663
  </div>
@@ -688,10 +694,10 @@ Create a new object and set some default values.
688
694
  <div class="method-source-code"
689
695
  id="generate-ntermediate-ormat-source">
690
696
  <pre>
691
- <span class="ruby-comment cmt"># File lib/reports/TjpExportRE.rb, line 40</span>
692
- 40: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateIntermediateFormat</span>
693
- 41: <span class="ruby-keyword kw">super</span>
694
- 42: <span class="ruby-keyword kw">end</span></pre>
697
+ <span class="ruby-comment cmt"># File lib/reports/TjpExportRE.rb, line 41</span>
698
+ 41: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateIntermediateFormat</span>
699
+ 42: <span class="ruby-keyword kw">super</span>
700
+ 43: <span class="ruby-keyword kw">end</span></pre>
695
701
  </div>
696
702
 
697
703
  </div>
@@ -724,38 +730,38 @@ Return the project data in TJP syntax format.
724
730
  <div class="method-source-code"
725
731
  id="to-tjp-source">
726
732
  <pre>
727
- <span class="ruby-comment cmt"># File lib/reports/TjpExportRE.rb, line 45</span>
728
- 45: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_tjp</span>
729
- 46: <span class="ruby-comment cmt"># Prepare the resource list.</span>
730
- 47: <span class="ruby-ivar">@resourceList</span> = <span class="ruby-constant">PropertyList</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@project</span>.<span class="ruby-identifier">resources</span>)
731
- 48: <span class="ruby-ivar">@resourceList</span>.<span class="ruby-identifier">setSorting</span>(<span class="ruby-identifier">a</span>(<span class="ruby-value str">'sortResources'</span>))
732
- 49: <span class="ruby-ivar">@resourceList</span> = <span class="ruby-identifier">filterResourceList</span>(<span class="ruby-ivar">@resourceList</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">a</span>(<span class="ruby-value str">'hideResource'</span>),
733
- 50: <span class="ruby-identifier">a</span>(<span class="ruby-value str">'rollupResource'</span>), <span class="ruby-identifier">a</span>(<span class="ruby-value str">'openNodes'</span>))
734
- 51: <span class="ruby-ivar">@resourceList</span>.<span class="ruby-identifier">sort!</span>
735
- 52:
736
- 53: <span class="ruby-comment cmt"># Prepare the task list.</span>
737
- 54: <span class="ruby-ivar">@taskList</span> = <span class="ruby-constant">PropertyList</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@project</span>.<span class="ruby-identifier">tasks</span>)
738
- 55: <span class="ruby-ivar">@taskList</span>.<span class="ruby-identifier">setSorting</span>(<span class="ruby-identifier">a</span>(<span class="ruby-value str">'sortTasks'</span>))
739
- 56: <span class="ruby-ivar">@taskList</span> = <span class="ruby-identifier">filterTaskList</span>(<span class="ruby-ivar">@taskList</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">a</span>(<span class="ruby-value str">'hideTask'</span>), <span class="ruby-identifier">a</span>(<span class="ruby-value str">'rollupTask'</span>),
740
- 57: <span class="ruby-identifier">a</span>(<span class="ruby-value str">'openNodes'</span>))
741
- 58: <span class="ruby-ivar">@taskList</span>.<span class="ruby-identifier">sort!</span>
742
- 59:
743
- 60: <span class="ruby-identifier">getBookings</span>
744
- 61:
745
- 62: <span class="ruby-ivar">@file</span> = <span class="ruby-value str">''</span>
746
- 63:
747
- 64: <span class="ruby-identifier">generateProjectProperty</span> <span class="ruby-keyword kw">if</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>)
748
- 65:
749
- 66: <span class="ruby-identifier">generateFlagDeclaration</span> <span class="ruby-keyword kw">if</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">'flags'</span>)
750
- 67: <span class="ruby-identifier">generateProjectIDs</span> <span class="ruby-keyword kw">if</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">'projectids'</span>)
751
- 68: <span class="ruby-identifier">generateResourceList</span> <span class="ruby-keyword kw">if</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">'resources'</span>)
752
- 69: <span class="ruby-identifier">generateTaskList</span> <span class="ruby-keyword kw">if</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">'tasks'</span>)
753
- 70:
754
- 71: <span class="ruby-identifier">generateTaskAttributes</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'taskAttributes'</span>).<span class="ruby-identifier">empty?</span>
755
- 72: <span class="ruby-identifier">generateResourceAttributes</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'resourceAttributes'</span>).<span class="ruby-identifier">empty?</span>
756
- 73:
757
- 74: <span class="ruby-ivar">@file</span>
758
- 75: <span class="ruby-keyword kw">end</span></pre>
733
+ <span class="ruby-comment cmt"># File lib/reports/TjpExportRE.rb, line 46</span>
734
+ 46: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_tjp</span>
735
+ 47: <span class="ruby-comment cmt"># Prepare the resource list.</span>
736
+ 48: <span class="ruby-ivar">@resourceList</span> = <span class="ruby-constant">PropertyList</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@project</span>.<span class="ruby-identifier">resources</span>)
737
+ 49: <span class="ruby-ivar">@resourceList</span>.<span class="ruby-identifier">setSorting</span>(<span class="ruby-identifier">a</span>(<span class="ruby-value str">'sortResources'</span>))
738
+ 50: <span class="ruby-ivar">@resourceList</span> = <span class="ruby-identifier">filterResourceList</span>(<span class="ruby-ivar">@resourceList</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">a</span>(<span class="ruby-value str">'hideResource'</span>),
739
+ 51: <span class="ruby-identifier">a</span>(<span class="ruby-value str">'rollupResource'</span>), <span class="ruby-identifier">a</span>(<span class="ruby-value str">'openNodes'</span>))
740
+ 52: <span class="ruby-ivar">@resourceList</span>.<span class="ruby-identifier">sort!</span>
741
+ 53:
742
+ 54: <span class="ruby-comment cmt"># Prepare the task list.</span>
743
+ 55: <span class="ruby-ivar">@taskList</span> = <span class="ruby-constant">PropertyList</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@project</span>.<span class="ruby-identifier">tasks</span>)
744
+ 56: <span class="ruby-ivar">@taskList</span>.<span class="ruby-identifier">setSorting</span>(<span class="ruby-identifier">a</span>(<span class="ruby-value str">'sortTasks'</span>))
745
+ 57: <span class="ruby-ivar">@taskList</span> = <span class="ruby-identifier">filterTaskList</span>(<span class="ruby-ivar">@taskList</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">a</span>(<span class="ruby-value str">'hideTask'</span>), <span class="ruby-identifier">a</span>(<span class="ruby-value str">'rollupTask'</span>),
746
+ 58: <span class="ruby-identifier">a</span>(<span class="ruby-value str">'openNodes'</span>))
747
+ 59: <span class="ruby-ivar">@taskList</span>.<span class="ruby-identifier">sort!</span>
748
+ 60:
749
+ 61: <span class="ruby-identifier">getBookings</span>
750
+ 62:
751
+ 63: <span class="ruby-ivar">@file</span> = <span class="ruby-value str">''</span>
752
+ 64:
753
+ 65: <span class="ruby-identifier">generateProjectProperty</span> <span class="ruby-keyword kw">if</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>)
754
+ 66:
755
+ 67: <span class="ruby-identifier">generateFlagDeclaration</span> <span class="ruby-keyword kw">if</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">'flags'</span>)
756
+ 68: <span class="ruby-identifier">generateProjectIDs</span> <span class="ruby-keyword kw">if</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">'projectids'</span>)
757
+ 69: <span class="ruby-identifier">generateResourceList</span> <span class="ruby-keyword kw">if</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">'resources'</span>)
758
+ 70: <span class="ruby-identifier">generateTaskList</span> <span class="ruby-keyword kw">if</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">'tasks'</span>)
759
+ 71:
760
+ 72: <span class="ruby-identifier">generateTaskAttributes</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'taskAttributes'</span>).<span class="ruby-identifier">empty?</span>
761
+ 73: <span class="ruby-identifier">generateResourceAttributes</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'resourceAttributes'</span>).<span class="ruby-identifier">empty?</span>
762
+ 74:
763
+ 75: <span class="ruby-ivar">@file</span>
764
+ 76: <span class="ruby-keyword kw">end</span></pre>
759
765
  </div>
760
766
 
761
767
  </div>
@@ -792,15 +798,15 @@ Return the project data in TJP syntax format.
792
798
  <div class="method-source-code"
793
799
  id="generate-ttribute-source">
794
800
  <pre>
795
- <span class="ruby-comment cmt"># File lib/reports/TjpExportRE.rb, line 316</span>
796
- 316: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateAttribute</span>(<span class="ruby-identifier">property</span>, <span class="ruby-identifier">attrId</span>, <span class="ruby-identifier">indent</span>, <span class="ruby-identifier">scenarioIdx</span> = <span class="ruby-keyword kw">nil</span>)
797
- 317: <span class="ruby-identifier">val</span> = <span class="ruby-identifier">scenarioIdx</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">property</span>.<span class="ruby-identifier">getAttr</span>(<span class="ruby-identifier">attrId</span>) <span class="ruby-operator">:</span>
798
- 318: <span class="ruby-identifier">property</span>[<span class="ruby-identifier">attrId</span>, <span class="ruby-identifier">scenarioIdx</span>]
799
- 319: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">val</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> (<span class="ruby-identifier">val</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Array</span>) <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">val</span>.<span class="ruby-identifier">empty?</span>)
800
- 320:
801
- 321: <span class="ruby-identifier">generateAttributeText</span>(<span class="ruby-identifier">property</span>.<span class="ruby-identifier">getAttr</span>(<span class="ruby-identifier">attrId</span>, <span class="ruby-identifier">scenarioIdx</span>).<span class="ruby-identifier">to_tjp</span>,
802
- 322: <span class="ruby-identifier">indent</span>, <span class="ruby-identifier">scenarioIdx</span>)
803
- 323: <span class="ruby-keyword kw">end</span></pre>
801
+ <span class="ruby-comment cmt"># File lib/reports/TjpExportRE.rb, line 317</span>
802
+ 317: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateAttribute</span>(<span class="ruby-identifier">property</span>, <span class="ruby-identifier">attrId</span>, <span class="ruby-identifier">indent</span>, <span class="ruby-identifier">scenarioIdx</span> = <span class="ruby-keyword kw">nil</span>)
803
+ 318: <span class="ruby-identifier">val</span> = <span class="ruby-identifier">scenarioIdx</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">property</span>.<span class="ruby-identifier">getAttr</span>(<span class="ruby-identifier">attrId</span>) <span class="ruby-operator">:</span>
804
+ 319: <span class="ruby-identifier">property</span>[<span class="ruby-identifier">attrId</span>, <span class="ruby-identifier">scenarioIdx</span>]
805
+ 320: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">val</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> (<span class="ruby-identifier">val</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Array</span>) <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">val</span>.<span class="ruby-identifier">empty?</span>)
806
+ 321:
807
+ 322: <span class="ruby-identifier">generateAttributeText</span>(<span class="ruby-identifier">property</span>.<span class="ruby-identifier">getAttr</span>(<span class="ruby-identifier">attrId</span>, <span class="ruby-identifier">scenarioIdx</span>).<span class="ruby-identifier">to_tjp</span>,
808
+ 323: <span class="ruby-identifier">indent</span>, <span class="ruby-identifier">scenarioIdx</span>)
809
+ 324: <span class="ruby-keyword kw">end</span></pre>
804
810
  </div>
805
811
 
806
812
  </div>
@@ -831,16 +837,16 @@ Return the project data in TJP syntax format.
831
837
  <div class="method-source-code"
832
838
  id="generate-ttribute-ext-source">
833
839
  <pre>
834
- <span class="ruby-comment cmt"># File lib/reports/TjpExportRE.rb, line 325</span>
835
- 325: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateAttributeText</span>(<span class="ruby-identifier">text</span>, <span class="ruby-identifier">indent</span>, <span class="ruby-identifier">scenarioIdx</span>)
836
- 326: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' '</span> * <span class="ruby-identifier">indent</span>
837
- 327: <span class="ruby-identifier">tag</span> = <span class="ruby-value str">''</span>
838
- 328: <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">scenarioIdx</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">scenarioIdx</span> <span class="ruby-operator">!=</span> <span class="ruby-value">0</span>
839
- 329: <span class="ruby-identifier">tag</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">scenario</span>(<span class="ruby-identifier">scenarioIdx</span>).<span class="ruby-identifier">id</span>
840
- 330: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;#{tag}:&quot;</span>
841
- 331: <span class="ruby-keyword kw">end</span>
842
- 332: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;#{indentBlock(text, indent + tag.length + 2)}\n&quot;</span>
843
- 333: <span class="ruby-keyword kw">end</span></pre>
840
+ <span class="ruby-comment cmt"># File lib/reports/TjpExportRE.rb, line 326</span>
841
+ 326: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateAttributeText</span>(<span class="ruby-identifier">text</span>, <span class="ruby-identifier">indent</span>, <span class="ruby-identifier">scenarioIdx</span>)
842
+ 327: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' '</span> * <span class="ruby-identifier">indent</span>
843
+ 328: <span class="ruby-identifier">tag</span> = <span class="ruby-value str">''</span>
844
+ 329: <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">scenarioIdx</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">scenarioIdx</span> <span class="ruby-operator">!=</span> <span class="ruby-value">0</span>
845
+ 330: <span class="ruby-identifier">tag</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">scenario</span>(<span class="ruby-identifier">scenarioIdx</span>).<span class="ruby-identifier">id</span>
846
+ 331: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;#{tag}:&quot;</span>
847
+ 332: <span class="ruby-keyword kw">end</span>
848
+ 333: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;#{indentBlock(text, indent + tag.length + 2)}\n&quot;</span>
849
+ 334: <span class="ruby-keyword kw">end</span></pre>
844
850
  </div>
845
851
 
846
852
  </div>
@@ -871,14 +877,14 @@ Return the project data in TJP syntax format.
871
877
  <div class="method-source-code"
872
878
  id="generate-ooking-source">
873
879
  <pre>
874
- <span class="ruby-comment cmt"># File lib/reports/TjpExportRE.rb, line 360</span>
875
- 360: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateBooking</span>(<span class="ruby-identifier">task</span>, <span class="ruby-identifier">indent</span>, <span class="ruby-identifier">scenarioIdx</span>)
876
- 361: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@bookings</span>[<span class="ruby-identifier">scenarioIdx</span>].<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">task</span>)
877
- 362:
878
- 363: <span class="ruby-ivar">@bookings</span>[<span class="ruby-identifier">scenarioIdx</span>][<span class="ruby-identifier">task</span>].<span class="ruby-identifier">each_value</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">booking</span><span class="ruby-operator">|</span>
879
- 364: <span class="ruby-identifier">generateAttributeText</span>(<span class="ruby-value str">'booking '</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">booking</span>.<span class="ruby-identifier">to_tjp</span>, <span class="ruby-identifier">indent</span>, <span class="ruby-identifier">scenarioIdx</span>)
880
- 365: <span class="ruby-keyword kw">end</span>
881
- 366: <span class="ruby-keyword kw">end</span></pre>
880
+ <span class="ruby-comment cmt"># File lib/reports/TjpExportRE.rb, line 362</span>
881
+ 362: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateBooking</span>(<span class="ruby-identifier">task</span>, <span class="ruby-identifier">indent</span>, <span class="ruby-identifier">scenarioIdx</span>)
882
+ 363: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@bookings</span>[<span class="ruby-identifier">scenarioIdx</span>].<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">task</span>)
883
+ 364:
884
+ 365: <span class="ruby-ivar">@bookings</span>[<span class="ruby-identifier">scenarioIdx</span>][<span class="ruby-identifier">task</span>].<span class="ruby-identifier">each_value</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">booking</span><span class="ruby-operator">|</span>
885
+ 366: <span class="ruby-identifier">generateAttributeText</span>(<span class="ruby-value str">'booking '</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">booking</span>.<span class="ruby-identifier">to_tjp</span>, <span class="ruby-identifier">indent</span>, <span class="ruby-identifier">scenarioIdx</span>)
886
+ 367: <span class="ruby-keyword kw">end</span>
887
+ 368: <span class="ruby-keyword kw">end</span></pre>
882
888
  </div>
883
889
 
884
890
  </div>
@@ -909,27 +915,27 @@ Return the project data in TJP syntax format.
909
915
  <div class="method-source-code"
910
916
  id="generate-ustom-ttribute-eclarations-source">
911
917
  <pre>
912
- <span class="ruby-comment cmt"># File lib/reports/TjpExportRE.rb, line 90</span>
913
- 90: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateCustomAttributeDeclarations</span>(<span class="ruby-identifier">tag</span>, <span class="ruby-identifier">propertySet</span>, <span class="ruby-identifier">attributes</span>)
914
- 91: <span class="ruby-comment cmt"># First we search the attribute definitions for any user defined</span>
915
- 92: <span class="ruby-comment cmt"># attributes and count them.</span>
916
- 93: <span class="ruby-identifier">customAttributes</span> = <span class="ruby-value">0</span>
917
- 94: <span class="ruby-identifier">propertySet</span>.<span class="ruby-identifier">eachAttributeDefinition</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">ad</span><span class="ruby-operator">|</span>
918
- 95: <span class="ruby-identifier">customAttributes</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">ad</span>.<span class="ruby-identifier">userDefined</span>
919
- 96: <span class="ruby-keyword kw">end</span>
920
- 97: <span class="ruby-comment cmt"># Return if there are no user defined attributes.</span>
921
- 98: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">customAttributes</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
922
- 99:
923
- 100: <span class="ruby-comment cmt"># Generate definitions for each user defined attribute that is in the</span>
924
- 101: <span class="ruby-comment cmt"># taskAttributes list.</span>
925
- 102: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' extend '</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">tag</span> <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;{\n&quot;</span>
926
- 103: <span class="ruby-identifier">propertySet</span>.<span class="ruby-identifier">eachAttributeDefinition</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">ad</span><span class="ruby-operator">|</span>
927
- 104: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">ad</span>.<span class="ruby-identifier">userDefined</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">attributes</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">ad</span>.<span class="ruby-identifier">id</span>)
928
- 105:
929
- 106: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot; #{ad.objClass.tjpId} #{ad.id} \&quot;#{ad.name}\&quot;\n&quot;</span>
930
- 107: <span class="ruby-keyword kw">end</span>
931
- 108: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot; }\n&quot;</span>
932
- 109: <span class="ruby-keyword kw">end</span></pre>
918
+ <span class="ruby-comment cmt"># File lib/reports/TjpExportRE.rb, line 91</span>
919
+ 91: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateCustomAttributeDeclarations</span>(<span class="ruby-identifier">tag</span>, <span class="ruby-identifier">propertySet</span>, <span class="ruby-identifier">attributes</span>)
920
+ 92: <span class="ruby-comment cmt"># First we search the attribute definitions for any user defined</span>
921
+ 93: <span class="ruby-comment cmt"># attributes and count them.</span>
922
+ 94: <span class="ruby-identifier">customAttributes</span> = <span class="ruby-value">0</span>
923
+ 95: <span class="ruby-identifier">propertySet</span>.<span class="ruby-identifier">eachAttributeDefinition</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">ad</span><span class="ruby-operator">|</span>
924
+ 96: <span class="ruby-identifier">customAttributes</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">ad</span>.<span class="ruby-identifier">userDefined</span>
925
+ 97: <span class="ruby-keyword kw">end</span>
926
+ 98: <span class="ruby-comment cmt"># Return if there are no user defined attributes.</span>
927
+ 99: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">customAttributes</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
928
+ 100:
929
+ 101: <span class="ruby-comment cmt"># Generate definitions for each user defined attribute that is in the</span>
930
+ 102: <span class="ruby-comment cmt"># taskAttributes list.</span>
931
+ 103: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' extend '</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">tag</span> <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;{\n&quot;</span>
932
+ 104: <span class="ruby-identifier">propertySet</span>.<span class="ruby-identifier">eachAttributeDefinition</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">ad</span><span class="ruby-operator">|</span>
933
+ 105: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">ad</span>.<span class="ruby-identifier">userDefined</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">attributes</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">ad</span>.<span class="ruby-identifier">id</span>)
934
+ 106:
935
+ 107: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot; #{ad.objClass.tjpId} #{ad.id} \&quot;#{ad.name}\&quot;\n&quot;</span>
936
+ 108: <span class="ruby-keyword kw">end</span>
937
+ 109: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot; }\n&quot;</span>
938
+ 110: <span class="ruby-keyword kw">end</span></pre>
933
939
  </div>
934
940
 
935
941
  </div>
@@ -960,24 +966,24 @@ Return the project data in TJP syntax format.
960
966
  <div class="method-source-code"
961
967
  id="generate-lag-eclaration-source">
962
968
  <pre>
963
- <span class="ruby-comment cmt"># File lib/reports/TjpExportRE.rb, line 111</span>
964
- 111: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateFlagDeclaration</span>
965
- 112: <span class="ruby-identifier">flags</span> = []
966
- 113:
967
- 114: <span class="ruby-identifier">properties</span> = <span class="ruby-ivar">@resourceList</span> <span class="ruby-operator">+</span> <span class="ruby-ivar">@taskList</span>
968
- 115:
969
- 116: <span class="ruby-identifier">properties</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">property</span><span class="ruby-operator">|</span>
970
- 117: <span class="ruby-identifier">a</span>(<span class="ruby-value str">'scenarios'</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">scenarioIdx</span><span class="ruby-operator">|</span>
971
- 118: <span class="ruby-identifier">property</span>[<span class="ruby-value str">'flags'</span>, <span class="ruby-identifier">scenarioIdx</span>].<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">flag</span><span class="ruby-operator">|</span>
972
- 119: <span class="ruby-identifier">flags</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">flag</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">flags</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">flag</span>)
973
- 120: <span class="ruby-keyword kw">end</span>
974
- 121: <span class="ruby-keyword kw">end</span>
975
- 122: <span class="ruby-keyword kw">end</span>
976
- 123: <span class="ruby-identifier">flags</span>.<span class="ruby-identifier">sort</span>
977
- 124: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">flags</span>.<span class="ruby-identifier">empty?</span>
978
- 125: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;flags #{flags.join(', ')}\n\n&quot;</span>
979
- 126: <span class="ruby-keyword kw">end</span>
980
- 127: <span class="ruby-keyword kw">end</span></pre>
969
+ <span class="ruby-comment cmt"># File lib/reports/TjpExportRE.rb, line 112</span>
970
+ 112: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateFlagDeclaration</span>
971
+ 113: <span class="ruby-identifier">flags</span> = []
972
+ 114:
973
+ 115: <span class="ruby-identifier">properties</span> = <span class="ruby-ivar">@resourceList</span> <span class="ruby-operator">+</span> <span class="ruby-ivar">@taskList</span>
974
+ 116:
975
+ 117: <span class="ruby-identifier">properties</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">property</span><span class="ruby-operator">|</span>
976
+ 118: <span class="ruby-identifier">a</span>(<span class="ruby-value str">'scenarios'</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">scenarioIdx</span><span class="ruby-operator">|</span>
977
+ 119: <span class="ruby-identifier">property</span>[<span class="ruby-value str">'flags'</span>, <span class="ruby-identifier">scenarioIdx</span>].<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">flag</span><span class="ruby-operator">|</span>
978
+ 120: <span class="ruby-identifier">flags</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">flag</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">flags</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">flag</span>)
979
+ 121: <span class="ruby-keyword kw">end</span>
980
+ 122: <span class="ruby-keyword kw">end</span>
981
+ 123: <span class="ruby-keyword kw">end</span>
982
+ 124: <span class="ruby-identifier">flags</span>.<span class="ruby-identifier">sort</span>
983
+ 125: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">flags</span>.<span class="ruby-identifier">empty?</span>
984
+ 126: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;flags #{flags.join(', ')}\n\n&quot;</span>
985
+ 127: <span class="ruby-keyword kw">end</span>
986
+ 128: <span class="ruby-keyword kw">end</span></pre>
981
987
  </div>
982
988
 
983
989
  </div>
@@ -1008,19 +1014,19 @@ Return the project data in TJP syntax format.
1008
1014
  <div class="method-source-code"
1009
1015
  id="generate-roject-s-source">
1010
1016
  <pre>
1011
- <span class="ruby-comment cmt"># File lib/reports/TjpExportRE.rb, line 129</span>
1012
- 129: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateProjectIDs</span>
1013
- 130: <span class="ruby-comment cmt"># Compile a list of all projectIDs from the tasks in the taskList.</span>
1014
- 131: <span class="ruby-identifier">projectIDs</span> = []
1015
- 132: <span class="ruby-identifier">a</span>(<span class="ruby-value str">'scenarios'</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">scenarioIdx</span><span class="ruby-operator">|</span>
1016
- 133: <span class="ruby-ivar">@taskList</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">task</span><span class="ruby-operator">|</span>
1017
- 134: <span class="ruby-identifier">pid</span> = <span class="ruby-identifier">task</span>[<span class="ruby-value str">'projectid'</span>, <span class="ruby-identifier">scenarioIdx</span>]
1018
- 135: <span class="ruby-identifier">projectIDs</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">pid</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">pid</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">projectIDs</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">pid</span>)
1019
- 136: <span class="ruby-keyword kw">end</span>
1020
- 137: <span class="ruby-keyword kw">end</span>
1021
- 138:
1022
- 139: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;projectids #{projectIDs.join(', ')}\n\n&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">projectIDs</span>.<span class="ruby-identifier">empty?</span>
1023
- 140: <span class="ruby-keyword kw">end</span></pre>
1017
+ <span class="ruby-comment cmt"># File lib/reports/TjpExportRE.rb, line 130</span>
1018
+ 130: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateProjectIDs</span>
1019
+ 131: <span class="ruby-comment cmt"># Compile a list of all projectIDs from the tasks in the taskList.</span>
1020
+ 132: <span class="ruby-identifier">projectIDs</span> = []
1021
+ 133: <span class="ruby-identifier">a</span>(<span class="ruby-value str">'scenarios'</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">scenarioIdx</span><span class="ruby-operator">|</span>
1022
+ 134: <span class="ruby-ivar">@taskList</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">task</span><span class="ruby-operator">|</span>
1023
+ 135: <span class="ruby-identifier">pid</span> = <span class="ruby-identifier">task</span>[<span class="ruby-value str">'projectid'</span>, <span class="ruby-identifier">scenarioIdx</span>]
1024
+ 136: <span class="ruby-identifier">projectIDs</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">pid</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">pid</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">projectIDs</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">pid</span>)
1025
+ 137: <span class="ruby-keyword kw">end</span>
1026
+ 138: <span class="ruby-keyword kw">end</span>
1027
+ 139:
1028
+ 140: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;projectids #{projectIDs.join(', ')}\n\n&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">projectIDs</span>.<span class="ruby-identifier">empty?</span>
1029
+ 141: <span class="ruby-keyword kw">end</span></pre>
1024
1030
  </div>
1025
1031
 
1026
1032
  </div>
@@ -1051,17 +1057,17 @@ Return the project data in TJP syntax format.
1051
1057
  <div class="method-source-code"
1052
1058
  id="generate-roject-roperty-source">
1053
1059
  <pre>
1054
- <span class="ruby-comment cmt"># File lib/reports/TjpExportRE.rb, line 79</span>
1055
- 79: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateProjectProperty</span>
1056
- 80: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;project #{@project['projectid']} \&quot;#{@project['name']}\&quot; &quot;</span> <span class="ruby-operator">+</span>
1057
- 81: <span class="ruby-node">&quot;\&quot;#{@project['version']}\&quot; #{@project['start']} - &quot;</span> <span class="ruby-operator">+</span>
1058
- 82: <span class="ruby-node">&quot;#{@project['end']} {\n&quot;</span>
1059
- 83: <span class="ruby-identifier">generateCustomAttributeDeclarations</span>(<span class="ruby-value str">'resource'</span>, <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">resources</span>,
1060
- 84: <span class="ruby-identifier">a</span>(<span class="ruby-value str">'resourceAttributes'</span>))
1061
- 85: <span class="ruby-identifier">generateCustomAttributeDeclarations</span>(<span class="ruby-value str">'task'</span>, <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">tasks</span>,
1062
- 86: <span class="ruby-identifier">a</span>(<span class="ruby-value str">'taskAttributes'</span>))
1063
- 87: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;}\n\n&quot;</span>
1064
- 88: <span class="ruby-keyword kw">end</span></pre>
1060
+ <span class="ruby-comment cmt"># File lib/reports/TjpExportRE.rb, line 80</span>
1061
+ 80: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateProjectProperty</span>
1062
+ 81: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;project #{@project['projectid']} \&quot;#{@project['name']}\&quot; &quot;</span> <span class="ruby-operator">+</span>
1063
+ 82: <span class="ruby-node">&quot;\&quot;#{@project['version']}\&quot; #{@project['start']} - &quot;</span> <span class="ruby-operator">+</span>
1064
+ 83: <span class="ruby-node">&quot;#{@project['end']} {\n&quot;</span>
1065
+ 84: <span class="ruby-identifier">generateCustomAttributeDeclarations</span>(<span class="ruby-value str">'resource'</span>, <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">resources</span>,
1066
+ 85: <span class="ruby-identifier">a</span>(<span class="ruby-value str">'resourceAttributes'</span>))
1067
+ 86: <span class="ruby-identifier">generateCustomAttributeDeclarations</span>(<span class="ruby-value str">'task'</span>, <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">tasks</span>,
1068
+ 87: <span class="ruby-identifier">a</span>(<span class="ruby-value str">'taskAttributes'</span>))
1069
+ 88: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;}\n\n&quot;</span>
1070
+ 89: <span class="ruby-keyword kw">end</span></pre>
1065
1071
  </div>
1066
1072
 
1067
1073
  </div>
@@ -1092,24 +1098,24 @@ Return the project data in TJP syntax format.
1092
1098
  <div class="method-source-code"
1093
1099
  id="generate-esource-source">
1094
1100
  <pre>
1095
- <span class="ruby-comment cmt"># File lib/reports/TjpExportRE.rb, line 153</span>
1096
- 153: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateResource</span>(<span class="ruby-identifier">resource</span>, <span class="ruby-identifier">indent</span>)
1097
- 154: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">activity</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">resource</span>.<span class="ruby-identifier">sequenceNo</span> <span class="ruby-operator">%</span> <span class="ruby-value">100</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
1098
- 155:
1099
- 156: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' '</span> * <span class="ruby-identifier">indent</span> <span class="ruby-operator">+</span> <span class="ruby-node">&quot;resource #{resource.id} \&quot;#{resource.name}\&quot;&quot;</span>
1100
- 157: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' {'</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">resource</span>.<span class="ruby-identifier">children</span>.<span class="ruby-identifier">empty?</span>
1101
- 158: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;\n&quot;</span>
1102
- 159:
1103
- 160: <span class="ruby-comment cmt"># Call this function recursively for all children that are included in the</span>
1104
- 161: <span class="ruby-comment cmt"># resource list as well.</span>
1105
- 162: <span class="ruby-identifier">resource</span>.<span class="ruby-identifier">children</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">subresource</span><span class="ruby-operator">|</span>
1106
- 163: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@resourceList</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">subresource</span>)
1107
- 164: <span class="ruby-identifier">generateResource</span>(<span class="ruby-identifier">subresource</span>, <span class="ruby-identifier">indent</span> <span class="ruby-operator">+</span> <span class="ruby-value">2</span>)
1108
- 165: <span class="ruby-keyword kw">end</span>
1109
- 166: <span class="ruby-keyword kw">end</span>
1110
- 167:
1111
- 168: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' '</span> * <span class="ruby-identifier">indent</span> <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;}\n&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">resource</span>.<span class="ruby-identifier">children</span>.<span class="ruby-identifier">empty?</span>
1112
- 169: <span class="ruby-keyword kw">end</span></pre>
1101
+ <span class="ruby-comment cmt"># File lib/reports/TjpExportRE.rb, line 154</span>
1102
+ 154: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateResource</span>(<span class="ruby-identifier">resource</span>, <span class="ruby-identifier">indent</span>)
1103
+ 155: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">activity</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">resource</span>.<span class="ruby-identifier">sequenceNo</span> <span class="ruby-operator">%</span> <span class="ruby-value">100</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
1104
+ 156:
1105
+ 157: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' '</span> * <span class="ruby-identifier">indent</span> <span class="ruby-operator">+</span> <span class="ruby-node">&quot;resource #{resource.id} \&quot;#{resource.name}\&quot;&quot;</span>
1106
+ 158: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' {'</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">resource</span>.<span class="ruby-identifier">children</span>.<span class="ruby-identifier">empty?</span>
1107
+ 159: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;\n&quot;</span>
1108
+ 160:
1109
+ 161: <span class="ruby-comment cmt"># Call this function recursively for all children that are included in the</span>
1110
+ 162: <span class="ruby-comment cmt"># resource list as well.</span>
1111
+ 163: <span class="ruby-identifier">resource</span>.<span class="ruby-identifier">children</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">subresource</span><span class="ruby-operator">|</span>
1112
+ 164: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@resourceList</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">subresource</span>)
1113
+ 165: <span class="ruby-identifier">generateResource</span>(<span class="ruby-identifier">subresource</span>, <span class="ruby-identifier">indent</span> <span class="ruby-operator">+</span> <span class="ruby-value">2</span>)
1114
+ 166: <span class="ruby-keyword kw">end</span>
1115
+ 167: <span class="ruby-keyword kw">end</span>
1116
+ 168:
1117
+ 169: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' '</span> * <span class="ruby-identifier">indent</span> <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;}\n&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">resource</span>.<span class="ruby-identifier">children</span>.<span class="ruby-identifier">empty?</span>
1118
+ 170: <span class="ruby-keyword kw">end</span></pre>
1113
1119
  </div>
1114
1120
 
1115
1121
  </div>
@@ -1143,30 +1149,30 @@ the attributes.
1143
1149
  <div class="method-source-code"
1144
1150
  id="generate-esource-ttributes-source">
1145
1151
  <pre>
1146
- <span class="ruby-comment cmt"># File lib/reports/TjpExportRE.rb, line 259</span>
1147
- 259: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateResourceAttributes</span>
1148
- 260: <span class="ruby-ivar">@resourceList</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">resource</span><span class="ruby-operator">|</span>
1149
- 261: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">activity</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">resource</span>.<span class="ruby-identifier">sequenceNo</span> <span class="ruby-operator">%</span> <span class="ruby-value">100</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
1150
- 262:
1151
- 263: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;supplement resource #{resource.fullId} {\n&quot;</span>
1152
- 264: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">resources</span>.<span class="ruby-identifier">eachAttributeDefinition</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">attrDef</span><span class="ruby-operator">|</span>
1153
- 265: <span class="ruby-identifier">id</span> = <span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">id</span>
1154
- 266: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> (<span class="ruby-operator">!</span><span class="ruby-ivar">@supportedResourceAttrs</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">id</span>) <span class="ruby-operator">&amp;&amp;</span>
1155
- 267: <span class="ruby-operator">!</span> <span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">userDefined</span>) <span class="ruby-operator">||</span>
1156
- 268: <span class="ruby-operator">!</span><span class="ruby-identifier">a</span>(<span class="ruby-value str">'resourceAttributes'</span>).<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">id</span>)
1157
- 269:
1158
- 270: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">scenarioSpecific</span>
1159
- 271: <span class="ruby-identifier">a</span>(<span class="ruby-value str">'scenarios'</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">scenarioIdx</span><span class="ruby-operator">|</span>
1160
- 272: <span class="ruby-identifier">generateAttribute</span>(<span class="ruby-identifier">resource</span>, <span class="ruby-identifier">id</span>, <span class="ruby-value">2</span>, <span class="ruby-identifier">scenarioIdx</span>)
1161
- 273: <span class="ruby-keyword kw">end</span>
1162
- 274: <span class="ruby-keyword kw">else</span>
1163
- 275: <span class="ruby-identifier">generateAttribute</span>(<span class="ruby-identifier">resource</span>, <span class="ruby-identifier">id</span>, <span class="ruby-value">2</span>)
1164
- 276: <span class="ruby-keyword kw">end</span>
1165
- 277: <span class="ruby-keyword kw">end</span>
1166
- 278:
1167
- 279: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;}\n&quot;</span>
1168
- 280: <span class="ruby-keyword kw">end</span>
1169
- 281: <span class="ruby-keyword kw">end</span></pre>
1152
+ <span class="ruby-comment cmt"># File lib/reports/TjpExportRE.rb, line 260</span>
1153
+ 260: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateResourceAttributes</span>
1154
+ 261: <span class="ruby-ivar">@resourceList</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">resource</span><span class="ruby-operator">|</span>
1155
+ 262: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">activity</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">resource</span>.<span class="ruby-identifier">sequenceNo</span> <span class="ruby-operator">%</span> <span class="ruby-value">100</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
1156
+ 263:
1157
+ 264: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;supplement resource #{resource.fullId} {\n&quot;</span>
1158
+ 265: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">resources</span>.<span class="ruby-identifier">eachAttributeDefinition</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">attrDef</span><span class="ruby-operator">|</span>
1159
+ 266: <span class="ruby-identifier">id</span> = <span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">id</span>
1160
+ 267: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> (<span class="ruby-operator">!</span><span class="ruby-ivar">@supportedResourceAttrs</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">id</span>) <span class="ruby-operator">&amp;&amp;</span>
1161
+ 268: <span class="ruby-operator">!</span> <span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">userDefined</span>) <span class="ruby-operator">||</span>
1162
+ 269: <span class="ruby-operator">!</span><span class="ruby-identifier">a</span>(<span class="ruby-value str">'resourceAttributes'</span>).<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">id</span>)
1163
+ 270:
1164
+ 271: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">scenarioSpecific</span>
1165
+ 272: <span class="ruby-identifier">a</span>(<span class="ruby-value str">'scenarios'</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">scenarioIdx</span><span class="ruby-operator">|</span>
1166
+ 273: <span class="ruby-identifier">generateAttribute</span>(<span class="ruby-identifier">resource</span>, <span class="ruby-identifier">id</span>, <span class="ruby-value">2</span>, <span class="ruby-identifier">scenarioIdx</span>)
1167
+ 274: <span class="ruby-keyword kw">end</span>
1168
+ 275: <span class="ruby-keyword kw">else</span>
1169
+ 276: <span class="ruby-identifier">generateAttribute</span>(<span class="ruby-identifier">resource</span>, <span class="ruby-identifier">id</span>, <span class="ruby-value">2</span>)
1170
+ 277: <span class="ruby-keyword kw">end</span>
1171
+ 278: <span class="ruby-keyword kw">end</span>
1172
+ 279:
1173
+ 280: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;}\n&quot;</span>
1174
+ 281: <span class="ruby-keyword kw">end</span>
1175
+ 282: <span class="ruby-keyword kw">end</span></pre>
1170
1176
  </div>
1171
1177
 
1172
1178
  </div>
@@ -1197,17 +1203,17 @@ the attributes.
1197
1203
  <div class="method-source-code"
1198
1204
  id="generate-esource-ist-source">
1199
1205
  <pre>
1200
- <span class="ruby-comment cmt"># File lib/reports/TjpExportRE.rb, line 142</span>
1201
- 142: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateResourceList</span>
1202
- 143: <span class="ruby-comment cmt"># The resource definitions are generated recursively. So we only need to</span>
1203
- 144: <span class="ruby-comment cmt"># start it for the top-level resources.</span>
1204
- 145: <span class="ruby-ivar">@resourceList</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">resource</span><span class="ruby-operator">|</span>
1205
- 146: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">resource</span>.<span class="ruby-identifier">parent</span>.<span class="ruby-identifier">nil?</span>
1206
- 147: <span class="ruby-identifier">generateResource</span>(<span class="ruby-identifier">resource</span>, <span class="ruby-value">0</span>)
1207
- 148: <span class="ruby-keyword kw">end</span>
1208
- 149: <span class="ruby-keyword kw">end</span>
1209
- 150: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;\n&quot;</span>
1210
- 151: <span class="ruby-keyword kw">end</span></pre>
1206
+ <span class="ruby-comment cmt"># File lib/reports/TjpExportRE.rb, line 143</span>
1207
+ 143: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateResourceList</span>
1208
+ 144: <span class="ruby-comment cmt"># The resource definitions are generated recursively. So we only need to</span>
1209
+ 145: <span class="ruby-comment cmt"># start it for the top-level resources.</span>
1210
+ 146: <span class="ruby-ivar">@resourceList</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">resource</span><span class="ruby-operator">|</span>
1211
+ 147: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">resource</span>.<span class="ruby-identifier">parent</span>.<span class="ruby-identifier">nil?</span>
1212
+ 148: <span class="ruby-identifier">generateResource</span>(<span class="ruby-identifier">resource</span>, <span class="ruby-value">0</span>)
1213
+ 149: <span class="ruby-keyword kw">end</span>
1214
+ 150: <span class="ruby-keyword kw">end</span>
1215
+ 151: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;\n&quot;</span>
1216
+ 152: <span class="ruby-keyword kw">end</span></pre>
1211
1217
  </div>
1212
1218
 
1213
1219
  </div>
@@ -1242,58 +1248,58 @@ attributes are declared in subsequent supplement statements.
1242
1248
  <div class="method-source-code"
1243
1249
  id="generate-ask-source">
1244
1250
  <pre>
1245
- <span class="ruby-comment cmt"># File lib/reports/TjpExportRE.rb, line 185</span>
1246
- 185: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateTask</span>(<span class="ruby-identifier">task</span>, <span class="ruby-identifier">indent</span>)
1247
- 186: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">activity</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">task</span>.<span class="ruby-identifier">sequenceNo</span> <span class="ruby-operator">%</span> <span class="ruby-value">100</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
1248
- 187:
1249
- 188: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' '</span> * <span class="ruby-identifier">indent</span> <span class="ruby-operator">+</span> <span class="ruby-node">&quot;task #{task.id} \&quot;#{task.name}\&quot; {\n&quot;</span>
1250
- 189:
1251
- 190: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'taskAttributes'</span>).<span class="ruby-identifier">include?</span>(<span class="ruby-value str">'depends'</span>)
1252
- 191: <span class="ruby-identifier">a</span>(<span class="ruby-value str">'scenarios'</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">scenarioIdx</span><span class="ruby-operator">|</span>
1253
- 192: <span class="ruby-identifier">generateTaskDependency</span>(<span class="ruby-identifier">scenarioIdx</span>, <span class="ruby-identifier">task</span>, <span class="ruby-value str">'depends'</span>, <span class="ruby-identifier">indent</span> <span class="ruby-operator">+</span> <span class="ruby-value">2</span>)
1254
- 193: <span class="ruby-identifier">generateTaskDependency</span>(<span class="ruby-identifier">scenarioIdx</span>, <span class="ruby-identifier">task</span>, <span class="ruby-value str">'precedes'</span>, <span class="ruby-identifier">indent</span> <span class="ruby-operator">+</span> <span class="ruby-value">2</span>)
1255
- 194: <span class="ruby-keyword kw">end</span>
1256
- 195: <span class="ruby-keyword kw">end</span>
1257
- 196:
1258
- 197: <span class="ruby-comment cmt"># Call this function recursively for all children that are included in the</span>
1259
- 198: <span class="ruby-comment cmt"># task list as well.</span>
1260
- 199: <span class="ruby-identifier">task</span>.<span class="ruby-identifier">children</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">subtask</span><span class="ruby-operator">|</span>
1261
- 200: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@taskList</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">subtask</span>)
1262
- 201: <span class="ruby-identifier">generateTask</span>(<span class="ruby-identifier">subtask</span>, <span class="ruby-identifier">indent</span> <span class="ruby-operator">+</span> <span class="ruby-value">2</span>)
1263
- 202: <span class="ruby-keyword kw">end</span>
1264
- 203: <span class="ruby-keyword kw">end</span>
1265
- 204:
1266
- 205: <span class="ruby-comment cmt"># Determine whether this task has subtasks that are included in the</span>
1267
- 206: <span class="ruby-comment cmt"># report or whether this is a leaf task for the report.</span>
1268
- 207: <span class="ruby-identifier">isLeafTask</span> = <span class="ruby-keyword kw">true</span>
1269
- 208: <span class="ruby-identifier">task</span>.<span class="ruby-identifier">children</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">subtask</span><span class="ruby-operator">|</span>
1270
- 209: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@taskList</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">subtask</span>)
1271
- 210: <span class="ruby-identifier">isLeafTask</span> = <span class="ruby-keyword kw">false</span>
1272
- 211: <span class="ruby-keyword kw">break</span>
1273
- 212: <span class="ruby-keyword kw">end</span>
1274
- 213: <span class="ruby-keyword kw">end</span>
1275
- 214:
1276
- 215: <span class="ruby-comment cmt"># For leaf tasks we put some attributes right here.</span>
1277
- 216: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">isLeafTask</span>
1278
- 217: <span class="ruby-identifier">a</span>(<span class="ruby-value str">'scenarios'</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">scenarioIdx</span><span class="ruby-operator">|</span>
1279
- 218: <span class="ruby-identifier">generateAttribute</span>(<span class="ruby-identifier">task</span>, <span class="ruby-value str">'start'</span>, <span class="ruby-identifier">indent</span> <span class="ruby-operator">+</span> <span class="ruby-value">2</span>, <span class="ruby-identifier">scenarioIdx</span>)
1280
- 219: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">task</span>[<span class="ruby-value str">'milestone'</span>, <span class="ruby-identifier">scenarioIdx</span>]
1281
- 220: <span class="ruby-identifier">generateAttributeText</span>(<span class="ruby-value str">'milestone'</span>, <span class="ruby-identifier">indent</span> <span class="ruby-operator">+</span> <span class="ruby-value">2</span>, <span class="ruby-identifier">scenarioIdx</span>)
1282
- 221: <span class="ruby-keyword kw">else</span>
1283
- 222: <span class="ruby-identifier">generateAttribute</span>(<span class="ruby-identifier">task</span>, <span class="ruby-value str">'end'</span>, <span class="ruby-identifier">indent</span> <span class="ruby-operator">+</span> <span class="ruby-value">2</span>, <span class="ruby-identifier">scenarioIdx</span>)
1284
- 223: <span class="ruby-identifier">generateAttributeText</span>(<span class="ruby-value str">'scheduling '</span> <span class="ruby-operator">+</span>
1285
- 224: (<span class="ruby-identifier">task</span>[<span class="ruby-value str">'forward'</span>, <span class="ruby-identifier">scenarioIdx</span>] <span class="ruby-operator">?</span>
1286
- 225: <span class="ruby-value str">'asap'</span> <span class="ruby-operator">:</span> <span class="ruby-value str">'alap'</span>),
1287
- 226: <span class="ruby-identifier">indent</span> <span class="ruby-operator">+</span> <span class="ruby-value">2</span>, <span class="ruby-identifier">scenarioIdx</span>)
1288
- 227: <span class="ruby-keyword kw">end</span>
1289
- 228: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">task</span>[<span class="ruby-value str">'scheduled'</span>, <span class="ruby-identifier">scenarioIdx</span>]
1290
- 229: <span class="ruby-identifier">generateAttributeText</span>(<span class="ruby-value str">'scheduled'</span>, <span class="ruby-identifier">indent</span> <span class="ruby-operator">+</span> <span class="ruby-value">2</span>, <span class="ruby-identifier">scenarioIdx</span>)
1291
- 230: <span class="ruby-keyword kw">end</span>
1292
- 231: <span class="ruby-keyword kw">end</span>
1293
- 232: <span class="ruby-keyword kw">end</span>
1294
- 233:
1295
- 234: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' '</span> * <span class="ruby-identifier">indent</span> <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;}\n&quot;</span>
1296
- 235: <span class="ruby-keyword kw">end</span></pre>
1251
+ <span class="ruby-comment cmt"># File lib/reports/TjpExportRE.rb, line 186</span>
1252
+ 186: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateTask</span>(<span class="ruby-identifier">task</span>, <span class="ruby-identifier">indent</span>)
1253
+ 187: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">activity</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">task</span>.<span class="ruby-identifier">sequenceNo</span> <span class="ruby-operator">%</span> <span class="ruby-value">100</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
1254
+ 188:
1255
+ 189: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' '</span> * <span class="ruby-identifier">indent</span> <span class="ruby-operator">+</span> <span class="ruby-node">&quot;task #{task.id} \&quot;#{task.name}\&quot; {\n&quot;</span>
1256
+ 190:
1257
+ 191: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'taskAttributes'</span>).<span class="ruby-identifier">include?</span>(<span class="ruby-value str">'depends'</span>)
1258
+ 192: <span class="ruby-identifier">a</span>(<span class="ruby-value str">'scenarios'</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">scenarioIdx</span><span class="ruby-operator">|</span>
1259
+ 193: <span class="ruby-identifier">generateTaskDependency</span>(<span class="ruby-identifier">scenarioIdx</span>, <span class="ruby-identifier">task</span>, <span class="ruby-value str">'depends'</span>, <span class="ruby-identifier">indent</span> <span class="ruby-operator">+</span> <span class="ruby-value">2</span>)
1260
+ 194: <span class="ruby-identifier">generateTaskDependency</span>(<span class="ruby-identifier">scenarioIdx</span>, <span class="ruby-identifier">task</span>, <span class="ruby-value str">'precedes'</span>, <span class="ruby-identifier">indent</span> <span class="ruby-operator">+</span> <span class="ruby-value">2</span>)
1261
+ 195: <span class="ruby-keyword kw">end</span>
1262
+ 196: <span class="ruby-keyword kw">end</span>
1263
+ 197:
1264
+ 198: <span class="ruby-comment cmt"># Call this function recursively for all children that are included in the</span>
1265
+ 199: <span class="ruby-comment cmt"># task list as well.</span>
1266
+ 200: <span class="ruby-identifier">task</span>.<span class="ruby-identifier">children</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">subtask</span><span class="ruby-operator">|</span>
1267
+ 201: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@taskList</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">subtask</span>)
1268
+ 202: <span class="ruby-identifier">generateTask</span>(<span class="ruby-identifier">subtask</span>, <span class="ruby-identifier">indent</span> <span class="ruby-operator">+</span> <span class="ruby-value">2</span>)
1269
+ 203: <span class="ruby-keyword kw">end</span>
1270
+ 204: <span class="ruby-keyword kw">end</span>
1271
+ 205:
1272
+ 206: <span class="ruby-comment cmt"># Determine whether this task has subtasks that are included in the</span>
1273
+ 207: <span class="ruby-comment cmt"># report or whether this is a leaf task for the report.</span>
1274
+ 208: <span class="ruby-identifier">isLeafTask</span> = <span class="ruby-keyword kw">true</span>
1275
+ 209: <span class="ruby-identifier">task</span>.<span class="ruby-identifier">children</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">subtask</span><span class="ruby-operator">|</span>
1276
+ 210: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@taskList</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">subtask</span>)
1277
+ 211: <span class="ruby-identifier">isLeafTask</span> = <span class="ruby-keyword kw">false</span>
1278
+ 212: <span class="ruby-keyword kw">break</span>
1279
+ 213: <span class="ruby-keyword kw">end</span>
1280
+ 214: <span class="ruby-keyword kw">end</span>
1281
+ 215:
1282
+ 216: <span class="ruby-comment cmt"># For leaf tasks we put some attributes right here.</span>
1283
+ 217: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">isLeafTask</span>
1284
+ 218: <span class="ruby-identifier">a</span>(<span class="ruby-value str">'scenarios'</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">scenarioIdx</span><span class="ruby-operator">|</span>
1285
+ 219: <span class="ruby-identifier">generateAttribute</span>(<span class="ruby-identifier">task</span>, <span class="ruby-value str">'start'</span>, <span class="ruby-identifier">indent</span> <span class="ruby-operator">+</span> <span class="ruby-value">2</span>, <span class="ruby-identifier">scenarioIdx</span>)
1286
+ 220: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">task</span>[<span class="ruby-value str">'milestone'</span>, <span class="ruby-identifier">scenarioIdx</span>]
1287
+ 221: <span class="ruby-identifier">generateAttributeText</span>(<span class="ruby-value str">'milestone'</span>, <span class="ruby-identifier">indent</span> <span class="ruby-operator">+</span> <span class="ruby-value">2</span>, <span class="ruby-identifier">scenarioIdx</span>)
1288
+ 222: <span class="ruby-keyword kw">else</span>
1289
+ 223: <span class="ruby-identifier">generateAttribute</span>(<span class="ruby-identifier">task</span>, <span class="ruby-value str">'end'</span>, <span class="ruby-identifier">indent</span> <span class="ruby-operator">+</span> <span class="ruby-value">2</span>, <span class="ruby-identifier">scenarioIdx</span>)
1290
+ 224: <span class="ruby-identifier">generateAttributeText</span>(<span class="ruby-value str">'scheduling '</span> <span class="ruby-operator">+</span>
1291
+ 225: (<span class="ruby-identifier">task</span>[<span class="ruby-value str">'forward'</span>, <span class="ruby-identifier">scenarioIdx</span>] <span class="ruby-operator">?</span>
1292
+ 226: <span class="ruby-value str">'asap'</span> <span class="ruby-operator">:</span> <span class="ruby-value str">'alap'</span>),
1293
+ 227: <span class="ruby-identifier">indent</span> <span class="ruby-operator">+</span> <span class="ruby-value">2</span>, <span class="ruby-identifier">scenarioIdx</span>)
1294
+ 228: <span class="ruby-keyword kw">end</span>
1295
+ 229: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">task</span>[<span class="ruby-value str">'scheduled'</span>, <span class="ruby-identifier">scenarioIdx</span>]
1296
+ 230: <span class="ruby-identifier">generateAttributeText</span>(<span class="ruby-value str">'scheduled'</span>, <span class="ruby-identifier">indent</span> <span class="ruby-operator">+</span> <span class="ruby-value">2</span>, <span class="ruby-identifier">scenarioIdx</span>)
1297
+ 231: <span class="ruby-keyword kw">end</span>
1298
+ 232: <span class="ruby-keyword kw">end</span>
1299
+ 233: <span class="ruby-keyword kw">end</span>
1300
+ 234:
1301
+ 235: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' '</span> * <span class="ruby-identifier">indent</span> <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;}\n&quot;</span>
1302
+ 236: <span class="ruby-keyword kw">end</span></pre>
1297
1303
  </div>
1298
1304
 
1299
1305
  </div>
@@ -1327,37 +1333,37 @@ attributes.
1327
1333
  <div class="method-source-code"
1328
1334
  id="generate-ask-ttributes-source">
1329
1335
  <pre>
1330
- <span class="ruby-comment cmt"># File lib/reports/TjpExportRE.rb, line 285</span>
1331
- 285: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateTaskAttributes</span>
1332
- 286: <span class="ruby-ivar">@taskList</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">task</span><span class="ruby-operator">|</span>
1333
- 287: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">activity</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">task</span>.<span class="ruby-identifier">sequenceNo</span> <span class="ruby-operator">%</span> <span class="ruby-value">100</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
1334
- 288:
1335
- 289: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;supplement task #{task.fullId} {\n&quot;</span>
1336
- 290: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">tasks</span>.<span class="ruby-identifier">eachAttributeDefinition</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">attrDef</span><span class="ruby-operator">|</span>
1337
- 291: <span class="ruby-identifier">id</span> = <span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">id</span>
1338
- 292: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> (<span class="ruby-operator">!</span><span class="ruby-ivar">@supportedTaskAttrs</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">id</span>) <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">userDefined</span>) <span class="ruby-operator">||</span>
1339
- 293: <span class="ruby-operator">!</span><span class="ruby-identifier">a</span>(<span class="ruby-value str">'taskAttributes'</span>).<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">id</span>)
1340
- 294:
1341
- 295: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">scenarioSpecific</span>
1342
- 296: <span class="ruby-identifier">a</span>(<span class="ruby-value str">'scenarios'</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">scenarioIdx</span><span class="ruby-operator">|</span>
1343
- 297: <span class="ruby-comment cmt"># Some attributes need special treatment.</span>
1344
- 298: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">id</span>
1345
- 299: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'depends'</span>
1346
- 300: <span class="ruby-keyword kw">next</span> <span class="ruby-comment cmt"># already taken care of</span>
1347
- 301: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'booking'</span>
1348
- 302: <span class="ruby-identifier">generateBooking</span>(<span class="ruby-identifier">task</span>, <span class="ruby-value">2</span>, <span class="ruby-identifier">scenarioIdx</span>)
1349
- 303: <span class="ruby-keyword kw">else</span>
1350
- 304: <span class="ruby-identifier">generateAttribute</span>(<span class="ruby-identifier">task</span>, <span class="ruby-identifier">id</span>, <span class="ruby-value">2</span>, <span class="ruby-identifier">scenarioIdx</span>)
1351
- 305: <span class="ruby-keyword kw">end</span>
1352
- 306: <span class="ruby-keyword kw">end</span>
1353
- 307: <span class="ruby-keyword kw">else</span>
1354
- 308: <span class="ruby-identifier">generateAttribute</span>(<span class="ruby-identifier">task</span>, <span class="ruby-identifier">id</span>, <span class="ruby-value">2</span>)
1355
- 309: <span class="ruby-keyword kw">end</span>
1356
- 310: <span class="ruby-keyword kw">end</span>
1357
- 311:
1358
- 312: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;}\n&quot;</span>
1359
- 313: <span class="ruby-keyword kw">end</span>
1360
- 314: <span class="ruby-keyword kw">end</span></pre>
1336
+ <span class="ruby-comment cmt"># File lib/reports/TjpExportRE.rb, line 286</span>
1337
+ 286: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateTaskAttributes</span>
1338
+ 287: <span class="ruby-ivar">@taskList</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">task</span><span class="ruby-operator">|</span>
1339
+ 288: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">activity</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">task</span>.<span class="ruby-identifier">sequenceNo</span> <span class="ruby-operator">%</span> <span class="ruby-value">100</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
1340
+ 289:
1341
+ 290: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;supplement task #{task.fullId} {\n&quot;</span>
1342
+ 291: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">tasks</span>.<span class="ruby-identifier">eachAttributeDefinition</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">attrDef</span><span class="ruby-operator">|</span>
1343
+ 292: <span class="ruby-identifier">id</span> = <span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">id</span>
1344
+ 293: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> (<span class="ruby-operator">!</span><span class="ruby-ivar">@supportedTaskAttrs</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">id</span>) <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">userDefined</span>) <span class="ruby-operator">||</span>
1345
+ 294: <span class="ruby-operator">!</span><span class="ruby-identifier">a</span>(<span class="ruby-value str">'taskAttributes'</span>).<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">id</span>)
1346
+ 295:
1347
+ 296: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">scenarioSpecific</span>
1348
+ 297: <span class="ruby-identifier">a</span>(<span class="ruby-value str">'scenarios'</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">scenarioIdx</span><span class="ruby-operator">|</span>
1349
+ 298: <span class="ruby-comment cmt"># Some attributes need special treatment.</span>
1350
+ 299: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">id</span>
1351
+ 300: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'depends'</span>
1352
+ 301: <span class="ruby-keyword kw">next</span> <span class="ruby-comment cmt"># already taken care of</span>
1353
+ 302: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'booking'</span>
1354
+ 303: <span class="ruby-identifier">generateBooking</span>(<span class="ruby-identifier">task</span>, <span class="ruby-value">2</span>, <span class="ruby-identifier">scenarioIdx</span>)
1355
+ 304: <span class="ruby-keyword kw">else</span>
1356
+ 305: <span class="ruby-identifier">generateAttribute</span>(<span class="ruby-identifier">task</span>, <span class="ruby-identifier">id</span>, <span class="ruby-value">2</span>, <span class="ruby-identifier">scenarioIdx</span>)
1357
+ 306: <span class="ruby-keyword kw">end</span>
1358
+ 307: <span class="ruby-keyword kw">end</span>
1359
+ 308: <span class="ruby-keyword kw">else</span>
1360
+ 309: <span class="ruby-identifier">generateAttribute</span>(<span class="ruby-identifier">task</span>, <span class="ruby-identifier">id</span>, <span class="ruby-value">2</span>)
1361
+ 310: <span class="ruby-keyword kw">end</span>
1362
+ 311: <span class="ruby-keyword kw">end</span>
1363
+ 312:
1364
+ 313: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;}\n&quot;</span>
1365
+ 314: <span class="ruby-keyword kw">end</span>
1366
+ 315: <span class="ruby-keyword kw">end</span></pre>
1361
1367
  </div>
1362
1368
 
1363
1369
  </div>
@@ -1391,25 +1397,25 @@ task.
1391
1397
  <div class="method-source-code"
1392
1398
  id="generate-ask-ependency-source">
1393
1399
  <pre>
1394
- <span class="ruby-comment cmt"># File lib/reports/TjpExportRE.rb, line 238</span>
1395
- 238: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateTaskDependency</span>(<span class="ruby-identifier">scenarioIdx</span>, <span class="ruby-identifier">task</span>, <span class="ruby-identifier">tag</span>, <span class="ruby-identifier">indent</span>)
1396
- 239: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'taskAttributes'</span>).<span class="ruby-identifier">include?</span>(<span class="ruby-value str">'depends'</span>)
1397
- 240:
1398
- 241: <span class="ruby-identifier">taskDeps</span> = <span class="ruby-identifier">task</span>[<span class="ruby-identifier">tag</span>, <span class="ruby-identifier">scenarioIdx</span>]
1399
- 242: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">taskDeps</span>.<span class="ruby-identifier">empty?</span>
1400
- 243: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' '</span> * <span class="ruby-identifier">indent</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">tag</span> <span class="ruby-operator">+</span> <span class="ruby-value str">' '</span>
1401
- 244: <span class="ruby-identifier">first</span> = <span class="ruby-keyword kw">true</span>
1402
- 245: <span class="ruby-identifier">taskDeps</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">dep</span><span class="ruby-operator">|</span>
1403
- 246: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">first</span>
1404
- 247: <span class="ruby-identifier">first</span> = <span class="ruby-keyword kw">false</span>
1405
- 248: <span class="ruby-keyword kw">else</span>
1406
- 249: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">', '</span>
1407
- 250: <span class="ruby-keyword kw">end</span>
1408
- 251: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">dep</span>.<span class="ruby-identifier">task</span>.<span class="ruby-identifier">fullId</span>
1409
- 252: <span class="ruby-keyword kw">end</span>
1410
- 253: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;\n&quot;</span>
1411
- 254: <span class="ruby-keyword kw">end</span>
1412
- 255: <span class="ruby-keyword kw">end</span></pre>
1400
+ <span class="ruby-comment cmt"># File lib/reports/TjpExportRE.rb, line 239</span>
1401
+ 239: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateTaskDependency</span>(<span class="ruby-identifier">scenarioIdx</span>, <span class="ruby-identifier">task</span>, <span class="ruby-identifier">tag</span>, <span class="ruby-identifier">indent</span>)
1402
+ 240: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'taskAttributes'</span>).<span class="ruby-identifier">include?</span>(<span class="ruby-value str">'depends'</span>)
1403
+ 241:
1404
+ 242: <span class="ruby-identifier">taskDeps</span> = <span class="ruby-identifier">task</span>[<span class="ruby-identifier">tag</span>, <span class="ruby-identifier">scenarioIdx</span>]
1405
+ 243: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">taskDeps</span>.<span class="ruby-identifier">empty?</span>
1406
+ 244: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' '</span> * <span class="ruby-identifier">indent</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">tag</span> <span class="ruby-operator">+</span> <span class="ruby-value str">' '</span>
1407
+ 245: <span class="ruby-identifier">first</span> = <span class="ruby-keyword kw">true</span>
1408
+ 246: <span class="ruby-identifier">taskDeps</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">dep</span><span class="ruby-operator">|</span>
1409
+ 247: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">first</span>
1410
+ 248: <span class="ruby-identifier">first</span> = <span class="ruby-keyword kw">false</span>
1411
+ 249: <span class="ruby-keyword kw">else</span>
1412
+ 250: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">', '</span>
1413
+ 251: <span class="ruby-keyword kw">end</span>
1414
+ 252: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">dep</span>.<span class="ruby-identifier">task</span>.<span class="ruby-identifier">fullId</span>
1415
+ 253: <span class="ruby-keyword kw">end</span>
1416
+ 254: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;\n&quot;</span>
1417
+ 255: <span class="ruby-keyword kw">end</span>
1418
+ 256: <span class="ruby-keyword kw">end</span></pre>
1413
1419
  </div>
1414
1420
 
1415
1421
  </div>
@@ -1440,16 +1446,16 @@ task.
1440
1446
  <div class="method-source-code"
1441
1447
  id="generate-ask-ist-source">
1442
1448
  <pre>
1443
- <span class="ruby-comment cmt"># File lib/reports/TjpExportRE.rb, line 171</span>
1444
- 171: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateTaskList</span>
1445
- 172: <span class="ruby-comment cmt"># The task definitions are generated recursively. So we only need to start</span>
1446
- 173: <span class="ruby-comment cmt"># it for the top-level tasks.</span>
1447
- 174: <span class="ruby-ivar">@taskList</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">task</span><span class="ruby-operator">|</span>
1448
- 175: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">task</span>.<span class="ruby-identifier">parent</span>.<span class="ruby-identifier">nil?</span>
1449
- 176: <span class="ruby-identifier">generateTask</span>(<span class="ruby-identifier">task</span>, <span class="ruby-value">0</span>)
1450
- 177: <span class="ruby-keyword kw">end</span>
1451
- 178: <span class="ruby-keyword kw">end</span>
1452
- 179: <span class="ruby-keyword kw">end</span></pre>
1449
+ <span class="ruby-comment cmt"># File lib/reports/TjpExportRE.rb, line 172</span>
1450
+ 172: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateTaskList</span>
1451
+ 173: <span class="ruby-comment cmt"># The task definitions are generated recursively. So we only need to start</span>
1452
+ 174: <span class="ruby-comment cmt"># it for the top-level tasks.</span>
1453
+ 175: <span class="ruby-ivar">@taskList</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">task</span><span class="ruby-operator">|</span>
1454
+ 176: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">task</span>.<span class="ruby-identifier">parent</span>.<span class="ruby-identifier">nil?</span>
1455
+ 177: <span class="ruby-identifier">generateTask</span>(<span class="ruby-identifier">task</span>, <span class="ruby-value">0</span>)
1456
+ 178: <span class="ruby-keyword kw">end</span>
1457
+ 179: <span class="ruby-keyword kw">end</span>
1458
+ 180: <span class="ruby-keyword kw">end</span></pre>
1453
1459
  </div>
1454
1460
 
1455
1461
  </div>
@@ -1483,29 +1489,30 @@ report.
1483
1489
  <div class="method-source-code"
1484
1490
  id="get-ookings-source">
1485
1491
  <pre>
1486
- <span class="ruby-comment cmt"># File lib/reports/TjpExportRE.rb, line 337</span>
1487
- 337: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">getBookings</span>
1488
- 338: <span class="ruby-ivar">@bookings</span> = {}
1489
- 339: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'taskAttributes'</span>).<span class="ruby-identifier">include?</span>(<span class="ruby-value str">'booking'</span>)
1490
- 340: <span class="ruby-identifier">a</span>(<span class="ruby-value str">'scenarios'</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">scenarioIdx</span><span class="ruby-operator">|</span>
1491
- 341: <span class="ruby-ivar">@bookings</span>[<span class="ruby-identifier">scenarioIdx</span>] = {}
1492
- 342: <span class="ruby-ivar">@resourceList</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">resource</span><span class="ruby-operator">|</span>
1493
- 343: <span class="ruby-comment cmt"># Get the bookings for this resource hashed by task.</span>
1494
- 344: <span class="ruby-identifier">bookings</span> = <span class="ruby-identifier">resource</span>.<span class="ruby-identifier">getBookings</span>(<span class="ruby-identifier">scenarioIdx</span>)
1495
- 345: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">bookings</span>.<span class="ruby-identifier">nil?</span>
1496
- 346:
1497
- 347: <span class="ruby-comment cmt"># Now convert/add them to a tripple-stage hash by scenarioIdx, task</span>
1498
- 348: <span class="ruby-comment cmt"># and then resource.</span>
1499
- 349: <span class="ruby-identifier">bookings</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">task</span>, <span class="ruby-identifier">booking</span><span class="ruby-operator">|</span>
1500
- 350: <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@bookings</span>[<span class="ruby-identifier">scenarioIdx</span>].<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">task</span>)
1501
- 351: <span class="ruby-ivar">@bookings</span>[<span class="ruby-identifier">scenarioIdx</span>][<span class="ruby-identifier">task</span>] = {}
1502
- 352: <span class="ruby-keyword kw">end</span>
1503
- 353: <span class="ruby-ivar">@bookings</span>[<span class="ruby-identifier">scenarioIdx</span>][<span class="ruby-identifier">task</span>][<span class="ruby-identifier">resource</span>] = <span class="ruby-identifier">booking</span>
1504
- 354: <span class="ruby-keyword kw">end</span>
1505
- 355: <span class="ruby-keyword kw">end</span>
1506
- 356: <span class="ruby-keyword kw">end</span>
1507
- 357: <span class="ruby-keyword kw">end</span>
1508
- 358: <span class="ruby-keyword kw">end</span></pre>
1492
+ <span class="ruby-comment cmt"># File lib/reports/TjpExportRE.rb, line 338</span>
1493
+ 338: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">getBookings</span>
1494
+ 339: <span class="ruby-ivar">@bookings</span> = {}
1495
+ 340: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'taskAttributes'</span>).<span class="ruby-identifier">include?</span>(<span class="ruby-value str">'booking'</span>)
1496
+ 341: <span class="ruby-identifier">a</span>(<span class="ruby-value str">'scenarios'</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">scenarioIdx</span><span class="ruby-operator">|</span>
1497
+ 342: <span class="ruby-ivar">@bookings</span>[<span class="ruby-identifier">scenarioIdx</span>] = {}
1498
+ 343: <span class="ruby-ivar">@resourceList</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">resource</span><span class="ruby-operator">|</span>
1499
+ 344: <span class="ruby-comment cmt"># Get the bookings for this resource hashed by task.</span>
1500
+ 345: <span class="ruby-identifier">bookings</span> = <span class="ruby-identifier">resource</span>.<span class="ruby-identifier">getBookings</span>(<span class="ruby-identifier">scenarioIdx</span>,
1501
+ 346: <span class="ruby-constant">Interval</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">a</span>(<span class="ruby-value str">'start'</span>), <span class="ruby-identifier">a</span>(<span class="ruby-value str">'end'</span>)))
1502
+ 347: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">bookings</span>.<span class="ruby-identifier">nil?</span>
1503
+ 348:
1504
+ 349: <span class="ruby-comment cmt"># Now convert/add them to a tripple-stage hash by scenarioIdx, task</span>
1505
+ 350: <span class="ruby-comment cmt"># and then resource.</span>
1506
+ 351: <span class="ruby-identifier">bookings</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">task</span>, <span class="ruby-identifier">booking</span><span class="ruby-operator">|</span>
1507
+ 352: <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@bookings</span>[<span class="ruby-identifier">scenarioIdx</span>].<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">task</span>)
1508
+ 353: <span class="ruby-ivar">@bookings</span>[<span class="ruby-identifier">scenarioIdx</span>][<span class="ruby-identifier">task</span>] = {}
1509
+ 354: <span class="ruby-keyword kw">end</span>
1510
+ 355: <span class="ruby-ivar">@bookings</span>[<span class="ruby-identifier">scenarioIdx</span>][<span class="ruby-identifier">task</span>][<span class="ruby-identifier">resource</span>] = <span class="ruby-identifier">booking</span>
1511
+ 356: <span class="ruby-keyword kw">end</span>
1512
+ 357: <span class="ruby-keyword kw">end</span>
1513
+ 358: <span class="ruby-keyword kw">end</span>
1514
+ 359: <span class="ruby-keyword kw">end</span>
1515
+ 360: <span class="ruby-keyword kw">end</span></pre>
1509
1516
  </div>
1510
1517
 
1511
1518
  </div>
@@ -1543,21 +1550,21 @@ a line break.
1543
1550
  <div class="method-source-code"
1544
1551
  id="indent-lock-source">
1545
1552
  <pre>
1546
- <span class="ruby-comment cmt"># File lib/reports/TjpExportRE.rb, line 374</span>
1547
- 374: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">indentBlock</span>(<span class="ruby-identifier">text</span>, <span class="ruby-identifier">indent</span>)
1548
- 375: <span class="ruby-identifier">out</span> = <span class="ruby-value str">''</span>
1549
- 376: <span class="ruby-identifier">firstSpace</span> = <span class="ruby-value">0</span>
1550
- 377: <span class="ruby-identifier">text</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>
1551
- 378: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">firstSpace</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">text</span>[<span class="ruby-identifier">i</span>] <span class="ruby-operator">==</span> <span class="ruby-value">\ \</span><span class="ruby-comment cmt"># There must be a space after ?</span>
1552
- 379: <span class="ruby-identifier">firstSpace</span> = <span class="ruby-identifier">i</span>
1553
- 380: <span class="ruby-keyword kw">end</span>
1554
- 381: <span class="ruby-identifier">out</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">text</span>[<span class="ruby-identifier">i</span>]
1555
- 382: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">text</span>[<span class="ruby-identifier">i</span>] <span class="ruby-operator">==</span> <span class="ruby-value">\n\</span>
1556
- 383: <span class="ruby-identifier">out</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">' '</span> * (<span class="ruby-identifier">indent</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">firstSpace</span>)
1557
- 384: <span class="ruby-keyword kw">end</span>
1558
- 385: <span class="ruby-keyword kw">end</span>
1559
- 386: <span class="ruby-identifier">out</span>
1560
- 387: <span class="ruby-keyword kw">end</span></pre>
1553
+ <span class="ruby-comment cmt"># File lib/reports/TjpExportRE.rb, line 376</span>
1554
+ 376: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">indentBlock</span>(<span class="ruby-identifier">text</span>, <span class="ruby-identifier">indent</span>)
1555
+ 377: <span class="ruby-identifier">out</span> = <span class="ruby-value str">''</span>
1556
+ 378: <span class="ruby-identifier">firstSpace</span> = <span class="ruby-value">0</span>
1557
+ 379: <span class="ruby-identifier">text</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>
1558
+ 380: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">firstSpace</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">text</span>[<span class="ruby-identifier">i</span>] <span class="ruby-operator">==</span> <span class="ruby-value">\ \</span><span class="ruby-comment cmt"># There must be a space after ?</span>
1559
+ 381: <span class="ruby-identifier">firstSpace</span> = <span class="ruby-identifier">i</span>
1560
+ 382: <span class="ruby-keyword kw">end</span>
1561
+ 383: <span class="ruby-identifier">out</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">text</span>[<span class="ruby-identifier">i</span>]
1562
+ 384: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">text</span>[<span class="ruby-identifier">i</span>] <span class="ruby-operator">==</span> <span class="ruby-value">\n\</span>
1563
+ 385: <span class="ruby-identifier">out</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">' '</span> * (<span class="ruby-identifier">indent</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">firstSpace</span>)
1564
+ 386: <span class="ruby-keyword kw">end</span>
1565
+ 387: <span class="ruby-keyword kw">end</span>
1566
+ 388: <span class="ruby-identifier">out</span>
1567
+ 389: <span class="ruby-keyword kw">end</span></pre>
1561
1568
  </div>
1562
1569
 
1563
1570
  </div>