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>
@@ -605,10 +611,10 @@ methods for remote access.
605
611
  <div class="method-source-code"
606
612
  id="new-source">
607
613
  <pre>
608
- <span class="ruby-comment cmt"># File lib/daemon/ProjectBroker.rb, line 455</span>
609
- 455: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">broker</span>)
610
- 456: <span class="ruby-ivar">@broker</span> = <span class="ruby-identifier">broker</span>
611
- 457: <span class="ruby-keyword kw">end</span></pre>
614
+ <span class="ruby-comment cmt"># File lib/daemon/ProjectBroker.rb, line 503</span>
615
+ 503: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">broker</span>)
616
+ 504: <span class="ruby-ivar">@broker</span> = <span class="ruby-identifier">broker</span>
617
+ 505: <span class="ruby-keyword kw">end</span></pre>
612
618
  </div>
613
619
 
614
620
  </div>
@@ -650,12 +656,12 @@ don&#8217;t match
650
656
  <div class="method-source-code"
651
657
  id="api-ersion-source">
652
658
  <pre>
653
- <span class="ruby-comment cmt"># File lib/daemon/ProjectBroker.rb, line 464</span>
654
- 464: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">apiVersion</span>(<span class="ruby-identifier">authKey</span>, <span class="ruby-identifier">version</span>)
655
- 465: <span class="ruby-keyword kw">return</span> <span class="ruby-value">0</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@broker</span>.<span class="ruby-identifier">checkKey</span>(<span class="ruby-identifier">authKey</span>, <span class="ruby-value str">'apiVersion'</span>)
656
- 466:
657
- 467: <span class="ruby-identifier">version</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span> <span class="ruby-operator">?</span> <span class="ruby-value">1</span> <span class="ruby-operator">:</span> <span class="ruby-value">1</span>
658
- 468: <span class="ruby-keyword kw">end</span></pre>
659
+ <span class="ruby-comment cmt"># File lib/daemon/ProjectBroker.rb, line 512</span>
660
+ 512: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">apiVersion</span>(<span class="ruby-identifier">authKey</span>, <span class="ruby-identifier">version</span>)
661
+ 513: <span class="ruby-keyword kw">return</span> <span class="ruby-value">0</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@broker</span>.<span class="ruby-identifier">checkKey</span>(<span class="ruby-identifier">authKey</span>, <span class="ruby-value str">'apiVersion'</span>)
662
+ 514:
663
+ 515: <span class="ruby-identifier">version</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span> <span class="ruby-operator">?</span> <span class="ruby-value">1</span> <span class="ruby-operator">:</span> <span class="ruby-value">1</span>
664
+ 516: <span class="ruby-keyword kw">end</span></pre>
659
665
  </div>
660
666
 
661
667
  </div>
@@ -686,29 +692,31 @@ don&#8217;t match
686
692
  <div class="method-source-code"
687
693
  id="command-source">
688
694
  <pre>
