taskjuggler 0.0.7 → 0.0.8

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 (415) hide show
  1. data/CHANGELOG +119 -0
  2. data/benchmarks/allocatedSlots.tjp +1602 -0
  3. data/benchmarks/booking.tjp +40 -30
  4. data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/css/tjmanual.css +0 -0
  5. data/{test/TestSuite/Scheduler/Correct → benchmarks}/css/tjreport.css +1 -0
  6. data/benchmarks/gantt.tjp +57 -0
  7. data/benchmarks/htmltaskreport.tjp +26 -1
  8. data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/icons/details.png +0 -0
  9. data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/icons/flag-green.png +0 -0
  10. data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/icons/flag-red.png +0 -0
  11. data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/icons/flag-yellow.png +0 -0
  12. data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/icons/resource.png +0 -0
  13. data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/icons/resourcegroup.png +0 -0
  14. data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/icons/task.png +0 -0
  15. data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/icons/taskgroup.png +0 -0
  16. data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/icons/trend-down.png +0 -0
  17. data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/icons/trend-flat.png +0 -0
  18. data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/icons/trend-up.png +0 -0
  19. data/benchmarks/profile.clt +36082 -0
  20. data/benchmarks/profile.html +58182 -0
  21. data/benchmarks/runbench.rb +6 -0
  22. data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/scripts/wz_tooltip.js +0 -0
  23. data/doc/AppConfig.html +85 -37
  24. data/doc/Arguments.html +11 -1
  25. data/doc/CHANGELOG.html +131 -2
  26. data/doc/COPYING.html +11 -1
  27. data/doc/Object.html +12 -3
  28. data/doc/README.html +11 -1
  29. data/doc/RuntimeConfig.html +11 -1
  30. data/doc/String.html +11 -1
  31. data/doc/StringIO.html +11 -1
  32. data/doc/TaskJuggler.html +250 -219
  33. data/doc/TaskJuggler/Account.html +11 -1
  34. data/doc/TaskJuggler/AccountAttribute.html +11 -1
  35. data/doc/TaskJuggler/AccountScenario.html +11 -1
  36. data/doc/TaskJuggler/Allocation.html +11 -1
  37. data/doc/TaskJuggler/AllocationAttribute.html +11 -1
  38. data/doc/TaskJuggler/AttributeBase.html +11 -1
  39. data/doc/TaskJuggler/AttributeDefinition.html +11 -1
  40. data/doc/TaskJuggler/BatchProcessor.html +11 -1
  41. data/doc/TaskJuggler/Booking.html +11 -1
  42. data/doc/TaskJuggler/BookingListAttribute.html +11 -1
  43. data/doc/TaskJuggler/BooleanAttribute.html +11 -1
  44. data/doc/TaskJuggler/CSVFile.html +12 -2
  45. data/doc/TaskJuggler/CellSettingPattern.html +11 -1
  46. data/doc/TaskJuggler/CellSettingPatternList.html +11 -1
  47. data/doc/TaskJuggler/Charge.html +11 -1
  48. data/doc/TaskJuggler/ChargeListAttribute.html +11 -1
  49. data/doc/TaskJuggler/ChargeSet.html +11 -1
  50. data/doc/TaskJuggler/ChargeSetListAttribute.html +11 -1
  51. data/doc/TaskJuggler/CollisionDetector.html +1063 -0
  52. data/doc/TaskJuggler/ColumnListAttribute.html +11 -1
  53. data/doc/TaskJuggler/ColumnTable.html +11 -1
  54. data/doc/TaskJuggler/Daemon.html +11 -1
  55. data/doc/TaskJuggler/{OnShiftCache.html → DataCache.html} +127 -139
  56. data/doc/TaskJuggler/DataCacheEntry.html +711 -0
  57. data/doc/TaskJuggler/DateAttribute.html +11 -1
  58. data/doc/TaskJuggler/DefinitionListAttribute.html +11 -1
  59. data/doc/TaskJuggler/DependencyListAttribute.html +11 -1
  60. data/doc/TaskJuggler/DurationAttribute.html +16 -5
  61. data/doc/TaskJuggler/FileList.html +11 -1
  62. data/doc/TaskJuggler/FileRecord.html +11 -1
  63. data/doc/TaskJuggler/FixnumAttribute.html +19 -9
  64. data/doc/TaskJuggler/FlagListAttribute.html +29 -19
  65. data/doc/TaskJuggler/FloatAttribute.html +23 -13
  66. data/doc/TaskJuggler/FormatListAttribute.html +19 -9
  67. data/doc/TaskJuggler/GanttChart.html +94 -133
  68. data/doc/TaskJuggler/GanttContainer.html +11 -1
  69. data/doc/TaskJuggler/GanttHeader.html +11 -1
  70. data/doc/TaskJuggler/GanttHeaderScaleItem.html +11 -1
  71. data/doc/TaskJuggler/GanttLine.html +11 -1
  72. data/doc/TaskJuggler/GanttLoadStack.html +11 -1
  73. data/doc/TaskJuggler/GanttMilestone.html +11 -1
  74. data/doc/TaskJuggler/GanttRouter.html +247 -596
  75. data/doc/TaskJuggler/GanttTaskBar.html +11 -1
  76. data/doc/TaskJuggler/HTMLDocument.html +11 -1
  77. data/doc/TaskJuggler/HTMLGraphics.html +11 -1
  78. data/doc/TaskJuggler/Interval.html +11 -1
  79. data/doc/TaskJuggler/IntervalListAttribute.html +33 -23
  80. data/doc/TaskJuggler/JobInfo.html +11 -1
  81. data/doc/TaskJuggler/Journal.html +11 -1
  82. data/doc/TaskJuggler/JournalEntry.html +11 -1
  83. data/doc/TaskJuggler/JournalEntryList.html +11 -1
  84. data/doc/TaskJuggler/KeywordArray.html +11 -1
  85. data/doc/TaskJuggler/KeywordDocumentation.html +16 -6
  86. data/doc/TaskJuggler/Limits.html +11 -1
  87. data/doc/TaskJuggler/Limits/Limit.html +11 -1
  88. data/doc/TaskJuggler/LimitsAttribute.html +24 -14
  89. data/doc/TaskJuggler/ListAttributeBase.html +11 -1
  90. data/doc/TaskJuggler/Log.html +11 -1
  91. data/doc/TaskJuggler/LogFile.html +11 -1
  92. data/doc/TaskJuggler/LogicalAttribute.html +11 -1
  93. data/doc/TaskJuggler/LogicalExpression.html +11 -1
  94. data/doc/TaskJuggler/LogicalExpressionAttribute.html +19 -9
  95. data/doc/TaskJuggler/LogicalFlag.html +11 -1
  96. data/doc/TaskJuggler/LogicalFunction.html +11 -1
  97. data/doc/TaskJuggler/LogicalOperation.html +11 -1
  98. data/doc/TaskJuggler/Macro.html +11 -1
  99. data/doc/TaskJuggler/MacroTable.html +11 -1
  100. data/doc/TaskJuggler/ManagerResponsibilities.html +11 -1
  101. data/doc/TaskJuggler/ManagerStatusRecord.html +11 -1
  102. data/doc/TaskJuggler/Message.html +11 -1
  103. data/doc/TaskJuggler/MessageHandler.html +11 -1
  104. data/doc/TaskJuggler/Navigator.html +12 -2
  105. data/doc/TaskJuggler/NavigatorElement.html +11 -1
  106. data/doc/TaskJuggler/NikuProject.html +11 -1
  107. data/doc/TaskJuggler/NikuReport.html +11 -1
  108. data/doc/TaskJuggler/NikuResource.html +11 -1
  109. data/doc/TaskJuggler/NodeListAttribute.html +17 -7
  110. data/doc/TaskJuggler/PlaceHolderCell.html +722 -0
  111. data/doc/TaskJuggler/ProcessIntercom.html +11 -1
  112. data/doc/TaskJuggler/ProcessIntercomIface.html +11 -1
  113. data/doc/TaskJuggler/Project.html +587 -500
  114. data/doc/TaskJuggler/ProjectBroker.html +11 -1
  115. data/doc/TaskJuggler/ProjectBrokerIface.html +11 -1
  116. data/doc/TaskJuggler/ProjectFileParser.html +205 -192
  117. data/doc/TaskJuggler/ProjectFileScanner.html +230 -207
  118. data/doc/TaskJuggler/ProjectRecord.html +11 -1
  119. data/doc/TaskJuggler/ProjectServer.html +11 -1
  120. data/doc/TaskJuggler/ProjectServerIface.html +11 -1
  121. data/doc/TaskJuggler/PropertyAttribute.html +19 -9
  122. data/doc/TaskJuggler/PropertyList.html +95 -83
  123. data/doc/TaskJuggler/PropertySet.html +11 -1
  124. data/doc/TaskJuggler/PropertyTreeNode.html +11 -1
  125. data/doc/TaskJuggler/Query.html +234 -232
  126. data/doc/TaskJuggler/RTFHandlers.html +11 -1
  127. data/doc/TaskJuggler/RTFNavigator.html +11 -1
  128. data/doc/TaskJuggler/RTFQuery.html +11 -1
  129. data/doc/TaskJuggler/RTFReport.html +11 -1
  130. data/doc/TaskJuggler/RTFReportLink.html +11 -1
  131. data/doc/TaskJuggler/RTFWithQuerySupport.html +11 -1
  132. data/doc/TaskJuggler/RealFormat.html +12 -2
  133. data/doc/TaskJuggler/RealFormatAttribute.html +15 -5
  134. data/doc/TaskJuggler/ReferenceAttribute.html +38 -28
  135. data/doc/TaskJuggler/Report.html +96 -113
  136. data/doc/TaskJuggler/ReportBase.html +161 -152
  137. data/doc/TaskJuggler/ReportContext.html +11 -1
  138. data/doc/TaskJuggler/ReportServer.html +59 -48
  139. data/doc/TaskJuggler/ReportServerIface.html +51 -41
  140. data/doc/TaskJuggler/ReportServerRecord.html +11 -1
  141. data/doc/TaskJuggler/ReportServlet.html +11 -1
  142. data/doc/TaskJuggler/ReportTable.html +46 -25
  143. data/doc/TaskJuggler/ReportTableCell.html +296 -275
  144. data/doc/TaskJuggler/ReportTableColumn.html +14 -4
  145. data/doc/TaskJuggler/ReportTableLegend.html +11 -1
  146. data/doc/TaskJuggler/ReportTableLine.html +19 -7
  147. data/doc/TaskJuggler/Resource.html +12 -2
  148. data/doc/TaskJuggler/ResourceListAttribute.html +40 -30
  149. data/doc/TaskJuggler/ResourceListRE.html +11 -1
  150. data/doc/TaskJuggler/ResourceScenario.html +708 -565
  151. data/doc/TaskJuggler/RichText.html +54 -36
  152. data/doc/TaskJuggler/RichTextAttribute.html +31 -21
  153. data/doc/TaskJuggler/RichTextDocument.html +11 -1
  154. data/doc/TaskJuggler/RichTextElement.html +11 -1
  155. data/doc/TaskJuggler/RichTextFunctionExample.html +11 -1
  156. data/doc/TaskJuggler/RichTextFunctionHandler.html +11 -1
  157. data/doc/TaskJuggler/RichTextImage.html +11 -1
  158. data/doc/TaskJuggler/RichTextIntermediate.html +81 -71
  159. data/doc/TaskJuggler/RichTextParser.html +88 -33
  160. data/doc/TaskJuggler/RichTextScanner.html +45 -35
  161. data/doc/TaskJuggler/RichTextSnip.html +11 -1
  162. data/doc/TaskJuggler/RichTextSyntaxRules.html +436 -389
  163. data/doc/TaskJuggler/Scenario.html +11 -1
  164. data/doc/TaskJuggler/ScenarioData.html +11 -1
  165. data/doc/TaskJuggler/ScenarioListAttribute.html +23 -13
  166. data/doc/TaskJuggler/Scoreboard.html +92 -73
  167. data/doc/TaskJuggler/SheetHandlerBase.html +11 -1
  168. data/doc/TaskJuggler/SheetReceiver.html +11 -1
  169. data/doc/TaskJuggler/SheetSender.html +11 -1
  170. data/doc/TaskJuggler/Shift.html +11 -1
  171. data/doc/TaskJuggler/ShiftAssignment.html +11 -1
  172. data/doc/TaskJuggler/ShiftAssignments.html +11 -1
  173. data/doc/TaskJuggler/ShiftAssignmentsAttribute.html +24 -14
  174. data/doc/TaskJuggler/ShiftScenario.html +11 -1
  175. data/doc/TaskJuggler/SimpleQueryExpander.html +11 -1
  176. data/doc/TaskJuggler/SortListAttribute.html +21 -11
  177. data/doc/TaskJuggler/SourceFileInfo.html +11 -1
  178. data/doc/TaskJuggler/StatusSheetReceiver.html +11 -1
  179. data/doc/TaskJuggler/StatusSheetReport.html +11 -1
  180. data/doc/TaskJuggler/StatusSheetSender.html +112 -11
  181. data/doc/TaskJuggler/StringAttribute.html +23 -13
  182. data/doc/TaskJuggler/SymbolAttribute.html +19 -9
  183. data/doc/TaskJuggler/SyntaxReference.html +80 -71
  184. data/doc/TaskJuggler/TOCEntry.html +11 -1
  185. data/doc/TaskJuggler/TSResourceRecord.html +11 -1
  186. data/doc/TaskJuggler/TSTaskRecord.html +11 -1
  187. data/doc/TaskJuggler/TableColumnDefinition.html +11 -1
  188. data/doc/TaskJuggler/TableOfContents.html +11 -1
  189. data/doc/TaskJuggler/TableReport.html +422 -411
  190. data/doc/TaskJuggler/Task.html +11 -1
  191. data/doc/TaskJuggler/TaskDependency.html +11 -1
  192. data/doc/TaskJuggler/TaskListAttribute.html +33 -23
  193. data/doc/TaskJuggler/TaskListRE.html +11 -1
  194. data/doc/TaskJuggler/TaskScenario.html +2007 -1919
  195. data/doc/TaskJuggler/TextFormatter.html +11 -1
  196. data/doc/TaskJuggler/TextParser.html +421 -612
  197. data/doc/TaskJuggler/TextParser/Pattern.html +410 -211
  198. data/doc/TaskJuggler/TextParser/Rule.html +224 -152
  199. data/doc/TaskJuggler/TextParser/StackElement.html +190 -28
  200. data/doc/TaskJuggler/TextParser/State.html +989 -0
  201. data/doc/TaskJuggler/TextParser/StateTransition.html +782 -0
  202. data/doc/TaskJuggler/TextParser/TextParserResultArray.html +25 -14
  203. data/doc/TaskJuggler/TextParser/TokenDoc.html +11 -1
  204. data/doc/TaskJuggler/TextReport.html +11 -1
  205. data/doc/TaskJuggler/TextScanner.html +285 -273
  206. data/doc/TaskJuggler/TextScanner/BufferStreamHandle.html +17 -7
  207. data/doc/TaskJuggler/TextScanner/FileStreamHandle.html +24 -14
  208. data/doc/TaskJuggler/TextScanner/MacroStackEntry.html +11 -1
  209. data/doc/TaskJuggler/TextScanner/StreamHandle.html +64 -52
  210. data/doc/TaskJuggler/TimeSheet.html +11 -1
  211. data/doc/TaskJuggler/TimeSheetReceiver.html +11 -1
  212. data/doc/TaskJuggler/TimeSheetRecord.html +11 -1
  213. data/doc/TaskJuggler/TimeSheetReport.html +11 -1
  214. data/doc/TaskJuggler/TimeSheetSender.html +11 -1
  215. data/doc/TaskJuggler/TimeSheetSummary.html +11 -1
  216. data/doc/TaskJuggler/TimeSheets.html +11 -1
  217. data/doc/TaskJuggler/Tj3AppBase.html +11 -1
  218. data/doc/TaskJuggler/Tj3Client.html +11 -1
  219. data/doc/TaskJuggler/Tj3Daemon.html +11 -1
  220. data/doc/TaskJuggler/Tj3SheetAppBase.html +11 -1
  221. data/doc/TaskJuggler/Tj3SsReceiver.html +11 -1
  222. data/doc/TaskJuggler/Tj3SsSender.html +11 -1
  223. data/doc/TaskJuggler/Tj3TsReceiver.html +11 -1
  224. data/doc/TaskJuggler/Tj3TsSender.html +11 -1
  225. data/doc/TaskJuggler/Tj3TsSummary.html +11 -1
  226. data/doc/TaskJuggler/TjException.html +11 -1
  227. data/doc/TaskJuggler/TjTime.html +474 -324
  228. data/doc/TaskJuggler/TjpExample.html +11 -1
  229. data/doc/TaskJuggler/TjpExportRE.html +11 -1
  230. data/doc/TaskJuggler/TjpSyntaxRules.html +3731 -3662
  231. data/doc/TaskJuggler/URLParameter.html +11 -1
  232. data/doc/TaskJuggler/UserManual.html +11 -1
  233. data/doc/TaskJuggler/VimSyntax.html +11 -1
  234. data/doc/TaskJuggler/WebServer.html +11 -1
  235. data/doc/TaskJuggler/WorkingHours.html +295 -221
  236. data/doc/TaskJuggler/WorkingHoursAttribute.html +11 -1
  237. data/doc/TaskJuggler/XMLBlob.html +11 -1
  238. data/doc/TaskJuggler/XMLComment.html +11 -1
  239. data/doc/TaskJuggler/XMLDocument.html +11 -1
  240. data/doc/TaskJuggler/XMLElement.html +11 -1
  241. data/doc/TaskJuggler/XMLNamedText.html +11 -1
  242. data/doc/TaskJuggler/XMLText.html +11 -1
  243. data/doc/index.html +694 -624
  244. data/doc/lib/AppConfig_rb.html +1 -1
  245. data/doc/lib/Attributes_rb.html +1 -1
  246. data/doc/lib/Booking_rb.html +1 -1
  247. data/doc/lib/DataCache_rb.html +69 -0
  248. data/doc/lib/KeywordDocumentation_rb.html +1 -1
  249. data/doc/lib/ProjectFileParser_rb.html +1 -1
  250. data/doc/lib/ProjectFileScanner_rb.html +1 -1
  251. data/doc/lib/Project_rb.html +1 -1
  252. data/doc/lib/PropertyList_rb.html +1 -1
  253. data/doc/lib/Query_rb.html +1 -1
  254. data/doc/lib/RealFormat_rb.html +1 -1
  255. data/doc/lib/ResourceScenario_rb.html +1 -1
  256. data/doc/lib/Resource_rb.html +1 -1
  257. data/doc/lib/RichTextParser_rb.html +1 -1
  258. data/doc/lib/RichTextScanner_rb.html +1 -1
  259. data/doc/lib/RichTextSyntaxRules_rb.html +1 -1
  260. data/doc/lib/RichText_rb.html +1 -1
  261. data/doc/lib/Scoreboard_rb.html +1 -1
  262. data/doc/lib/StatusSheetSender_rb.html +1 -1
  263. data/doc/lib/SyntaxReference_rb.html +1 -1
  264. data/doc/lib/TaskJuggler_rb.html +1 -1
  265. data/doc/lib/TaskScenario_rb.html +3 -1
  266. data/doc/lib/TextParser/Pattern_rb.html +3 -1
  267. data/doc/lib/TextParser/Rule_rb.html +3 -1
  268. data/doc/lib/TextParser/StackElement_rb.html +3 -1
  269. data/doc/lib/TextParser/State_rb.html +65 -0
  270. data/doc/lib/TextParser_rb.html +1 -1
  271. data/doc/lib/TextScanner_rb.html +1 -1
  272. data/doc/lib/Tj3Config_rb.html +1 -1
  273. data/doc/lib/TjTime_rb.html +1 -1
  274. data/doc/lib/TjpSyntaxRules_rb.html +1 -1
  275. data/doc/lib/WorkingHours_rb.html +3 -1
  276. data/doc/lib/daemon/ReportServer_rb.html +1 -1
  277. data/doc/lib/reports/CSVFile_rb.html +1 -1
  278. data/doc/lib/reports/CollisionDetector_rb.html +67 -0
  279. data/doc/lib/reports/GanttChart_rb.html +1 -1
  280. data/doc/lib/reports/GanttRouter_rb.html +3 -1
  281. data/doc/lib/reports/Navigator_rb.html +1 -1
  282. data/doc/lib/reports/ReportBase_rb.html +1 -1
  283. data/doc/lib/reports/ReportTableCell_rb.html +1 -1
  284. data/doc/lib/reports/ReportTableColumn_rb.html +1 -1
  285. data/doc/lib/reports/ReportTableLine_rb.html +1 -1
  286. data/doc/lib/reports/ReportTable_rb.html +1 -1
  287. data/doc/lib/reports/Report_rb.html +1 -1
  288. data/doc/lib/reports/TableReport_rb.html +1 -1
  289. data/doc/lib/taskjuggler3_rb.html +1 -1
  290. data/examples/tutorial.tjp +1 -2
  291. data/lib/AppConfig.rb +10 -4
  292. data/lib/Attributes.rb +4 -4
  293. data/lib/DataCache.rb +124 -0
  294. data/lib/KeywordDocumentation.rb +5 -5
  295. data/lib/Project.rb +54 -10
  296. data/lib/ProjectFileParser.rb +10 -9
  297. data/lib/ProjectFileScanner.rb +38 -25
  298. data/lib/PropertyList.rb +6 -4
  299. data/lib/Query.rb +0 -8
  300. data/lib/RealFormat.rb +1 -1
  301. data/lib/Resource.rb +1 -1
  302. data/lib/ResourceScenario.rb +96 -31
  303. data/lib/RichText.rb +17 -5
  304. data/lib/RichTextParser.rb +22 -9
  305. data/lib/RichTextScanner.rb +34 -34
  306. data/lib/RichTextSyntaxRules.rb +41 -36
  307. data/lib/Scoreboard.rb +16 -7
  308. data/lib/StatusSheetSender.rb +63 -0
  309. data/lib/SyntaxReference.rb +9 -10
  310. data/lib/TaskJuggler.rb +28 -4
  311. data/lib/TaskScenario.rb +66 -19
  312. data/lib/TextParser.rb +219 -384
  313. data/lib/TextParser/Pattern.rb +168 -49
  314. data/lib/TextParser/Rule.rb +33 -17
  315. data/lib/TextParser/StackElement.rb +42 -2
  316. data/lib/TextParser/State.rb +175 -0
  317. data/lib/TextScanner.rb +19 -15
  318. data/lib/Tj3Config.rb +1 -1
  319. data/lib/TjTime.rb +111 -3
  320. data/lib/TjpSyntaxRules.rb +122 -66
  321. data/lib/WorkingHours.rb +91 -186
  322. data/lib/daemon/ReportServer.rb +3 -2
  323. data/lib/reports/CSVFile.rb +1 -1
  324. data/lib/reports/CollisionDetector.rb +177 -0
  325. data/lib/reports/GanttChart.rb +25 -41
  326. data/lib/reports/GanttRouter.rb +104 -233
  327. data/lib/reports/Navigator.rb +1 -1
  328. data/lib/reports/Report.rb +9 -33
  329. data/lib/reports/ReportBase.rb +0 -1
  330. data/lib/reports/ReportTable.rb +19 -8
  331. data/lib/reports/ReportTableCell.rb +61 -25
  332. data/lib/reports/ReportTableColumn.rb +2 -2
  333. data/lib/reports/ReportTableLine.rb +4 -2
  334. data/lib/reports/TableReport.rb +1 -0
  335. data/lib/taskjuggler3.rb +0 -1
  336. data/manual/Installation +7 -3
  337. data/manual/Intro +12 -10
  338. data/manual/The_TaskJuggler_Syntax +4 -4
  339. data/test/TestSuite/CSV-Reports/celltext-Reference.csv +14 -14
  340. data/test/TestSuite/CSV-Reports/genrefs +1 -1
  341. data/test/TestSuite/CSV-Reports/resourcereport-Reference.csv +4 -4
  342. data/test/TestSuite/CSV-Reports/resourcereport_with_tasks-Reference.csv +22 -22
  343. data/test/TestSuite/CSV-Reports/sortByTree-Reference.csv +14 -14
  344. data/test/TestSuite/CSV-Reports/sortBy_duration.down-Reference.csv +14 -14
  345. data/test/TestSuite/CSV-Reports/sortBy_effort.up-Reference.csv +14 -14
  346. data/test/TestSuite/CSV-Reports/sortBy_plan.start.down-Reference.csv +14 -14
  347. data/test/TestSuite/CSV-Reports/taskreport-Reference.csv +14 -14
  348. data/test/TestSuite/CSV-Reports/taskreport_with_resources-Reference.csv +32 -24
  349. data/test/TestSuite/CSV-Reports/weekly-Reference.csv +13 -0
  350. data/test/TestSuite/CSV-Reports/weekly.tjp +9 -0
  351. data/test/TestSuite/HTML-Reports/css/tjreport.css +7 -2
  352. data/test/TestSuite/HTML-Reports/depArrows.html +839 -830
  353. data/test/TestSuite/HTML-Reports/depArrows.tjp +12 -12
  354. data/test/TestSuite/HTML-Reports/profile.html +37581 -0
  355. data/test/TestSuite/ReportGenerator/Errors/no_report_defined.tjp +7 -0
  356. data/test/TestSuite/ReportGenerator/Errors/rtp_report_recursion.tjp +1 -1
  357. data/test/TestSuite/StatusSheets/TimeSheets/2002-03-01/missing-reports +2 -0
  358. data/test/TestSuite/StatusSheets/run +2 -0
  359. data/test/TestSuite/Syntax/Correct/Booking.tjp +13 -5
  360. data/test/TestSuite/Syntax/Correct/ResourceRoot.tjp +21 -0
  361. data/test/TestSuite/Syntax/Correct/RollupResource.tjp +21 -0
  362. data/test/TestSuite/Syntax/Correct/TaskRoot.tjp +1 -1
  363. data/test/TestSuite/Syntax/Errors/empty.tjp +1 -1
  364. data/test/TestSuite/Syntax/Errors/include_before_project.tjp +2 -0
  365. data/test/TestSuite/Syntax/Errors/no_reduce.tjp +6 -0
  366. data/test/TestSuite/Syntax/Errors/unsupported_token.tjp +1 -1
  367. data/test/TestSuite/TimeSheets/run +1 -1
  368. data/test/test_CSV-Reports.rb +2 -4
  369. data/test/test_CollisionDetector.rb +85 -0
  370. data/test/test_Project.rb +2 -2
  371. data/test/test_ProjectFileScanner.rb +73 -31
  372. data/test/test_Query.rb +2 -2
  373. data/test/test_ReportGenerator.rb +1 -1
  374. data/test/test_RichText.rb +4 -4
  375. data/test/test_WorkingHours.rb +150 -11
  376. metadata +75 -67
  377. data/test/TestSuite/ReportGenerator/Errors/css/tjreport.css +0 -407
  378. data/test/TestSuite/ReportGenerator/Errors/rtp_report_recursion.html +0 -26
  379. data/test/TestSuite/Scheduler/Correct/Allocate.html +0 -3210
  380. data/test/TestSuite/Scheduler/Correct/Container.html +0 -349
  381. data/test/TestSuite/Scheduler/Correct/Limits.html +0 -4964
  382. data/test/TestSuite/Scheduler/Correct/Shift.html +0 -1719
  383. data/test/TestSuite/Scheduler/Correct/Shift2.html +0 -476
  384. data/test/TestSuite/Scheduler/Correct/css/tjmanual.css +0 -66
  385. data/test/TestSuite/Scheduler/Correct/icons/details.png +0 -0
  386. data/test/TestSuite/Scheduler/Correct/icons/flag-green.png +0 -0
  387. data/test/TestSuite/Scheduler/Correct/icons/flag-red.png +0 -0
  388. data/test/TestSuite/Scheduler/Correct/icons/flag-yellow.png +0 -0
  389. data/test/TestSuite/Scheduler/Correct/icons/resource.png +0 -0
  390. data/test/TestSuite/Scheduler/Correct/icons/resourcegroup.png +0 -0
  391. data/test/TestSuite/Scheduler/Correct/icons/task.png +0 -0
  392. data/test/TestSuite/Scheduler/Correct/icons/taskgroup.png +0 -0
  393. data/test/TestSuite/Scheduler/Correct/icons/trend-down.png +0 -0
  394. data/test/TestSuite/Scheduler/Correct/icons/trend-flat.png +0 -0
  395. data/test/TestSuite/Scheduler/Correct/icons/trend-up.png +0 -0
  396. data/test/TestSuite/Scheduler/Correct/scripts/wz_tooltip.js +0 -1301
  397. data/test/TestSuite/Scheduler/Errors/css/tjmanual.css +0 -66
  398. data/test/TestSuite/Scheduler/Errors/css/tjreport.css +0 -407
  399. data/test/TestSuite/Scheduler/Errors/icons/details.png +0 -0
  400. data/test/TestSuite/Scheduler/Errors/icons/flag-green.png +0 -0
  401. data/test/TestSuite/Scheduler/Errors/icons/flag-red.png +0 -0
  402. data/test/TestSuite/Scheduler/Errors/icons/flag-yellow.png +0 -0
  403. data/test/TestSuite/Scheduler/Errors/icons/resource.png +0 -0
  404. data/test/TestSuite/Scheduler/Errors/icons/resourcegroup.png +0 -0
  405. data/test/TestSuite/Scheduler/Errors/icons/task.png +0 -0
  406. data/test/TestSuite/Scheduler/Errors/icons/taskgroup.png +0 -0
  407. data/test/TestSuite/Scheduler/Errors/icons/trend-down.png +0 -0
  408. data/test/TestSuite/Scheduler/Errors/icons/trend-flat.png +0 -0
  409. data/test/TestSuite/Scheduler/Errors/icons/trend-up.png +0 -0
  410. data/test/TestSuite/Scheduler/Errors/scripts/wz_tooltip.js +0 -1301
  411. data/test/TestSuite/StatusSheets/resrep.tji +0 -7
  412. data/test/TestSuite/StatusSheets/tj3d.log +0 -312
  413. data/test/TestSuite/Syntax/Correct/Managers.html +0 -263
  414. data/test/TestSuite/TimeSheets/acceptable_intervals +0 -1
  415. data/test/TestSuite/TimeSheets/statussheets.log +0 -1
