taskjuggler 0.0.6 → 0.0.7

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 (545) hide show
  1. data/CHANGELOG +160 -0
  2. data/benchmarks/UTF-8-Strings.rb +58 -0
  3. data/data/css/tjreport.css +7 -2
  4. data/doc/AppConfig.html +10 -4
  5. data/doc/Arguments.html +10 -4
  6. data/doc/CHANGELOG.html +171 -5
  7. data/doc/COPYING.html +10 -4
  8. data/doc/Object.html +11 -107
  9. data/doc/README.html +10 -4
  10. data/doc/RuntimeConfig.html +10 -4
  11. data/doc/String.html +16 -11
  12. data/doc/StringIO.html +10 -4
  13. data/doc/TaskJuggler.html +506 -435
  14. data/doc/TaskJuggler/Account.html +10 -4
  15. data/doc/TaskJuggler/AccountAttribute.html +10 -4
  16. data/doc/TaskJuggler/AccountScenario.html +10 -4
  17. data/doc/TaskJuggler/Allocation.html +69 -60
  18. data/doc/TaskJuggler/AllocationAttribute.html +10 -4
  19. data/doc/TaskJuggler/AttributeBase.html +10 -4
  20. data/doc/TaskJuggler/AttributeDefinition.html +10 -4
  21. data/doc/TaskJuggler/BatchProcessor.html +202 -192
  22. data/doc/TaskJuggler/Booking.html +10 -4
  23. data/doc/TaskJuggler/BookingListAttribute.html +10 -4
  24. data/doc/TaskJuggler/BooleanAttribute.html +10 -4
  25. data/doc/TaskJuggler/CSVFile.html +10 -4
  26. data/doc/TaskJuggler/CellSettingPattern.html +10 -4
  27. data/doc/TaskJuggler/CellSettingPatternList.html +10 -4
  28. data/doc/TaskJuggler/Charge.html +10 -4
  29. data/doc/TaskJuggler/ChargeListAttribute.html +10 -4
  30. data/doc/TaskJuggler/ChargeSet.html +10 -4
  31. data/doc/TaskJuggler/ChargeSetListAttribute.html +10 -4
  32. data/doc/TaskJuggler/ColumnListAttribute.html +10 -4
  33. data/doc/TaskJuggler/ColumnTable.html +10 -4
  34. data/doc/TaskJuggler/Daemon.html +71 -52
  35. data/doc/TaskJuggler/DateAttribute.html +10 -4
  36. data/doc/TaskJuggler/DefinitionListAttribute.html +10 -4
  37. data/doc/TaskJuggler/DependencyListAttribute.html +10 -4
  38. data/doc/TaskJuggler/DurationAttribute.html +10 -4
  39. data/doc/TaskJuggler/{MacroParser.html → FileList.html} +58 -173
  40. data/doc/TaskJuggler/{RichTextException.html → FileRecord.html} +59 -80
  41. data/doc/TaskJuggler/FixnumAttribute.html +10 -4
  42. data/doc/TaskJuggler/FlagListAttribute.html +10 -4
  43. data/doc/TaskJuggler/FloatAttribute.html +10 -4
  44. data/doc/TaskJuggler/FormatListAttribute.html +10 -4
  45. data/doc/TaskJuggler/GanttChart.html +10 -4
  46. data/doc/TaskJuggler/GanttContainer.html +14 -8
  47. data/doc/TaskJuggler/GanttHeader.html +10 -4
  48. data/doc/TaskJuggler/GanttHeaderScaleItem.html +10 -4
  49. data/doc/TaskJuggler/GanttLine.html +29 -24
  50. data/doc/TaskJuggler/GanttLoadStack.html +10 -4
  51. data/doc/TaskJuggler/GanttMilestone.html +10 -4
  52. data/doc/TaskJuggler/GanttRouter.html +10 -4
  53. data/doc/TaskJuggler/GanttTaskBar.html +20 -10
  54. data/doc/TaskJuggler/HTMLDocument.html +10 -4
  55. data/doc/TaskJuggler/HTMLGraphics.html +10 -4
  56. data/doc/TaskJuggler/Interval.html +10 -4
  57. data/doc/TaskJuggler/IntervalListAttribute.html +10 -4
  58. data/doc/TaskJuggler/JobInfo.html +10 -4
  59. data/doc/TaskJuggler/Journal.html +227 -160
  60. data/doc/TaskJuggler/JournalEntry.html +10 -4
  61. data/doc/TaskJuggler/JournalEntryList.html +158 -72
  62. data/doc/TaskJuggler/KeywordArray.html +21 -9
  63. data/doc/TaskJuggler/KeywordDocumentation.html +612 -475
  64. data/doc/TaskJuggler/Limits.html +13 -8
  65. data/doc/TaskJuggler/Limits/Limit.html +10 -4
  66. data/doc/TaskJuggler/LimitsAttribute.html +10 -4
  67. data/doc/TaskJuggler/ListAttributeBase.html +10 -4
  68. data/doc/TaskJuggler/Log.html +10 -4
  69. data/doc/TaskJuggler/LogFile.html +10 -4
  70. data/doc/TaskJuggler/LogicalAttribute.html +10 -4
  71. data/doc/TaskJuggler/LogicalExpression.html +11 -5
  72. data/doc/TaskJuggler/LogicalExpressionAttribute.html +10 -4
  73. data/doc/TaskJuggler/LogicalFlag.html +10 -4
  74. data/doc/TaskJuggler/LogicalFunction.html +132 -124
  75. data/doc/TaskJuggler/LogicalOperation.html +10 -4
  76. data/doc/TaskJuggler/Macro.html +16 -10
  77. data/doc/TaskJuggler/MacroTable.html +44 -38
  78. data/doc/TaskJuggler/ManagerResponsibilities.html +10 -4
  79. data/doc/TaskJuggler/ManagerStatusRecord.html +10 -4
  80. data/doc/TaskJuggler/Message.html +92 -68
  81. data/doc/TaskJuggler/MessageHandler.html +349 -28
  82. data/doc/TaskJuggler/Navigator.html +10 -4
  83. data/doc/TaskJuggler/NavigatorElement.html +10 -4
  84. data/doc/TaskJuggler/NikuProject.html +10 -4
  85. data/doc/TaskJuggler/NikuReport.html +10 -4
  86. data/doc/TaskJuggler/NikuResource.html +10 -4
  87. data/doc/TaskJuggler/NodeListAttribute.html +10 -4
  88. data/doc/TaskJuggler/OnShiftCache.html +10 -4
  89. data/doc/TaskJuggler/ProcessIntercom.html +118 -111
  90. data/doc/TaskJuggler/ProcessIntercomIface.html +75 -22
  91. data/doc/TaskJuggler/Project.html +886 -913
  92. data/doc/TaskJuggler/ProjectBroker.html +442 -331
  93. data/doc/TaskJuggler/ProjectBrokerIface.html +95 -38
  94. data/doc/TaskJuggler/ProjectFileParser.html +320 -317
  95. data/doc/TaskJuggler/ProjectFileScanner.html +336 -339
  96. data/doc/TaskJuggler/ProjectRecord.html +119 -56
  97. data/doc/TaskJuggler/ProjectServer.html +282 -237
  98. data/doc/TaskJuggler/ProjectServerIface.html +45 -39
  99. data/doc/TaskJuggler/PropertyAttribute.html +10 -4
  100. data/doc/TaskJuggler/PropertyList.html +177 -173
  101. data/doc/TaskJuggler/PropertySet.html +11 -5
  102. data/doc/TaskJuggler/PropertyTreeNode.html +194 -191
  103. data/doc/TaskJuggler/Query.html +280 -256
  104. data/doc/TaskJuggler/RTFHandlers.html +10 -4
  105. data/doc/TaskJuggler/RTFNavigator.html +33 -26
  106. data/doc/TaskJuggler/RTFQuery.html +135 -169
  107. data/doc/TaskJuggler/RTFReport.html +63 -56
  108. data/doc/TaskJuggler/RTFReportLink.html +58 -47
  109. data/doc/TaskJuggler/RTFWithQuerySupport.html +666 -0
  110. data/doc/TaskJuggler/RealFormat.html +10 -4
  111. data/doc/TaskJuggler/RealFormatAttribute.html +10 -4
  112. data/doc/TaskJuggler/ReferenceAttribute.html +10 -4
  113. data/doc/TaskJuggler/Report.html +333 -290
  114. data/doc/TaskJuggler/ReportBase.html +182 -174
  115. data/doc/TaskJuggler/ReportContext.html +10 -4
  116. data/doc/TaskJuggler/ReportServer.html +144 -126
  117. data/doc/TaskJuggler/ReportServerIface.html +50 -44
  118. data/doc/TaskJuggler/ReportServerRecord.html +38 -32
  119. data/doc/TaskJuggler/ReportServlet.html +144 -137
  120. data/doc/TaskJuggler/ReportTable.html +10 -4
  121. data/doc/TaskJuggler/ReportTableCell.html +169 -164
  122. data/doc/TaskJuggler/ReportTableColumn.html +10 -4
  123. data/doc/TaskJuggler/ReportTableLegend.html +10 -4
  124. data/doc/TaskJuggler/ReportTableLine.html +10 -4
  125. data/doc/TaskJuggler/Resource.html +121 -115
  126. data/doc/TaskJuggler/ResourceListAttribute.html +10 -4
  127. data/doc/TaskJuggler/ResourceListRE.html +10 -4
  128. data/doc/TaskJuggler/ResourceScenario.html +13 -7
  129. data/doc/TaskJuggler/RichText.html +61 -37
  130. data/doc/TaskJuggler/RichTextAttribute.html +10 -4
  131. data/doc/TaskJuggler/RichTextDocument.html +91 -81
  132. data/doc/TaskJuggler/RichTextElement.html +378 -317
  133. data/doc/TaskJuggler/RichTextFunctionExample.html +10 -4
  134. data/doc/TaskJuggler/RichTextFunctionHandler.html +16 -11
  135. data/doc/TaskJuggler/RichTextImage.html +10 -4
  136. data/doc/TaskJuggler/RichTextIntermediate.html +138 -70
  137. data/doc/TaskJuggler/RichTextParser.html +48 -40
  138. data/doc/TaskJuggler/RichTextScanner.html +328 -906
  139. data/doc/TaskJuggler/RichTextSnip.html +59 -57
  140. data/doc/TaskJuggler/RichTextSyntaxRules.html +458 -369
  141. data/doc/TaskJuggler/Scenario.html +10 -4
  142. data/doc/TaskJuggler/ScenarioData.html +33 -30
  143. data/doc/TaskJuggler/ScenarioListAttribute.html +10 -4
  144. data/doc/TaskJuggler/Scoreboard.html +10 -4
  145. data/doc/TaskJuggler/SheetHandlerBase.html +315 -191
  146. data/doc/TaskJuggler/SheetReceiver.html +334 -313
  147. data/doc/TaskJuggler/SheetSender.html +10 -4
  148. data/doc/TaskJuggler/Shift.html +10 -4
  149. data/doc/TaskJuggler/ShiftAssignment.html +10 -4
  150. data/doc/TaskJuggler/ShiftAssignments.html +10 -4
  151. data/doc/TaskJuggler/ShiftAssignmentsAttribute.html +10 -4
  152. data/doc/TaskJuggler/ShiftScenario.html +10 -4
  153. data/doc/TaskJuggler/SimpleQueryExpander.html +697 -0
  154. data/doc/TaskJuggler/SortListAttribute.html +10 -4
  155. data/doc/TaskJuggler/SourceFileInfo.html +10 -4
  156. data/doc/TaskJuggler/StatusSheetReceiver.html +10 -4
  157. data/doc/TaskJuggler/StatusSheetReport.html +10 -4
  158. data/doc/TaskJuggler/StatusSheetSender.html +10 -4
  159. data/doc/TaskJuggler/StringAttribute.html +10 -4
  160. data/doc/TaskJuggler/SymbolAttribute.html +10 -4
  161. data/doc/TaskJuggler/SyntaxReference.html +260 -230
  162. data/doc/TaskJuggler/TOCEntry.html +99 -42
  163. data/doc/TaskJuggler/TSResourceRecord.html +10 -4
  164. data/doc/TaskJuggler/TSTaskRecord.html +10 -4
  165. data/doc/TaskJuggler/TableColumnDefinition.html +10 -4
  166. data/doc/TaskJuggler/TableOfContents.html +54 -12
  167. data/doc/TaskJuggler/TableReport.html +877 -872
  168. data/doc/TaskJuggler/Task.html +117 -68
  169. data/doc/TaskJuggler/TaskDependency.html +10 -4
  170. data/doc/TaskJuggler/TaskListAttribute.html +10 -4
  171. data/doc/TaskJuggler/TaskListRE.html +10 -4
  172. data/doc/TaskJuggler/TaskScenario.html +1681 -1563
  173. data/doc/TaskJuggler/TextFormatter.html +10 -4
  174. data/doc/TaskJuggler/TextParser.html +567 -534
  175. data/doc/TaskJuggler/TextParser/Pattern.html +128 -118
  176. data/doc/TaskJuggler/TextParser/Rule.html +26 -15
  177. data/doc/TaskJuggler/TextParser/StackElement.html +10 -4
  178. data/doc/TaskJuggler/TextParser/TextParserResultArray.html +22 -16
  179. data/doc/TaskJuggler/TextParser/TokenDoc.html +10 -4
  180. data/doc/TaskJuggler/TextReport.html +15 -6
  181. data/doc/TaskJuggler/TextScanner.html +319 -287
  182. data/doc/TaskJuggler/TextScanner/BufferStreamHandle.html +16 -10
  183. data/doc/TaskJuggler/TextScanner/FileStreamHandle.html +23 -17
  184. data/doc/TaskJuggler/TextScanner/MacroStackEntry.html +17 -11
  185. data/doc/TaskJuggler/TextScanner/StreamHandle.html +102 -96
  186. data/doc/TaskJuggler/TimeSheet.html +138 -175
  187. data/doc/TaskJuggler/TimeSheetReceiver.html +10 -4
  188. data/doc/TaskJuggler/TimeSheetRecord.html +65 -58
  189. data/doc/TaskJuggler/TimeSheetReport.html +47 -42
  190. data/doc/TaskJuggler/TimeSheetSender.html +10 -4
  191. data/doc/TaskJuggler/TimeSheetSummary.html +91 -83
  192. data/doc/TaskJuggler/TimeSheets.html +22 -16
  193. data/doc/TaskJuggler/Tj3AppBase.html +10 -4
  194. data/doc/TaskJuggler/Tj3Client.html +399 -365
  195. data/doc/TaskJuggler/Tj3Daemon.html +107 -94
  196. data/doc/TaskJuggler/Tj3SheetAppBase.html +10 -4
  197. data/doc/TaskJuggler/Tj3SsReceiver.html +10 -4
  198. data/doc/TaskJuggler/Tj3SsSender.html +10 -4
  199. data/doc/TaskJuggler/Tj3TsReceiver.html +10 -4
  200. data/doc/TaskJuggler/Tj3TsSender.html +10 -4
  201. data/doc/TaskJuggler/Tj3TsSummary.html +10 -4
  202. data/doc/TaskJuggler/TjException.html +10 -4
  203. data/doc/TaskJuggler/TjTime.html +145 -140
  204. data/doc/TaskJuggler/TjpExample.html +10 -4
  205. data/doc/TaskJuggler/TjpExportRE.html +122 -118
  206. data/doc/TaskJuggler/TjpSyntaxRules.html +4065 -4052
  207. data/doc/TaskJuggler/URLParameter.html +10 -4
  208. data/doc/TaskJuggler/UserManual.html +162 -155
  209. data/doc/TaskJuggler/VimSyntax.html +1028 -0
  210. data/doc/TaskJuggler/WebServer.html +45 -27
  211. data/doc/TaskJuggler/WorkingHours.html +10 -4
  212. data/doc/TaskJuggler/WorkingHoursAttribute.html +10 -4
  213. data/doc/TaskJuggler/XMLBlob.html +10 -4
  214. data/doc/TaskJuggler/XMLComment.html +10 -4
  215. data/doc/TaskJuggler/XMLDocument.html +10 -4
  216. data/doc/TaskJuggler/XMLElement.html +10 -4
  217. data/doc/TaskJuggler/XMLNamedText.html +10 -4
  218. data/doc/TaskJuggler/XMLText.html +10 -4
  219. data/doc/index.html +735 -677
  220. data/doc/lib/AccountScenario_rb.html +1 -1
  221. data/doc/lib/Account_rb.html +1 -1
  222. data/doc/lib/Allocation_rb.html +1 -1
  223. data/doc/lib/AppConfig_rb.html +1 -1
  224. data/doc/lib/AttributeBase_rb.html +1 -1
  225. data/doc/lib/AttributeDefinition_rb.html +1 -1
  226. data/doc/lib/Attributes_rb.html +1 -1
  227. data/doc/lib/BatchProcessor_rb.html +1 -1
  228. data/doc/lib/Booking_rb.html +1 -1
  229. data/doc/lib/ChargeSet_rb.html +1 -1
  230. data/doc/lib/Charge_rb.html +1 -1
  231. data/doc/lib/{Message_rb.html → FileList_rb.html} +3 -5
  232. data/doc/lib/HTMLDocument_rb.html +1 -1
  233. data/doc/lib/Interval_rb.html +1 -1
  234. data/doc/lib/Journal_rb.html +1 -1
  235. data/doc/lib/KeywordArray_rb.html +1 -1
  236. data/doc/lib/KeywordDocumentation_rb.html +1 -1
  237. data/doc/lib/Limits_rb.html +1 -1
  238. data/doc/lib/LogFile_rb.html +1 -1
  239. data/doc/lib/Log_rb.html +1 -1
  240. data/doc/lib/LogicalExpression_rb.html +1 -1
  241. data/doc/lib/LogicalFunction_rb.html +1 -1
  242. data/doc/lib/LogicalOperation_rb.html +1 -1
  243. data/doc/lib/MacroTable_rb.html +1 -3
  244. data/doc/lib/MessageHandler_rb.html +1 -1
  245. data/doc/lib/ProjectFileParser_rb.html +1 -1
  246. data/doc/lib/ProjectFileScanner_rb.html +1 -1
  247. data/doc/lib/Project_rb.html +4 -2
  248. data/doc/lib/PropertyList_rb.html +1 -1
  249. data/doc/lib/PropertySet_rb.html +1 -1
  250. data/doc/lib/PropertyTreeNode_rb.html +1 -1
  251. data/doc/lib/Query_rb.html +1 -1
  252. data/doc/lib/RTFHandlers_rb.html +1 -1
  253. data/doc/lib/RTFNavigator_rb.html +1 -1
  254. data/doc/lib/RTFQuery_rb.html +2 -2
  255. data/doc/lib/RTFReportLink_rb.html +4 -2
  256. data/doc/lib/RTFReport_rb.html +1 -1
  257. data/doc/lib/{MacroParser_rb.html → RTFWithQuerySupport_rb.html} +4 -6
  258. data/doc/lib/RealFormat_rb.html +1 -1
  259. data/doc/lib/ResourceScenario_rb.html +1 -1
  260. data/doc/lib/Resource_rb.html +1 -1
  261. data/doc/lib/RichTextDocument_rb.html +1 -1
  262. data/doc/lib/RichTextElement_rb.html +1 -1
  263. data/doc/lib/RichTextFunctionExample_rb.html +1 -1
  264. data/doc/lib/RichTextFunctionHandler_rb.html +1 -1
  265. data/doc/lib/RichTextParser_rb.html +1 -1
  266. data/doc/lib/RichTextScanner_rb.html +3 -1
  267. data/doc/lib/RichTextSnip_rb.html +1 -1
  268. data/doc/lib/RichTextSyntaxRules_rb.html +1 -1
  269. data/doc/lib/RichText_rb.html +3 -1
  270. data/doc/lib/RuntimeConfig_rb.html +1 -1
  271. data/doc/lib/ScenarioData_rb.html +2 -2
  272. data/doc/lib/Scenario_rb.html +1 -1
  273. data/doc/lib/Scoreboard_rb.html +1 -1
  274. data/doc/lib/SheetHandlerBase_rb.html +5 -1
  275. data/doc/lib/SheetReceiver_rb.html +3 -1
  276. data/doc/lib/SheetSender_rb.html +1 -1
  277. data/doc/lib/ShiftAssignments_rb.html +1 -1
  278. data/doc/lib/ShiftScenario_rb.html +1 -1
  279. data/doc/lib/Shift_rb.html +1 -1
  280. data/doc/lib/SimpleQueryExpander_rb.html +67 -0
  281. data/doc/lib/SourceFileInfo_rb.html +1 -1
  282. data/doc/lib/StatusSheetReceiver_rb.html +1 -1
  283. data/doc/lib/StatusSheetSender_rb.html +1 -1
  284. data/doc/lib/SyntaxReference_rb.html +1 -1
  285. data/doc/lib/TOCEntry_rb.html +1 -1
  286. data/doc/lib/TableColumnDefinition_rb.html +1 -1
  287. data/doc/lib/TableOfContents_rb.html +1 -1
  288. data/doc/lib/TaskDependency_rb.html +1 -1
  289. data/doc/lib/TaskJuggler_rb.html +1 -1
  290. data/doc/lib/TaskScenario_rb.html +1 -1
  291. data/doc/lib/Task_rb.html +1 -1
  292. data/doc/lib/TextFormatter_rb.html +1 -1
  293. data/doc/lib/TextParser/Pattern_rb.html +1 -1
  294. data/doc/lib/TextParser/Rule_rb.html +1 -1
  295. data/doc/lib/TextParser/StackElement_rb.html +1 -1
  296. data/doc/lib/TextParser/TokenDoc_rb.html +1 -1
  297. data/doc/lib/TextParser_rb.html +3 -1
  298. data/doc/lib/TextScanner_rb.html +1 -3
  299. data/doc/lib/TimeSheetReceiver_rb.html +1 -1
  300. data/doc/lib/TimeSheetSender_rb.html +1 -1
  301. data/doc/lib/TimeSheetSummary_rb.html +1 -1
  302. data/doc/lib/TimeSheets_rb.html +1 -1
  303. data/doc/lib/Tj3AppBase_rb.html +1 -1
  304. data/doc/lib/Tj3Config_rb.html +1 -1
  305. data/doc/lib/Tj3SheetAppBase_rb.html +1 -1
  306. data/doc/lib/TjException_rb.html +1 -1
  307. data/doc/lib/TjTime_rb.html +1 -1
  308. data/doc/lib/TjpExample_rb.html +1 -1
  309. data/doc/lib/TjpSyntaxRules_rb.html +1 -1
  310. data/doc/lib/URLParameter_rb.html +1 -1
  311. data/doc/lib/UTF8String_rb.html +1 -1
  312. data/doc/lib/UserManual_rb.html +1 -1
  313. data/doc/lib/{ruby-signal-bug_rb.html → VimSyntax_rb.html} +17 -4
  314. data/doc/lib/WorkingHours_rb.html +1 -1
  315. data/doc/lib/XMLDocument_rb.html +1 -1
  316. data/doc/lib/XMLElement_rb.html +1 -1
  317. data/doc/lib/daemon/Daemon_rb.html +1 -1
  318. data/doc/lib/daemon/ProcessIntercom_rb.html +1 -1
  319. data/doc/lib/daemon/ProjectBroker_rb.html +1 -1
  320. data/doc/lib/daemon/ProjectServer_rb.html +1 -1
  321. data/doc/lib/daemon/ReportServer_rb.html +1 -3
  322. data/doc/lib/daemon/WebServer_rb.html +1 -1
  323. data/doc/lib/deep_copy_rb.html +1 -1
  324. data/doc/lib/reports/CSVFile_rb.html +1 -1
  325. data/doc/lib/reports/ColumnTable_rb.html +1 -1
  326. data/doc/lib/reports/GanttChart_rb.html +1 -1
  327. data/doc/lib/reports/GanttContainer_rb.html +1 -1
  328. data/doc/lib/reports/GanttHeaderScaleItem_rb.html +1 -1
  329. data/doc/lib/reports/GanttHeader_rb.html +1 -1
  330. data/doc/lib/reports/GanttLine_rb.html +1 -1
  331. data/doc/lib/reports/GanttLoadStack_rb.html +1 -1
  332. data/doc/lib/reports/GanttMilestone_rb.html +1 -1
  333. data/doc/lib/reports/GanttRouter_rb.html +1 -1
  334. data/doc/lib/reports/GanttTaskBar_rb.html +1 -1
  335. data/doc/lib/reports/HTMLGraphics_rb.html +1 -1
  336. data/doc/lib/reports/Navigator_rb.html +1 -1
  337. data/doc/lib/reports/NikuReport_rb.html +1 -1
  338. data/doc/lib/reports/ReportBase_rb.html +1 -1
  339. data/doc/lib/reports/ReportContext_rb.html +1 -1
  340. data/doc/lib/reports/ReportTableCell_rb.html +1 -1
  341. data/doc/lib/reports/ReportTableColumn_rb.html +1 -1
  342. data/doc/lib/reports/ReportTableLegend_rb.html +1 -1
  343. data/doc/lib/reports/ReportTableLine_rb.html +1 -1
  344. data/doc/lib/reports/ReportTable_rb.html +1 -1
  345. data/doc/lib/reports/Report_rb.html +1 -1
  346. data/doc/lib/reports/ResourceListRE_rb.html +1 -1
  347. data/doc/lib/reports/StatusSheetReport_rb.html +1 -1
  348. data/doc/lib/reports/TableReport_rb.html +1 -1
  349. data/doc/lib/reports/TaskListRE_rb.html +1 -1
  350. data/doc/lib/reports/TextReport_rb.html +1 -1
  351. data/doc/lib/reports/TimeSheetReport_rb.html +1 -1
  352. data/doc/lib/reports/TjpExportRE_rb.html +1 -1
  353. data/doc/lib/taskjuggler3_rb.html +1 -1
  354. data/doc/lib/tj3client_rb.html +1 -1
  355. data/doc/lib/tj3d_rb.html +1 -1
  356. data/doc/lib/tj3man_rb.html +1 -1
  357. data/doc/lib/tj3ss_receiver_rb.html +1 -1
  358. data/doc/lib/tj3ss_sender_rb.html +1 -1
  359. data/doc/lib/tj3ts_receiver_rb.html +1 -1
  360. data/doc/lib/tj3ts_sender_rb.html +1 -1
  361. data/doc/lib/tj3ts_summary_rb.html +1 -1
  362. data/lib/Allocation.rb +8 -5
  363. data/lib/BatchProcessor.rb +7 -3
  364. data/lib/FileList.rb +58 -0
  365. data/lib/Journal.rb +73 -33
  366. data/lib/KeywordArray.rb +4 -0
  367. data/lib/KeywordDocumentation.rb +45 -11
  368. data/lib/Limits.rb +0 -1
  369. data/lib/LogicalExpression.rb +1 -1
  370. data/lib/LogicalFunction.rb +14 -12
  371. data/lib/MacroTable.rb +3 -4
  372. data/lib/MessageHandler.rb +136 -7
  373. data/lib/Project.rb +72 -86
  374. data/lib/ProjectFileParser.rb +30 -33
  375. data/lib/ProjectFileScanner.rb +7 -16
  376. data/lib/PropertyList.rb +25 -27
  377. data/lib/PropertySet.rb +1 -1
  378. data/lib/PropertyTreeNode.rb +9 -12
  379. data/lib/Query.rb +5 -4
  380. data/lib/RTFNavigator.rb +2 -1
  381. data/lib/RTFQuery.rb +4 -11
  382. data/lib/RTFReport.rb +2 -1
  383. data/lib/RTFReportLink.rb +10 -4
  384. data/lib/RTFWithQuerySupport.rb +45 -0
  385. data/lib/Resource.rb +20 -20
  386. data/lib/ResourceScenario.rb +3 -3
  387. data/lib/RichText.rb +15 -7
  388. data/lib/RichTextDocument.rb +8 -4
  389. data/lib/RichTextElement.rb +35 -12
  390. data/lib/RichTextFunctionHandler.rb +11 -12
  391. data/lib/RichTextParser.rb +5 -3
  392. data/lib/RichTextScanner.rb +144 -565
  393. data/lib/RichTextSnip.rb +3 -7
  394. data/lib/RichTextSyntaxRules.rb +51 -32
  395. data/lib/ScenarioData.rb +16 -25
  396. data/lib/SheetHandlerBase.rb +59 -2
  397. data/lib/SheetReceiver.rb +36 -18
  398. data/lib/SimpleQueryExpander.rb +58 -0
  399. data/lib/SyntaxReference.rb +9 -5
  400. data/lib/TOCEntry.rb +2 -0
  401. data/lib/TableOfContents.rb +4 -0
  402. data/lib/Task.rb +23 -12
  403. data/lib/TaskJuggler.rb +72 -33
  404. data/lib/TaskScenario.rb +131 -53
  405. data/lib/TextParser.rb +43 -30
  406. data/lib/TextParser/Pattern.rb +17 -13
  407. data/lib/TextParser/Rule.rb +5 -0
  408. data/lib/TextScanner.rb +46 -25
  409. data/lib/TimeSheetSummary.rb +9 -7
  410. data/lib/TimeSheets.rb +14 -23
  411. data/lib/Tj3Config.rb +1 -1
  412. data/lib/TjTime.rb +1 -2
  413. data/lib/TjpSyntaxRules.rb +128 -104
  414. data/lib/UTF8String.rb +0 -1
  415. data/lib/UserManual.rb +5 -4
  416. data/lib/VimSyntax.rb +223 -0
  417. data/lib/daemon/Daemon.rb +9 -0
  418. data/lib/daemon/ProcessIntercom.rb +19 -4
  419. data/lib/daemon/ProjectBroker.rb +149 -68
  420. data/lib/daemon/ProjectServer.rb +119 -79
  421. data/lib/daemon/ReportServer.rb +42 -31
  422. data/lib/daemon/WebServer.rb +21 -2
  423. data/lib/deep_copy.rb +1 -1
  424. data/lib/reports/GanttContainer.rb +2 -2
  425. data/lib/reports/GanttLine.rb +2 -3
  426. data/lib/reports/GanttTaskBar.rb +7 -3
  427. data/lib/reports/Report.rb +62 -57
  428. data/lib/reports/ReportBase.rb +6 -4
  429. data/lib/reports/ReportTableCell.rb +13 -14
  430. data/lib/reports/TableReport.rb +2 -1
  431. data/lib/reports/TextReport.rb +3 -0
  432. data/lib/reports/TimeSheetReport.rb +2 -3
  433. data/lib/reports/TjpExportRE.rb +0 -2
  434. data/lib/tj3client.rb +31 -3
  435. data/lib/tj3d.rb +8 -1
  436. data/manual/Day_To_Day_Juggling +2 -95
  437. data/manual/How_To_Contribute +2 -1
  438. data/manual/Rich_Text_Attributes +37 -3
  439. data/manual/Software +203 -0
  440. data/test/MessageChecker.rb +4 -4
  441. data/test/TestSuite/HTML-Reports/Alerts.html +172 -0
  442. data/test/TestSuite/HTML-Reports/CellText.html +758 -0
  443. data/test/TestSuite/HTML-Reports/ColumnPeriods.html +156 -0
  444. data/test/TestSuite/HTML-Reports/IsOngoing.html +172 -0
  445. data/test/TestSuite/HTML-Reports/LogicalFunctions.html +245 -0
  446. data/test/TestSuite/HTML-Reports/Query.html +31 -0
  447. data/test/TestSuite/HTML-Reports/css/tjmanual.css +14 -0
  448. data/test/TestSuite/HTML-Reports/css/tjreport.css +233 -21
  449. data/test/TestSuite/HTML-Reports/depArrows.html +842 -0
  450. data/test/TestSuite/HTML-Reports/scripts/scripts/wz_tooltip.js +1301 -0
  451. data/test/TestSuite/HTML-Reports/scripts/wz_tooltip.js +20 -20
  452. data/test/TestSuite/ReportGenerator/Correct/Alerts.tjp +48 -0
  453. data/test/TestSuite/ReportGenerator/Correct/Macros.tjp +57 -0
  454. data/test/TestSuite/ReportGenerator/Correct/refs/Alerts-1.csv +386 -0
  455. data/test/TestSuite/ReportGenerator/Correct/refs/Macros-1.csv +6 -0
  456. data/test/TestSuite/ReportGenerator/{Correct → Errors}/css/tjmanual.css +0 -0
  457. data/test/TestSuite/ReportGenerator/{Correct → Errors}/css/tjreport.css +0 -0
  458. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/details.png +0 -0
  459. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/flag-green.png +0 -0
  460. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/flag-red.png +0 -0
  461. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/flag-yellow.png +0 -0
  462. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/resource.png +0 -0
  463. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/resourcegroup.png +0 -0
  464. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/task.png +0 -0
  465. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/taskgroup.png +0 -0
  466. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/trend-down.png +0 -0
  467. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/trend-flat.png +0 -0
  468. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/trend-up.png +0 -0
  469. data/test/TestSuite/ReportGenerator/Errors/rtp_report_recursion.html +26 -0
  470. data/test/TestSuite/ReportGenerator/{Correct → Errors}/scripts/wz_tooltip.js +0 -0
  471. data/test/TestSuite/Scheduler/Correct/Allocate.html +3210 -0
  472. data/test/TestSuite/Scheduler/Correct/Allocate.tjp +19 -0
  473. data/test/TestSuite/Scheduler/Correct/Container.html +22 -22
  474. data/test/TestSuite/Scheduler/Correct/Limits.html +4964 -0
  475. data/test/TestSuite/Scheduler/Correct/Shift.html +1707 -417
  476. data/test/TestSuite/Scheduler/Correct/Shift2.html +9 -9
  477. data/test/TestSuite/Scheduler/Correct/css/tjreport.css +6 -2
  478. data/test/TestSuite/Scheduler/Errors/css/tjmanual.css +66 -0
  479. data/test/TestSuite/Scheduler/Errors/css/tjreport.css +407 -0
  480. data/test/TestSuite/Scheduler/Errors/icons/details.png +0 -0
  481. data/test/TestSuite/Scheduler/Errors/icons/flag-green.png +0 -0
  482. data/test/TestSuite/Scheduler/Errors/icons/flag-red.png +0 -0
  483. data/test/TestSuite/Scheduler/Errors/icons/flag-yellow.png +0 -0
  484. data/test/TestSuite/Scheduler/Errors/icons/resource.png +0 -0
  485. data/test/TestSuite/Scheduler/Errors/icons/resourcegroup.png +0 -0
  486. data/test/TestSuite/Scheduler/Errors/icons/task.png +0 -0
  487. data/test/TestSuite/Scheduler/Errors/icons/taskgroup.png +0 -0
  488. data/test/TestSuite/Scheduler/Errors/icons/trend-down.png +0 -0
  489. data/test/TestSuite/Scheduler/Errors/icons/trend-flat.png +0 -0
  490. data/test/TestSuite/Scheduler/Errors/icons/trend-up.png +0 -0
  491. data/test/TestSuite/Scheduler/Errors/loop_detected_1.tjp +1 -1
  492. data/test/TestSuite/Scheduler/Errors/loop_detected_10.tjp +1 -1
  493. data/test/TestSuite/Scheduler/Errors/loop_detected_11.tjp +1 -1
  494. data/test/TestSuite/Scheduler/Errors/loop_detected_12.tjp +1 -1
  495. data/test/TestSuite/Scheduler/Errors/loop_detected_13.tjp +1 -1
  496. data/test/TestSuite/Scheduler/Errors/loop_detected_14.tjp +1 -1
  497. data/test/TestSuite/Scheduler/Errors/loop_detected_2.tjp +1 -1
  498. data/test/TestSuite/Scheduler/Errors/loop_detected_3.tjp +1 -1
  499. data/test/TestSuite/Scheduler/Errors/loop_detected_4.tjp +1 -1
  500. data/test/TestSuite/Scheduler/Errors/loop_detected_5.tjp +1 -1
  501. data/test/TestSuite/Scheduler/Errors/loop_detected_6.tjp +1 -1
  502. data/test/TestSuite/Scheduler/Errors/loop_detected_7.tjp +1 -1
  503. data/test/TestSuite/Scheduler/Errors/loop_detected_8.tjp +1 -1
  504. data/test/TestSuite/Scheduler/Errors/loop_detected_9.tjp +1 -1
  505. data/test/TestSuite/Scheduler/Errors/scripts/wz_tooltip.js +1301 -0
  506. data/test/TestSuite/Scheduler/Errors/task_pred_before.tjp +11 -0
  507. data/test/TestSuite/Scheduler/Errors/task_pred_before_gd.tjp +11 -0
  508. data/test/TestSuite/Scheduler/Errors/task_pred_before_gl.tjp +11 -0
  509. data/test/TestSuite/Scheduler/Errors/task_succ_after.tjp +12 -0
  510. data/test/TestSuite/Scheduler/Errors/task_succ_after_gd.tjp +12 -0
  511. data/test/TestSuite/Scheduler/Errors/task_succ_after_gl.tjp +12 -0
  512. data/test/TestSuite/StatusSheets/dev2.tji +22 -0
  513. data/test/TestSuite/StatusSheets/resrep.tji +7 -0
  514. data/test/TestSuite/StatusSheets/run +6 -4
  515. data/test/TestSuite/StatusSheets/tj3d.log +312 -0
  516. data/test/TestSuite/Syntax/Correct/Managers.html +263 -0
  517. data/test/TestSuite/Syntax/Correct/tutorial.tjp +1 -2
  518. data/test/TestSuite/Syntax/Errors/empty.tjp +1 -1
  519. data/test/TestSuite/Syntax/Errors/macro_stack_overflow.tjp +1 -1
  520. data/test/TestSuite/TimeSheets/acceptable_intervals +1 -0
  521. data/test/TestSuite/TimeSheets/resrep.tji +7 -0
  522. data/test/TestSuite/TimeSheets/run +6 -5
  523. data/test/TestSuite/TimeSheets/statussheets.log +1 -0
  524. data/test/TestSuite/TimeSheets/ts.tji +351 -0
  525. data/test/TestSuite/TimeSheets/tsdef.tji +2 -0
  526. data/test/test_PropertySet.rb +2 -2
  527. data/test/test_RichText.rb +178 -387
  528. data/test/test_SimpleQueryExpander.rb +55 -0
  529. data/test/test_deep_copy.rb +2 -2
  530. metadata +854 -834
  531. data/lib/MacroParser.rb +0 -77
  532. data/lib/Message.rb +0 -56
  533. data/lib/ruby-signal-bug.rb +0 -43
  534. data/test/TestSuite/HTML-Reports/TimeSheet.html +0 -79
  535. data/test/TestSuite/HTML-Reports/reference.html +0 -51
  536. data/test/TestSuite/ReportGenerator/Correct/Journal.html +0 -63
  537. data/test/TestSuite/ReportGenerator/Correct/LogicalFunctions2.csv +0 -3
  538. data/test/TestSuite/ReportGenerator/Correct/opennodes.csv +0 -2
  539. data/test/TestSuite/ReportGenerator/Correct/opennodes.tjp +0 -26
  540. data/test/TestSuite/ReportGenerator/Correct/refs/opennodes-1.csv +0 -2
  541. data/test/TestSuite/Scheduler/Correct/Booking2.html +0 -603
  542. data/test/TestSuite/Scheduler/Correct/TimeSheet2.html +0 -108
  543. data/test/TestSuite/StatusSheetTemplates/project.tji +0 -35
  544. data/test/TestSuite/StatusSheetTemplates/project.tjp +0 -56
  545. data/test/TestSuite/Syntax/Correct/ResourcePrefix.html +0 -32