689
- <span class="ruby-comment cmt"># File lib/daemon/ProjectBroker.rb, line 484</span>
690
- 484: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">command</span>(<span class="ruby-identifier">authKey</span>, <span class="ruby-identifier">cmd</span>, <span class="ruby-identifier">args</span>)
691
- 485: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@broker</span>.<span class="ruby-identifier">checkKey</span>(<span class="ruby-identifier">authKey</span>, <span class="ruby-identifier">cmd</span>)
692
- 486:
693
- 487: <span class="ruby-identifier">trap</span> <span class="ruby-keyword kw">do</span>
694
- 488: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">cmd</span>
695
- 489: <span class="ruby-keyword kw">when</span> <span class="ruby-value">:status</span>
696
- 490: <span class="ruby-ivar">@broker</span>.<span class="ruby-identifier">status</span>
697
- 491: <span class="ruby-keyword kw">when</span> <span class="ruby-value">:stop</span>
698
- 492: <span class="ruby-ivar">@broker</span>.<span class="ruby-identifier">stop</span>
699
- 493: <span class="ruby-keyword kw">when</span> <span class="ruby-value">:addProject</span>
700
- 494: <span class="ruby-ivar">@broker</span>.<span class="ruby-identifier">addProject</span>
701
- 495: <span class="ruby-keyword kw">when</span> <span class="ruby-value">:removeProject</span>
702
- 496: <span class="ruby-ivar">@broker</span>.<span class="ruby-identifier">removeProject</span>(<span class="ruby-identifier">args</span>)
703
- 497: <span class="ruby-keyword kw">when</span> <span class="ruby-value">:getProject</span>
704
- 498: <span class="ruby-ivar">@broker</span>.<span class="ruby-identifier">getProject</span>(<span class="ruby-identifier">args</span>)
705
- 499: <span class="ruby-keyword kw">when</span> <span class="ruby-value">:update</span>
706
- 500: <span class="ruby-ivar">@broker</span>.<span class="ruby-identifier">update</span>
707
- 501: <span class="ruby-keyword kw">else</span>
708
- 502: <span class="ruby-constant">LogFile</span>.<span class="ruby-identifier">instance</span>.<span class="ruby-identifier">fatal</span>(<span class="ruby-value str">'Unknown command #{cmd} called'</span>)
709
- 503: <span class="ruby-keyword kw">end</span>
710
- 504: <span class="ruby-keyword kw">end</span>
711
- 505: <span class="ruby-keyword kw">end</span></pre>
695
+ <span class="ruby-comment cmt"># File lib/daemon/ProjectBroker.rb, line 532</span>
696
+ 532: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">command</span>(<span class="ruby-identifier">authKey</span>, <span class="ruby-identifier">cmd</span>, <span class="ruby-identifier">args</span>)
697
+ 533: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@broker</span>.<span class="ruby-identifier">checkKey</span>(<span class="ruby-identifier">authKey</span>, <span class="ruby-identifier">cmd</span>)
698
+ 534:
699
+ 535: <span class="ruby-identifier">trap</span> <span class="ruby-keyword kw">do</span>
700
+ 536: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">cmd</span>
701
+ 537: <span class="ruby-keyword kw">when</span> <span class="ruby-value">:status</span>
702
+ 538: <span class="ruby-ivar">@broker</span>.<span class="ruby-identifier">status</span>
703
+ 539: <span class="ruby-keyword kw">when</span> <span class="ruby-value">:stop</span>
704
+ 540: <span class="ruby-ivar">@broker</span>.<span class="ruby-identifier">stop</span>
705
+ 541: <span class="ruby-keyword kw">when</span> <span class="ruby-value">:addProject</span>
706
+ 542: <span class="ruby-comment cmt"># To pass the DRbObject as separate arguments we need to convert it</span>
707
+ 543: <span class="ruby-comment cmt"># into a real Array again.</span>
708
+ 544: <span class="ruby-ivar">@broker</span>.<span class="ruby-identifier">addProject</span>(*<span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">args</span>))
709
+ 545: <span class="ruby-keyword kw">when</span> <span class="ruby-value">:removeProject</span>
710
+ 546: <span class="ruby-ivar">@broker</span>.<span class="ruby-identifier">removeProject</span>(<span class="ruby-identifier">args</span>)
711
+ 547: <span class="ruby-keyword kw">when</span> <span class="ruby-value">:getProject</span>
712
+ 548: <span class="ruby-ivar">@broker</span>.<span class="ruby-identifier">getProject</span>(<span class="ruby-identifier">args</span>)
713
+ 549: <span class="ruby-keyword kw">when</span> <span class="ruby-value">:update</span>
714
+ 550: <span class="ruby-ivar">@broker</span>.<span class="ruby-identifier">update</span>
715
+ 551: <span class="ruby-keyword kw">else</span>
716
+ 552: <span class="ruby-constant">LogFile</span>.<span class="ruby-identifier">instance</span>.<span class="ruby-identifier">fatal</span>(<span class="ruby-value str">'Unknown command #{cmd} called'</span>)
717
+ 553: <span class="ruby-keyword kw">end</span>
718
+ 554: <span class="ruby-keyword kw">end</span>
719
+ 555: <span class="ruby-keyword kw">end</span></pre>
712
720
  </div>
713
721
 
714
722
  </div>
@@ -741,19 +749,19 @@ This function catches all unhandled exceptions in the passed block.
741
749
  <div class="method-source-code"
742
750
  id="trap-source">
743
751
  <pre>
744
- <span class="ruby-comment cmt"># File lib/daemon/ProjectBroker.rb, line 471</span>
745
- 471: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">trap</span>
746
- 472: <span class="ruby-identifier">log</span> = <span class="ruby-constant">LogFile</span>.<span class="ruby-identifier">instance</span>
747
- 473:
748
- 474: <span class="ruby-keyword kw">begin</span>
749
- 475: <span class="ruby-keyword kw">yield</span>
750
- 476: <span class="ruby-keyword kw">rescue</span>
751
- 477: <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">print</span> <span class="ruby-identifier">$!</span>.<span class="ruby-identifier">to_s</span>
752
- 478: <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">print</span> <span class="ruby-identifier">$!</span>.<span class="ruby-identifier">backtrace</span>.<span class="ruby-identifier">join</span>(<span class="ruby-value str">&quot;\n&quot;</span>)
753
- 479: <span class="ruby-identifier">log</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-identifier">$!</span>.<span class="ruby-identifier">backtrace</span>.<span class="ruby-identifier">join</span>(<span class="ruby-value str">&quot;\n&quot;</span>))
754
- 480: <span class="ruby-identifier">log</span>.<span class="ruby-identifier">fatal</span>(<span class="ruby-node">&quot;Unexpected exception: #{$!}&quot;</span>)
755
- 481: <span class="ruby-keyword kw">end</span>
756
- 482: <span class="ruby-keyword kw">end</span></pre>
752
+ <span class="ruby-comment cmt"># File lib/daemon/ProjectBroker.rb, line 519</span>
753
+ 519: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">trap</span>
754
+ 520: <span class="ruby-identifier">log</span> = <span class="ruby-constant">LogFile</span>.<span class="ruby-identifier">instance</span>
755
+ 521:
756
+ 522: <span class="ruby-keyword kw">begin</span>
757
+ 523: <span class="ruby-keyword kw">yield</span>
758
+ 524: <span class="ruby-keyword kw">rescue</span>
759
+ 525: <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">print</span> <span class="ruby-identifier">$!</span>.<span class="ruby-identifier">to_s</span>
760
+ 526: <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">print</span> <span class="ruby-identifier">$!</span>.<span class="ruby-identifier">backtrace</span>.<span class="ruby-identifier">join</span>(<span class="ruby-value str">&quot;\n&quot;</span>)
761
+ 527: <span class="ruby-identifier">log</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-identifier">$!</span>.<span class="ruby-identifier">backtrace</span>.<span class="ruby-identifier">join</span>(<span class="ruby-value str">&quot;\n&quot;</span>))
762
+ 528: <span class="ruby-identifier">log</span>.<span class="ruby-identifier">fatal</span>(<span class="ruby-node">&quot;Unexpected exception: #{$!}&quot;</span>)
763
+ 529: <span class="ruby-keyword kw">end</span>
764
+ 530: <span class="ruby-keyword kw">end</span></pre>
757
765
  </div>
758
766
 
759
767
  </div>
@@ -770,7 +778,7 @@ This function catches all unhandled exceptions in the passed block.
770
778
  <div class="method-heading">
771
779
 
772
780
  <span class="method-name">updateState</span><span
773
- class="method-args">(authKey, id, status, modified)</span>
781
+ class="method-args">(authKey, projectKey, id, status, modified)</span>
774
782
  <span class="method-click-advice">click to toggle source</span>
775
783
 
776
784
  </div>
@@ -784,10 +792,12 @@ This function catches all unhandled exceptions in the passed block.
784
792
  <div class="method-source-code"
785
793
  id="update-tate-source">
786
794
  <pre>
787
- <span class="ruby-comment cmt"># File lib/daemon/ProjectBroker.rb, line 507</span>
788
- 507: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">updateState</span>(<span class="ruby-identifier">authKey</span>, <span class="ruby-identifier">id</span>, <span class="ruby-identifier">status</span>, <span class="ruby-identifier">modified</span>)
789
- 508: <span class="ruby-identifier">trap</span> { <span class="ruby-ivar">@broker</span>.<span class="ruby-identifier">updateState</span>(<span class="ruby-identifier">authKey</span>, <span class="ruby-identifier">id</span>, <span class="ruby-identifier">status</span>, <span class="ruby-identifier">modified</span>) }
790
- 509: <span class="ruby-keyword kw">end</span></pre>
795
+ <span class="ruby-comment cmt"># File lib/daemon/ProjectBroker.rb, line 557</span>
796
+ 557: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">updateState</span>(<span class="ruby-identifier">authKey</span>, <span class="ruby-identifier">projectKey</span>, <span class="ruby-identifier">id</span>, <span class="ruby-identifier">status</span>, <span class="ruby-identifier">modified</span>)
797
+ 558: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@broker</span>.<span class="ruby-identifier">checkKey</span>(<span class="ruby-identifier">authKey</span>, <span class="ruby-value str">'updateState'</span>)
798
+ 559:
799
+ 560: <span class="ruby-identifier">trap</span> { <span class="ruby-ivar">@broker</span>.<span class="ruby-identifier">updateState</span>(<span class="ruby-identifier">projectKey</span>, <span class="ruby-identifier">id</span>, <span class="ruby-identifier">status</span>, <span class="ruby-identifier">modified</span>) }
800
+ 561: <span class="ruby-keyword kw">end</span></pre>
791
801
  </div>
792
802
 
793
803
  </div>
@@ -196,6 +196,8 @@
196
196
 
197
197
  <li><a href="../TaskJuggler/AttributeDefinition.html">TaskJuggler::AttributeDefinition</a></li>
198
198
 
199
+ <li><a href="../TaskJuggler/AttributeOverwrite.html">TaskJuggler::AttributeOverwrite</a></li>
200
+
199
201
  <li><a href="../TaskJuggler/BatchProcessor.html">TaskJuggler::BatchProcessor</a></li>
200
202
 
201
203
  <li><a href="../TaskJuggler/Booking.html">TaskJuggler::Booking</a></li>
@@ -274,6 +276,8 @@
274
276
 
275
277
  <li><a href="../TaskJuggler/Interval.html">TaskJuggler::Interval</a></li>
276
278
 
279
+ <li><a href="../TaskJuggler/IntervalList.html">TaskJuggler::IntervalList</a></li>
280
+
277
281
  <li><a href="../TaskJuggler/IntervalListAttribute.html">TaskJuggler::IntervalListAttribute</a></li>
278
282
 
279
283
  <li><a href="../TaskJuggler/JobInfo.html">TaskJuggler::JobInfo</a></li>
@@ -306,6 +310,8 @@
306
310
 
307
311
  <li><a href="../TaskJuggler/LogicalExpressionAttribute.html">TaskJuggler::LogicalExpressionAttribute</a></li>
308
312
 
313
+ <li><a href="../TaskJuggler/LogicalExpressionListAttribute.html">TaskJuggler::LogicalExpressionListAttribute</a></li>
314
+
309
315
  <li><a href="../TaskJuggler/LogicalFlag.html">TaskJuggler::LogicalFlag</a></li>
310
316
 
311
317
  <li><a href="../TaskJuggler/LogicalFunction.html">TaskJuggler::LogicalFunction</a></li>
@@ -586,6 +592,8 @@
586
592
 
587
593
  <li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
588
594
 
595
+ <li><a href="../TaskJuggler/WelcomePage.html">TaskJuggler::WelcomePage</a></li>
596
+
589
597
  <li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
590
598
 
591
599
  <li><a href="../TaskJuggler/WorkingHoursAttribute.html">TaskJuggler::WorkingHoursAttribute</a></li>
@@ -612,8 +620,6 @@
612
620
 
613
621
  <li><a href="../String.html">String</a></li>
614
622
 
615
- <li><a href="../StringIO.html">StringIO</a></li>
616
-
617
623
  </ul>
618
624
  <div id="no-class-search-results" style="display: none;">No matching classes.</div>
619
625
  </div>
@@ -677,22 +683,22 @@ that is used for error reporting.
677
683
  <div class="method-source-code"
678
684
  id="new-source">
679
685
  <pre>
680
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 35</span>
681
- 35: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">messageHandler</span>)
682
- 36: <span class="ruby-keyword kw">super</span>
683
- 37:
684
- 38: <span class="ruby-ivar">@tjMessageHandler</span> = <span class="ruby-identifier">messageHandler</span>
685
- 39:
686
- 40: <span class="ruby-comment cmt"># Define the token types that the ProjectFileScanner may return for</span>
687
- 41: <span class="ruby-comment cmt"># variable elements.</span>
688
- 42: <span class="ruby-ivar">@variables</span> = [ <span class="ruby-value">:INTEGER</span>, <span class="ruby-value">:FLOAT</span>, <span class="ruby-value">:DATE</span>, <span class="ruby-value">:TIME</span>, <span class="ruby-value">:STRING</span>, <span class="ruby-value">:LITERAL</span>,
689
- 43: <span class="ruby-value">:ID</span>, <span class="ruby-value">:ID_WITH_COLON</span>, <span class="ruby-value">:ABSOLUTE_ID</span>, <span class="ruby-value">:MACRO</span> ]
690
- 44:
691
- 45: <span class="ruby-identifier">initRules</span>
692
- 46: <span class="ruby-identifier">updateParserTables</span>
693
- 47:
694
- 48: <span class="ruby-ivar">@project</span> = <span class="ruby-keyword kw">nil</span>
695
- 49: <span class="ruby-keyword kw">end</span></pre>
686
+ <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 36</span>
687
+ 36: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">messageHandler</span>)
688
+ 37: <span class="ruby-keyword kw">super</span>
689
+ 38:
690
+ 39: <span class="ruby-ivar">@tjMessageHandler</span> = <span class="ruby-identifier">messageHandler</span>
691
+ 40:
692
+ 41: <span class="ruby-comment cmt"># Define the token types that the ProjectFileScanner may return for</span>
693
+ 42: <span class="ruby-comment cmt"># variable elements.</span>
694
+ 43: <span class="ruby-ivar">@variables</span> = [ <span class="ruby-value">:INTEGER</span>, <span class="ruby-value">:FLOAT</span>, <span class="ruby-value">:DATE</span>, <span class="ruby-value">:TIME</span>, <span class="ruby-value">:STRING</span>, <span class="ruby-value">:LITERAL</span>,
695
+ 44: <span class="ruby-value">:ID</span>, <span class="ruby-value">:ID_WITH_COLON</span>, <span class="ruby-value">:ABSOLUTE_ID</span>, <span class="ruby-value">:MACRO</span> ]
696
+ 45:
697
+ 46: <span class="ruby-identifier">initRules</span>
698
+ 47: <span class="ruby-identifier">updateParserTables</span>
699
+ 48:
700
+ 49: <span class="ruby-ivar">@project</span> = <span class="ruby-keyword kw">nil</span>
701
+ 50: <span class="ruby-keyword kw">end</span></pre>
696
702
  </div>
697
703
 
698
704
  </div>
@@ -732,10 +738,10 @@ processing has been completed.
732
738
  <div class="method-source-code"
733
739
  id="close-source">
734
740
  <pre>
735
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 69</span>
736
- 69: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">close</span>
737
- 70: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">close</span>
738
- 71: <span class="ruby-keyword kw">end</span></pre>
741
+ <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 70</span>
742
+ 70: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">close</span>
743
+ 71: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">close</span>
744
+ 72: <span class="ruby-keyword kw">end</span></pre>
739
745
  </div>
740
746
 
741
747
  </div>
@@ -770,10 +776,10 @@ text string of the token.
770
776
  <div class="method-source-code"
771
777
  id="next-oken-source">
772
778
  <pre>
773
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 76</span>
774
- 76: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">nextToken</span>
775
- 77: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">nextToken</span>
776
- 78: <span class="ruby-keyword kw">end</span></pre>
779
+ <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 77</span>
780
+ 77: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">nextToken</span>
781
+ 78: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">nextToken</span>
782
+ 79: <span class="ruby-keyword kw">end</span></pre>
777
783
  </div>
778
784
 
779
785
  </div>
@@ -807,20 +813,20 @@ set of TJP files.
807
813
  <div class="method-source-code"
808
814
  id="open-source">
809
815
  <pre>
810
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 53</span>
811
- 53: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">open</span>(<span class="ruby-identifier">file</span>, <span class="ruby-identifier">master</span>, <span class="ruby-identifier">fileNameIsBuffer</span> = <span class="ruby-keyword kw">false</span>)
812
- 54: <span class="ruby-ivar">@scanner</span> = <span class="ruby-constant">ProjectFileScanner</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">file</span>, <span class="ruby-ivar">@messageHandler</span>)
813
- 55: <span class="ruby-comment cmt"># We need the ProjectFileScanner object for error reporting.</span>
814
- 56: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">master</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">fileNameIsBuffer</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">file</span> <span class="ruby-operator">!=</span> <span class="ruby-value str">'.'</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">file</span>[<span class="ruby-value">4</span>, <span class="ruby-value">4</span>] <span class="ruby-operator">!=</span> <span class="ruby-value str">'.tjp'</span>
815
- 57: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'illegal_extension'</span>, <span class="ruby-value str">&quot;Project file name must end with &quot;</span> <span class="ruby-operator">+</span>
816
- 58: <span class="ruby-value str">'\.tjp\ extension'</span>)
817
- 59: <span class="ruby-keyword kw">end</span>
818
- 60: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">fileNameIsBuffer</span>)
819
- 61:
820
- 62: <span class="ruby-ivar">@property</span> = <span class="ruby-keyword kw">nil</span>
821
- 63: <span class="ruby-ivar">@scenarioIdx</span> = <span class="ruby-value">0</span>
822
- 64: <span class="ruby-identifier">initFileStack</span>
823
- 65: <span class="ruby-keyword kw">end</span></pre>
816
+ <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 54</span>
817
+ 54: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">open</span>(<span class="ruby-identifier">file</span>, <span class="ruby-identifier">master</span>, <span class="ruby-identifier">fileNameIsBuffer</span> = <span class="ruby-keyword kw">false</span>)
818
+ 55: <span class="ruby-ivar">@scanner</span> = <span class="ruby-constant">ProjectFileScanner</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">file</span>, <span class="ruby-ivar">@messageHandler</span>)
819
+ 56: <span class="ruby-comment cmt"># We need the ProjectFileScanner object for error reporting.</span>
820
+ 57: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">master</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">fileNameIsBuffer</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">file</span> <span class="ruby-operator">!=</span> <span class="ruby-value str">'.'</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">file</span>[<span class="ruby-value">4</span>, <span class="ruby-value">4</span>] <span class="ruby-operator">!=</span> <span class="ruby-value str">'.tjp'</span>
821
+ 58: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'illegal_extension'</span>, <span class="ruby-value str">&quot;Project file name must end with &quot;</span> <span class="ruby-operator">+</span>
822
+ 59: <span class="ruby-value str">'\.tjp\ extension'</span>)
823
+ 60: <span class="ruby-keyword kw">end</span>
824
+ 61: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">fileNameIsBuffer</span>)
825
+ 62:
826
+ 63: <span class="ruby-ivar">@property</span> = <span class="ruby-keyword kw">nil</span>
827
+ 64: <span class="ruby-ivar">@scenarioIdx</span> = <span class="ruby-value">0</span>
828
+ 65: <span class="ruby-identifier">initFileStack</span>
829
+ 66: <span class="ruby-keyword kw">end</span></pre>
824
830
  </div>
825
831
 
826
832
  </div>
@@ -851,13 +857,13 @@ set of TJP files.
851
857
  <div class="method-source-code"
852
858
  id="parse-eport-ttributes-source">
853
859
  <pre>
854
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 103</span>
855
- 103: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parseReportAttributes</span>(<span class="ruby-identifier">report</span>, <span class="ruby-identifier">attributes</span>)
856
- 104: <span class="ruby-identifier">open</span>(<span class="ruby-identifier">attributes</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>)
857
- 105: <span class="ruby-ivar">@property</span> = <span class="ruby-identifier">report</span>
858
- 106: <span class="ruby-ivar">@project</span> = <span class="ruby-identifier">report</span>.<span class="ruby-identifier">project</span>
859
- 107: <span class="ruby-identifier">parse</span>(<span class="ruby-value str">'reportAttributes'</span>)
860
- 108: <span class="ruby-keyword kw">end</span></pre>
860
+ <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 104</span>
861
+ 104: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parseReportAttributes</span>(<span class="ruby-identifier">report</span>, <span class="ruby-identifier">attributes</span>)
862
+ 105: <span class="ruby-identifier">open</span>(<span class="ruby-identifier">attributes</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>)
863
+ 106: <span class="ruby-ivar">@property</span> = <span class="ruby-identifier">report</span>
864
+ 107: <span class="ruby-ivar">@project</span> = <span class="ruby-identifier">report</span>.<span class="ruby-identifier">project</span>
865
+ 108: <span class="ruby-identifier">parse</span>(<span class="ruby-value">:reportAttributes</span>)
866
+ 109: <span class="ruby-keyword kw">end</span></pre>
861
867
  </div>
862
868
 
863
869
  </div>
@@ -893,10 +899,10 @@ look-ahead functionality.
893
899
  <div class="method-source-code"
894
900
  id="return-oken-source">
895
901
  <pre>
896
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 84</span>
897
- 84: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">returnToken</span>(<span class="ruby-identifier">token</span>)
898
- 85: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">returnToken</span>(<span class="ruby-identifier">token</span>)
899
- 86: <span class="ruby-keyword kw">end</span></pre>
902
+ <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 85</span>
903
+ 85: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">returnToken</span>(<span class="ruby-identifier">token</span>)
904
+ 86: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">returnToken</span>(<span class="ruby-identifier">token</span>)
905
+ 87: <span class="ruby-keyword kw">end</span></pre>
900
906
  </div>
901
907
 
902
908
  </div>
@@ -932,18 +938,18 @@ href="ProjectFileScanner.html">ProjectFileScanner</a>.
932
938
  <div class="method-source-code"
933
939
  id="set-lobal-acros-source">
934
940
  <pre>
935
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 91</span>
936
- 91: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">setGlobalMacros</span>
937
- 92: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">addMacro</span>(<span class="ruby-constant">Macro</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'projectstart'</span>, <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'start'</span>].<span class="ruby-identifier">to_s</span>,
938
- 93: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">sourceFileInfo</span>))
939
- 94: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">addMacro</span>(<span class="ruby-constant">Macro</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'projectend'</span>, <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'end'</span>].<span class="ruby-identifier">to_s</span>,
940
- 95: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">sourceFileInfo</span>))
941
- 96: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">addMacro</span>(<span class="ruby-constant">Macro</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'now'</span>, <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'now'</span>].<span class="ruby-identifier">to_s</span>,
942
- 97: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">sourceFileInfo</span>))
943
- 98: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">addMacro</span>(<span class="ruby-constant">Macro</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'today'</span>, <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'now'</span>].
944
- 99: <span class="ruby-identifier">to_s</span>(<span class="ruby-ivar">@project</span>[<span class="ruby-value str">'timeFormat'</span>]),
945
- 100: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">sourceFileInfo</span>))
946
- 101: <span class="ruby-keyword kw">end</span></pre>
941
+ <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 92</span>
942
+ 92: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">setGlobalMacros</span>
943
+ 93: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">addMacro</span>(<span class="ruby-constant">Macro</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'projectstart'</span>, <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'start'</span>].<span class="ruby-identifier">to_s</span>,
944
+ 94: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">sourceFileInfo</span>))
945
+ 95: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">addMacro</span>(<span class="ruby-constant">Macro</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'projectend'</span>, <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'end'</span>].<span class="ruby-identifier">to_s</span>,
946
+ 96: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">sourceFileInfo</span>))
947
+ 97: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">addMacro</span>(<span class="ruby-constant">Macro</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'now'</span>, <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'now'</span>].<span class="ruby-identifier">to_s</span>,
948
+ 98: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">sourceFileInfo</span>))
949
+ 99: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">addMacro</span>(<span class="ruby-constant">Macro</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'today'</span>, <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'now'</span>].
950
+ 100: <span class="ruby-identifier">to_s</span>(<span class="ruby-ivar">@project</span>[<span class="ruby-value str">'timeFormat'</span>]),
951
+ 101: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">sourceFileInfo</span>))
952
+ 102: <span class="ruby-keyword kw">end</span></pre>
947
953
  </div>
948
954
 
949
955
  </div>
@@ -988,40 +994,40 @@ list is empty.
988
994
  <div class="method-source-code"
989
995
  id="all-r-othing-ist-ule-source">
990
996
  <pre>
991
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 279</span>
992
- 279: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">allOrNothingListRule</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">items</span>)
993
- 280: <span class="ruby-identifier">newRule</span>(<span class="ruby-identifier">name</span>) {
994
- 281: <span class="ruby-comment cmt"># A '*' means all possible items should be in the list.</span>
995
- 282: <span class="ruby-identifier">pattern</span>(<span class="ruby-node">%( _* )</span>, <span class="ruby-identifier">lambda</span> {
996
- 283: <span class="ruby-constant">KeywordArray</span>.<span class="ruby-identifier">new</span>([ <span class="ruby-value str">'*'</span> ])
997
- 284: })
998
- 285: <span class="ruby-identifier">descr</span>(<span class="ruby-value str">'A shortcut for all items'</span>)
999
- 286: <span class="ruby-comment cmt"># A '-' means the list should be empty.</span>
1000
- 287: <span class="ruby-identifier">pattern</span>([ <span class="ruby-value str">'_-'</span> ], <span class="ruby-identifier">lambda</span> {
1001
- 288: <span class="ruby-constant">KeywordArray</span>.<span class="ruby-identifier">new</span>
1002
- 289: })
1003
- 290: <span class="ruby-identifier">descr</span>(<span class="ruby-value str">'No items'</span>)
1004
- 291: <span class="ruby-comment cmt"># Or the list consists of one or more comma separated keywords.</span>
1005
- 292: <span class="ruby-identifier">pattern</span>([ <span class="ruby-node">&quot;!#{name}_AoN_ruleItems&quot;</span> ], <span class="ruby-identifier">lambda</span> {
1006
- 293: <span class="ruby-constant">KeywordArray</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@val</span>[<span class="ruby-value">0</span>])
1007
- 294: })
1008
- 295: }
1009
- 296: <span class="ruby-comment cmt"># Create the rule for the comma separated list.</span>
1010
- 297: <span class="ruby-identifier">newRule</span>(<span class="ruby-node">&quot;#{name}_AoN_ruleItems&quot;</span>) {
1011
- 298: <span class="ruby-identifier">listRule</span>(<span class="ruby-node">&quot;more#{name}_AoN_ruleItems&quot;</span>, <span class="ruby-node">&quot;!#{name}_AoN_ruleItem&quot;</span>)
1012
- 299: }
1013
- 300: <span class="ruby-comment cmt"># Create the rule for the keywords with their description.</span>
1014
- 301: <span class="ruby-identifier">newRule</span>(<span class="ruby-node">&quot;#{name}_AoN_ruleItem&quot;</span>) {
1015
- 302: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">items</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Array</span>)
1016
- 303: <span class="ruby-identifier">items</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">keyword</span><span class="ruby-operator">|</span> <span class="ruby-identifier">singlePattern</span>(<span class="ruby-value str">'_'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">keyword</span>) }
1017
- 304: <span class="ruby-keyword kw">else</span>
1018
- 305: <span class="ruby-identifier">items</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">keyword</span>, <span class="ruby-identifier">description</span><span class="ruby-operator">|</span>
1019
- 306: <span class="ruby-identifier">singlePattern</span>(<span class="ruby-value str">'_'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">keyword</span>)
1020
- 307: <span class="ruby-identifier">descr</span>(<span class="ruby-identifier">description</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">description</span>
1021
- 308: <span class="ruby-keyword kw">end</span>
1022
- 309: <span class="ruby-keyword kw">end</span>
1023
- 310: }
1024
- 311: <span class="ruby-keyword kw">end</span></pre>
997
+ <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 280</span>
998
+ 280: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">allOrNothingListRule</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">items</span>)
999
+ 281: <span class="ruby-identifier">newRule</span>(<span class="ruby-identifier">name</span>) {
1000
+ 282: <span class="ruby-comment cmt"># A '*' means all possible items should be in the list.</span>
1001
+ 283: <span class="ruby-identifier">pattern</span>(<span class="ruby-node">%( _* )</span>, <span class="ruby-identifier">lambda</span> {
1002
+ 284: <span class="ruby-constant">KeywordArray</span>.<span class="ruby-identifier">new</span>([ <span class="ruby-value str">'*'</span> ])
1003
+ 285: })
1004
+ 286: <span class="ruby-identifier">descr</span>(<span class="ruby-value str">'A shortcut for all items'</span>)
1005
+ 287: <span class="ruby-comment cmt"># A '-' means the list should be empty.</span>
1006
+ 288: <span class="ruby-identifier">pattern</span>([ <span class="ruby-value str">'_-'</span> ], <span class="ruby-identifier">lambda</span> {
1007
+ 289: <span class="ruby-constant">KeywordArray</span>.<span class="ruby-identifier">new</span>
1008
+ 290: })
1009
+ 291: <span class="ruby-identifier">descr</span>(<span class="ruby-value str">'No items'</span>)
1010
+ 292: <span class="ruby-comment cmt"># Or the list consists of one or more comma separated keywords.</span>
1011
+ 293: <span class="ruby-identifier">pattern</span>([ <span class="ruby-node">&quot;!#{name}_AoN_ruleItems&quot;</span> ], <span class="ruby-identifier">lambda</span> {
1012
+ 294: <span class="ruby-constant">KeywordArray</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@val</span>[<span class="ruby-value">0</span>])
1013
+ 295: })
1014
+ 296: }
1015
+ 297: <span class="ruby-comment cmt"># Create the rule for the comma separated list.</span>
1016
+ 298: <span class="ruby-identifier">newRule</span>(<span class="ruby-node">&quot;#{name}_AoN_ruleItems&quot;</span>) {
1017
+ 299: <span class="ruby-identifier">listRule</span>(<span class="ruby-node">&quot;more#{name}_AoN_ruleItems&quot;</span>, <span class="ruby-node">&quot;!#{name}_AoN_ruleItem&quot;</span>)
1018
+ 300: }
1019
+ 301: <span class="ruby-comment cmt"># Create the rule for the keywords with their description.</span>
1020
+ 302: <span class="ruby-identifier">newRule</span>(<span class="ruby-node">&quot;#{name}_AoN_ruleItem&quot;</span>) {
1021
+ 303: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">items</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Array</span>)
1022
+ 304: <span class="ruby-identifier">items</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">keyword</span><span class="ruby-operator">|</span> <span class="ruby-identifier">singlePattern</span>(<span class="ruby-value str">'_'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">keyword</span>) }
1023
+ 305: <span class="ruby-keyword kw">else</span>
1024
+ 306: <span class="ruby-identifier">items</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">keyword</span>, <span class="ruby-identifier">description</span><span class="ruby-operator">|</span>
1025
+ 307: <span class="ruby-identifier">singlePattern</span>(<span class="ruby-value str">'_'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">keyword</span>)
1026
+ 308: <span class="ruby-identifier">descr</span>(<span class="ruby-identifier">description</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">description</span>
1027
+ 309: <span class="ruby-keyword kw">end</span>
1028
+ 310: <span class="ruby-keyword kw">end</span>
1029
+ 311: }
1030
+ 312: <span class="ruby-keyword kw">end</span></pre>
1025
1031
  </div>
1026
1032
 
1027
1033
  </div>
@@ -1055,11 +1061,11 @@ generate the documentation for the patterns of this rule.
1055
1061
  <div class="method-source-code"
1056
1062
  id="also-source">
1057
1063
  <pre>
1058
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 382</span>
1059
- 382: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">also</span>(<span class="ruby-identifier">seeAlso</span>)
1060
- 383: <span class="ruby-identifier">seeAlso</span> = [ <span class="ruby-identifier">seeAlso</span> ] <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">seeAlso</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Array</span>)
1061
- 384: <span class="ruby-ivar">@cr</span>.<span class="ruby-identifier">setSeeAlso</span>(<span class="ruby-identifier">seeAlso</span>)
1062
- 385: <span class="ruby-keyword kw">end</span></pre>
1064
+ <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 383</span>
1065
+ 383: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">also</span>(<span class="ruby-identifier">seeAlso</span>)
1066
+ 384: <span class="ruby-identifier">seeAlso</span> = [ <span class="ruby-identifier">seeAlso</span> ] <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">seeAlso</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Array</span>)
1067
+ 385: <span class="ruby-ivar">@cr</span>.<span class="ruby-identifier">setSeeAlso</span>(<span class="ruby-identifier">seeAlso</span>)
1068
+ 386: <span class="ruby-keyword kw">end</span></pre>
1063
1069
  </div>
1064
1070
 
1065
1071
  </div>
@@ -1094,10 +1100,10 @@ used for this variable. <em>text</em> is the documentation text.
1094
1100
  <div class="method-source-code"
1095
1101
  id="arg-source">
1096
1102
  <pre>
1097
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 370</span>
1098
- 370: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">arg</span>(<span class="ruby-identifier">idx</span>, <span class="ruby-identifier">name</span>, <span class="ruby-identifier">text</span>)
1099
- 371: <span class="ruby-ivar">@cr</span>.<span class="ruby-identifier">setArg</span>(<span class="ruby-identifier">idx</span>, <span class="ruby-constant">TextParser</span><span class="ruby-operator">::</span><span class="ruby-constant">TokenDoc</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">text</span>))
1100
- 372: <span class="ruby-keyword kw">end</span></pre>
1103
+ <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 371</span>
1104
+ 371: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">arg</span>(<span class="ruby-identifier">idx</span>, <span class="ruby-identifier">name</span>, <span class="ruby-identifier">text</span>)
1105
+ 372: <span class="ruby-ivar">@cr</span>.<span class="ruby-identifier">setArg</span>(<span class="ruby-identifier">idx</span>, <span class="ruby-constant">TextParser</span><span class="ruby-operator">::</span><span class="ruby-constant">TokenDoc</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">text</span>))
1106
+ 373: <span class="ruby-keyword kw">end</span></pre>
1101
1107
  </div>
1102
1108
 
1103
1109
  </div>
@@ -1130,21 +1136,21 @@ Convenience function to check the integrity of a booking statement.
1130
1136
  <div class="method-source-code"
1131
1137
  id="check-ooking-source">
1132
1138
  <pre>
1133
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 151</span>
1134
- 151: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">checkBooking</span>(<span class="ruby-identifier">task</span>, <span class="ruby-identifier">resource</span>)
1135
- 152: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">task</span>.<span class="ruby-identifier">leaf?</span>
1136
- 153: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'booking_no_leaf'</span>, <span class="ruby-node">&quot;#{task.fullId} is not a leaf task&quot;</span>,
1137
- 154: <span class="ruby-ivar">@sourceFileInfo</span>[<span class="ruby-value">0</span>], <span class="ruby-identifier">task</span>)
1138
- 155: <span class="ruby-keyword kw">end</span>
1139
- 156: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">task</span>[<span class="ruby-value str">'milestone'</span>, <span class="ruby-ivar">@scenarioIdx</span>]
1140
- 157: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'booking_milestone'</span>, <span class="ruby-value str">&quot;You cannot add bookings to a milestone&quot;</span>,
1141
- 158: <span class="ruby-ivar">@sourceFileInfo</span>[<span class="ruby-value">0</span>], <span class="ruby-identifier">task</span>)
1142
- 159: <span class="ruby-keyword kw">end</span>
1143
- 160: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">resource</span>.<span class="ruby-identifier">leaf?</span>
1144
- 161: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'booking_group'</span>, <span class="ruby-value str">&quot;You cannot book a group resource&quot;</span>,
1145
- 162: <span class="ruby-ivar">@sourceFileInfo</span>[<span class="ruby-value">0</span>], <span class="ruby-identifier">task</span>)
1146
- 163: <span class="ruby-keyword kw">end</span>
1147
- 164: <span class="ruby-keyword kw">end</span></pre>
1139
+ <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 152</span>
1140
+ 152: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">checkBooking</span>(<span class="ruby-identifier">task</span>, <span class="ruby-identifier">resource</span>)
1141
+ 153: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">task</span>.<span class="ruby-identifier">leaf?</span>
1142
+ 154: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'booking_no_leaf'</span>, <span class="ruby-node">&quot;#{task.fullId} is not a leaf task&quot;</span>,
1143
+ 155: <span class="ruby-ivar">@sourceFileInfo</span>[<span class="ruby-value">0</span>], <span class="ruby-identifier">task</span>)
1144
+ 156: <span class="ruby-keyword kw">end</span>
1145
+ 157: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">task</span>[<span class="ruby-value str">'milestone'</span>, <span class="ruby-ivar">@scenarioIdx</span>]
1146
+ 158: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'booking_milestone'</span>, <span class="ruby-value str">&quot;You cannot add bookings to a milestone&quot;</span>,
1147
+ 159: <span class="ruby-ivar">@sourceFileInfo</span>[<span class="ruby-value">0</span>], <span class="ruby-identifier">task</span>)
1148
+ 160: <span class="ruby-keyword kw">end</span>
1149
+ 161: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">resource</span>.<span class="ruby-identifier">leaf?</span>
1150
+ 162: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'booking_group'</span>, <span class="ruby-value str">&quot;You cannot book a group resource&quot;</span>,
1151
+ 163: <span class="ruby-ivar">@sourceFileInfo</span>[<span class="ruby-value">0</span>], <span class="ruby-identifier">task</span>)
1152
+ 164: <span class="ruby-keyword kw">end</span>
1153
+ 165: <span class="ruby-keyword kw">end</span></pre>
1148
1154
  </div>