data/doc/README.html CHANGED
@@ -102,12 +102,18 @@
102
102
 
103
103
  <li><a href="./TaskJuggler/ChargeSetListAttribute.html">TaskJuggler::ChargeSetListAttribute</a></li>
104
104
 
105
+ <li><a href="./TaskJuggler/CollisionDetector.html">TaskJuggler::CollisionDetector</a></li>
106
+
105
107
  <li><a href="./TaskJuggler/ColumnListAttribute.html">TaskJuggler::ColumnListAttribute</a></li>
106
108
 
107
109
  <li><a href="./TaskJuggler/ColumnTable.html">TaskJuggler::ColumnTable</a></li>
108
110
 
109
111
  <li><a href="./TaskJuggler/Daemon.html">TaskJuggler::Daemon</a></li>
110
112
 
113
+ <li><a href="./TaskJuggler/DataCache.html">TaskJuggler::DataCache</a></li>
114
+
115
+ <li><a href="./TaskJuggler/DataCacheEntry.html">TaskJuggler::DataCacheEntry</a></li>
116
+
111
117
  <li><a href="./TaskJuggler/DateAttribute.html">TaskJuggler::DateAttribute</a></li>
112
118
 
113
119
  <li><a href="./TaskJuggler/DefinitionListAttribute.html">TaskJuggler::DefinitionListAttribute</a></li>