@@ -165,6 +165,10 @@
165
165
 
166
166
  <li><a href="../TaskJuggler/DurationAttribute.html">TaskJuggler::DurationAttribute</a></li>
167
167
 
168
+ <li><a href="../TaskJuggler/FileList.html">TaskJuggler::FileList</a></li>
169
+
170
+ <li><a href="../TaskJuggler/FileRecord.html">TaskJuggler::FileRecord</a></li>
171
+
168
172
  <li><a href="../TaskJuggler/FixnumAttribute.html">TaskJuggler::FixnumAttribute</a></li>
169
173
 
170
174
  <li><a href="../TaskJuggler/FlagListAttribute.html">TaskJuggler::FlagListAttribute</a></li>
@@ -237,8 +241,6 @@
237
241
 
238
242
  <li><a href="../TaskJuggler/Macro.html">TaskJuggler::Macro</a></li>
239
243
 
240
- <li><a href="../TaskJuggler/MacroParser.html">TaskJuggler::MacroParser</a></li>
241
-
242
244
  <li><a href="../TaskJuggler/MacroTable.html">TaskJuggler::MacroTable</a></li>
243
245
 
244
246
  <li><a href="../TaskJuggler/ManagerResponsibilities.html">TaskJuggler::ManagerResponsibilities</a></li>