1149
1155
 
1150
1156
  </div>
@@ -1178,15 +1184,15 @@ been added to a property.
1178
1184
  <div class="method-source-code"
1179
1185
  id="check-ontainer-source">
1180
1186
  <pre>
1181
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 125</span>
1182
- 125: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">checkContainer</span>(<span class="ruby-identifier">attribute</span>)
1183
- 126: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@property</span>.<span class="ruby-identifier">container?</span>
1184
- 127: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'container_attribute'</span>,
1185
- 128: <span class="ruby-node">&quot;The attribute #{attribute} may not be used for this property &quot;</span> <span class="ruby-operator">+</span>
1186
- 129: <span class="ruby-value str">'after sub properties have been added.'</span>, <span class="ruby-ivar">@sourceFileInfo</span>[<span class="ruby-value">0</span>],
1187
- 130: <span class="ruby-ivar">@property</span>)
1188
- 131: <span class="ruby-keyword kw">end</span>
1189
- 132: <span class="ruby-keyword kw">end</span></pre>
1187
+ <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 126</span>
1188
+ 126: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">checkContainer</span>(<span class="ruby-identifier">attribute</span>)
1189
+ 127: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@property</span>.<span class="ruby-identifier">container?</span>
1190
+ 128: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'container_attribute'</span>,
1191
+ 129: <span class="ruby-node">&quot;The attribute #{attribute} may not be used for this property &quot;</span> <span class="ruby-operator">+</span>
1192
+ 130: <span class="ruby-value str">'after sub properties have been added.'</span>, <span class="ruby-ivar">@sourceFileInfo</span>[<span class="ruby-value">0</span>],
1193
+ 131: <span class="ruby-ivar">@property</span>)
1194
+ 132: <span class="ruby-keyword kw">end</span>
1195
+ 133: <span class="ruby-keyword kw">end</span></pre>
1190
1196
  </div>