@@ -214,7 +220,7 @@
214
220
 
215
221
  <li><a href="./TaskJuggler/NodeListAttribute.html">TaskJuggler::NodeListAttribute</a></li>
216
222
 
217
- <li><a href="./TaskJuggler/OnShiftCache.html">TaskJuggler::OnShiftCache</a></li>
223
+ <li><a href="./TaskJuggler/PlaceHolderCell.html">TaskJuggler::PlaceHolderCell</a></li>
218
224
 
219
225
  <li><a href="./TaskJuggler/ProcessIntercom.html">TaskJuggler::ProcessIntercom</a></li>
220
226
 
@@ -394,6 +400,10 @@
394
400
 
395
401
  <li><a href="./TaskJuggler/TextParser/StackElement.html">TaskJuggler::TextParser::StackElement</a></li>
396
402
 
403
+ <li><a href="./TaskJuggler/TextParser/State.html">TaskJuggler::TextParser::State</a></li>
404
+
405
+ <li><a href="./TaskJuggler/TextParser/StateTransition.html">TaskJuggler::TextParser::StateTransition</a></li>
406
+
397
407
  <li><a href="./TaskJuggler/TextParser/TextParserResultArray.html">TaskJuggler::TextParser::TextParserResultArray</a></li>
398
408
 
399
409
  <li><a href="./TaskJuggler/TextParser/TokenDoc.html">TaskJuggler::TextParser::TokenDoc</a></li>
@@ -153,12 +153,18 @@
153
153
 
154
154
  <li><a href="./TaskJuggler/ChargeSetListAttribute.html">TaskJuggler::ChargeSetListAttribute</a></li>
155
155
 
156
+ <li><a href="./TaskJuggler/CollisionDetector.html">TaskJuggler::CollisionDetector</a></li>
157
+
156
158
  <li><a href="./TaskJuggler/ColumnListAttribute.html">TaskJuggler::ColumnListAttribute</a></li>
157
159
 
158
160
  <li><a href="./TaskJuggler/ColumnTable.html">TaskJuggler::ColumnTable</a></li>
159
161
 
160
162
  <li><a href="./TaskJuggler/Daemon.html">TaskJuggler::Daemon</a></li>
161
163
 
164
+ <li><a href="./TaskJuggler/DataCache.html">TaskJuggler::DataCache</a></li>
165
+
166
+ <li><a href="./TaskJuggler/DataCacheEntry.html">TaskJuggler::DataCacheEntry</a></li>
167
+
162
168
  <li><a href="./TaskJuggler/DateAttribute.html">TaskJuggler::DateAttribute</a></li>
163
169
 
164
170
  <li><a href="./TaskJuggler/DefinitionListAttribute.html">TaskJuggler::DefinitionListAttribute</a></li>
@@ -265,7 +271,7 @@
265
271
 
266
272
  <li><a href="./TaskJuggler/NodeListAttribute.html">TaskJuggler::NodeListAttribute</a></li>
267
273
 
268
- <li><a href="./TaskJuggler/OnShiftCache.html">TaskJuggler::OnShiftCache</a></li>
274
+ <li><a href="./TaskJuggler/PlaceHolderCell.html">TaskJuggler::PlaceHolderCell</a></li>
269
275
 
270
276
  <li><a href="./TaskJuggler/ProcessIntercom.html">TaskJuggler::ProcessIntercom</a></li>
271
277
 
@@ -445,6 +451,10 @@
445
451
 
446
452
  <li><a href="./TaskJuggler/TextParser/StackElement.html">TaskJuggler::TextParser::StackElement</a></li>
447
453
 
454
+ <li><a href="./TaskJuggler/TextParser/State.html">TaskJuggler::TextParser::State</a></li>
455
+
456
+ <li><a href="./TaskJuggler/TextParser/StateTransition.html">TaskJuggler::TextParser::StateTransition</a></li>
457
+
448
458
  <li><a href="./TaskJuggler/TextParser/TextParserResultArray.html">TaskJuggler::TextParser::TextParserResultArray</a></li>