@@ -303,6 +305,8 @@
303
305
 
304
306
  <li><a href="../TaskJuggler/RTFReportLink.html">TaskJuggler::RTFReportLink</a></li>
305
307
 
308
+ <li><a href="../TaskJuggler/RTFWithQuerySupport.html">TaskJuggler::RTFWithQuerySupport</a></li>
309
+
306
310
  <li><a href="../TaskJuggler/RealFormat.html">TaskJuggler::RealFormat</a></li>
307
311
 
308
312
  <li><a href="../TaskJuggler/RealFormatAttribute.html">TaskJuggler::RealFormatAttribute</a></li>
@@ -349,8 +353,6 @@
349
353
 
350
354
  <li><a href="../TaskJuggler/RichTextElement.html">TaskJuggler::RichTextElement</a></li>
351
355
 
352
- <li><a href="../TaskJuggler/RichTextException.html">TaskJuggler::RichTextException</a></li>
353
-
354
356
  <li><a href="../TaskJuggler/RichTextFunctionExample.html">TaskJuggler::RichTextFunctionExample</a></li>
355
357
 
356
358
  <li><a href="../TaskJuggler/RichTextFunctionHandler.html">TaskJuggler::RichTextFunctionHandler</a></li>
@@ -391,6 +393,8 @@
391
393
 