1191
1197
 
1192
1198
  </div>
@@ -1220,20 +1226,20 @@ fits completely within the project time frame.
1220
1226
  <div class="method-source-code"
1221
1227
  id="check-nterval-source">
1222
1228
  <pre>
1223
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 136</span>
1224
- 136: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">checkInterval</span>(<span class="ruby-identifier">iv</span>)
1225
- 137: <span class="ruby-comment cmt"># Make sure the interval is within the project time frame.</span>
1226
- 138: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">iv</span>.<span class="ruby-identifier">start</span> <span class="ruby-operator">&lt;</span> <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'start'</span>] <span class="ruby-operator">||</span> <span class="ruby-identifier">iv</span>.<span class="ruby-identifier">start</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'end'</span>]
1227
- 139: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'interval_start_in_range'</span>,
1228
- 140: <span class="ruby-node">&quot;Start date #{iv.start} must be within the project time frame &quot;</span> <span class="ruby-operator">+</span>
1229
- 141: <span class="ruby-node">&quot;(#{@project['start']} - #{@project['end']})&quot;</span>)
1230
- 142: <span class="ruby-keyword kw">end</span>
1231
- 143: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">iv</span>.<span class="ruby-identifier">end</span> <span class="ruby-operator">&lt;=</span> <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'start'</span>] <span class="ruby-operator">||</span> <span class="ruby-identifier">iv</span>.<span class="ruby-identifier">end</span> <span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'end'</span>]
1232
- 144: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'interval_end_in_range'</span>,
1233
- 145: <span class="ruby-node">&quot;End date #{iv.end} must be within the project time frame &quot;</span> <span class="ruby-operator">+</span>
1234
- 146: <span class="ruby-node">&quot;(#{@project['start']} - #{@project['end']})&quot;</span>)
1235
- 147: <span class="ruby-keyword kw">end</span>
1236
- 148: <span class="ruby-keyword kw">end</span></pre>
1229
+ <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 137</span>
1230
+ 137: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">checkInterval</span>(<span class="ruby-identifier">iv</span>)
1231
+ 138: <span class="ruby-comment cmt"># Make sure the interval is within the project time frame.</span>
1232
+ 139: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">iv</span>.<span class="ruby-identifier">start</span> <span class="ruby-operator">&lt;</span> <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'start'</span>] <span class="ruby-operator">||</span> <span class="ruby-identifier">iv</span>.<span class="ruby-identifier">start</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'end'</span>]
1233
+ 140: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'interval_start_in_range'</span>,
1234
+ 141: <span class="ruby-node">&quot;Start date #{iv.start} must be within the project time frame &quot;</span> <span class="ruby-operator">+</span>
1235
+ 142: <span class="ruby-node">&quot;(#{@project['start']} - #{@project['end']})&quot;</span>)
1236
+ 143: <span class="ruby-keyword kw">end</span>
1237
+ 144: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">iv</span>.<span class="ruby-identifier">end</span> <span class="ruby-operator">&lt;=</span> <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'start'</span>] <span class="ruby-operator">||</span> <span class="ruby-identifier">iv</span>.<span class="ruby-identifier">end</span> <span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'end'</span>]
1238
+ 145: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'interval_end_in_range'</span>,
1239
+ 146: <span class="ruby-node">&quot;End date #{iv.end} must be within the project time frame &quot;</span> <span class="ruby-operator">+</span>
1240
+ 147: <span class="ruby-node">&quot;(#{@project['start']} - #{@project['end']})&quot;</span>)
1241
+ 148: <span class="ruby-keyword kw">end</span>
1242
+ 149: <span class="ruby-keyword kw">end</span></pre>
1237
1243
  </div>
1238
1244
 
1239
1245
  </div>
@@ -1267,11 +1273,11 @@ be from the static set or be from a user defined attribute.
1267
1273
  <div class="method-source-code"
1268
1274
  id="column-itle-source">
1269
1275
  <pre>
1270
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 395</span>
1271
- 395: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">columnTitle</span>(<span class="ruby-identifier">colId</span>)
1272
- 396: <span class="ruby-constant">TableReport</span>.<span class="ruby-identifier">defaultColumnTitle</span>(<span class="ruby-identifier">colId</span>) <span class="ruby-operator">||</span>
1273
- 397: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">attributeName</span>(<span class="ruby-identifier">colId</span>)
1274
- 398: <span class="ruby-keyword kw">end</span></pre>
1276
+ <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 396</span>
1277
+ 396: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">columnTitle</span>(<span class="ruby-identifier">colId</span>)
1278
+ 397: <span class="ruby-constant">TableReport</span>.<span class="ruby-identifier">defaultColumnTitle</span>(<span class="ruby-identifier">colId</span>) <span class="ruby-operator">||</span>
1279
+ 398: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">attributeName</span>(<span class="ruby-identifier">colId</span>)
1280
+ 399: <span class="ruby-keyword kw">end</span></pre>
1275
1281
  </div>
1276
1282
 
1277
1283
  </div>
@@ -1302,14 +1308,14 @@ be from the static set or be from a user defined attribute.
1302
1308
  <div class="method-source-code"
1303
1309
  id="comma-ist-ule-source">
1304
1310
  <pre>
1305
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 326</span>
1306
- 326: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">commaListRule</span>(<span class="ruby-identifier">listItem</span>)
1307
- 327: <span class="ruby-identifier">optional</span>
1308
- 328: <span class="ruby-identifier">repeatable</span>
1309
- 329: <span class="ruby-identifier">pattern</span>([ <span class="ruby-value str">'_,'</span>, <span class="ruby-node">&quot;#{listItem}&quot;</span> ], <span class="ruby-identifier">lambda</span> {
1310
- 330: <span class="ruby-ivar">@val</span>[<span class="ruby-value">1</span>]
1311
- 331: })
1312
- 332: <span class="ruby-keyword kw">end</span></pre>
1311
+ <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 327</span>
1312
+ 327: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">commaListRule</span>(<span class="ruby-identifier">listItem</span>)
1313
+ 328: <span class="ruby-identifier">optional</span>
1314
+ 329: <span class="ruby-identifier">repeatable</span>
1315
+ 330: <span class="ruby-identifier">pattern</span>([ <span class="ruby-value str">'_,'</span>, <span class="ruby-node">&quot;#{listItem}&quot;</span> ], <span class="ruby-identifier">lambda</span> {
1316
+ 331: <span class="ruby-ivar">@val</span>[<span class="ruby-value">1</span>]
1317
+ 332: })
1318
+ 333: <span class="ruby-keyword kw">end</span></pre>
1313
1319
  </div>
1314
1320
 
1315
1321
  </div>
@@ -1343,15 +1349,15 @@ token.
1343
1349
  <div class="method-source-code"
1344
1350
  id="descr-source">
1345
1351
  <pre>
1346
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 358</span>
1347
- 358: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">descr</span>(<span class="ruby-identifier">text</span>)
1348
- 359: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@cr</span>.<span class="ruby-identifier">patterns</span>[<span class="ruby-value">1</span>].<span class="ruby-identifier">length</span> <span class="ruby-operator">!=</span> <span class="ruby-value">1</span> <span class="ruby-operator">||</span>
1349
- 360: (<span class="ruby-ivar">@cr</span>.<span class="ruby-identifier">patterns</span>[<span class="ruby-value">1</span>][<span class="ruby-value">0</span>][<span class="ruby-value">0</span>] <span class="ruby-operator">!=</span> <span class="ruby-value">:literal</span> <span class="ruby-operator">&amp;&amp;</span>
1350
- 361: <span class="ruby-ivar">@cr</span>.<span class="ruby-identifier">patterns</span>[<span class="ruby-value">1</span>][<span class="ruby-value">0</span>][<span class="ruby-value">0</span>] <span class="ruby-operator">!=</span> <span class="ruby-value">:variable</span>)
1351
- 362: <span class="ruby-identifier">raise</span> <span class="ruby-value str">'descr() may only be used for patterns with terminal tokens.'</span>
1352
- 363: <span class="ruby-keyword kw">end</span>
1353
- 364: <span class="ruby-identifier">arg</span>(<span class="ruby-value">0</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">text</span>)
1354
- 365: <span class="ruby-keyword kw">end</span></pre>
1352
+ <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 359</span>
1353
+ 359: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">descr</span>(<span class="ruby-identifier">text</span>)
1354
+ 360: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@cr</span>.<span class="ruby-identifier">patterns</span>[<span class="ruby-value">1</span>].<span class="ruby-identifier">length</span> <span class="ruby-operator">!=</span> <span class="ruby-value">1</span> <span class="ruby-operator">||</span>
1355
+ 361: (<span class="ruby-ivar">@cr</span>.<span class="ruby-identifier">patterns</span>[<span class="ruby-value">1</span>][<span class="ruby-value">0</span>][<span class="ruby-value">0</span>] <span class="ruby-operator">!=</span> <span class="ruby-value">:literal</span> <span class="ruby-operator">&amp;&amp;</span>
1356
+ 362: <span class="ruby-ivar">@cr</span>.<span class="ruby-identifier">patterns</span>[<span class="ruby-value">1</span>][<span class="ruby-value">0</span>][<span class="ruby-value">0</span>] <span class="ruby-operator">!=</span> <span class="ruby-value">:variable</span>)
1357
+ 363: <span class="ruby-identifier">raise</span> <span class="ruby-value str">'descr() may only be used for patterns with terminal tokens.'</span>
1358
+ 364: <span class="ruby-keyword kw">end</span>
1359
+ 365: <span class="ruby-identifier">arg</span>(<span class="ruby-value">0</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">text</span>)
1360
+ 366: <span class="ruby-keyword kw">end</span></pre>
1355
1361
  </div>
1356
1362
 
1357
1363
  </div>
@@ -1384,10 +1390,10 @@ Add documentation for the current pattern of the currently processed rule.
1384
1390
  <div class="method-source-code"
1385
1391
  id="doc-source">
1386
1392
  <pre>
1387
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 352</span>
1388
- 352: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">doc</span>(<span class="ruby-identifier">keyword</span>, <span class="ruby-identifier">text</span>)
1389
- 353: <span class="ruby-ivar">@cr</span>.<span class="ruby-identifier">setDoc</span>(<span class="ruby-identifier">keyword</span>, <span class="ruby-identifier">text</span>)
1390
- 354: <span class="ruby-keyword kw">end</span></pre>
1393
+ <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 353</span>
1394
+ 353: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">doc</span>(<span class="ruby-identifier">keyword</span>, <span class="ruby-identifier">text</span>)
1395
+ 354: <span class="ruby-ivar">@cr</span>.<span class="ruby-identifier">setDoc</span>(<span class="ruby-identifier">keyword</span>, <span class="ruby-identifier">text</span>)
1396
+ 355: <span class="ruby-keyword kw">end</span></pre>
1391
1397
  </div>
1392
1398
 
1393
1399
  </div>
@@ -1422,10 +1428,10 @@ identify that only a part of the file should be included.
1422
1428
  <div class="method-source-code"
1423
1429
  id="example-source">
1424
1430
  <pre>
1425
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 390</span>
1426
- 390: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">example</span>(<span class="ruby-identifier">file</span>, <span class="ruby-identifier">tag</span> = <span class="ruby-keyword kw">nil</span>)
1427
- 391: <span class="ruby-ivar">@cr</span>.<span class="ruby-identifier">setExample</span>(<span class="ruby-identifier">file</span>, <span class="ruby-identifier">tag</span>)
1428
- 392: <span class="ruby-keyword kw">end</span></pre>
1431
+ <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 391</span>
1432
+ 391: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">example</span>(<span class="ruby-identifier">file</span>, <span class="ruby-identifier">tag</span> = <span class="ruby-keyword kw">nil</span>)
1433
+ 392: <span class="ruby-ivar">@cr</span>.<span class="ruby-identifier">setExample</span>(<span class="ruby-identifier">file</span>, <span class="ruby-identifier">tag</span>)
1434
+ 393: <span class="ruby-keyword kw">end</span></pre>
1429
1435
  </div>
1430
1436
 
1431
1437
  </div>
@@ -1465,41 +1471,41 @@ new attribute. @propertySet determines what property should be extended.
1465
1471
  <div class="method-source-code"
1466
1472
  id="extend-roperty-et-efinition-source">
1467
1473
  <pre>
1468
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 173</span>
1469
- 173: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">extendPropertySetDefinition</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">default</span>)
1470
- 174: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@propertySet</span>.<span class="ruby-identifier">knownAttribute?</span>(<span class="ruby-ivar">@val</span>[<span class="ruby-value">1</span>])
1471
- 175: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'extend_redefinition'</span>,
1472
- 176: <span class="ruby-node">&quot;The extended attribute #{@val[1]} has already been defined.&quot;</span>)
1473
- 177: <span class="ruby-keyword kw">end</span>
1474
- 178:
1475
- 179: <span class="ruby-comment cmt"># Determine the values for scenarioSpecific and inheritable.</span>
1476
- 180: <span class="ruby-identifier">inherit</span> = <span class="ruby-keyword kw">false</span>
1477
- 181: <span class="ruby-identifier">scenarioSpecific</span> = <span class="ruby-keyword kw">false</span>
1478
- 182: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@val</span>[<span class="ruby-value">3</span>].<span class="ruby-identifier">nil?</span>
1479
- 183: <span class="ruby-ivar">@val</span>[<span class="ruby-value">3</span>].<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">option</span><span class="ruby-operator">|</span>
1480
- 184: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">option</span>
1481
- 185: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'inherit'</span>
1482
- 186: <span class="ruby-identifier">inherit</span> = <span class="ruby-keyword kw">true</span>
1483
- 187: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'scenariospecific'</span>
1484
- 188: <span class="ruby-identifier">scenarioSpecific</span> = <span class="ruby-keyword kw">true</span>
1485
- 189: <span class="ruby-keyword kw">end</span>
1486
- 190: <span class="ruby-keyword kw">end</span>
1487
- 191: <span class="ruby-keyword kw">end</span>
1488
- 192: <span class="ruby-comment cmt"># Register the new Attribute type with the Property set it should belong</span>
1489
- 193: <span class="ruby-comment cmt"># to.</span>
1490
- 194: <span class="ruby-ivar">@propertySet</span>.<span class="ruby-identifier">addAttributeType</span>(<span class="ruby-constant">AttributeDefinition</span>.<span class="ruby-identifier">new</span>(
1491
- 195: <span class="ruby-ivar">@val</span>[<span class="ruby-value">1</span>], <span class="ruby-ivar">@val</span>[<span class="ruby-value">2</span>], <span class="ruby-identifier">type</span>, <span class="ruby-identifier">inherit</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-identifier">scenarioSpecific</span>, <span class="ruby-identifier">default</span>, <span class="ruby-keyword kw">true</span>))
1492
- 196:
1493
- 197: <span class="ruby-comment cmt"># Add the new user-defined attribute as reportable attribute to the parser</span>
1494
- 198: <span class="ruby-comment cmt"># rule.</span>
1495
- 199: <span class="ruby-identifier">oldCurrentRule</span> = <span class="ruby-ivar">@cr</span>
1496
- 200: <span class="ruby-ivar">@cr</span> = <span class="ruby-ivar">@rules</span>[<span class="ruby-value">:reportableAttributes</span>]
1497
- 201: <span class="ruby-identifier">singlePattern</span>(<span class="ruby-value str">'_'</span> <span class="ruby-operator">+</span> <span class="ruby-ivar">@val</span>[<span class="ruby-value">1</span>])
1498
- 202: <span class="ruby-identifier">descr</span>(<span class="ruby-ivar">@val</span>[<span class="ruby-value">2</span>])
1499
- 203: <span class="ruby-ivar">@cr</span> = <span class="ruby-identifier">oldCurrentRule</span>
1500
- 204:
1501
- 205: <span class="ruby-identifier">scenarioSpecific</span>
1502
- 206: <span class="ruby-keyword kw">end</span></pre>
1474
+ <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 174</span>
1475
+ 174: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">extendPropertySetDefinition</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">default</span>)
1476
+ 175: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@propertySet</span>.<span class="ruby-identifier">knownAttribute?</span>(<span class="ruby-ivar">@val</span>[<span class="ruby-value">1</span>])
1477
+ 176: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'extend_redefinition'</span>,
1478
+ 177: <span class="ruby-node">&quot;The extended attribute #{@val[1]} has already been defined.&quot;</span>)
1479
+ 178: <span class="ruby-keyword kw">end</span>
1480
+ 179:
1481
+ 180: <span class="ruby-comment cmt"># Determine the values for scenarioSpecific and inheritable.</span>
1482
+ 181: <span class="ruby-identifier">inherit</span> = <span class="ruby-keyword kw">false</span>
1483
+ 182: <span class="ruby-identifier">scenarioSpecific</span> = <span class="ruby-keyword kw">false</span>
1484
+ 183: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@val</span>[<span class="ruby-value">3</span>].<span class="ruby-identifier">nil?</span>
1485
+ 184: <span class="ruby-ivar">@val</span>[<span class="ruby-value">3</span>].<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">option</span><span class="ruby-operator">|</span>
1486
+ 185: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">option</span>
1487
+ 186: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'inherit'</span>
1488
+ 187: <span class="ruby-identifier">inherit</span> = <span class="ruby-keyword kw">true</span>
1489
+ 188: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'scenariospecific'</span>
1490
+ 189: <span class="ruby-identifier">scenarioSpecific</span> = <span class="ruby-keyword kw">true</span>
1491
+ 190: <span class="ruby-keyword kw">end</span>
1492
+ 191: <span class="ruby-keyword kw">end</span>
1493
+ 192: <span class="ruby-keyword kw">end</span>
1494
+ 193: <span class="ruby-comment cmt"># Register the new Attribute type with the Property set it should belong</span>
1495
+ 194: <span class="ruby-comment cmt"># to.</span>
1496
+ 195: <span class="ruby-ivar">@propertySet</span>.<span class="ruby-identifier">addAttributeType</span>(<span class="ruby-constant">AttributeDefinition</span>.<span class="ruby-identifier">new</span>(
1497
+ 196: <span class="ruby-ivar">@val</span>[<span class="ruby-value">1</span>], <span class="ruby-ivar">@val</span>[<span class="ruby-value">2</span>], <span class="ruby-identifier">type</span>, <span class="ruby-identifier">inherit</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-identifier">scenarioSpecific</span>, <span class="ruby-identifier">default</span>, <span class="ruby-keyword kw">true</span>))
1498
+ 197:
1499
+ 198: <span class="ruby-comment cmt"># Add the new user-defined attribute as reportable attribute to the parser</span>
1500
+ 199: <span class="ruby-comment cmt"># rule.</span>
1501
+ 200: <span class="ruby-identifier">oldCurrentRule</span> = <span class="ruby-ivar">@cr</span>
1502
+ 201: <span class="ruby-ivar">@cr</span> = <span class="ruby-ivar">@rules</span>[<span class="ruby-value">:reportableAttributes</span>]
1503
+ 202: <span class="ruby-identifier">singlePattern</span>(<span class="ruby-value str">'_'</span> <span class="ruby-operator">+</span> <span class="ruby-ivar">@val</span>[<span class="ruby-value">1</span>])
1504
+ 203: <span class="ruby-identifier">descr</span>(<span class="ruby-ivar">@val</span>[<span class="ruby-value">2</span>])
1505
+ 204: <span class="ruby-ivar">@cr</span> = <span class="ruby-identifier">oldCurrentRule</span>
1506
+ 205:
1507
+ 206: <span class="ruby-identifier">scenarioSpecific</span>
1508
+ 207: <span class="ruby-keyword kw">end</span></pre>
1503
1509
  </div>
1504
1510
 
1505
1511
  </div>
@@ -1536,17 +1542,17 @@ creates or resets the stack.
1536
1542
  <div class="method-source-code"
1537
1543
  id="init-ile-tack-source">
1538
1544
  <pre>
1539
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 406</span>
1540
- 406: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initFileStack</span>
1541
- 407: <span class="ruby-ivar">@fileStackVariables</span> = <span class="ruby-node">%( taskprefix reportprefix
1542
- 408: resourceprefix accountprefix )</span>
1543
- 409: <span class="ruby-identifier">stackEntry</span> = {}
1544
- 410: <span class="ruby-ivar">@fileStackVariables</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">var</span><span class="ruby-operator">|</span>
1545
- 411: <span class="ruby-identifier">stackEntry</span>[<span class="ruby-identifier">var</span>] = <span class="ruby-value str">''</span>
1546
- 412: <span class="ruby-identifier">instance_variable_set</span>(<span class="ruby-value str">'@'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">var</span>, <span class="ruby-value str">''</span>)
1547
- 413: <span class="ruby-keyword kw">end</span>
1548
- 414: <span class="ruby-ivar">@fileStack</span> = [ <span class="ruby-identifier">stackEntry</span> ]
1549
- 415: <span class="ruby-keyword kw">end</span></pre>
1545
+ <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 407</span>
1546
+ 407: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initFileStack</span>
1547
+ 408: <span class="ruby-ivar">@fileStackVariables</span> = <span class="ruby-node">%( taskprefix reportprefix
1548
+ 409: resourceprefix accountprefix )</span>
1549
+ 410: <span class="ruby-identifier">stackEntry</span> = {}
1550
+ 411: <span class="ruby-ivar">@fileStackVariables</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">var</span><span class="ruby-operator">|</span>
1551
+ 412: <span class="ruby-identifier">stackEntry</span>[<span class="ruby-identifier">var</span>] = <span class="ruby-value str">''</span>
1552
+ 413: <span class="ruby-identifier">instance_variable_set</span>(<span class="ruby-value str">'@'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">var</span>, <span class="ruby-value str">''</span>)
1553
+ 414: <span class="ruby-keyword kw">end</span>
1554
+ 415: <span class="ruby-ivar">@fileStack</span> = [ <span class="ruby-identifier">stackEntry</span> ]
1555
+ 416: <span class="ruby-keyword kw">end</span></pre>
1550
1556
  </div>
1551
1557
 
1552
1558
  </div>
@@ -1580,10 +1586,10 @@ first <tt>idx</tt> tokens.
1580
1586
  <div class="method-source-code"
1581
1587
  id="last-yntax-oken-source">
1582
1588
  <pre>
1583
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 376</span>
1584
- 376: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">lastSyntaxToken</span>(<span class="ruby-identifier">idx</span>)
1585
- 377: <span class="ruby-ivar">@cr</span>.<span class="ruby-identifier">setLastSyntaxToken</span>(<span class="ruby-identifier">idx</span>)
1586
- 378: <span class="ruby-keyword kw">end</span></pre>
1589
+ <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 377</span>
1590
+ 377: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">lastSyntaxToken</span>(<span class="ruby-identifier">idx</span>)
1591
+ 378: <span class="ruby-ivar">@cr</span>.<span class="ruby-identifier">setLastSyntaxToken</span>(<span class="ruby-identifier">idx</span>)
1592
+ 379: <span class="ruby-keyword kw">end</span></pre>
1587
1593
  </div>
1588
1594
 
1589
1595
  </div>
@@ -1614,19 +1620,19 @@ first <tt>idx</tt> tokens.
1614
1620
  <div class="method-source-code"
1615
1621
  id="list-ule-source">
1616
1622
  <pre>
1617
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 313</span>
1618
- 313: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">listRule</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">listItem</span>)
1619
- 314: <span class="ruby-identifier">pattern</span>([ <span class="ruby-node">&quot;#{listItem}&quot;</span>, <span class="ruby-node">&quot;!#{name}&quot;</span> ], <span class="ruby-identifier">lambda</span> {
1620
- 315: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@val</span>[<span class="ruby-value">1</span>] <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@val</span>[<span class="ruby-value">1</span>].<span class="ruby-identifier">include?</span>(<span class="ruby-ivar">@val</span>[<span class="ruby-value">0</span>])
1621
- 316: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'duplicate_in_list'</span>,
1622
- 317: <span class="ruby-value str">&quot;Duplicate items in list.&quot;</span>)
1623
- 318: <span class="ruby-keyword kw">end</span>
1624
- 319: [ <span class="ruby-ivar">@val</span>[<span class="ruby-value">0</span>] ] <span class="ruby-operator">+</span> (<span class="ruby-ivar">@val</span>[<span class="ruby-value">1</span>].<span class="ruby-identifier">nil?</span> <span class="ruby-operator">?</span> [] <span class="ruby-operator">:</span> <span class="ruby-ivar">@val</span>[<span class="ruby-value">1</span>])
1625
- 320: })
1626
- 321: <span class="ruby-identifier">newRule</span>(<span class="ruby-identifier">name</span>) {
1627
- 322: <span class="ruby-identifier">commaListRule</span>(<span class="ruby-identifier">listItem</span>)
1628
- 323: }
1629
- 324: <span class="ruby-keyword kw">end</span></pre>
1623
+ <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 314</span>
1624
+ 314: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">listRule</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">listItem</span>)
1625
+ 315: <span class="ruby-identifier">pattern</span>([ <span class="ruby-node">&quot;#{listItem}&quot;</span>, <span class="ruby-node">&quot;!#{name}&quot;</span> ], <span class="ruby-identifier">lambda</span> {
1626
+ 316: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@val</span>[<span class="ruby-value">1</span>] <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@val</span>[<span class="ruby-value">1</span>].<span class="ruby-identifier">include?</span>(<span class="ruby-ivar">@val</span>[<span class="ruby-value">0</span>])
1627
+ 317: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'duplicate_in_list'</span>,
1628
+ 318: <span class="ruby-value str">&quot;Duplicate items in list.&quot;</span>)
1629
+ 319: <span class="ruby-keyword kw">end</span>
1630
+ 320: [ <span class="ruby-ivar">@val</span>[<span class="ruby-value">0</span>] ] <span class="ruby-operator">+</span> (<span class="ruby-ivar">@val</span>[<span class="ruby-value">1</span>].<span class="ruby-identifier">nil?</span> <span class="ruby-operator">?</span> [] <span class="ruby-operator">:</span> <span class="ruby-ivar">@val</span>[<span class="ruby-value">1</span>])
1631
+ 321: })
1632
+ 322: <span class="ruby-identifier">newRule</span>(<span class="ruby-identifier">name</span>) {
1633
+ 323: <span class="ruby-identifier">commaListRule</span>(<span class="ruby-identifier">listItem</span>)
1634
+ 324: }
1635
+ 325: <span class="ruby-keyword kw">end</span></pre>
1630
1636
  </div>
1631
1637
 
1632
1638
  </div>
@@ -1664,23 +1670,23 @@ method returns the newly created <a href="Report.html">Report</a>.
1664
1670
  <div class="method-source-code"
1665
1671
  id="new-eport-source">
1666
1672
  <pre>
1667
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 239</span>
1668
- 239: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">newReport</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">name</span>, <span class="ruby-identifier">type</span>, <span class="ruby-identifier">sourceFileInfo</span>)
1669
- 240: <span class="ruby-ivar">@reportCounter</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
1670
- 241: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">name</span> <span class="ruby-operator">!=</span> <span class="ruby-value str">'.'</span>
1671
- 242: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">reportByName</span>(<span class="ruby-identifier">name</span>)
1672
- 243: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'report_redefinition'</span>,
1673
- 244: <span class="ruby-node">&quot;A report with the name #{name} has already been defined.&quot;</span>)
1674
- 245: <span class="ruby-keyword kw">end</span>
1675
- 246: <span class="ruby-keyword kw">end</span>
1676
- 247: <span class="ruby-ivar">@property</span> = <span class="ruby-constant">Report</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@project</span>, <span class="ruby-identifier">id</span> <span class="ruby-operator">||</span> <span class="ruby-node">&quot;report#{@reportCounter}&quot;</span>,
1677
- 248: <span class="ruby-identifier">name</span>, <span class="ruby-keyword kw">nil</span>)
1678
- 249: <span class="ruby-ivar">@property</span>.<span class="ruby-identifier">typeSpec</span> = <span class="ruby-identifier">type</span>
1679
- 250: <span class="ruby-ivar">@property</span>.<span class="ruby-identifier">sourceFileInfo</span> = <span class="ruby-identifier">sourceFileInfo</span>
1680
- 251: <span class="ruby-ivar">@property</span>.<span class="ruby-identifier">set</span>(<span class="ruby-value str">'formats'</span>, [ <span class="ruby-value">:tjp</span> ])
1681
- 252: <span class="ruby-ivar">@property</span>.<span class="ruby-identifier">inheritAttributes</span>
1682
- 253: <span class="ruby-ivar">@property</span>
1683
- 254: <span class="ruby-keyword kw">end</span></pre>
1673
+ <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 240</span>
1674
+ 240: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">newReport</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">name</span>, <span class="ruby-identifier">type</span>, <span class="ruby-identifier">sourceFileInfo</span>)
1675
+ 241: <span class="ruby-ivar">@reportCounter</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
1676
+ 242: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">name</span> <span class="ruby-operator">!=</span> <span class="ruby-value str">'.'</span>
1677
+ 243: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">reportByName</span>(<span class="ruby-identifier">name</span>)
1678
+ 244: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'report_redefinition'</span>,
1679
+ 245: <span class="ruby-node">&quot;A report with the name #{name} has already been defined.&quot;</span>)
1680
+ 246: <span class="ruby-keyword kw">end</span>
1681
+ 247: <span class="ruby-keyword kw">end</span>
1682
+ 248: <span class="ruby-ivar">@property</span> = <span class="ruby-constant">Report</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@project</span>, <span class="ruby-identifier">id</span> <span class="ruby-operator">||</span> <span class="ruby-node">&quot;report#{@reportCounter}&quot;</span>,
1683
+ 249: <span class="ruby-identifier">name</span>, <span class="ruby-keyword kw">nil</span>)
1684
+ 250: <span class="ruby-ivar">@property</span>.<span class="ruby-identifier">typeSpec</span> = <span class="ruby-identifier">type</span>
1685
+ 251: <span class="ruby-ivar">@property</span>.<span class="ruby-identifier">sourceFileInfo</span> = <span class="ruby-identifier">sourceFileInfo</span>
1686
+ 252: <span class="ruby-ivar">@property</span>.<span class="ruby-identifier">set</span>(<span class="ruby-value str">'formats'</span>, [ <span class="ruby-value">:tjp</span> ])
1687
+ 253: <span class="ruby-ivar">@property</span>.<span class="ruby-identifier">inheritAttributes</span>
1688
+ 254: <span class="ruby-ivar">@property</span>
1689
+ 255: <span class="ruby-keyword kw">end</span></pre>
1684
1690
  </div>
1685
1691
 
1686
1692
  </div>
@@ -1725,24 +1731,24 @@ the supported set of variable tokens, a subset can be provided by
1725
1731
  <div class="method-source-code"
1726
1732
  id="new-ich-ext-source">
1727
1733
  <pre>
1728
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 216</span>
1729
- 216: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">newRichText</span>(<span class="ruby-identifier">text</span>, <span class="ruby-identifier">sfi</span>, <span class="ruby-identifier">tokenSet</span> = <span class="ruby-keyword kw">nil</span>)
1730
- 217: <span class="ruby-identifier">rText</span> = <span class="ruby-constant">RichText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">text</span>, <span class="ruby-constant">RTFHandlers</span>.<span class="ruby-identifier">create</span>(<span class="ruby-ivar">@project</span>, <span class="ruby-identifier">sfi</span>))
1731
- 218: <span class="ruby-keyword kw">unless</span> (<span class="ruby-identifier">rti</span> = <span class="ruby-identifier">rText</span>.<span class="ruby-identifier">generateIntermediateFormat</span>( [ <span class="ruby-value">0</span>, <span class="ruby-value">0</span>, <span class="ruby-value">0</span>], <span class="ruby-identifier">tokenSet</span>))
1732
- 219: <span class="ruby-identifier">rText</span>.<span class="ruby-identifier">messageHandler</span>.<span class="ruby-identifier">messages</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">msg</span><span class="ruby-operator">|</span>
1733
- 220: <span class="ruby-comment cmt"># Map the SourceFileInfo of the RichText back to the original</span>
1734
- 221: <span class="ruby-comment cmt"># location in the input file.</span>
1735
- 222: <span class="ruby-identifier">sfi</span> = <span class="ruby-constant">SourceFileInfo</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">sfi</span>.<span class="ruby-identifier">fileName</span>,
1736
- 223: <span class="ruby-identifier">sfi</span>.<span class="ruby-identifier">lineNo</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">msg</span>.<span class="ruby-identifier">sourceFileInfo</span>.<span class="ruby-identifier">lineNo</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>,
1737
- 224: <span class="ruby-value">0</span>)
1738
- 225: <span class="ruby-comment cmt"># Then replay the error message.</span>
1739
- 226: <span class="ruby-ivar">@messageHandler</span>.<span class="ruby-identifier">addMessage</span>(<span class="ruby-identifier">msg</span>.<span class="ruby-identifier">type</span>, <span class="ruby-identifier">msg</span>.<span class="ruby-identifier">id</span>, <span class="ruby-identifier">msg</span>.<span class="ruby-identifier">message</span>, <span class="ruby-identifier">sfi</span>,
1740
- 227: <span class="ruby-identifier">msg</span>.<span class="ruby-identifier">line</span>)
1741
- 228: <span class="ruby-keyword kw">end</span>
1742
- 229: <span class="ruby-keyword kw">end</span>
1743
- 230: <span class="ruby-identifier">rti</span>.<span class="ruby-identifier">sectionNumbers</span> = <span class="ruby-keyword kw">false</span>
1744
- 231: <span class="ruby-identifier">rti</span>
1745
- 232: <span class="ruby-keyword kw">end</span></pre>
1734
+ <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 217</span>
1735
+ 217: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">newRichText</span>(<span class="ruby-identifier">text</span>, <span class="ruby-identifier">sfi</span>, <span class="ruby-identifier">tokenSet</span> = <span class="ruby-keyword kw">nil</span>)
1736
+ 218: <span class="ruby-identifier">rText</span> = <span class="ruby-constant">RichText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">text</span>, <span class="ruby-constant">RTFHandlers</span>.<span class="ruby-identifier">create</span>(<span class="ruby-ivar">@project</span>, <span class="ruby-identifier">sfi</span>))
1737
+ 219: <span class="ruby-keyword kw">unless</span> (<span class="ruby-identifier">rti</span> = <span class="ruby-identifier">rText</span>.<span class="ruby-identifier">generateIntermediateFormat</span>( [ <span class="ruby-value">0</span>, <span class="ruby-value">0</span>, <span class="ruby-value">0</span>], <span class="ruby-identifier">tokenSet</span>))
1738
+ 220: <span class="ruby-identifier">rText</span>.<span class="ruby-identifier">messageHandler</span>.<span class="ruby-identifier">messages</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">msg</span><span class="ruby-operator">|</span>
1739
+ 221: <span class="ruby-comment cmt"># Map the SourceFileInfo of the RichText back to the original</span>
1740
+ 222: <span class="ruby-comment cmt"># location in the input file.</span>
1741
+ 223: <span class="ruby-identifier">sfi</span> = <span class="ruby-constant">SourceFileInfo</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">sfi</span>.<span class="ruby-identifier">fileName</span>,
1742
+ 224: <span class="ruby-identifier">sfi</span>.<span class="ruby-identifier">lineNo</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">msg</span>.<span class="ruby-identifier">sourceFileInfo</span>.<span class="ruby-identifier">lineNo</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>,
1743
+ 225: <span class="ruby-value">0</span>)
1744
+ 226: <span class="ruby-comment cmt"># Then replay the error message.</span>
1745
+ 227: <span class="ruby-ivar">@messageHandler</span>.<span class="ruby-identifier">addMessage</span>(<span class="ruby-identifier">msg</span>.<span class="ruby-identifier">type</span>, <span class="ruby-identifier">msg</span>.<span class="ruby-identifier">id</span>, <span class="ruby-identifier">msg</span>.<span class="ruby-identifier">message</span>, <span class="ruby-identifier">sfi</span>,
1746
+ 228: <span class="ruby-identifier">msg</span>.<span class="ruby-identifier">line</span>)
1747
+ 229: <span class="ruby-keyword kw">end</span>
1748
+ 230: <span class="ruby-keyword kw">end</span>
1749
+ 231: <span class="ruby-identifier">rti</span>.<span class="ruby-identifier">sectionNumbers</span> = <span class="ruby-keyword kw">false</span>
1750
+ 232: <span class="ruby-identifier">rti</span>
1751
+ 233: <span class="ruby-keyword kw">end</span></pre>
1746
1752
  </div>