449
459
 
450
460
  <li><a href="./TaskJuggler/TextParser/TokenDoc.html">TaskJuggler::TextParser::TokenDoc</a></li>
data/doc/String.html CHANGED
@@ -161,12 +161,18 @@
161
161
 
162
162
  <li><a href="./TaskJuggler/ChargeSetListAttribute.html">TaskJuggler::ChargeSetListAttribute</a></li>
163
163
 
164
+ <li><a href="./TaskJuggler/CollisionDetector.html">TaskJuggler::CollisionDetector</a></li>
165
+
164
166
  <li><a href="./TaskJuggler/ColumnListAttribute.html">TaskJuggler::ColumnListAttribute</a></li>
165
167
 
166
168
  <li><a href="./TaskJuggler/ColumnTable.html">TaskJuggler::ColumnTable</a></li>
167
169
 
168
170
  <li><a href="./TaskJuggler/Daemon.html">TaskJuggler::Daemon</a></li>
169
171
 
172
+ <li><a href="./TaskJuggler/DataCache.html">TaskJuggler::DataCache</a></li>
173
+
174
+ <li><a href="./TaskJuggler/DataCacheEntry.html">TaskJuggler::DataCacheEntry</a></li>
175
+
170
176
  <li><a href="./TaskJuggler/DateAttribute.html">TaskJuggler::DateAttribute</a></li>
171
177
 
172
178
  <li><a href="./TaskJuggler/DefinitionListAttribute.html">TaskJuggler::DefinitionListAttribute</a></li>
@@ -273,7 +279,7 @@
273
279
 
274
280
  <li><a href="./TaskJuggler/NodeListAttribute.html">TaskJuggler::NodeListAttribute</a></li>
275
281
 
276
- <li><a href="./TaskJuggler/OnShiftCache.html">TaskJuggler::OnShiftCache</a></li>
282
+ <li><a href="./TaskJuggler/PlaceHolderCell.html">TaskJuggler::PlaceHolderCell</a></li>
277
283
 
278
284
  <li><a href="./TaskJuggler/ProcessIntercom.html">TaskJuggler::ProcessIntercom</a></li>
279
285
 
@@ -453,6 +459,10 @@
453
459
 
454
460
  <li><a href="./TaskJuggler/TextParser/StackElement.html">TaskJuggler::TextParser::StackElement</a></li>
455
461
 
462
+ <li><a href="./TaskJuggler/TextParser/State.html">TaskJuggler::TextParser::State</a></li>
463
+
464
+ <li><a href="./TaskJuggler/TextParser/StateTransition.html">TaskJuggler::TextParser::StateTransition</a></li>
465
+
456
466
  <li><a href="./TaskJuggler/TextParser/TextParserResultArray.html">TaskJuggler::TextParser::TextParserResultArray</a></li>
457
467
 
458
468
  <li><a href="./TaskJuggler/TextParser/TokenDoc.html">TaskJuggler::TextParser::TokenDoc</a></li>
data/doc/StringIO.html CHANGED
@@ -151,12 +151,18 @@
151
151
 
152
152
  <li><a href="./TaskJuggler/ChargeSetListAttribute.html">TaskJuggler::ChargeSetListAttribute</a></li>
153
153
 
154
+ <li><a href="./TaskJuggler/CollisionDetector.html">TaskJuggler::CollisionDetector</a></li>
155
+
154
156
  <li><a href="./TaskJuggler/ColumnListAttribute.html">TaskJuggler::ColumnListAttribute</a></li>
155
157
 
156
158
  <li><a href="./TaskJuggler/ColumnTable.html">TaskJuggler::ColumnTable</a></li>
157
159
 
158
160
  <li><a href="./TaskJuggler/Daemon.html">TaskJuggler::Daemon</a></li>
159
161
 
162
+ <li><a href="./TaskJuggler/DataCache.html">TaskJuggler::DataCache</a></li>
163
+
164
+ <li><a href="./TaskJuggler/DataCacheEntry.html">TaskJuggler::DataCacheEntry</a></li>
165
+
160
166
  <li><a href="./TaskJuggler/DateAttribute.html">TaskJuggler::DateAttribute</a></li>
161
167
 
162
168
  <li><a href="./TaskJuggler/DefinitionListAttribute.html">TaskJuggler::DefinitionListAttribute</a></li>
@@ -263,7 +269,7 @@
263
269
 
264
270
  <li><a href="./TaskJuggler/NodeListAttribute.html">TaskJuggler::NodeListAttribute</a></li>
265
271
 
266
- <li><a href="./TaskJuggler/OnShiftCache.html">TaskJuggler::OnShiftCache</a></li>
272
+ <li><a href="./TaskJuggler/PlaceHolderCell.html">TaskJuggler::PlaceHolderCell</a></li>
267
273
 
268
274
  <li><a href="./TaskJuggler/ProcessIntercom.html">TaskJuggler::ProcessIntercom</a></li>
269
275
 
@@ -443,6 +449,10 @@
443
449
 
444
450
  <li><a href="./TaskJuggler/TextParser/StackElement.html">TaskJuggler::TextParser::StackElement</a></li>
445
451
 
452
+ <li><a href="./TaskJuggler/TextParser/State.html">TaskJuggler::TextParser::State</a></li>
453
+
454
+ <li><a href="./TaskJuggler/TextParser/StateTransition.html">TaskJuggler::TextParser::StateTransition</a></li>
455
+
446
456
  <li><a href="./TaskJuggler/TextParser/TextParserResultArray.html">TaskJuggler::TextParser::TextParserResultArray</a></li>
447
457
 
448
458
  <li><a href="./TaskJuggler/TextParser/TokenDoc.html">TaskJuggler::TextParser::TokenDoc</a></li>
data/doc/TaskJuggler.html CHANGED
@@ -137,6 +137,9 @@
137
137
  <li><a href="./lib/reports/GanttTaskBar_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
138
138
  class="thickbox" title="lib/reports/GanttTaskBar.rb">lib/reports/GanttTaskBar.rb</a></li>
139
139
 
140
+ <li><a href="./lib/reports/CollisionDetector_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
141
+ class="thickbox" title="lib/reports/CollisionDetector.rb">lib/reports/CollisionDetector.rb</a></li>
142
+
140
143
  <li><a href="./lib/reports/ResourceListRE_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
141
144
  class="thickbox" title="lib/reports/ResourceListRE.rb">lib/reports/ResourceListRE.rb</a></li>
142
145
 
@@ -212,6 +215,9 @@
212
215
  <li><a href="./lib/RealFormat_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
213
216
  class="thickbox" title="lib/RealFormat.rb">lib/RealFormat.rb</a></li>
214
217
 
218
+ <li><a href="./lib/DataCache_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
219
+ class="thickbox" title="lib/DataCache.rb">lib/DataCache.rb</a></li>
220
+
215
221
  <li><a href="./lib/TaskScenario_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
216
222
  class="thickbox" title="lib/TaskScenario.rb">lib/TaskScenario.rb</a></li>
217
223
 
@@ -502,12 +508,18 @@
502
508
 
503
509
  <li><span class="type">CLASS</span> <a href="TaskJuggler/ChargeSetListAttribute.html">TaskJuggler::ChargeSetListAttribute</a></li>
504
510
 
511
+ <li><span class="type">CLASS</span> <a href="TaskJuggler/CollisionDetector.html">TaskJuggler::CollisionDetector</a></li>
512
+
505
513
  <li><span class="type">CLASS</span> <a href="TaskJuggler/ColumnListAttribute.html">TaskJuggler::ColumnListAttribute</a></li>
506
514
 
507
515
  <li><span class="type">CLASS</span> <a href="TaskJuggler/ColumnTable.html">TaskJuggler::ColumnTable</a></li>
508
516
 
509
517
  <li><span class="type">CLASS</span> <a href="TaskJuggler/Daemon.html">TaskJuggler::Daemon</a></li>
510
518
 
519
+ <li><span class="type">CLASS</span> <a href="TaskJuggler/DataCache.html">TaskJuggler::DataCache</a></li>
520
+
521
+ <li><span class="type">CLASS</span> <a href="TaskJuggler/DataCacheEntry.html">TaskJuggler::DataCacheEntry</a></li>
522
+
511
523
  <li><span class="type">CLASS</span> <a href="TaskJuggler/DateAttribute.html">TaskJuggler::DateAttribute</a></li>
512
524
 
513
525
  <li><span class="type">CLASS</span> <a href="TaskJuggler/DefinitionListAttribute.html">TaskJuggler::DefinitionListAttribute</a></li>
@@ -610,7 +622,7 @@
610
622
 
611
623
  <li><span class="type">CLASS</span> <a href="TaskJuggler/NodeListAttribute.html">TaskJuggler::NodeListAttribute</a></li>
612
624
 
613
- <li><span class="type">CLASS</span> <a href="TaskJuggler/OnShiftCache.html">TaskJuggler::OnShiftCache</a></li>
625
+ <li><span class="type">CLASS</span> <a href="TaskJuggler/PlaceHolderCell.html">TaskJuggler::PlaceHolderCell</a></li>
614
626
 
615
627
  <li><span class="type">CLASS</span> <a href="TaskJuggler/Project.html">TaskJuggler::Project</a></li>
616
628
 
@@ -958,12 +970,18 @@
958
970
 
959
971
  <li><a href="./TaskJuggler/ChargeSetListAttribute.html">TaskJuggler::ChargeSetListAttribute</a></li>
960
972
 
973
+ <li><a href="./TaskJuggler/CollisionDetector.html">TaskJuggler::CollisionDetector</a></li>
974
+
961
975
  <li><a href="./TaskJuggler/ColumnListAttribute.html">TaskJuggler::ColumnListAttribute</a></li>
962
976
 
963
977
  <li><a href="./TaskJuggler/ColumnTable.html">TaskJuggler::ColumnTable</a></li>
964
978
 
965
979
  <li><a href="./TaskJuggler/Daemon.html">TaskJuggler::Daemon</a></li>
966
980
 
981
+ <li><a href="./TaskJuggler/DataCache.html">TaskJuggler::DataCache</a></li>
982
+
983
+ <li><a href="./TaskJuggler/DataCacheEntry.html">TaskJuggler::DataCacheEntry</a></li>
984
+
967
985
  <li><a href="./TaskJuggler/DateAttribute.html">TaskJuggler::DateAttribute</a></li>
968
986
 
969
987
  <li><a href="./TaskJuggler/DefinitionListAttribute.html">TaskJuggler::DefinitionListAttribute</a></li>
@@ -1070,7 +1088,7 @@
1070
1088
 
1071
1089
  <li><a href="./TaskJuggler/NodeListAttribute.html">TaskJuggler::NodeListAttribute</a></li>
1072
1090
 
1073
- <li><a href="./TaskJuggler/OnShiftCache.html">TaskJuggler::OnShiftCache</a></li>
1091
+ <li><a href="./TaskJuggler/PlaceHolderCell.html">TaskJuggler::PlaceHolderCell</a></li>
1074
1092
 
1075
1093
  <li><a href="./TaskJuggler/ProcessIntercom.html">TaskJuggler::ProcessIntercom</a></li>
1076
1094
 
@@ -1250,6 +1268,10 @@
1250
1268
 
1251
1269
  <li><a href="./TaskJuggler/TextParser/StackElement.html">TaskJuggler::TextParser::StackElement</a></li>
1252
1270
 
1271
+ <li><a href="./TaskJuggler/TextParser/State.html">TaskJuggler::TextParser::State</a></li>
1272
+
1273
+ <li><a href="./TaskJuggler/TextParser/StateTransition.html">TaskJuggler::TextParser::StateTransition</a></li>
1274
+
1253
1275
  <li><a href="./TaskJuggler/TextParser/TextParserResultArray.html">TaskJuggler::TextParser::TextParserResultArray</a></li>
1254
1276
 