392
394
  <li><a href="../TaskJuggler/ShiftScenario.html">TaskJuggler::ShiftScenario</a></li>
393
395
 
396
+ <li><a href="../TaskJuggler/SimpleQueryExpander.html">TaskJuggler::SimpleQueryExpander</a></li>
397
+
394
398
  <li><a href="../TaskJuggler/SortListAttribute.html">TaskJuggler::SortListAttribute</a></li>
395
399
 
396
400
  <li><a href="../TaskJuggler/SourceFileInfo.html">TaskJuggler::SourceFileInfo</a></li>
@@ -501,6 +505,8 @@
501
505
 
502
506
  <li><a href="../TaskJuggler/UserManual.html">TaskJuggler::UserManual</a></li>
503
507
 
508
+ <li><a href="../TaskJuggler/VimSyntax.html">TaskJuggler::VimSyntax</a></li>
509
+
504
510
  <li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
505
511
 
506
512
  <li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
@@ -167,6 +167,10 @@
167
167
 
168
168
  <li><a href="../TaskJuggler/DurationAttribute.html">TaskJuggler::DurationAttribute</a></li>
169
169
 
170
+ <li><a href="../TaskJuggler/FileList.html">TaskJuggler::FileList</a></li>
171
+
172
+ <li><a href="../TaskJuggler/FileRecord.html">TaskJuggler::FileRecord</a></li>
173
+
170
174
  <li><a href="../TaskJuggler/FixnumAttribute.html">TaskJuggler::FixnumAttribute</a></li>