1747
1753
 
1748
1754
  </div>
@@ -1776,13 +1782,13 @@ attributes. <em>attributes</em> is the rule that lists these attributes.
1776
1782
  <div class="method-source-code"
1777
1783
  id="options-ule-source">
1778
1784
  <pre>
1779
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 336</span>
1780
- 336: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">optionsRule</span>(<span class="ruby-identifier">attributes</span>)
1781
- 337: <span class="ruby-identifier">optional</span>
1782
- 338: <span class="ruby-identifier">pattern</span>([ <span class="ruby-value str">'_{'</span>, <span class="ruby-node">&quot;!#{attributes}&quot;</span>, <span class="ruby-value str">'_}'</span> ], <span class="ruby-identifier">lambda</span> {
1783
- 339: <span class="ruby-ivar">@val</span>[<span class="ruby-value">1</span>]
1784
- 340: })
1785
- 341: <span class="ruby-keyword kw">end</span></pre>
1785
+ <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 337</span>
1786
+ 337: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">optionsRule</span>(<span class="ruby-identifier">attributes</span>)
1787
+ 338: <span class="ruby-identifier">optional</span>
1788
+ 339: <span class="ruby-identifier">pattern</span>([ <span class="ruby-value str">'_{'</span>, <span class="ruby-node">&quot;!#{attributes}&quot;</span>, <span class="ruby-value str">'_}'</span> ], <span class="ruby-identifier">lambda</span> {
1789
+ 340: <span class="ruby-ivar">@val</span>[<span class="ruby-value">1</span>]
1790
+ 341: })
1791
+ 342: <span class="ruby-keyword kw">end</span></pre>
1786
1792
  </div>