1255
1277
  <li><a href="./TaskJuggler/TextParser/TokenDoc.html">TaskJuggler::TextParser::TokenDoc</a></li>
@@ -1398,19 +1420,6 @@ by the Free Software Foundation.
1398
1420
  <hr style="height: 1px"></hr><p>
1399
1421
  encoding: UTF-8
1400
1422
  </p>
1401
- <h1>GanttRouter.rb &#8212; The <a href="TaskJuggler.html">TaskJuggler</a> III <a href="TaskJuggler/Project.html">Project</a> Management Software</h1>
1402
- <p>
1403
- Copyright &#169; 2006, 2007, 2008, 2009, 2010 by Chris Schlaeger
1404
- <cs@kde.org>
1405
- </p>
1406
- <p>
1407
- This program is free software; you can redistribute it and/or modify it
1408
- under the terms of version 2 of the GNU General Public License as published
1409
- by the Free Software Foundation.
1410
- </p>
1411
- <hr style="height: 1px"></hr><p>
1412
- encoding: UTF-8
1413
- </p>
1414
1423
  <h1>ReportBase.rb &#8212; The <a href="TaskJuggler.html">TaskJuggler</a> III <a href="TaskJuggler/Project.html">Project</a> Management Software</h1>
1415
1424
  <p>
1416
1425
  Copyright &#169; 2006, 2007, 2008, 2009, 2010 by Chris Schlaeger
@@ -1809,14 +1818,14 @@ be written to $stderr.
1809
1818
  <div class="method-source-code"
1810
1819
  id="new-source">
1811
1820
  <pre>
1812
- <span class="ruby-comment cmt"># File lib/TaskJuggler.rb, line 28</span>
1813
- 28: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">console</span>)
1814
- 29: <span class="ruby-ivar">@project</span> = <span class="ruby-keyword kw">nil</span>
1815
- 30: <span class="ruby-ivar">@parser</span> = <span class="ruby-keyword kw">nil</span>
1816
- 31: <span class="ruby-ivar">@messageHandler</span> = <span class="ruby-constant">MessageHandler</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">console</span>)
1817
- 32: <span class="ruby-ivar">@maxCpuCores</span> = <span class="ruby-value">1</span>
1818
- 33: <span class="ruby-ivar">@warnTsDeltas</span> = <span class="ruby-keyword kw">false</span>
1819
- 34: <span class="ruby-keyword kw">end</span></pre>
1821
+ <span class="ruby-comment cmt"># File lib/TaskJuggler.rb, line 30</span>
1822
+ 30: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">console</span>)
1823
+ 31: <span class="ruby-ivar">@project</span> = <span class="ruby-keyword kw">nil</span>
1824
+ 32: <span class="ruby-ivar">@parser</span> = <span class="ruby-keyword kw">nil</span>
1825
+ 33: <span class="ruby-ivar">@messageHandler</span> = <span class="ruby-constant">MessageHandler</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">console</span>)
1826
+ 34: <span class="ruby-ivar">@maxCpuCores</span> = <span class="ruby-value">1</span>
1827
+ 35: <span class="ruby-ivar">@warnTsDeltas</span> = <span class="ruby-keyword kw">false</span>
1828
+ 36: <span class="ruby-keyword kw">end</span></pre>
1820
1829
  </div>
1821
1830
 
1822
1831
  </div>
@@ -1857,32 +1866,32 @@ project, true is returned. Otherwise false.
1857
1866
  <div class="method-source-code"
1858
1867
  id="check-tatus-heet-source">
1859
1868
  <pre>
1860
- <span class="ruby-comment cmt"># File lib/TaskJuggler.rb, line 215</span>
1861
- 215: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">checkStatusSheet</span>(<span class="ruby-identifier">fileName</span>)
1862
- 216: <span class="ruby-keyword kw">begin</span>
1863
- 217: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">enter</span>(<span class="ruby-value str">'checkStatusSheet'</span>, <span class="ruby-value str">'Parsing #{fileName} ...'</span>)
1864
- 218: <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">ss</span> = <span class="ruby-identifier">parseFile</span>(<span class="ruby-identifier">fileName</span>, <span class="ruby-value str">'statusSheetFile'</span>))
1865
- 219: <span class="ruby-identifier">queryAttrs</span> = { <span class="ruby-value str">'project'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@project</span>,
1866
- 220: <span class="ruby-value str">'property'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">ss</span>[<span class="ruby-value">0</span>],
1867
- 221: <span class="ruby-value str">'scopeProperty'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">nil</span>,
1868
- 222: <span class="ruby-value str">'scenarioIdx'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'trackingScenarioIdx'</span>],
1869
- 223: <span class="ruby-value str">'timeFormat'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'%Y-%m-%d'</span>,
1870
- 224: <span class="ruby-value str">'start'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">ss</span>[<span class="ruby-value">1</span>],
1871
- 225: <span class="ruby-value str">'end'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">ss</span>[<span class="ruby-value">2</span>],
1872
- 226: <span class="ruby-value str">'timeFormat'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'%Y-%m-%d'</span>,
1873
- 227: <span class="ruby-value str">'selfContained'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">true</span> }
1874
- 228: <span class="ruby-identifier">query</span> = <span class="ruby-constant">Query</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">queryAttrs</span>)
1875
- 229: <span class="ruby-identifier">puts</span> <span class="ruby-identifier">ss</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">query_dashboard</span>(<span class="ruby-identifier">query</span>).<span class="ruby-identifier">richText</span>.<span class="ruby-identifier">inputText</span>
1876
- 230: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">TjException</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">msg</span>
1877
- 231: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">msg</span>.<span class="ruby-identifier">message</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">msg</span>.<span class="ruby-identifier">message</span>.<span class="ruby-identifier">empty?</span>
1878
- 232: <span class="ruby-ivar">@messageHandler</span>.<span class="ruby-identifier">critical</span>(<span class="ruby-value str">'check_status_sheet'</span>, <span class="ruby-identifier">msg</span>.<span class="ruby-identifier">message</span>)
1879
- 233: <span class="ruby-keyword kw">end</span>
1880
- 234: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">exit</span>(<span class="ruby-value str">'checkStatusSheet'</span>)
1881
- 235: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
1882
- 236: <span class="ruby-keyword kw">end</span>
1883
- 237: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">exit</span>(<span class="ruby-value str">'checkStatusSheet'</span>)
1884
- 238: <span class="ruby-keyword kw">true</span>
1885
- 239: <span class="ruby-keyword kw">end</span></pre>
1869
+ <span class="ruby-comment cmt"># File lib/TaskJuggler.rb, line 239</span>
1870
+ 239: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">checkStatusSheet</span>(<span class="ruby-identifier">fileName</span>)
1871
+ 240: <span class="ruby-keyword kw">begin</span>
1872
+ 241: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">enter</span>(<span class="ruby-value str">'checkStatusSheet'</span>, <span class="ruby-value str">'Parsing #{fileName} ...'</span>)
1873
+ 242: <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">ss</span> = <span class="ruby-identifier">parseFile</span>(<span class="ruby-identifier">fileName</span>, <span class="ruby-value">:statusSheetFile</span>))
1874
+ 243: <span class="ruby-identifier">queryAttrs</span> = { <span class="ruby-value str">'project'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@project</span>,
1875
+ 244: <span class="ruby-value str">'property'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">ss</span>[<span class="ruby-value">0</span>],
1876
+ 245: <span class="ruby-value str">'scopeProperty'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">nil</span>,
1877
+ 246: <span class="ruby-value str">'scenarioIdx'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'trackingScenarioIdx'</span>],
1878
+ 247: <span class="ruby-value str">'timeFormat'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'%Y-%m-%d'</span>,
1879
+ 248: <span class="ruby-value str">'start'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">ss</span>[<span class="ruby-value">1</span>],
1880
+ 249: <span class="ruby-value str">'end'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">ss</span>[<span class="ruby-value">2</span>],
1881
+ 250: <span class="ruby-value str">'timeFormat'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'%Y-%m-%d'</span>,
1882
+ 251: <span class="ruby-value str">'selfContained'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">true</span> }
1883
+ 252: <span class="ruby-identifier">query</span> = <span class="ruby-constant">Query</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">queryAttrs</span>)
1884
+ 253: <span class="ruby-identifier">puts</span> <span class="ruby-identifier">ss</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">query_dashboard</span>(<span class="ruby-identifier">query</span>).<span class="ruby-identifier">richText</span>.<span class="ruby-identifier">inputText</span>
1885
+ 254: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">TjException</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">msg</span>
1886
+ 255: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">msg</span>.<span class="ruby-identifier">message</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">msg</span>.<span class="ruby-identifier">message</span>.<span class="ruby-identifier">empty?</span>
1887
+ 256: <span class="ruby-ivar">@messageHandler</span>.<span class="ruby-identifier">critical</span>(<span class="ruby-value str">'check_status_sheet'</span>, <span class="ruby-identifier">msg</span>.<span class="ruby-identifier">message</span>)
1888
+ 257: <span class="ruby-keyword kw">end</span>
1889
+ 258: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">exit</span>(<span class="ruby-value str">'checkStatusSheet'</span>)
1890
+ 259: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
1891
+ 260: <span class="ruby-keyword kw">end</span>
1892
+ 261: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">exit</span>(<span class="ruby-value str">'checkStatusSheet'</span>)
1893
+ 262: <span class="ruby-keyword kw">true</span>
1894
+ 263: <span class="ruby-keyword kw">end</span></pre>
1886
1895
  </div>
1887
1896
 
1888
1897
  </div>
@@ -1917,35 +1926,35 @@ project, true is returned. Otherwise false.
1917
1926
  <div class="method-source-code"
1918
1927
  id="check-ime-heet-source">
1919
1928
  <pre>