171
175
 
172
176
  <li><a href="../TaskJuggler/FlagListAttribute.html">TaskJuggler::FlagListAttribute</a></li>
@@ -239,8 +243,6 @@
239
243
 
240
244
  <li><a href="../TaskJuggler/Macro.html">TaskJuggler::Macro</a></li>
241
245
 
242
- <li><a href="../TaskJuggler/MacroParser.html">TaskJuggler::MacroParser</a></li>
243
-
244
246
  <li><a href="../TaskJuggler/MacroTable.html">TaskJuggler::MacroTable</a></li>
245
247
 
246
248
  <li><a href="../TaskJuggler/ManagerResponsibilities.html">TaskJuggler::ManagerResponsibilities</a></li>
@@ -305,6 +307,8 @@
305
307
 
306
308
  <li><a href="../TaskJuggler/RTFReportLink.html">TaskJuggler::RTFReportLink</a></li>
307
309
 
310
+ <li><a href="../TaskJuggler/RTFWithQuerySupport.html">TaskJuggler::RTFWithQuerySupport</a></li>
311
+
308
312
  <li><a href="../TaskJuggler/RealFormat.html">TaskJuggler::RealFormat</a></li>
309
313
 
310
314
  <li><a href="../TaskJuggler/RealFormatAttribute.html">TaskJuggler::RealFormatAttribute</a></li>
@@ -351,8 +355,6 @@
351
355
 
352
356
  <li><a href="../TaskJuggler/RichTextElement.html">TaskJuggler::RichTextElement</a></li>
353
357
 
354
- <li><a href="../TaskJuggler/RichTextException.html">TaskJuggler::RichTextException</a></li>
355
-
356
358
  <li><a href="../TaskJuggler/RichTextFunctionExample.html">TaskJuggler::RichTextFunctionExample</a></li>
357
359
 
358
360
  <li><a href="../TaskJuggler/RichTextFunctionHandler.html">TaskJuggler::RichTextFunctionHandler</a></li>
@@ -393,6 +395,8 @@
393
395
 
394
396
  <li><a href="../TaskJuggler/ShiftScenario.html">TaskJuggler::ShiftScenario</a></li>
395
397
 
398
+ <li><a href="../TaskJuggler/SimpleQueryExpander.html">TaskJuggler::SimpleQueryExpander</a></li>
399
+
396
400
  <li><a href="../TaskJuggler/SortListAttribute.html">TaskJuggler::SortListAttribute</a></li>
397
401
 
398
402
  <li><a href="../TaskJuggler/SourceFileInfo.html">TaskJuggler::SourceFileInfo</a></li>
@@ -503,6 +507,8 @@
503
507
 
504
508
  <li><a href="../TaskJuggler/UserManual.html">TaskJuggler::UserManual</a></li>
505
509
 
510
+ <li><a href="../TaskJuggler/VimSyntax.html">TaskJuggler::VimSyntax</a></li>
511
+
506
512
  <li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
507
513
 
508
514
  <li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
@@ -191,6 +191,10 @@
191
191
 
192
192
  <li><a href="../TaskJuggler/DurationAttribute.html">TaskJuggler::DurationAttribute</a></li>
193
193
 
194
+ <li><a href="../TaskJuggler/FileList.html">TaskJuggler::FileList</a></li>
195
+
196
+ <li><a href="../TaskJuggler/FileRecord.html">TaskJuggler::FileRecord</a></li>
197
+
194
198
  <li><a href="../TaskJuggler/FixnumAttribute.html">TaskJuggler::FixnumAttribute</a></li>
195
199
 
196
200
  <li><a href="../TaskJuggler/FlagListAttribute.html">TaskJuggler::FlagListAttribute</a></li>
@@ -263,8 +267,6 @@
263
267
 
264
268
  <li><a href="../TaskJuggler/Macro.html">TaskJuggler::Macro</a></li>
265
269
 
266
- <li><a href="../TaskJuggler/MacroParser.html">TaskJuggler::MacroParser</a></li>
267
-
268
270
  <li><a href="../TaskJuggler/MacroTable.html">TaskJuggler::MacroTable</a></li>
269
271
 
270
272
  <li><a href="../TaskJuggler/ManagerResponsibilities.html">TaskJuggler::ManagerResponsibilities</a></li>
@@ -329,6 +331,8 @@
329
331
 
330
332
  <li><a href="../TaskJuggler/RTFReportLink.html">TaskJuggler::RTFReportLink</a></li>
331
333
 
334
+ <li><a href="../TaskJuggler/RTFWithQuerySupport.html">TaskJuggler::RTFWithQuerySupport</a></li>
335
+
332
336
  <li><a href="../TaskJuggler/RealFormat.html">TaskJuggler::RealFormat</a></li>
333
337
 
334
338
  <li><a href="../TaskJuggler/RealFormatAttribute.html">TaskJuggler::RealFormatAttribute</a></li>
@@ -375,8 +379,6 @@
375
379
 
376
380
  <li><a href="../TaskJuggler/RichTextElement.html">TaskJuggler::RichTextElement</a></li>
377
381
 
378
- <li><a href="../TaskJuggler/RichTextException.html">TaskJuggler::RichTextException</a></li>
379
-
380
382
  <li><a href="../TaskJuggler/RichTextFunctionExample.html">TaskJuggler::RichTextFunctionExample</a></li>
381
383
 
382
384
  <li><a href="../TaskJuggler/RichTextFunctionHandler.html">TaskJuggler::RichTextFunctionHandler</a></li>
@@ -417,6 +419,8 @@
417
419
 
418
420
  <li><a href="../TaskJuggler/ShiftScenario.html">TaskJuggler::ShiftScenario</a></li>
419
421
 
422
+ <li><a href="../TaskJuggler/SimpleQueryExpander.html">TaskJuggler::SimpleQueryExpander</a></li>
423
+
420
424
  <li><a href="../TaskJuggler/SortListAttribute.html">TaskJuggler::SortListAttribute</a></li>
421
425
 
422
426
  <li><a href="../TaskJuggler/SourceFileInfo.html">TaskJuggler::SourceFileInfo</a></li>
@@ -527,6 +531,8 @@
527
531
 
528
532
  <li><a href="../TaskJuggler/UserManual.html">TaskJuggler::UserManual</a></li>
529
533
 
534
+ <li><a href="../TaskJuggler/VimSyntax.html">TaskJuggler::VimSyntax</a></li>
535
+
530
536
  <li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
531
537
 
532
538
  <li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
@@ -706,10 +712,9 @@ Evaluate the function by calling it with the arguments.
706
712
  <pre>
707
713
  <span class="ruby-comment cmt"># File lib/LogicalFunction.rb, line 71</span>
708
714
  71: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">eval</span>(<span class="ruby-identifier">expr</span>)
709
- 72: <span class="ruby-identifier">args</span> = []
710
- 73: <span class="ruby-comment cmt"># Call the function and return the result.</span>
711
- 74: <span class="ruby-identifier">send</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">expr</span>, <span class="ruby-ivar">@arguments</span>)
712
- 75: <span class="ruby-keyword kw">end</span></pre>
715
+ 72: <span class="ruby-comment cmt"># Call the function and return the result.</span>
716
+ 73: <span class="ruby-identifier">send</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">expr</span>, <span class="ruby-ivar">@arguments</span>)
717
+ 74: <span class="ruby-keyword kw">end</span></pre>
713
718
  </div>
714
719
 
715
720
  </div>
@@ -790,10 +795,10 @@ Return a textual expression of the function call.
790
795
  <div class="method-source-code"
791
796
  id="to-s-source">
792
797
  <pre>
793
- <span class="ruby-comment cmt"># File lib/LogicalFunction.rb, line 78</span>
794
- 78: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_s</span>
795
- 79: <span class="ruby-node">&quot;#{@name}(#{@arguments.join(', ')})&quot;</span>
796
- 80: <span class="ruby-keyword kw">end</span></pre>
798
+ <span class="ruby-comment cmt"># File lib/LogicalFunction.rb, line 77</span>
799
+ 77: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_s</span>
800
+ 78: <span class="ruby-node">&quot;#{@name}(#{@arguments.join(', ')})&quot;</span>
801
+ 79: <span class="ruby-keyword kw">end</span></pre>
797
802
  </div>
798
803
 
799
804
  </div>
@@ -830,15 +835,14 @@ Return a textual expression of the function call.
830
835
  <div class="method-source-code"
831
836
  id="hasalert-source">
832
837
  <pre>