1787
1793
 
1788
1794
  </div>
@@ -1816,14 +1822,18 @@ variables according to the now top-entry.
1816
1822
  <div class="method-source-code"
1817
1823
  id="pop-ile-tack-source">
1818
1824
  <pre>
1819
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 428</span>
1820
- 428: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">popFileStack</span>
1821
- 429: <span class="ruby-ivar">@fileStack</span>.<span class="ruby-identifier">pop</span>
1822
- 430: <span class="ruby-identifier">stackEntry</span> = <span class="ruby-ivar">@fileStack</span>.<span class="ruby-identifier">last</span>
1823
- 431: <span class="ruby-ivar">@fileStackVariables</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">var</span><span class="ruby-operator">|</span>
1824
- 432: <span class="ruby-identifier">instance_variable_set</span>(<span class="ruby-value str">'@'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">var</span>, <span class="ruby-identifier">stackEntry</span>[<span class="ruby-identifier">var</span>])
1825
- 433: <span class="ruby-keyword kw">end</span>
1826
- 434: <span class="ruby-keyword kw">end</span></pre>
1825
+ <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 429</span>
1826
+ 429: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">popFileStack</span>
1827
+ 430: <span class="ruby-ivar">@fileStack</span>.<span class="ruby-identifier">pop</span>
1828
+ 431: <span class="ruby-identifier">stackEntry</span> = <span class="ruby-ivar">@fileStack</span>.<span class="ruby-identifier">last</span>
1829
+ 432: <span class="ruby-ivar">@fileStackVariables</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">var</span><span class="ruby-operator">|</span>
1830
+ 433: <span class="ruby-identifier">instance_variable_set</span>(<span class="ruby-value str">'@'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">var</span>, <span class="ruby-identifier">stackEntry</span>[<span class="ruby-identifier">var</span>])
1831
+ 434: <span class="ruby-keyword kw">end</span>
1832
+ 435: <span class="ruby-comment cmt"># Include files can only occur at global level or in the project header.</span>
1833
+ 436: <span class="ruby-comment cmt"># In both cases, the @property was nil on including and must be reset to</span>
1834
+ 437: <span class="ruby-comment cmt"># nil again after the include file.</span>
1835
+ 438: <span class="ruby-ivar">@property</span> = <span class="ruby-keyword kw">nil</span>
1836
+ 439: <span class="ruby-keyword kw">end</span></pre>
1827
1837
  </div>
1828
1838
 
1829
1839
  </div>
@@ -1856,14 +1866,14 @@ Push a new set of variables onto the @fileStack.
1856
1866
  <div class="method-source-code"
1857
1867
  id="push-ile-tack-source">
1858
1868
  <pre>
1859
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 418</span>
1860
- 418: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">pushFileStack</span>
1861
- 419: <span class="ruby-identifier">stackEntry</span> = {}
1862
- 420: <span class="ruby-ivar">@fileStackVariables</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">var</span><span class="ruby-operator">|</span>
1863
- 421: <span class="ruby-identifier">stackEntry</span>[<span class="ruby-identifier">var</span>] = <span class="ruby-identifier">instance_variable_get</span>(<span class="ruby-value str">'@'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">var</span>)
1864
- 422: <span class="ruby-keyword kw">end</span>
1865
- 423: <span class="ruby-ivar">@fileStack</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">stackEntry</span>
1866
- 424: <span class="ruby-keyword kw">end</span></pre>
1869
+ <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 419</span>
1870
+ 419: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">pushFileStack</span>
1871
+ 420: <span class="ruby-identifier">stackEntry</span> = {}
1872
+ 421: <span class="ruby-ivar">@fileStackVariables</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">var</span><span class="ruby-operator">|</span>
1873
+ 422: <span class="ruby-identifier">stackEntry</span>[<span class="ruby-identifier">var</span>] = <span class="ruby-identifier">instance_variable_get</span>(<span class="ruby-value str">'@'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">var</span>)
1874
+ 423: <span class="ruby-keyword kw">end</span>
1875
+ 424: <span class="ruby-ivar">@fileStack</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">stackEntry</span>
1876
+ 425: <span class="ruby-keyword kw">end</span></pre>
1867
1877
  </div>
1868
1878
 
1869
1879
  </div>
@@ -1899,16 +1909,16 @@ href="Limits.html">Limits</a> object is enough.
1899
1909
  <div class="method-source-code"
1900
1910
  id="set-imit-source">
1901
1911
  <pre>
1902
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 259</span>
1903
- 259: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">setLimit</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">value</span>, <span class="ruby-identifier">interval</span>)
1904
- 260: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@limitResources</span>.<span class="ruby-identifier">empty?</span>
1905
- 261: <span class="ruby-ivar">@limits</span>.<span class="ruby-identifier">setLimit</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">value</span>, <span class="ruby-identifier">interval</span>)
1906
- 262: <span class="ruby-keyword kw">else</span>
1907
- 263: <span class="ruby-ivar">@limitResources</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>
1908
- 264: <span class="ruby-ivar">@limits</span>.<span class="ruby-identifier">setLimit</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">value</span>, <span class="ruby-identifier">interval</span>, <span class="ruby-identifier">resource</span>)
1909
- 265: <span class="ruby-keyword kw">end</span>
1910
- 266: <span class="ruby-keyword kw">end</span>
1911
- 267: <span class="ruby-keyword kw">end</span></pre>
1912
+ <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 260</span>
1913
+ 260: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">setLimit</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">value</span>, <span class="ruby-identifier">interval</span>)
1914
+ 261: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@limitResources</span>.<span class="ruby-identifier">empty?</span>
1915
+ 262: <span class="ruby-ivar">@limits</span>.<span class="ruby-identifier">setLimit</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">value</span>, <span class="ruby-identifier">interval</span>)
1916
+ 263: <span class="ruby-keyword kw">else</span>
1917
+ 264: <span class="ruby-ivar">@limitResources</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>
1918
+ 265: <span class="ruby-ivar">@limits</span>.<span class="ruby-identifier">setLimit</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">value</span>, <span class="ruby-identifier">interval</span>, <span class="ruby-identifier">resource</span>)
1919
+ 266: <span class="ruby-keyword kw">end</span>
1920
+ 267: <span class="ruby-keyword kw">end</span>
1921
+ 268: <span class="ruby-keyword kw">end</span></pre>
1912
1922
  </div>
1913
1923
 
1914
1924
  </div>
@@ -1942,12 +1952,12 @@ value of that item.
1942
1952
  <div class="method-source-code"
1943
1953
  id="single-attern-source">
1944
1954
  <pre>
1945
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 345</span>
1946
- 345: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">singlePattern</span>(<span class="ruby-identifier">item</span>)
1947
- 346: <span class="ruby-identifier">pattern</span>([ <span class="ruby-identifier">item</span> ], <span class="ruby-identifier">lambda</span> {
1948
- 347: <span class="ruby-ivar">@val</span>[<span class="ruby-value">0</span>]
1949
- 348: })
1950
- 349: <span class="ruby-keyword kw">end</span></pre>
1955
+ <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 346</span>
1956
+ 346: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">singlePattern</span>(<span class="ruby-identifier">item</span>)
1957
+ 347: <span class="ruby-identifier">pattern</span>([ <span class="ruby-identifier">item</span> ], <span class="ruby-identifier">lambda</span> {
1958
+ 348: <span class="ruby-ivar">@val</span>[<span class="ruby-value">0</span>]
1959
+ 349: })
1960
+ 350: <span class="ruby-keyword kw">end</span></pre>
1951
1961
  </div>
1952
1962
 
1953
1963
  </div>
@@ -1982,14 +1992,14 @@ and does some error checking. It returns 0 for &#8216;sun&#8217;, 1 for
1982
1992
  <div class="method-source-code"
1983
1993
  id="week-ay-source">
1984
1994
  <pre>
1985
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 115</span>
1986
- 115: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">weekDay</span>(<span class="ruby-identifier">name</span>)
1987
- 116: <span class="ruby-identifier">names</span> = <span class="ruby-node">%( sun mon tue wed thu fri sat )</span>
1988
- 117: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">day</span> = <span class="ruby-identifier">names</span>.<span class="ruby-identifier">index</span>(<span class="ruby-ivar">@val</span>[<span class="ruby-value">0</span>])).<span class="ruby-identifier">nil?</span>
1989
- 118: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'weekday'</span>, <span class="ruby-node">&quot;Weekday name expected (#{names.join(', ')})&quot;</span>)
1990
- 119: <span class="ruby-keyword kw">end</span>
1991
- 120: <span class="ruby-identifier">day</span>
1992
- 121: <span class="ruby-keyword kw">end</span></pre>
1995
+ <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 116</span>
1996
+ 116: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">weekDay</span>(<span class="ruby-identifier">name</span>)
1997
+ 117: <span class="ruby-identifier">names</span> = <span class="ruby-node">%( sun mon tue wed thu fri sat )</span>
1998
+ 118: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">day</span> = <span class="ruby-identifier">names</span>.<span class="ruby-identifier">index</span>(<span class="ruby-ivar">@val</span>[<span class="ruby-value">0</span>])).<span class="ruby-identifier">nil?</span>
1999
+ 119: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'weekday'</span>, <span class="ruby-node">&quot;Weekday name expected (#{names.join(', ')})&quot;</span>)
2000
+ 120: <span class="ruby-keyword kw">end</span>
2001
+ 121: <span class="ruby-identifier">day</span>
2002
+ 122: <span class="ruby-keyword kw">end</span></pre>
1993
2003
  </div>
1994
2004
 
1995
2005
  </div>