1920
- <span class="ruby-comment cmt"># File lib/TaskJuggler.rb, line 183</span>
1921
- 183: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">checkTimeSheet</span>(<span class="ruby-identifier">fileName</span>)
1922
- 184: <span class="ruby-keyword kw">begin</span>
1923
- 185: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">enter</span>(<span class="ruby-value str">'checkTimeSheet'</span>, <span class="ruby-value str">'Parsing #{fileName} ...'</span>)
1924
- 186: <span class="ruby-comment cmt"># Make sure we don't use data from old time sheets or Journal entries.</span>
1925
- 187: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">timeSheets</span>.<span class="ruby-identifier">clear</span>
1926
- 188: <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'journal'</span>] = <span class="ruby-constant">Journal</span>.<span class="ruby-identifier">new</span>
1927
- 189: <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">ts</span> = <span class="ruby-identifier">parseFile</span>(<span class="ruby-identifier">fileName</span>, <span class="ruby-value str">'timeSheetFile'</span>))
1928
- 190: <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">@project</span>.<span class="ruby-identifier">checkTimeSheets</span>
1929
- 191: <span class="ruby-identifier">queryAttrs</span> = { <span class="ruby-value str">'project'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@project</span>,
1930
- 192: <span class="ruby-value str">'property'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">ts</span>.<span class="ruby-identifier">resource</span>,
1931
- 193: <span class="ruby-value str">'scopeProperty'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">nil</span>,
1932
- 194: <span class="ruby-value str">'scenarioIdx'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'trackingScenarioIdx'</span>],
1933
- 195: <span class="ruby-value str">'start'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">ts</span>.<span class="ruby-identifier">interval</span>.<span class="ruby-identifier">start</span>,
1934
- 196: <span class="ruby-value str">'end'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">ts</span>.<span class="ruby-identifier">interval</span>.<span class="ruby-identifier">end</span>,
1935
- 197: <span class="ruby-value str">'timeFormat'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'%Y-%m-%d'</span>,
1936
- 198: <span class="ruby-value str">'selfContained'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">true</span> }
1937
- 199: <span class="ruby-identifier">query</span> = <span class="ruby-constant">Query</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">queryAttrs</span>)
1938
- 200: <span class="ruby-identifier">puts</span> <span class="ruby-identifier">ts</span>.<span class="ruby-identifier">resource</span>.<span class="ruby-identifier">query_journal</span>(<span class="ruby-identifier">query</span>).<span class="ruby-identifier">richText</span>.<span class="ruby-identifier">inputText</span>
1939
- 201: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">TjException</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">msg</span>
1940
- 202: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">msg</span>.<span class="ruby-identifier">message</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">msg</span>.<span class="ruby-identifier">message</span>.<span class="ruby-identifier">empty?</span>
1941
- 203: <span class="ruby-ivar">@messageHandler</span>.<span class="ruby-identifier">critical</span>(<span class="ruby-value str">'check_time_sheet'</span>, <span class="ruby-identifier">msg</span>.<span class="ruby-identifier">message</span>)
1942
- 204: <span class="ruby-keyword kw">end</span>
1943
- 205: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">exit</span>(<span class="ruby-value str">'checkTimeSheet'</span>)
1944
- 206: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
1945
- 207: <span class="ruby-keyword kw">end</span>
1946
- 208: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">exit</span>(<span class="ruby-value str">'checkTimeSheet'</span>)
1947
- 209: <span class="ruby-keyword kw">true</span>
1948
- 210: <span class="ruby-keyword kw">end</span></pre>
1929
+ <span class="ruby-comment cmt"># File lib/TaskJuggler.rb, line 207</span>
1930
+ 207: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">checkTimeSheet</span>(<span class="ruby-identifier">fileName</span>)
1931
+ 208: <span class="ruby-keyword kw">begin</span>
1932
+ 209: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">enter</span>(<span class="ruby-value str">'checkTimeSheet'</span>, <span class="ruby-value str">'Parsing #{fileName} ...'</span>)
1933
+ 210: <span class="ruby-comment cmt"># Make sure we don't use data from old time sheets or Journal entries.</span>
1934
+ 211: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">timeSheets</span>.<span class="ruby-identifier">clear</span>
1935
+ 212: <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'journal'</span>] = <span class="ruby-constant">Journal</span>.<span class="ruby-identifier">new</span>
1936
+ 213: <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">ts</span> = <span class="ruby-identifier">parseFile</span>(<span class="ruby-identifier">fileName</span>, <span class="ruby-value">:timeSheetFile</span>))
1937
+ 214: <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">@project</span>.<span class="ruby-identifier">checkTimeSheets</span>
1938
+ 215: <span class="ruby-identifier">queryAttrs</span> = { <span class="ruby-value str">'project'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@project</span>,
1939
+ 216: <span class="ruby-value str">'property'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">ts</span>.<span class="ruby-identifier">resource</span>,
1940
+ 217: <span class="ruby-value str">'scopeProperty'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">nil</span>,
1941
+ 218: <span class="ruby-value str">'scenarioIdx'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'trackingScenarioIdx'</span>],
1942
+ 219: <span class="ruby-value str">'start'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">ts</span>.<span class="ruby-identifier">interval</span>.<span class="ruby-identifier">start</span>,
1943
+ 220: <span class="ruby-value str">'end'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">ts</span>.<span class="ruby-identifier">interval</span>.<span class="ruby-identifier">end</span>,
1944
+ 221: <span class="ruby-value str">'timeFormat'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'%Y-%m-%d'</span>,
1945
+ 222: <span class="ruby-value str">'selfContained'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">true</span> }
1946
+ 223: <span class="ruby-identifier">query</span> = <span class="ruby-constant">Query</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">queryAttrs</span>)
1947
+ 224: <span class="ruby-identifier">puts</span> <span class="ruby-identifier">ts</span>.<span class="ruby-identifier">resource</span>.<span class="ruby-identifier">query_journal</span>(<span class="ruby-identifier">query</span>).<span class="ruby-identifier">richText</span>.<span class="ruby-identifier">inputText</span>
1948
+ 225: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">TjException</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">msg</span>
1949
+ 226: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">msg</span>.<span class="ruby-identifier">message</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">msg</span>.<span class="ruby-identifier">message</span>.<span class="ruby-identifier">empty?</span>
1950
+ 227: <span class="ruby-ivar">@messageHandler</span>.<span class="ruby-identifier">critical</span>(<span class="ruby-value str">'check_time_sheet'</span>, <span class="ruby-identifier">msg</span>.<span class="ruby-identifier">message</span>)
1951
+ 228: <span class="ruby-keyword kw">end</span>
1952
+ 229: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">exit</span>(<span class="ruby-value str">'checkTimeSheet'</span>)
1953
+ 230: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
1954
+ 231: <span class="ruby-keyword kw">end</span>
1955
+ 232: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">exit</span>(<span class="ruby-value str">'checkTimeSheet'</span>)
1956
+ 233: <span class="ruby-keyword kw">true</span>
1957
+ 234: <span class="ruby-keyword kw">end</span></pre>
1949
1958
  </div>
1950
1959
 
1951
1960
  </div>
@@ -1978,10 +1987,10 @@ Return the number of errors that had been reported during processing.
1978
1987
  <div class="method-source-code"
1979
1988
  id="errors-source">
1980
1989
  <pre>
1981
- <span class="ruby-comment cmt"># File lib/TaskJuggler.rb, line 254</span>
1982
- 254: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">errors</span>
1983
- 255: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">messageHandler</span>.<span class="ruby-identifier">errors</span>
1984
- 256: <span class="ruby-keyword kw">end</span></pre>
1990
+ <span class="ruby-comment cmt"># File lib/TaskJuggler.rb, line 278</span>
1991
+ 278: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">errors</span>
1992
+ 279: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">messageHandler</span>.<span class="ruby-identifier">errors</span>
1993
+ 280: <span class="ruby-keyword kw">end</span></pre>
1985
1994
  </div>
1986
1995
 
1987
1996
  </div>
@@ -2019,21 +2028,21 @@ format and may be nil if no additional attributes are provided.
2019
2028
  <div class="method-source-code"
2020
2029
  id="generate-eport-source">
2021
2030
  <pre>
2022
- <span class="ruby-comment cmt"># File lib/TaskJuggler.rb, line 148</span>
2023
- 148: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateReport</span>(<span class="ruby-identifier">reportId</span>, <span class="ruby-identifier">regExpMode</span>, <span class="ruby-identifier">dynamicAttributes</span> = <span class="ruby-keyword kw">nil</span>)
2024
- 149: <span class="ruby-keyword kw">begin</span>
2025
- 150: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">enter</span>(<span class="ruby-value str">'generateReport'</span>, <span class="ruby-value str">'Generating report #{reportId} ...'</span>)
2026
- 151: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">generateReport</span>(<span class="ruby-identifier">reportId</span>, <span class="ruby-identifier">regExpMode</span>, <span class="ruby-identifier">dynamicAttributes</span>)
2027
- 152: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">TjException</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">msg</span>
2028
- 153: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">msg</span>.<span class="ruby-identifier">message</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">msg</span>.<span class="ruby-identifier">message</span>.<span class="ruby-identifier">empty?</span>
2029
- 154: <span class="ruby-ivar">@messageHandler</span>.<span class="ruby-identifier">critical</span>(<span class="ruby-value str">'generate_report'</span>, <span class="ruby-identifier">msg</span>.<span class="ruby-identifier">message</span>)
2030
- 155: <span class="ruby-keyword kw">end</span>
2031
- 156: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">exit</span>(<span class="ruby-value str">'generateReport'</span>)
2032
- 157: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
2033
- 158: <span class="ruby-keyword kw">end</span>
2034
- 159: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">exit</span>(<span class="ruby-value str">'generateReport'</span>)
2035
- 160: <span class="ruby-keyword kw">true</span>
2036
- 161: <span class="ruby-keyword kw">end</span></pre>
2031
+ <span class="ruby-comment cmt"># File lib/TaskJuggler.rb, line 172</span>
2032
+ 172: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateReport</span>(<span class="ruby-identifier">reportId</span>, <span class="ruby-identifier">regExpMode</span>, <span class="ruby-identifier">dynamicAttributes</span> = <span class="ruby-keyword kw">nil</span>)
2033
+ 173: <span class="ruby-keyword kw">begin</span>
2034
+ 174: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">enter</span>(<span class="ruby-value str">'generateReport'</span>, <span class="ruby-value str">'Generating report #{reportId} ...'</span>)
2035
+ 175: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">generateReport</span>(<span class="ruby-identifier">reportId</span>, <span class="ruby-identifier">regExpMode</span>, <span class="ruby-identifier">dynamicAttributes</span>)
2036
+ 176: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">TjException</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">msg</span>
2037
+ 177: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">msg</span>.<span class="ruby-identifier">message</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">msg</span>.<span class="ruby-identifier">message</span>.<span class="ruby-identifier">empty?</span>
2038
+ 178: <span class="ruby-ivar">@messageHandler</span>.<span class="ruby-identifier">critical</span>(<span class="ruby-value str">'generate_report'</span>, <span class="ruby-identifier">msg</span>.<span class="ruby-identifier">message</span>)
2039
+ 179: <span class="ruby-keyword kw">end</span>
2040
+ 180: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">exit</span>(<span class="ruby-value str">'generateReport'</span>)
2041
+ 181: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
2042
+ 182: <span class="ruby-keyword kw">end</span>
2043
+ 183: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">exit</span>(<span class="ruby-value str">'generateReport'</span>)
2044
+ 184: <span class="ruby-keyword kw">true</span>
2045
+ 185: <span class="ruby-keyword kw">end</span></pre>
2037
2046
  </div>
2038
2047
 
2039
2048
  </div>
@@ -2068,24 +2077,35 @@ otherwise.
2068
2077
  <div class="method-source-code"
2069
2078
  id="generate-eports-source">
2070
2079
  <pre>
2071
- <span class="ruby-comment cmt"># File lib/TaskJuggler.rb, line 125</span>
2072
- 125: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateReports</span>(<span class="ruby-identifier">outputDir</span> = <span class="ruby-value str">'./'</span>)
2073
- 126: <span class="ruby-identifier">outputDir</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">'/'</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">outputDir</span>.<span class="ruby-identifier">empty?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">outputDir</span>[<span class="ruby-value">1</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">'/'</span>
2074
- 127: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">outputDir</span> = <span class="ruby-identifier">outputDir</span>
2075
- 128: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">enter</span>(<span class="ruby-value str">'reports'</span>, <span class="ruby-value str">'Generating reports ...'</span>)
2076
- 129:
2077
- 130: <span class="ruby-keyword kw">begin</span>
2078
- 131: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">generateReports</span>(<span class="ruby-ivar">@maxCpuCores</span>)
2079
- 132: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">TjException</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">msg</span>
2080
- 133: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">msg</span>.<span class="ruby-identifier">message</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">msg</span>.<span class="ruby-identifier">message</span>.<span class="ruby-identifier">empty?</span>
2081
- 134: <span class="ruby-ivar">@messageHandler</span>.<span class="ruby-identifier">critical</span>(<span class="ruby-value str">'generate_reports'</span>, <span class="ruby-identifier">msg</span>.<span class="ruby-identifier">message</span>)
2082
- 135: <span class="ruby-keyword kw">end</span>
2083
- 136: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
2084
- 137: <span class="ruby-keyword kw">end</span>
2085
- 138:
2086
- 139: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">exit</span>(<span class="ruby-value str">'reports'</span>)
2087
- 140: <span class="ruby-keyword kw">true</span>
2088
- 141: <span class="ruby-keyword kw">end</span></pre>
2080
+ <span class="ruby-comment cmt"># File lib/TaskJuggler.rb, line 138</span>
2081
+ 138: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateReports</span>(<span class="ruby-identifier">outputDir</span> = <span class="ruby-value str">'./'</span>)
2082
+ 139: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">checkReports</span>
2083
+ 140: <span class="ruby-identifier">outputDir</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">'/'</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">outputDir</span>.<span class="ruby-identifier">empty?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">outputDir</span>[<span class="ruby-value">1</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">'/'</span>
2084
+ 141: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">outputDir</span> = <span class="ruby-identifier">outputDir</span>
2085
+ 142: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">enter</span>(<span class="ruby-value str">'reports'</span>, <span class="ruby-value str">'Generating reports ...'</span>)
2086
+ 143:
2087
+ 144: <span class="ruby-keyword kw">begin</span>
2088
+ 145: <span class="ruby-comment cmt">#RubyProf.start</span>
2089
+ 146: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">generateReports</span>(<span class="ruby-ivar">@maxCpuCores</span>)
2090
+ 147: <span class="ruby-comment cmt">#profile = RubyProf.stop</span>
2091
+ 148: <span class="ruby-comment cmt">#printer = RubyProf::GraphHtmlPrinter.new(profile)</span>
2092
+ 149: <span class="ruby-comment cmt">#File.open(&quot;profile.html&quot;, &quot;w&quot;) do |file|</span>
2093
+ 150: <span class="ruby-comment cmt"># printer.print(file)</span>
2094
+ 151: <span class="ruby-comment cmt">#end</span>
2095
+ 152: <span class="ruby-comment cmt">#printer = RubyProf::CallTreePrinter.new(profile)</span>
2096
+ 153: <span class="ruby-comment cmt">#File.open(&quot;profile.clt&quot;, &quot;w&quot;) do |file|</span>
2097
+ 154: <span class="ruby-comment cmt"># printer.print(file)</span>
2098
+ 155: <span class="ruby-comment cmt">#end</span>
2099
+ 156: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">TjException</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">msg</span>
2100
+ 157: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">msg</span>.<span class="ruby-identifier">message</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">msg</span>.<span class="ruby-identifier">message</span>.<span class="ruby-identifier">empty?</span>
2101
+ 158: <span class="ruby-ivar">@messageHandler</span>.<span class="ruby-identifier">critical</span>(<span class="ruby-value str">'generate_reports'</span>, <span class="ruby-identifier">msg</span>.<span class="ruby-identifier">message</span>)
2102
+ 159: <span class="ruby-keyword kw">end</span>
2103
+ 160: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
2104
+ 161: <span class="ruby-keyword kw">end</span>
2105
+ 162:
2106
+ 163: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">exit</span>(<span class="ruby-value str">'reports'</span>)
2107
+ 164: <span class="ruby-keyword kw">true</span>
2108
+ 165: <span class="ruby-keyword kw">end</span></pre>
2089
2109
  </div>