833
- <span class="ruby-comment cmt"># File lib/LogicalFunction.rb, line 94</span>
834
- 94: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">hasalert</span>(<span class="ruby-identifier">expr</span>, <span class="ruby-identifier">args</span>)
835
- 95: <span class="ruby-identifier">property</span>, <span class="ruby-identifier">scopeProperty</span> = <span class="ruby-identifier">properties</span>(<span class="ruby-identifier">expr</span>)
836
- 96: <span class="ruby-identifier">query</span> = <span class="ruby-identifier">expr</span>.<span class="ruby-identifier">query</span>
837
- 97: <span class="ruby-identifier">project</span> = <span class="ruby-identifier">property</span>.<span class="ruby-identifier">project</span>
838
- 98: <span class="ruby-identifier">date</span> = <span class="ruby-identifier">project</span>.<span class="ruby-identifier">reportContexts</span>.<span class="ruby-identifier">last</span>.<span class="ruby-identifier">report</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value str">'end'</span>)
839
- 99: <span class="ruby-operator">!</span><span class="ruby-identifier">project</span>[<span class="ruby-value str">'journal'</span>].<span class="ruby-identifier">currentEntries</span>(<span class="ruby-identifier">query</span>.<span class="ruby-identifier">end</span>, <span class="ruby-identifier">property</span>,
840
- 100: <span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>], <span class="ruby-identifier">query</span>.<span class="ruby-identifier">start</span>).<span class="ruby-identifier">empty?</span>
841
- 101: <span class="ruby-keyword kw">end</span></pre>
838
+ <span class="ruby-comment cmt"># File lib/LogicalFunction.rb, line 93</span>
839
+ 93: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">hasalert</span>(<span class="ruby-identifier">expr</span>, <span class="ruby-identifier">args</span>)
840
+ 94: <span class="ruby-identifier">property</span> = <span class="ruby-identifier">properties</span>(<span class="ruby-identifier">expr</span>)[<span class="ruby-value">0</span>]
841
+ 95: <span class="ruby-identifier">query</span> = <span class="ruby-identifier">expr</span>.<span class="ruby-identifier">query</span>
842
+ 96: <span class="ruby-identifier">project</span> = <span class="ruby-identifier">property</span>.<span class="ruby-identifier">project</span>
843
+ 97: <span class="ruby-operator">!</span><span class="ruby-identifier">project</span>[<span class="ruby-value str">'journal'</span>].<span class="ruby-identifier">currentEntries</span>(<span class="ruby-identifier">query</span>.<span class="ruby-identifier">end</span>, <span class="ruby-identifier">property</span>,
844
+ 98: <span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>], <span class="ruby-identifier">query</span>.<span class="ruby-identifier">start</span>).<span class="ruby-identifier">empty?</span>
845
+ 99: <span class="ruby-keyword kw">end</span></pre>
842
846
  </div>
843
847
 
844
848
  </div>
@@ -869,22 +873,22 @@ Return a textual expression of the function call.
869
873
  <div class="method-source-code"
870
874
  id="isactive-source">
871
875
  <pre>
872
- <span class="ruby-comment cmt"># File lib/LogicalFunction.rb, line 103</span>
873
- 103: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">isactive</span>(<span class="ruby-identifier">expr</span>, <span class="ruby-identifier">args</span>)
874
- 104: <span class="ruby-identifier">property</span>, <span class="ruby-identifier">scopeProperty</span> = <span class="ruby-identifier">properties</span>(<span class="ruby-identifier">expr</span>)
875
- 105: <span class="ruby-comment cmt"># The result can only be true when called for a Task property.</span>
876
- 106: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">property</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Task</span>) <span class="ruby-operator">||</span>
877
- 107: <span class="ruby-identifier">property</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Resource</span>)
878
- 108: <span class="ruby-identifier">project</span> = <span class="ruby-identifier">property</span>.<span class="ruby-identifier">project</span>
879
- 109: <span class="ruby-comment cmt"># 1st arg must be a scenario index.</span>
880
- 110: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">scenarioIdx</span> = <span class="ruby-identifier">project</span>.<span class="ruby-identifier">scenarioIdx</span>(<span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>])).<span class="ruby-identifier">nil?</span>
881
- 111: <span class="ruby-identifier">expr</span>.<span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Unknown scenario '#{args[0]}' used for function isactive()&quot;</span>)
882
- 112: <span class="ruby-keyword kw">end</span>
883
- 113:
884
- 114: <span class="ruby-identifier">query</span> = <span class="ruby-identifier">expr</span>.<span class="ruby-identifier">query</span>
885
- 115: <span class="ruby-identifier">property</span>.<span class="ruby-identifier">getAllocatedTime</span>(<span class="ruby-identifier">scenarioIdx</span>, <span class="ruby-identifier">query</span>.<span class="ruby-identifier">start</span>, <span class="ruby-identifier">query</span>.<span class="ruby-identifier">end</span>,
886
- 116: <span class="ruby-identifier">scopeProperty</span>) <span class="ruby-operator">&gt;</span> <span class="ruby-value">0.0</span>
887
- 117: <span class="ruby-keyword kw">end</span></pre>
876
+ <span class="ruby-comment cmt"># File lib/LogicalFunction.rb, line 101</span>
877
+ 101: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">isactive</span>(<span class="ruby-identifier">expr</span>, <span class="ruby-identifier">args</span>)
878
+ 102: <span class="ruby-identifier">property</span>, <span class="ruby-identifier">scopeProperty</span> = <span class="ruby-identifier">properties</span>(<span class="ruby-identifier">expr</span>)
879
+ 103: <span class="ruby-comment cmt"># The result can only be true when called for a Task property.</span>
880
+ 104: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">property</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Task</span>) <span class="ruby-operator">||</span>
881
+ 105: <span class="ruby-identifier">property</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Resource</span>)
882
+ 106: <span class="ruby-identifier">project</span> = <span class="ruby-identifier">property</span>.<span class="ruby-identifier">project</span>
883
+ 107: <span class="ruby-comment cmt"># 1st arg must be a scenario index.</span>
884
+ 108: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">scenarioIdx</span> = <span class="ruby-identifier">project</span>.<span class="ruby-identifier">scenarioIdx</span>(<span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>])).<span class="ruby-identifier">nil?</span>
885
+ 109: <span class="ruby-identifier">expr</span>.<span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Unknown scenario '#{args[0]}' used for function isactive()&quot;</span>)
886
+ 110: <span class="ruby-keyword kw">end</span>
887
+ 111:
888
+ 112: <span class="ruby-identifier">query</span> = <span class="ruby-identifier">expr</span>.<span class="ruby-identifier">query</span>
889
+ 113: <span class="ruby-identifier">property</span>.<span class="ruby-identifier">getAllocatedTime</span>(<span class="ruby-identifier">scenarioIdx</span>, <span class="ruby-identifier">query</span>.<span class="ruby-identifier">start</span>, <span class="ruby-identifier">query</span>.<span class="ruby-identifier">end</span>,
890
+ 114: <span class="ruby-identifier">scopeProperty</span>) <span class="ruby-operator">&gt;</span> <span class="ruby-value">0.0</span>
891
+ 115: <span class="ruby-keyword kw">end</span></pre>
888
892
  </div>
889
893
 
890
894
  </div>
@@ -915,21 +919,21 @@ Return a textual expression of the function call.
915
919
  <div class="method-source-code"
916
920
  id="isdependencyof-source">
917
921
  <pre>
918
- <span class="ruby-comment cmt"># File lib/LogicalFunction.rb, line 119</span>
919
- 119: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">isdependencyof</span>(<span class="ruby-identifier">expr</span>, <span class="ruby-identifier">args</span>)
920
- 120: <span class="ruby-identifier">property</span>, <span class="ruby-identifier">scopeProperty</span> = <span class="ruby-identifier">properties</span>(<span class="ruby-identifier">expr</span>)
921
- 121: <span class="ruby-comment cmt"># The result can only be true when called for a Task property.</span>
922
- 122: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">property</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Task</span>)
923
- 123: <span class="ruby-identifier">project</span> = <span class="ruby-identifier">property</span>.<span class="ruby-identifier">project</span>
924
- 124: <span class="ruby-comment cmt"># 1st arg must be a task ID.</span>
925
- 125: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">task</span> = <span class="ruby-identifier">project</span>.<span class="ruby-identifier">task</span>(<span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>])).<span class="ruby-identifier">nil?</span>
926
- 126: <span class="ruby-comment cmt"># 2nd arg must be a scenario index.</span>
927
- 127: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">scenarioIdx</span> = <span class="ruby-identifier">project</span>.<span class="ruby-identifier">scenarioIdx</span>(<span class="ruby-identifier">args</span>[<span class="ruby-value">1</span>])).<span class="ruby-identifier">nil?</span>
928
- 128: <span class="ruby-comment cmt"># 3rd arg must be an integer number.</span>
929
- 129: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">args</span>[<span class="ruby-value">2</span>].<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Fixnum</span>)
930
- 130:
931
- 131: <span class="ruby-identifier">property</span>.<span class="ruby-identifier">isDependencyOf</span>(<span class="ruby-identifier">scenarioIdx</span>, <span class="ruby-identifier">task</span>, <span class="ruby-identifier">args</span>[<span class="ruby-value">2</span>])
932
- 132: <span class="ruby-keyword kw">end</span></pre>
922
+ <span class="ruby-comment cmt"># File lib/LogicalFunction.rb, line 117</span>
923
+ 117: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">isdependencyof</span>(<span class="ruby-identifier">expr</span>, <span class="ruby-identifier">args</span>)
924
+ 118: <span class="ruby-identifier">property</span> = <span class="ruby-identifier">properties</span>(<span class="ruby-identifier">expr</span>)[<span class="ruby-value">0</span>]
925
+ 119: <span class="ruby-comment cmt"># The result can only be true when called for a Task property.</span>
926
+ 120: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">property</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Task</span>)
927
+ 121: <span class="ruby-identifier">project</span> = <span class="ruby-identifier">property</span>.<span class="ruby-identifier">project</span>
928
+ 122: <span class="ruby-comment cmt"># 1st arg must be a task ID.</span>
929
+ 123: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">task</span> = <span class="ruby-identifier">project</span>.<span class="ruby-identifier">task</span>(<span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>])).<span class="ruby-identifier">nil?</span>
930
+ 124: <span class="ruby-comment cmt"># 2nd arg must be a scenario index.</span>
931
+ 125: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">scenarioIdx</span> = <span class="ruby-identifier">project</span>.<span class="ruby-identifier">scenarioIdx</span>(<span class="ruby-identifier">args</span>[<span class="ruby-value">1</span>])).<span class="ruby-identifier">nil?</span>
932
+ 126: <span class="ruby-comment cmt"># 3rd arg must be an integer number.</span>
933
+ 127: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">args</span>[<span class="ruby-value">2</span>].<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Fixnum</span>)
934
+ 128:
935
+ 129: <span class="ruby-identifier">property</span>.<span class="ruby-identifier">isDependencyOf</span>(<span class="ruby-identifier">scenarioIdx</span>, <span class="ruby-identifier">task</span>, <span class="ruby-identifier">args</span>[<span class="ruby-value">2</span>])
936
+ 130: <span class="ruby-keyword kw">end</span></pre>
933
937
  </div>
934
938
 
935
939
  </div>
@@ -960,19 +964,19 @@ Return a textual expression of the function call.
960
964
  <div class="method-source-code"
961
965
  id="isdutyof-source">
962
966
  <pre>
963
- <span class="ruby-comment cmt"># File lib/LogicalFunction.rb, line 134</span>
964
- 134: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">isdutyof</span>(<span class="ruby-identifier">expr</span>, <span class="ruby-identifier">args</span>)
965
- 135: <span class="ruby-identifier">property</span>, <span class="ruby-identifier">scopeProperty</span> = <span class="ruby-identifier">properties</span>(<span class="ruby-identifier">expr</span>)
966
- 136: <span class="ruby-comment cmt"># The result can only be true when called for a Task property.</span>
967
- 137: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">unless</span> (<span class="ruby-identifier">task</span> = <span class="ruby-identifier">property</span>).<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Task</span>)
968
- 138: <span class="ruby-identifier">project</span> = <span class="ruby-identifier">task</span>.<span class="ruby-identifier">project</span>
969
- 139: <span class="ruby-comment cmt"># 1st arg must be a resource ID.</span>
970
- 140: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">resource</span> = <span class="ruby-identifier">project</span>.<span class="ruby-identifier">resource</span>(<span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>])).<span class="ruby-identifier">nil?</span>
971
- 141: <span class="ruby-comment cmt"># 2nd arg must be a scenario index.</span>
972
- 142: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">scenarioIdx</span> = <span class="ruby-identifier">project</span>.<span class="ruby-identifier">scenarioIdx</span>(<span class="ruby-identifier">args</span>[<span class="ruby-value">1</span>])).<span class="ruby-identifier">nil?</span>
973
- 143:
974
- 144: <span class="ruby-identifier">task</span>[<span class="ruby-value str">'assignedresources'</span>, <span class="ruby-identifier">scenarioIdx</span>].<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">resource</span>)
975
- 145: <span class="ruby-keyword kw">end</span></pre>
967
+ <span class="ruby-comment cmt"># File lib/LogicalFunction.rb, line 132</span>
968
+ 132: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">isdutyof</span>(<span class="ruby-identifier">expr</span>, <span class="ruby-identifier">args</span>)
969
+ 133: <span class="ruby-identifier">property</span> = <span class="ruby-identifier">properties</span>(<span class="ruby-identifier">expr</span>)[<span class="ruby-value">0</span>]
970
+ 134: <span class="ruby-comment cmt"># The result can only be true when called for a Task property.</span>
971
+ 135: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">unless</span> (<span class="ruby-identifier">task</span> = <span class="ruby-identifier">property</span>).<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Task</span>)
972
+ 136: <span class="ruby-identifier">project</span> = <span class="ruby-identifier">task</span>.<span class="ruby-identifier">project</span>
973
+ 137: <span class="ruby-comment cmt"># 1st arg must be a resource ID.</span>
974
+ 138: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">resource</span> = <span class="ruby-identifier">project</span>.<span class="ruby-identifier">resource</span>(<span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>])).<span class="ruby-identifier">nil?</span>
975
+ 139: <span class="ruby-comment cmt"># 2nd arg must be a scenario index.</span>
976
+ 140: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">scenarioIdx</span> = <span class="ruby-identifier">project</span>.<span class="ruby-identifier">scenarioIdx</span>(<span class="ruby-identifier">args</span>[<span class="ruby-value">1</span>])).<span class="ruby-identifier">nil?</span>
977
+ 141:
978
+ 142: <span class="ruby-identifier">task</span>[<span class="ruby-value str">'assignedresources'</span>, <span class="ruby-identifier">scenarioIdx</span>].<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">resource</span>)
979
+ 143: <span class="ruby-keyword kw">end</span></pre>
976
980
  </div>
977
981
 
978
982
  </div>
@@ -1003,19 +1007,19 @@ Return a textual expression of the function call.
1003
1007
  <div class="method-source-code"
1004
1008
  id="isfeatureof-source">
1005
1009
  <pre>
1006
- <span class="ruby-comment cmt"># File lib/LogicalFunction.rb, line 147</span>
1007
- 147: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">isfeatureof</span>(<span class="ruby-identifier">expr</span>, <span class="ruby-identifier">args</span>)
1008
- 148: <span class="ruby-identifier">property</span>, <span class="ruby-identifier">scopeProperty</span> = <span class="ruby-identifier">properties</span>(<span class="ruby-identifier">expr</span>)
1009
- 149: <span class="ruby-comment cmt"># The result can only be true when called for a Task property.</span>
1010
- 150: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">property</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Task</span>)
1011
- 151: <span class="ruby-identifier">project</span> = <span class="ruby-identifier">property</span>.<span class="ruby-identifier">project</span>
1012
- 152: <span class="ruby-comment cmt"># 1st arg must be a task ID.</span>
1013
- 153: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">task</span> = <span class="ruby-identifier">project</span>.<span class="ruby-identifier">task</span>(<span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>])).<span class="ruby-identifier">nil?</span>
1014
- 154: <span class="ruby-comment cmt"># 2nd arg must be a scenario index.</span>
1015
- 155: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">scenarioIdx</span> = <span class="ruby-identifier">project</span>.<span class="ruby-identifier">scenarioIdx</span>(<span class="ruby-identifier">args</span>[<span class="ruby-value">1</span>])).<span class="ruby-identifier">nil?</span>
1016
- 156:
1017
- 157: <span class="ruby-identifier">property</span>.<span class="ruby-identifier">isFeatureOf</span>(<span class="ruby-identifier">scenarioIdx</span>, <span class="ruby-identifier">task</span>)
1018
- 158: <span class="ruby-keyword kw">end</span></pre>
1010
+ <span class="ruby-comment cmt"># File lib/LogicalFunction.rb, line 145</span>
1011
+ 145: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">isfeatureof</span>(<span class="ruby-identifier">expr</span>, <span class="ruby-identifier">args</span>)
1012
+ 146: <span class="ruby-identifier">property</span> = <span class="ruby-identifier">properties</span>(<span class="ruby-identifier">expr</span>)[<span class="ruby-value">0</span>]
1013
+ 147: <span class="ruby-comment cmt"># The result can only be true when called for a Task property.</span>
1014
+ 148: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">property</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Task</span>)
1015
+ 149: <span class="ruby-identifier">project</span> = <span class="ruby-identifier">property</span>.<span class="ruby-identifier">project</span>
1016
+ 150: <span class="ruby-comment cmt"># 1st arg must be a task ID.</span>
1017
+ 151: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">task</span> = <span class="ruby-identifier">project</span>.<span class="ruby-identifier">task</span>(<span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>])).<span class="ruby-identifier">nil?</span>
1018
+ 152: <span class="ruby-comment cmt"># 2nd arg must be a scenario index.</span>
1019
+ 153: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">scenarioIdx</span> = <span class="ruby-identifier">project</span>.<span class="ruby-identifier">scenarioIdx</span>(<span class="ruby-identifier">args</span>[<span class="ruby-value">1</span>])).<span class="ruby-identifier">nil?</span>
1020
+ 154:
1021
+ 155: <span class="ruby-identifier">property</span>.<span class="ruby-identifier">isFeatureOf</span>(<span class="ruby-identifier">scenarioIdx</span>, <span class="ruby-identifier">task</span>)
1022
+ 156: <span class="ruby-keyword kw">end</span></pre>
1019
1023
  </div>
1020
1024
 
1021
1025
  </div>
@@ -1046,12 +1050,12 @@ Return a textual expression of the function call.
1046
1050
  <div class="method-source-code"
1047
1051
  id="isleaf-source">
1048
1052
  <pre>
1049
- <span class="ruby-comment cmt"># File lib/LogicalFunction.rb, line 160</span>
1050
- 160: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">isleaf</span>(<span class="ruby-identifier">expr</span>, <span class="ruby-identifier">args</span>)
1051
- 161: <span class="ruby-identifier">property</span>, <span class="ruby-identifier">scopeProperty</span> = <span class="ruby-identifier">properties</span>(<span class="ruby-identifier">expr</span>)
1052
- 162: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">property</span>
1053
- 163: <span class="ruby-identifier">property</span>.<span class="ruby-identifier">leaf?</span>
1054
- 164: <span class="ruby-keyword kw">end</span></pre>
1053
+ <span class="ruby-comment cmt"># File lib/LogicalFunction.rb, line 158</span>
1054
+ 158: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">isleaf</span>(<span class="ruby-identifier">expr</span>, <span class="ruby-identifier">args</span>)
1055
+ 159: <span class="ruby-identifier">property</span> = <span class="ruby-identifier">properties</span>(<span class="ruby-identifier">expr</span>)[<span class="ruby-value">0</span>]
1056
+ 160: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">property</span>
1057
+ 161: <span class="ruby-identifier">property</span>.<span class="ruby-identifier">leaf?</span>
1058
+ 162: <span class="ruby-keyword kw">end</span></pre>
1055
1059
  </div>
1056
1060
 
1057
1061
  </div>
@@ -1082,27 +1086,28 @@ Return a textual expression of the function call.
1082
1086
  <div class="method-source-code"
1083
1087
  id="isongoing-source">
1084
1088
  <pre>