2090
2110
 
2091
2111
  </div>
@@ -2120,21 +2140,21 @@ List the details of the report with <em>reportId</em> or if
2120
2140
  <div class="method-source-code"
2121
2141
  id="list-eports-source">
2122
2142
  <pre>
2123
- <span class="ruby-comment cmt"># File lib/TaskJuggler.rb, line 165</span>
2124
- 165: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">listReports</span>(<span class="ruby-identifier">reportId</span>, <span class="ruby-identifier">regExpMode</span>)
2125
- 166: <span class="ruby-keyword kw">begin</span>
2126
- 167: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">enter</span>(<span class="ruby-value str">'listReports'</span>, <span class="ruby-value str">'Generating report list for #{reportId} ...'</span>)
2127
- 168: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">listReports</span>(<span class="ruby-identifier">reportId</span>, <span class="ruby-identifier">regExpMode</span>)
2128
- 169: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">TjException</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">msg</span>
2129
- 170: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">msg</span>.<span class="ruby-identifier">message</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">msg</span>.<span class="ruby-identifier">message</span>.<span class="ruby-identifier">empty?</span>
2130
- 171: <span class="ruby-ivar">@messageHandler</span>.<span class="ruby-identifier">critical</span>(<span class="ruby-value str">'list_reports'</span>, <span class="ruby-identifier">msg</span>.<span class="ruby-identifier">message</span>)
2131
- 172: <span class="ruby-keyword kw">end</span>
2132
- 173: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">exit</span>(<span class="ruby-value str">'listReports'</span>)
2133
- 174: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
2134
- 175: <span class="ruby-keyword kw">end</span>
2135
- 176: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">exit</span>(<span class="ruby-value str">'listReports'</span>)
2136
- 177: <span class="ruby-keyword kw">true</span>
2137
- 178: <span class="ruby-keyword kw">end</span></pre>
2143
+ <span class="ruby-comment cmt"># File lib/TaskJuggler.rb, line 189</span>
2144
+ 189: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">listReports</span>(<span class="ruby-identifier">reportId</span>, <span class="ruby-identifier">regExpMode</span>)
2145
+ 190: <span class="ruby-keyword kw">begin</span>
2146
+ 191: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">enter</span>(<span class="ruby-value str">'listReports'</span>, <span class="ruby-value str">'Generating report list for #{reportId} ...'</span>)
2147
+ 192: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">listReports</span>(<span class="ruby-identifier">reportId</span>, <span class="ruby-identifier">regExpMode</span>)
2148
+ 193: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">TjException</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">msg</span>
2149
+ 194: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">msg</span>.<span class="ruby-identifier">message</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">msg</span>.<span class="ruby-identifier">message</span>.<span class="ruby-identifier">empty?</span>
2150
+ 195: <span class="ruby-ivar">@messageHandler</span>.<span class="ruby-identifier">critical</span>(<span class="ruby-value str">'list_reports'</span>, <span class="ruby-identifier">msg</span>.<span class="ruby-identifier">message</span>)
2151
+ 196: <span class="ruby-keyword kw">end</span>
2152
+ 197: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">exit</span>(<span class="ruby-value str">'listReports'</span>)
2153
+ 198: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
2154
+ 199: <span class="ruby-keyword kw">end</span>
2155
+ 200: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">exit</span>(<span class="ruby-value str">'listReports'</span>)
2156
+ 201: <span class="ruby-keyword kw">true</span>
2157
+ 202: <span class="ruby-keyword kw">end</span></pre>
2138
2158
  </div>
2139
2159
 
2140
2160
  </div>
@@ -2169,49 +2189,60 @@ of success true is returned. Otherwise false.
2169
2189
  <div class="method-source-code"
2170
2190
  id="parse-source">
2171
2191
  <pre>
2172
- <span class="ruby-comment cmt"># File lib/TaskJuggler.rb, line 39</span>
2173
- 39: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse</span>(<span class="ruby-identifier">files</span>, <span class="ruby-identifier">keepParser</span> = <span class="ruby-keyword kw">false</span>)
2174
- 40: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">enter</span>(<span class="ruby-value str">'parser'</span>, <span class="ruby-value str">'Parsing files ...'</span>)
2175
- 41: <span class="ruby-identifier">master</span> = <span class="ruby-keyword kw">true</span>
2176
- 42: <span class="ruby-ivar">@project</span> = <span class="ruby-keyword kw">nil</span>
2177
- 43:
2178
- 44: <span class="ruby-ivar">@parser</span> = <span class="ruby-constant">ProjectFileParser</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@messageHandler</span>)
2179
- 45: <span class="ruby-identifier">files</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">file</span><span class="ruby-operator">|</span>
2180
- 46: <span class="ruby-keyword kw">begin</span>
2181
- 47: <span class="ruby-ivar">@parser</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">file</span>, <span class="ruby-identifier">master</span>)
2182
- 48: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">TjException</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">msg</span>
2183
- 49: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">msg</span>.<span class="ruby-identifier">message</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">msg</span>.<span class="ruby-identifier">message</span>.<span class="ruby-identifier">empty?</span>
2184
- 50: <span class="ruby-ivar">@messageHandler</span>.<span class="ruby-identifier">critical</span>(<span class="ruby-value str">'parse'</span>, <span class="ruby-identifier">msg</span>.<span class="ruby-identifier">message</span>)
2185
- 51: <span class="ruby-keyword kw">end</span>
2186
- 52: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">exit</span>(<span class="ruby-value str">'parser'</span>)
2187
- 53: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
2188
- 54: <span class="ruby-keyword kw">end</span>
2189
- 55: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">master</span>
2190
- 56: <span class="ruby-comment cmt"># The first file is considered the master file.</span>
2191
- 57: <span class="ruby-keyword kw">if</span> (<span class="ruby-ivar">@project</span> = <span class="ruby-ivar">@parser</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-value str">'project'</span>)) <span class="ruby-operator">==</span> <span class="ruby-keyword kw">false</span>
2192
- 58: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">exit</span>(<span class="ruby-value str">'parser'</span>)
2193
- 59: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
2194
- 60: <span class="ruby-keyword kw">end</span>
2195
- 61: <span class="ruby-identifier">master</span> = <span class="ruby-keyword kw">false</span>
2196
- 62: <span class="ruby-keyword kw">else</span>
2197
- 63: <span class="ruby-comment cmt"># All other files.</span>
2198
- 64: <span class="ruby-ivar">@parser</span>.<span class="ruby-identifier">setGlobalMacros</span>
2199
- 65: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@parser</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-value str">'properties'</span>) <span class="ruby-operator">==</span> <span class="ruby-keyword kw">false</span>
2200
- 66: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">exit</span>(<span class="ruby-value str">'parser'</span>)
2201
- 67: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
2202
- 68: <span class="ruby-keyword kw">end</span>
2203
- 69: <span class="ruby-keyword kw">end</span>
2204
- 70: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">inputFiles</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">file</span>
2205
- 71: <span class="ruby-ivar">@parser</span>.<span class="ruby-identifier">close</span>
2206
- 72: <span class="ruby-keyword kw">end</span>
2207
- 73:
2208
- 74: <span class="ruby-comment cmt"># For the report server mode we may need to keep the parser. Otherwise,</span>
2209
- 75: <span class="ruby-comment cmt"># destroy it.</span>
2210
- 76: <span class="ruby-ivar">@parser</span> = <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">keepParser</span>
2211
- 77:
2212
- 78: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">exit</span>(<span class="ruby-value str">'parser'</span>)
2213
- 79: <span class="ruby-ivar">@messageHandler</span>.<span class="ruby-identifier">errors</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
2214
- 80: <span class="ruby-keyword kw">end</span></pre>
2192
+ <span class="ruby-comment cmt"># File lib/TaskJuggler.rb, line 41</span>
2193
+ 41: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse</span>(<span class="ruby-identifier">files</span>, <span class="ruby-identifier">keepParser</span> = <span class="ruby-keyword kw">false</span>)
2194
+ 42: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">enter</span>(<span class="ruby-value str">'parser'</span>, <span class="ruby-value str">'Parsing files ...'</span>)
2195
+ 43: <span class="ruby-identifier">master</span> = <span class="ruby-keyword kw">true</span>
2196
+ 44: <span class="ruby-ivar">@project</span> = <span class="ruby-keyword kw">nil</span>
2197
+ 45:
2198
+ 46: <span class="ruby-comment cmt">#RubyProf.start</span>
2199
+ 47: <span class="ruby-ivar">@parser</span> = <span class="ruby-constant">ProjectFileParser</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@messageHandler</span>)
2200
+ 48: <span class="ruby-identifier">files</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">file</span><span class="ruby-operator">|</span>
2201
+ 49: <span class="ruby-keyword kw">begin</span>
2202
+ 50: <span class="ruby-ivar">@parser</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">file</span>, <span class="ruby-identifier">master</span>)
2203
+ 51: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">TjException</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">msg</span>
2204
+ 52: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">msg</span>.<span class="ruby-identifier">message</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">msg</span>.<span class="ruby-identifier">message</span>.<span class="ruby-identifier">empty?</span>
2205
+ 53: <span class="ruby-ivar">@messageHandler</span>.<span class="ruby-identifier">critical</span>(<span class="ruby-value str">'parse'</span>, <span class="ruby-identifier">msg</span>.<span class="ruby-identifier">message</span>)
2206
+ 54: <span class="ruby-keyword kw">end</span>
2207
+ 55: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">exit</span>(<span class="ruby-value str">'parser'</span>)
2208
+ 56: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
2209
+ 57: <span class="ruby-keyword kw">end</span>
2210
+ 58: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">master</span>
2211
+ 59: <span class="ruby-comment cmt"># The first file is considered the master file.</span>
2212
+ 60: <span class="ruby-keyword kw">if</span> (<span class="ruby-ivar">@project</span> = <span class="ruby-ivar">@parser</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-value">:project</span>)) <span class="ruby-operator">==</span> <span class="ruby-keyword kw">false</span>
2213
+ 61: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">exit</span>(<span class="ruby-value str">'parser'</span>)
2214
+ 62: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
2215
+ 63: <span class="ruby-keyword kw">end</span>
2216
+ 64: <span class="ruby-identifier">master</span> = <span class="ruby-keyword kw">false</span>
2217
+ 65: <span class="ruby-keyword kw">else</span>
2218
+ 66: <span class="ruby-comment cmt"># All other files.</span>
2219
+ 67: <span class="ruby-ivar">@parser</span>.<span class="ruby-identifier">setGlobalMacros</span>
2220
+ 68: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@parser</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-value">:propertiesFile</span>) <span class="ruby-operator">==</span> <span class="ruby-keyword kw">false</span>
2221
+ 69: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">exit</span>(<span class="ruby-value str">'parser'</span>)
2222
+ 70: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
2223
+ 71: <span class="ruby-keyword kw">end</span>
2224
+ 72: <span class="ruby-keyword kw">end</span>
2225
+ 73: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">inputFiles</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">file</span>
2226
+ 74: <span class="ruby-ivar">@parser</span>.<span class="ruby-identifier">close</span>
2227
+ 75: <span class="ruby-keyword kw">end</span>
2228
+ 76:
2229
+ 77: <span class="ruby-comment cmt">#profile = RubyProf.stop</span>
2230
+ 78: <span class="ruby-comment cmt">#printer = RubyProf::GraphHtmlPrinter.new(profile)</span>
2231
+ 79: <span class="ruby-comment cmt">#File.open(&quot;profile.html&quot;, &quot;w&quot;) do |file|</span>
2232
+ 80: <span class="ruby-comment cmt"># printer.print(file)</span>
2233
+ 81: <span class="ruby-comment cmt">#end</span>
2234
+ 82: <span class="ruby-comment cmt">#printer = RubyProf::CallTreePrinter.new(profile)</span>
2235
+ 83: <span class="ruby-comment cmt">#File.open(&quot;profile.clt&quot;, &quot;w&quot;) do |file|</span>
2236
+ 84: <span class="ruby-comment cmt"># printer.print(file)</span>
2237
+ 85: <span class="ruby-comment cmt">#end</span>
2238
+ 86:
2239
+ 87: <span class="ruby-comment cmt"># For the report server mode we may need to keep the parser. Otherwise,</span>
2240
+ 88: <span class="ruby-comment cmt"># destroy it.</span>
2241
+ 89: <span class="ruby-ivar">@parser</span> = <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">keepParser</span>
2242
+ 90:
2243
+ 91: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">exit</span>(<span class="ruby-value str">'parser'</span>)
2244
+ 92: <span class="ruby-ivar">@messageHandler</span>.<span class="ruby-identifier">errors</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
2245
+ 93: <span class="ruby-keyword kw">end</span></pre>
2215
2246
  </div>
2216
2247
 
2217
2248
  </div>
@@ -2246,24 +2277,24 @@ href="TaskJuggler/TextParser/Rule.html">TextParser::Rule</a> to start with.
2246
2277
  <div class="method-source-code"
2247
2278
  id="parse-ile-source">
2248
2279
  <pre>
2249
- <span class="ruby-comment cmt"># File lib/TaskJuggler.rb, line 84</span>
2250
- 84: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parseFile</span>(<span class="ruby-identifier">fileName</span>, <span class="ruby-identifier">rule</span>)
2251
- 85: <span class="ruby-keyword kw">begin</span>
2252
- 86: <span class="ruby-ivar">@parser</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">fileName</span>, <span class="ruby-keyword kw">false</span>)
2253
- 87: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">inputFiles</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">fileName</span>
2254
- 88: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">TjException</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">msg</span>
2255
- 89: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">msg</span>.<span class="ruby-identifier">message</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">msg</span>.<span class="ruby-identifier">message</span>.<span class="ruby-identifier">empty?</span>
2256
- 90: <span class="ruby-ivar">@messageHandler</span>.<span class="ruby-identifier">critical</span>(<span class="ruby-value str">'parse_file'</span>, <span class="ruby-identifier">msg</span>.<span class="ruby-identifier">message</span>)
2257
- 91: <span class="ruby-keyword kw">end</span>
2258
- 92: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
2259
- 93: <span class="ruby-keyword kw">end</span>
2260
- 94:
2261
- 95: <span class="ruby-ivar">@parser</span>.<span class="ruby-identifier">setGlobalMacros</span>
2262
- 96: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">res</span> = <span class="ruby-ivar">@parser</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">rule</span>)) <span class="ruby-operator">==</span> <span class="ruby-keyword kw">false</span>
2263
- 97:
2264
- 98: <span class="ruby-ivar">@parser</span>.<span class="ruby-identifier">close</span>
2265
- 99: <span class="ruby-identifier">res</span>
2266
- 100: <span class="ruby-keyword kw">end</span></pre>
2280
+ <span class="ruby-comment cmt"># File lib/TaskJuggler.rb, line 97</span>
2281
+ 97: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parseFile</span>(<span class="ruby-identifier">fileName</span>, <span class="ruby-identifier">rule</span>)
2282
+ 98: <span class="ruby-keyword kw">begin</span>
2283
+ 99: <span class="ruby-ivar">@parser</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">fileName</span>, <span class="ruby-keyword kw">false</span>)
2284
+ 100: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">inputFiles</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">fileName</span>
2285
+ 101: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">TjException</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">msg</span>
2286
+ 102: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">msg</span>.<span class="ruby-identifier">message</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">msg</span>.<span class="ruby-identifier">message</span>.<span class="ruby-identifier">empty?</span>
2287
+ 103: <span class="ruby-ivar">@messageHandler</span>.<span class="ruby-identifier">critical</span>(<span class="ruby-value str">'parse_file'</span>, <span class="ruby-identifier">msg</span>.<span class="ruby-identifier">message</span>)
2288
+ 104: <span class="ruby-keyword kw">end</span>
2289
+ 105: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
2290
+ 106: <span class="ruby-keyword kw">end</span>
2291
+ 107:
2292
+ 108: <span class="ruby-ivar">@parser</span>.<span class="ruby-identifier">setGlobalMacros</span>
2293
+ 109: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">res</span> = <span class="ruby-ivar">@parser</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">rule</span>)) <span class="ruby-operator">==</span> <span class="ruby-keyword kw">false</span>
2294
+ 110:
2295
+ 111: <span class="ruby-ivar">@parser</span>.<span class="ruby-identifier">close</span>
2296
+ 112: <span class="ruby-identifier">res</span>
2297
+ 113: <span class="ruby-keyword kw">end</span></pre>
2267
2298
  </div>
2268
2299
 
2269
2300
  </div>
@@ -2296,11 +2327,11 @@ Return the ID of the project or nil if no project has been loaded yet.
2296
2327
  <div class="method-source-code"
2297
2328
  id="project-d-source">
2298
2329
  <pre>
2299
- <span class="ruby-comment cmt"># File lib/TaskJuggler.rb, line 242</span>
2300
- 242: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">projectId</span>
2301
- 243: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">nil?</span>
2302
- 244: <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'projectid'</span>]
2303
- 245: <span class="ruby-keyword kw">end</span></pre>
2330
+ <span class="ruby-comment cmt"># File lib/TaskJuggler.rb, line 266</span>
2331
+ 266: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">projectId</span>
2332
+ 267: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">nil?</span>
2333
+ 268: <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'projectid'</span>]
2334
+ 269: <span class="ruby-keyword kw">end</span></pre>
2304
2335
  </div>
2305
2336
 
2306
2337
  </div>
@@ -2333,11 +2364,11 @@ Return the name of the project or nil if no project has been loaded yet.
2333
2364
  <div class="method-source-code"
2334
2365
  id="project-ame-source">
2335
2366
  <pre>
2336
- <span class="ruby-comment cmt"># File lib/TaskJuggler.rb, line 248</span>
2337
- 248: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">projectName</span>
2338
- 249: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">nil?</span>
2339
- 250: <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'name'</span>]
2340
- 251: <span class="ruby-keyword kw">end</span></pre>
2367
+ <span class="ruby-comment cmt"># File lib/TaskJuggler.rb, line 272</span>
2368
+ 272: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">projectName</span>
2369
+ 273: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">nil?</span>
2370
+ 274: <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'name'</span>]
2371
+ 275: <span class="ruby-keyword kw">end</span></pre>
2341
2372
  </div>
2342
2373
 
2343
2374
  </div>
@@ -2371,24 +2402,24 @@ detected, false otherwise.
2371
2402
  <div class="method-source-code"
2372
2403
  id="schedule-source">
2373
2404
  <pre>
2374
- <span class="ruby-comment cmt"># File lib/TaskJuggler.rb, line 104</span>
2375
- 104: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">schedule</span>
2376
- 105: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">enter</span>(<span class="ruby-value str">'scheduler'</span>, <span class="ruby-value str">'Scheduling project ...'</span>)
2377
- 106: <span class="ruby-comment cmt">#puts @project.to_s</span>
2378
- 107: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">warnTsDeltas</span> = <span class="ruby-ivar">@warnTsDeltas</span>
2379
- 108:
2380
- 109: <span class="ruby-keyword kw">begin</span>
2381
- 110: <span class="ruby-identifier">res</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">schedule</span>
2382
- 111: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">TjException</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">msg</span>
2383
- 112: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">msg</span>.<span class="ruby-identifier">message</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">msg</span>.<span class="ruby-identifier">message</span>.<span class="ruby-identifier">empty?</span>
2384
- 113: <span class="ruby-ivar">@messageHandler</span>.<span class="ruby-identifier">critical</span>(<span class="ruby-value str">'scheduling_error'</span>, <span class="ruby-identifier">msg</span>.<span class="ruby-identifier">message</span>)
2385
- 114: <span class="ruby-keyword kw">end</span>
2386
- 115: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
2387
- 116: <span class="ruby-keyword kw">end</span>
2388
- 117:
2389
- 118: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">exit</span>(<span class="ruby-value str">'scheduler'</span>)
2390
- 119: <span class="ruby-identifier">res</span>
2391
- 120: <span class="ruby-keyword kw">end</span></pre>
2405
+ <span class="ruby-comment cmt"># File lib/TaskJuggler.rb, line 117</span>
2406
+ 117: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">schedule</span>
2407
+ 118: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">enter</span>(<span class="ruby-value str">'scheduler'</span>, <span class="ruby-value str">'Scheduling project ...'</span>)
2408
+ 119: <span class="ruby-comment cmt">#puts @project.to_s</span>
2409
+ 120: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">warnTsDeltas</span> = <span class="ruby-ivar">@warnTsDeltas</span>
2410
+ 121:
2411
+ 122: <span class="ruby-keyword kw">begin</span>
2412
+ 123: <span class="ruby-identifier">res</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">schedule</span>
2413
+ 124: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">TjException</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">msg</span>
2414
+ 125: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">msg</span>.<span class="ruby-identifier">message</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">msg</span>.<span class="ruby-identifier">message</span>.<span class="ruby-identifier">empty?</span>
2415
+ 126: <span class="ruby-ivar">@messageHandler</span>.<span class="ruby-identifier">critical</span>(<span class="ruby-value str">'scheduling_error'</span>, <span class="ruby-identifier">msg</span>.<span class="ruby-identifier">message</span>)
2416
+ 127: <span class="ruby-keyword kw">end</span>
2417
+ 128: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
2418
+ 129: <span class="ruby-keyword kw">end</span>
2419
+ 130:
2420
+ 131: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">exit</span>(<span class="ruby-value str">'scheduler'</span>)
2421
+ 132: <span class="ruby-identifier">res</span>
2422
+ 133: <span class="ruby-keyword kw">end</span></pre>
2392
2423
  </div>
2393
2424
 
2394
2425
  </div>