1085
- <span class="ruby-comment cmt"># File lib/LogicalFunction.rb, line 166</span>
1086
- 166: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">isongoing</span>(<span class="ruby-identifier">expr</span>, <span class="ruby-identifier">args</span>)
1087
- 167: <span class="ruby-identifier">property</span>, <span class="ruby-identifier">scopeProperty</span> = <span class="ruby-identifier">properties</span>(<span class="ruby-identifier">expr</span>)
1088
- 168: <span class="ruby-comment cmt"># The result can only be true when called for a Task property.</span>
1089
- 169: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">unless</span> (<span class="ruby-identifier">task</span> = <span class="ruby-identifier">property</span>).<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Task</span>)
1090
- 170: <span class="ruby-identifier">project</span> = <span class="ruby-identifier">task</span>.<span class="ruby-identifier">project</span>
1091
- 171: <span class="ruby-comment cmt"># 1st arg must be a scenario index.</span>
1092
- 172: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">scenarioIdx</span> = <span class="ruby-identifier">project</span>.<span class="ruby-identifier">scenarioIdx</span>(<span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>])).<span class="ruby-identifier">nil?</span>
1093
- 173: <span class="ruby-identifier">expr</span>.<span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Unknown scenario '#{args[0]}' used for function isongoing()&quot;</span>)
1094
- 174: <span class="ruby-keyword kw">end</span>
1095
- 175:
1096
- 176: <span class="ruby-identifier">query</span> = <span class="ruby-identifier">expr</span>.<span class="ruby-identifier">query</span>
1097
- 177: <span class="ruby-identifier">iv1</span> = <span class="ruby-constant">Interval</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">query</span>.<span class="ruby-identifier">start</span>, <span class="ruby-identifier">query</span>.<span class="ruby-identifier">end</span>)
1098
- 178: <span class="ruby-identifier">tStart</span> = <span class="ruby-identifier">task</span>[<span class="ruby-value str">'start'</span>, <span class="ruby-identifier">scenarioIdx</span>]
1099
- 179: <span class="ruby-identifier">tEnd</span> = <span class="ruby-identifier">task</span>[<span class="ruby-value str">'end'</span>, <span class="ruby-identifier">scenarioIdx</span>]
1100
- 180: <span class="ruby-comment cmt"># This helps to show tasks with scheduling errors.</span>
1101
- 181: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">tStart</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">tEnd</span>
1102
- 182: <span class="ruby-identifier">iv2</span> = <span class="ruby-constant">Interval</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">tStart</span>, <span class="ruby-identifier">tEnd</span>)
1103
- 183:
1104
- 184: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">iv1</span>.<span class="ruby-identifier">overlaps?</span>(<span class="ruby-identifier">iv2</span>)
1105
- 185: <span class="ruby-keyword kw">end</span></pre>
1089
+ <span class="ruby-comment cmt"># File lib/LogicalFunction.rb, line 164</span>
1090
+ 164: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">isongoing</span>(<span class="ruby-identifier">expr</span>, <span class="ruby-identifier">args</span>)
1091
+ 165: <span class="ruby-identifier">property</span> = <span class="ruby-identifier">properties</span>(<span class="ruby-identifier">expr</span>)[<span class="ruby-value">0</span>]
1092
+ 166: <span class="ruby-comment cmt"># The result can only be true when called for a Task property.</span>
1093
+ 167: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">unless</span> (<span class="ruby-identifier">task</span> = <span class="ruby-identifier">property</span>).<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Task</span>)
1094
+ 168: <span class="ruby-identifier">project</span> = <span class="ruby-identifier">task</span>.<span class="ruby-identifier">project</span>
1095
+ 169: <span class="ruby-comment cmt"># 1st arg must be a scenario index.</span>
1096
+ 170: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">scenarioIdx</span> = <span class="ruby-identifier">project</span>.<span class="ruby-identifier">scenarioIdx</span>(<span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>])).<span class="ruby-identifier">nil?</span>
1097
+ 171: <span class="ruby-identifier">expr</span>.<span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Unknown scenario '#{args[0]}' used for function &quot;</span> <span class="ruby-operator">+</span>
1098
+ 172: <span class="ruby-value str">&quot;isongoing()&quot;</span>)
1099
+ 173: <span class="ruby-keyword kw">end</span>
1100
+ 174:
1101
+ 175: <span class="ruby-identifier">query</span> = <span class="ruby-identifier">expr</span>.<span class="ruby-identifier">query</span>
1102
+ 176: <span class="ruby-identifier">iv1</span> = <span class="ruby-constant">Interval</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">query</span>.<span class="ruby-identifier">start</span>, <span class="ruby-identifier">query</span>.<span class="ruby-identifier">end</span>)
1103
+ 177: <span class="ruby-identifier">tStart</span> = <span class="ruby-identifier">task</span>[<span class="ruby-value str">'start'</span>, <span class="ruby-identifier">scenarioIdx</span>]
1104
+ 178: <span class="ruby-identifier">tEnd</span> = <span class="ruby-identifier">task</span>[<span class="ruby-value str">'end'</span>, <span class="ruby-identifier">scenarioIdx</span>]
1105
+ 179: <span class="ruby-comment cmt"># This helps to show tasks with scheduling errors.</span>
1106
+ 180: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">tStart</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">tEnd</span>
1107
+ 181: <span class="ruby-identifier">iv2</span> = <span class="ruby-constant">Interval</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">tStart</span>, <span class="ruby-identifier">tEnd</span>)
1108
+ 182:
1109
+ 183: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">iv1</span>.<span class="ruby-identifier">overlaps?</span>(<span class="ruby-identifier">iv2</span>)
1110
+ 184: <span class="ruby-keyword kw">end</span></pre>
1106
1111
  </div>
1107
1112
 
1108
1113
  </div>
@@ -1133,9 +1138,10 @@ Return a textual expression of the function call.
1133
1138
  <div class="method-source-code"
1134
1139
  id="isresource-source">
1135
1140
  <pre>
1136
- <span class="ruby-comment cmt"># File lib/LogicalFunction.rb, line 187</span>
1137
- 187: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">isresource</span>(<span class="ruby-identifier">expr</span>, <span class="ruby-identifier">args</span>)
1138
- 188: <span class="ruby-identifier">property</span>, <span class="ruby-identifier">scopeProperty</span> = <span class="ruby-identifier">properties</span>(<span class="ruby-identifier">expr</span>)
1141
+ <span class="ruby-comment cmt"># File lib/LogicalFunction.rb, line 186</span>
1142
+ 186: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">isresource</span>(<span class="ruby-identifier">expr</span>, <span class="ruby-identifier">args</span>)
1143
+ 187: <span class="ruby-identifier">property</span> = <span class="ruby-identifier">properties</span>(<span class="ruby-identifier">expr</span>)[<span class="ruby-value">0</span>]
1144
+ 188: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">property</span>
1139
1145
  189: <span class="ruby-identifier">property</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Resource</span>)
1140
1146
  190: <span class="ruby-keyword kw">end</span></pre>
1141
1147
  </div>
@@ -1170,9 +1176,10 @@ Return a textual expression of the function call.
1170
1176
  <pre>
1171
1177
  <span class="ruby-comment cmt"># File lib/LogicalFunction.rb, line 192</span>
1172
1178
  192: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">istask</span>(<span class="ruby-identifier">expr</span>, <span class="ruby-identifier">args</span>)
1173
- 193: <span class="ruby-identifier">property</span>, <span class="ruby-identifier">scopeProperty</span> = <span class="ruby-identifier">properties</span>(<span class="ruby-identifier">expr</span>)
1174
- 194: <span class="ruby-identifier">property</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Task</span>)
1175
- 195: <span class="ruby-keyword kw">end</span></pre>
1179
+ 193: <span class="ruby-identifier">property</span> = <span class="ruby-identifier">properties</span>(<span class="ruby-identifier">expr</span>)[<span class="ruby-value">0</span>]
1180
+ 194: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">property</span>
1181
+ 195: <span class="ruby-identifier">property</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Task</span>)
1182
+ 196: <span class="ruby-keyword kw">end</span></pre>
1176
1183
  </div>
1177
1184
 
1178
1185
  </div>
@@ -1206,14 +1213,14 @@ Return the property and scope property as determined by the
1206
1213
  <div class="method-source-code"
1207
1214
  id="properties-source">
1208
1215
  <pre>
1209
- <span class="ruby-comment cmt"># File lib/LogicalFunction.rb, line 86</span>
1210
- 86: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">properties</span>(<span class="ruby-identifier">expr</span>)
1211
- 87: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@invertProperties</span>
1212
- 88: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">expr</span>.<span class="ruby-identifier">query</span>.<span class="ruby-identifier">scopeProperty</span>, <span class="ruby-keyword kw">nil</span>
1213
- 89: <span class="ruby-keyword kw">else</span>
1214
- 90: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">expr</span>.<span class="ruby-identifier">query</span>.<span class="ruby-identifier">property</span>, <span class="ruby-identifier">expr</span>.<span class="ruby-identifier">query</span>.<span class="ruby-identifier">scopeProperty</span>
1215
- 91: <span class="ruby-keyword kw">end</span>
1216
- 92: <span class="ruby-keyword kw">end</span></pre>
1216
+ <span class="ruby-comment cmt"># File lib/LogicalFunction.rb, line 85</span>
1217
+ 85: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">properties</span>(<span class="ruby-identifier">expr</span>)
1218
+ 86: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@invertProperties</span>
1219
+ 87: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">expr</span>.<span class="ruby-identifier">query</span>.<span class="ruby-identifier">scopeProperty</span>, <span class="ruby-keyword kw">nil</span>
1220
+ 88: <span class="ruby-keyword kw">else</span>
1221
+ 89: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">expr</span>.<span class="ruby-identifier">query</span>.<span class="ruby-identifier">property</span>, <span class="ruby-identifier">expr</span>.<span class="ruby-identifier">query</span>.<span class="ruby-identifier">scopeProperty</span>
1222
+ 90: <span class="ruby-keyword kw">end</span>
1223
+ 91: <span class="ruby-keyword kw">end</span></pre>
1217
1224
  </div>
1218
1225
 
1219
1226
  </div>
@@ -1244,11 +1251,12 @@ Return the property and scope property as determined by the
1244
1251
  <div class="method-source-code"
1245
1252
  id="treelevel-source">
1246
1253
  <pre>
1247
- <span class="ruby-comment cmt"># File lib/LogicalFunction.rb, line 197</span>
1248
- 197: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">treelevel</span>(<span class="ruby-identifier">expr</span>, <span class="ruby-identifier">args</span>)
1249
- 198: <span class="ruby-identifier">property</span>, <span class="ruby-identifier">scopeProperty</span> = <span class="ruby-identifier">properties</span>(<span class="ruby-identifier">expr</span>)
1250
- 199: <span class="ruby-identifier">property</span>.<span class="ruby-identifier">level</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>
1251
- 200: <span class="ruby-keyword kw">end</span></pre>
1254
+ <span class="ruby-comment cmt"># File lib/LogicalFunction.rb, line 198</span>
1255
+ 198: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">treelevel</span>(<span class="ruby-identifier">expr</span>, <span class="ruby-identifier">args</span>)
1256
+ 199: <span class="ruby-identifier">property</span> = <span class="ruby-identifier">properties</span>(<span class="ruby-identifier">expr</span>)[<span class="ruby-value">0</span>]
1257
+ 200: <span class="ruby-keyword kw">return</span> <span class="ruby-value">0</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">property</span>
1258
+ 201: <span class="ruby-identifier">property</span>.<span class="ruby-identifier">level</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>
1259
+ 202: <span class="ruby-keyword kw">end</span></pre>
1252
1260
  </div>
1253
1261
 
1254
1262
  </div>