taskjuggler 0.0.6 → 0.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (545) hide show
  1. data/CHANGELOG +160 -0
  2. data/benchmarks/UTF-8-Strings.rb +58 -0
  3. data/data/css/tjreport.css +7 -2
  4. data/doc/AppConfig.html +10 -4
  5. data/doc/Arguments.html +10 -4
  6. data/doc/CHANGELOG.html +171 -5
  7. data/doc/COPYING.html +10 -4
  8. data/doc/Object.html +11 -107
  9. data/doc/README.html +10 -4
  10. data/doc/RuntimeConfig.html +10 -4
  11. data/doc/String.html +16 -11
  12. data/doc/StringIO.html +10 -4
  13. data/doc/TaskJuggler.html +506 -435
  14. data/doc/TaskJuggler/Account.html +10 -4
  15. data/doc/TaskJuggler/AccountAttribute.html +10 -4
  16. data/doc/TaskJuggler/AccountScenario.html +10 -4
  17. data/doc/TaskJuggler/Allocation.html +69 -60
  18. data/doc/TaskJuggler/AllocationAttribute.html +10 -4
  19. data/doc/TaskJuggler/AttributeBase.html +10 -4
  20. data/doc/TaskJuggler/AttributeDefinition.html +10 -4
  21. data/doc/TaskJuggler/BatchProcessor.html +202 -192
  22. data/doc/TaskJuggler/Booking.html +10 -4
  23. data/doc/TaskJuggler/BookingListAttribute.html +10 -4
  24. data/doc/TaskJuggler/BooleanAttribute.html +10 -4
  25. data/doc/TaskJuggler/CSVFile.html +10 -4
  26. data/doc/TaskJuggler/CellSettingPattern.html +10 -4
  27. data/doc/TaskJuggler/CellSettingPatternList.html +10 -4
  28. data/doc/TaskJuggler/Charge.html +10 -4
  29. data/doc/TaskJuggler/ChargeListAttribute.html +10 -4
  30. data/doc/TaskJuggler/ChargeSet.html +10 -4
  31. data/doc/TaskJuggler/ChargeSetListAttribute.html +10 -4
  32. data/doc/TaskJuggler/ColumnListAttribute.html +10 -4
  33. data/doc/TaskJuggler/ColumnTable.html +10 -4
  34. data/doc/TaskJuggler/Daemon.html +71 -52
  35. data/doc/TaskJuggler/DateAttribute.html +10 -4
  36. data/doc/TaskJuggler/DefinitionListAttribute.html +10 -4
  37. data/doc/TaskJuggler/DependencyListAttribute.html +10 -4
  38. data/doc/TaskJuggler/DurationAttribute.html +10 -4
  39. data/doc/TaskJuggler/{MacroParser.html → FileList.html} +58 -173
  40. data/doc/TaskJuggler/{RichTextException.html → FileRecord.html} +59 -80
  41. data/doc/TaskJuggler/FixnumAttribute.html +10 -4
  42. data/doc/TaskJuggler/FlagListAttribute.html +10 -4
  43. data/doc/TaskJuggler/FloatAttribute.html +10 -4
  44. data/doc/TaskJuggler/FormatListAttribute.html +10 -4
  45. data/doc/TaskJuggler/GanttChart.html +10 -4
  46. data/doc/TaskJuggler/GanttContainer.html +14 -8
  47. data/doc/TaskJuggler/GanttHeader.html +10 -4
  48. data/doc/TaskJuggler/GanttHeaderScaleItem.html +10 -4
  49. data/doc/TaskJuggler/GanttLine.html +29 -24
  50. data/doc/TaskJuggler/GanttLoadStack.html +10 -4
  51. data/doc/TaskJuggler/GanttMilestone.html +10 -4
  52. data/doc/TaskJuggler/GanttRouter.html +10 -4
  53. data/doc/TaskJuggler/GanttTaskBar.html +20 -10
  54. data/doc/TaskJuggler/HTMLDocument.html +10 -4
  55. data/doc/TaskJuggler/HTMLGraphics.html +10 -4
  56. data/doc/TaskJuggler/Interval.html +10 -4
  57. data/doc/TaskJuggler/IntervalListAttribute.html +10 -4
  58. data/doc/TaskJuggler/JobInfo.html +10 -4
  59. data/doc/TaskJuggler/Journal.html +227 -160
  60. data/doc/TaskJuggler/JournalEntry.html +10 -4
  61. data/doc/TaskJuggler/JournalEntryList.html +158 -72
  62. data/doc/TaskJuggler/KeywordArray.html +21 -9
  63. data/doc/TaskJuggler/KeywordDocumentation.html +612 -475
  64. data/doc/TaskJuggler/Limits.html +13 -8
  65. data/doc/TaskJuggler/Limits/Limit.html +10 -4
  66. data/doc/TaskJuggler/LimitsAttribute.html +10 -4
  67. data/doc/TaskJuggler/ListAttributeBase.html +10 -4
  68. data/doc/TaskJuggler/Log.html +10 -4
  69. data/doc/TaskJuggler/LogFile.html +10 -4
  70. data/doc/TaskJuggler/LogicalAttribute.html +10 -4
  71. data/doc/TaskJuggler/LogicalExpression.html +11 -5
  72. data/doc/TaskJuggler/LogicalExpressionAttribute.html +10 -4
  73. data/doc/TaskJuggler/LogicalFlag.html +10 -4
  74. data/doc/TaskJuggler/LogicalFunction.html +132 -124
  75. data/doc/TaskJuggler/LogicalOperation.html +10 -4
  76. data/doc/TaskJuggler/Macro.html +16 -10
  77. data/doc/TaskJuggler/MacroTable.html +44 -38
  78. data/doc/TaskJuggler/ManagerResponsibilities.html +10 -4
  79. data/doc/TaskJuggler/ManagerStatusRecord.html +10 -4
  80. data/doc/TaskJuggler/Message.html +92 -68
  81. data/doc/TaskJuggler/MessageHandler.html +349 -28
  82. data/doc/TaskJuggler/Navigator.html +10 -4
  83. data/doc/TaskJuggler/NavigatorElement.html +10 -4
  84. data/doc/TaskJuggler/NikuProject.html +10 -4
  85. data/doc/TaskJuggler/NikuReport.html +10 -4
  86. data/doc/TaskJuggler/NikuResource.html +10 -4
  87. data/doc/TaskJuggler/NodeListAttribute.html +10 -4
  88. data/doc/TaskJuggler/OnShiftCache.html +10 -4
  89. data/doc/TaskJuggler/ProcessIntercom.html +118 -111
  90. data/doc/TaskJuggler/ProcessIntercomIface.html +75 -22
  91. data/doc/TaskJuggler/Project.html +886 -913
  92. data/doc/TaskJuggler/ProjectBroker.html +442 -331
  93. data/doc/TaskJuggler/ProjectBrokerIface.html +95 -38
  94. data/doc/TaskJuggler/ProjectFileParser.html +320 -317
  95. data/doc/TaskJuggler/ProjectFileScanner.html +336 -339
  96. data/doc/TaskJuggler/ProjectRecord.html +119 -56
  97. data/doc/TaskJuggler/ProjectServer.html +282 -237
  98. data/doc/TaskJuggler/ProjectServerIface.html +45 -39
  99. data/doc/TaskJuggler/PropertyAttribute.html +10 -4
  100. data/doc/TaskJuggler/PropertyList.html +177 -173
  101. data/doc/TaskJuggler/PropertySet.html +11 -5
  102. data/doc/TaskJuggler/PropertyTreeNode.html +194 -191
  103. data/doc/TaskJuggler/Query.html +280 -256
  104. data/doc/TaskJuggler/RTFHandlers.html +10 -4
  105. data/doc/TaskJuggler/RTFNavigator.html +33 -26
  106. data/doc/TaskJuggler/RTFQuery.html +135 -169
  107. data/doc/TaskJuggler/RTFReport.html +63 -56
  108. data/doc/TaskJuggler/RTFReportLink.html +58 -47
  109. data/doc/TaskJuggler/RTFWithQuerySupport.html +666 -0
  110. data/doc/TaskJuggler/RealFormat.html +10 -4
  111. data/doc/TaskJuggler/RealFormatAttribute.html +10 -4
  112. data/doc/TaskJuggler/ReferenceAttribute.html +10 -4
  113. data/doc/TaskJuggler/Report.html +333 -290
  114. data/doc/TaskJuggler/ReportBase.html +182 -174
  115. data/doc/TaskJuggler/ReportContext.html +10 -4
  116. data/doc/TaskJuggler/ReportServer.html +144 -126
  117. data/doc/TaskJuggler/ReportServerIface.html +50 -44
  118. data/doc/TaskJuggler/ReportServerRecord.html +38 -32
  119. data/doc/TaskJuggler/ReportServlet.html +144 -137
  120. data/doc/TaskJuggler/ReportTable.html +10 -4
  121. data/doc/TaskJuggler/ReportTableCell.html +169 -164
  122. data/doc/TaskJuggler/ReportTableColumn.html +10 -4
  123. data/doc/TaskJuggler/ReportTableLegend.html +10 -4
  124. data/doc/TaskJuggler/ReportTableLine.html +10 -4
  125. data/doc/TaskJuggler/Resource.html +121 -115
  126. data/doc/TaskJuggler/ResourceListAttribute.html +10 -4
  127. data/doc/TaskJuggler/ResourceListRE.html +10 -4
  128. data/doc/TaskJuggler/ResourceScenario.html +13 -7
  129. data/doc/TaskJuggler/RichText.html +61 -37
  130. data/doc/TaskJuggler/RichTextAttribute.html +10 -4
  131. data/doc/TaskJuggler/RichTextDocument.html +91 -81
  132. data/doc/TaskJuggler/RichTextElement.html +378 -317
  133. data/doc/TaskJuggler/RichTextFunctionExample.html +10 -4
  134. data/doc/TaskJuggler/RichTextFunctionHandler.html +16 -11
  135. data/doc/TaskJuggler/RichTextImage.html +10 -4
  136. data/doc/TaskJuggler/RichTextIntermediate.html +138 -70
  137. data/doc/TaskJuggler/RichTextParser.html +48 -40
  138. data/doc/TaskJuggler/RichTextScanner.html +328 -906
  139. data/doc/TaskJuggler/RichTextSnip.html +59 -57
  140. data/doc/TaskJuggler/RichTextSyntaxRules.html +458 -369
  141. data/doc/TaskJuggler/Scenario.html +10 -4
  142. data/doc/TaskJuggler/ScenarioData.html +33 -30
  143. data/doc/TaskJuggler/ScenarioListAttribute.html +10 -4
  144. data/doc/TaskJuggler/Scoreboard.html +10 -4
  145. data/doc/TaskJuggler/SheetHandlerBase.html +315 -191
  146. data/doc/TaskJuggler/SheetReceiver.html +334 -313
  147. data/doc/TaskJuggler/SheetSender.html +10 -4
  148. data/doc/TaskJuggler/Shift.html +10 -4
  149. data/doc/TaskJuggler/ShiftAssignment.html +10 -4
  150. data/doc/TaskJuggler/ShiftAssignments.html +10 -4
  151. data/doc/TaskJuggler/ShiftAssignmentsAttribute.html +10 -4
  152. data/doc/TaskJuggler/ShiftScenario.html +10 -4
  153. data/doc/TaskJuggler/SimpleQueryExpander.html +697 -0
  154. data/doc/TaskJuggler/SortListAttribute.html +10 -4
  155. data/doc/TaskJuggler/SourceFileInfo.html +10 -4
  156. data/doc/TaskJuggler/StatusSheetReceiver.html +10 -4
  157. data/doc/TaskJuggler/StatusSheetReport.html +10 -4
  158. data/doc/TaskJuggler/StatusSheetSender.html +10 -4
  159. data/doc/TaskJuggler/StringAttribute.html +10 -4
  160. data/doc/TaskJuggler/SymbolAttribute.html +10 -4
  161. data/doc/TaskJuggler/SyntaxReference.html +260 -230
  162. data/doc/TaskJuggler/TOCEntry.html +99 -42
  163. data/doc/TaskJuggler/TSResourceRecord.html +10 -4
  164. data/doc/TaskJuggler/TSTaskRecord.html +10 -4
  165. data/doc/TaskJuggler/TableColumnDefinition.html +10 -4
  166. data/doc/TaskJuggler/TableOfContents.html +54 -12
  167. data/doc/TaskJuggler/TableReport.html +877 -872
  168. data/doc/TaskJuggler/Task.html +117 -68
  169. data/doc/TaskJuggler/TaskDependency.html +10 -4
  170. data/doc/TaskJuggler/TaskListAttribute.html +10 -4
  171. data/doc/TaskJuggler/TaskListRE.html +10 -4
  172. data/doc/TaskJuggler/TaskScenario.html +1681 -1563
  173. data/doc/TaskJuggler/TextFormatter.html +10 -4
  174. data/doc/TaskJuggler/TextParser.html +567 -534
  175. data/doc/TaskJuggler/TextParser/Pattern.html +128 -118
  176. data/doc/TaskJuggler/TextParser/Rule.html +26 -15
  177. data/doc/TaskJuggler/TextParser/StackElement.html +10 -4
  178. data/doc/TaskJuggler/TextParser/TextParserResultArray.html +22 -16
  179. data/doc/TaskJuggler/TextParser/TokenDoc.html +10 -4
  180. data/doc/TaskJuggler/TextReport.html +15 -6
  181. data/doc/TaskJuggler/TextScanner.html +319 -287
  182. data/doc/TaskJuggler/TextScanner/BufferStreamHandle.html +16 -10
  183. data/doc/TaskJuggler/TextScanner/FileStreamHandle.html +23 -17
  184. data/doc/TaskJuggler/TextScanner/MacroStackEntry.html +17 -11
  185. data/doc/TaskJuggler/TextScanner/StreamHandle.html +102 -96
  186. data/doc/TaskJuggler/TimeSheet.html +138 -175
  187. data/doc/TaskJuggler/TimeSheetReceiver.html +10 -4
  188. data/doc/TaskJuggler/TimeSheetRecord.html +65 -58
  189. data/doc/TaskJuggler/TimeSheetReport.html +47 -42
  190. data/doc/TaskJuggler/TimeSheetSender.html +10 -4
  191. data/doc/TaskJuggler/TimeSheetSummary.html +91 -83
  192. data/doc/TaskJuggler/TimeSheets.html +22 -16
  193. data/doc/TaskJuggler/Tj3AppBase.html +10 -4
  194. data/doc/TaskJuggler/Tj3Client.html +399 -365
  195. data/doc/TaskJuggler/Tj3Daemon.html +107 -94
  196. data/doc/TaskJuggler/Tj3SheetAppBase.html +10 -4
  197. data/doc/TaskJuggler/Tj3SsReceiver.html +10 -4
  198. data/doc/TaskJuggler/Tj3SsSender.html +10 -4
  199. data/doc/TaskJuggler/Tj3TsReceiver.html +10 -4
  200. data/doc/TaskJuggler/Tj3TsSender.html +10 -4
  201. data/doc/TaskJuggler/Tj3TsSummary.html +10 -4
  202. data/doc/TaskJuggler/TjException.html +10 -4
  203. data/doc/TaskJuggler/TjTime.html +145 -140
  204. data/doc/TaskJuggler/TjpExample.html +10 -4
  205. data/doc/TaskJuggler/TjpExportRE.html +122 -118
  206. data/doc/TaskJuggler/TjpSyntaxRules.html +4065 -4052
  207. data/doc/TaskJuggler/URLParameter.html +10 -4
  208. data/doc/TaskJuggler/UserManual.html +162 -155
  209. data/doc/TaskJuggler/VimSyntax.html +1028 -0
  210. data/doc/TaskJuggler/WebServer.html +45 -27
  211. data/doc/TaskJuggler/WorkingHours.html +10 -4
  212. data/doc/TaskJuggler/WorkingHoursAttribute.html +10 -4
  213. data/doc/TaskJuggler/XMLBlob.html +10 -4
  214. data/doc/TaskJuggler/XMLComment.html +10 -4
  215. data/doc/TaskJuggler/XMLDocument.html +10 -4
  216. data/doc/TaskJuggler/XMLElement.html +10 -4
  217. data/doc/TaskJuggler/XMLNamedText.html +10 -4
  218. data/doc/TaskJuggler/XMLText.html +10 -4
  219. data/doc/index.html +735 -677
  220. data/doc/lib/AccountScenario_rb.html +1 -1
  221. data/doc/lib/Account_rb.html +1 -1
  222. data/doc/lib/Allocation_rb.html +1 -1
  223. data/doc/lib/AppConfig_rb.html +1 -1
  224. data/doc/lib/AttributeBase_rb.html +1 -1
  225. data/doc/lib/AttributeDefinition_rb.html +1 -1
  226. data/doc/lib/Attributes_rb.html +1 -1
  227. data/doc/lib/BatchProcessor_rb.html +1 -1
  228. data/doc/lib/Booking_rb.html +1 -1
  229. data/doc/lib/ChargeSet_rb.html +1 -1
  230. data/doc/lib/Charge_rb.html +1 -1
  231. data/doc/lib/{Message_rb.html → FileList_rb.html} +3 -5
  232. data/doc/lib/HTMLDocument_rb.html +1 -1
  233. data/doc/lib/Interval_rb.html +1 -1
  234. data/doc/lib/Journal_rb.html +1 -1
  235. data/doc/lib/KeywordArray_rb.html +1 -1
  236. data/doc/lib/KeywordDocumentation_rb.html +1 -1
  237. data/doc/lib/Limits_rb.html +1 -1
  238. data/doc/lib/LogFile_rb.html +1 -1
  239. data/doc/lib/Log_rb.html +1 -1
  240. data/doc/lib/LogicalExpression_rb.html +1 -1
  241. data/doc/lib/LogicalFunction_rb.html +1 -1
  242. data/doc/lib/LogicalOperation_rb.html +1 -1
  243. data/doc/lib/MacroTable_rb.html +1 -3
  244. data/doc/lib/MessageHandler_rb.html +1 -1
  245. data/doc/lib/ProjectFileParser_rb.html +1 -1
  246. data/doc/lib/ProjectFileScanner_rb.html +1 -1
  247. data/doc/lib/Project_rb.html +4 -2
  248. data/doc/lib/PropertyList_rb.html +1 -1
  249. data/doc/lib/PropertySet_rb.html +1 -1
  250. data/doc/lib/PropertyTreeNode_rb.html +1 -1
  251. data/doc/lib/Query_rb.html +1 -1
  252. data/doc/lib/RTFHandlers_rb.html +1 -1
  253. data/doc/lib/RTFNavigator_rb.html +1 -1
  254. data/doc/lib/RTFQuery_rb.html +2 -2
  255. data/doc/lib/RTFReportLink_rb.html +4 -2
  256. data/doc/lib/RTFReport_rb.html +1 -1
  257. data/doc/lib/{MacroParser_rb.html → RTFWithQuerySupport_rb.html} +4 -6
  258. data/doc/lib/RealFormat_rb.html +1 -1
  259. data/doc/lib/ResourceScenario_rb.html +1 -1
  260. data/doc/lib/Resource_rb.html +1 -1
  261. data/doc/lib/RichTextDocument_rb.html +1 -1
  262. data/doc/lib/RichTextElement_rb.html +1 -1
  263. data/doc/lib/RichTextFunctionExample_rb.html +1 -1
  264. data/doc/lib/RichTextFunctionHandler_rb.html +1 -1
  265. data/doc/lib/RichTextParser_rb.html +1 -1
  266. data/doc/lib/RichTextScanner_rb.html +3 -1
  267. data/doc/lib/RichTextSnip_rb.html +1 -1
  268. data/doc/lib/RichTextSyntaxRules_rb.html +1 -1
  269. data/doc/lib/RichText_rb.html +3 -1
  270. data/doc/lib/RuntimeConfig_rb.html +1 -1
  271. data/doc/lib/ScenarioData_rb.html +2 -2
  272. data/doc/lib/Scenario_rb.html +1 -1
  273. data/doc/lib/Scoreboard_rb.html +1 -1
  274. data/doc/lib/SheetHandlerBase_rb.html +5 -1
  275. data/doc/lib/SheetReceiver_rb.html +3 -1
  276. data/doc/lib/SheetSender_rb.html +1 -1
  277. data/doc/lib/ShiftAssignments_rb.html +1 -1
  278. data/doc/lib/ShiftScenario_rb.html +1 -1
  279. data/doc/lib/Shift_rb.html +1 -1
  280. data/doc/lib/SimpleQueryExpander_rb.html +67 -0
  281. data/doc/lib/SourceFileInfo_rb.html +1 -1
  282. data/doc/lib/StatusSheetReceiver_rb.html +1 -1
  283. data/doc/lib/StatusSheetSender_rb.html +1 -1
  284. data/doc/lib/SyntaxReference_rb.html +1 -1
  285. data/doc/lib/TOCEntry_rb.html +1 -1
  286. data/doc/lib/TableColumnDefinition_rb.html +1 -1
  287. data/doc/lib/TableOfContents_rb.html +1 -1
  288. data/doc/lib/TaskDependency_rb.html +1 -1
  289. data/doc/lib/TaskJuggler_rb.html +1 -1
  290. data/doc/lib/TaskScenario_rb.html +1 -1
  291. data/doc/lib/Task_rb.html +1 -1
  292. data/doc/lib/TextFormatter_rb.html +1 -1
  293. data/doc/lib/TextParser/Pattern_rb.html +1 -1
  294. data/doc/lib/TextParser/Rule_rb.html +1 -1
  295. data/doc/lib/TextParser/StackElement_rb.html +1 -1
  296. data/doc/lib/TextParser/TokenDoc_rb.html +1 -1
  297. data/doc/lib/TextParser_rb.html +3 -1
  298. data/doc/lib/TextScanner_rb.html +1 -3
  299. data/doc/lib/TimeSheetReceiver_rb.html +1 -1
  300. data/doc/lib/TimeSheetSender_rb.html +1 -1
  301. data/doc/lib/TimeSheetSummary_rb.html +1 -1
  302. data/doc/lib/TimeSheets_rb.html +1 -1
  303. data/doc/lib/Tj3AppBase_rb.html +1 -1
  304. data/doc/lib/Tj3Config_rb.html +1 -1
  305. data/doc/lib/Tj3SheetAppBase_rb.html +1 -1
  306. data/doc/lib/TjException_rb.html +1 -1
  307. data/doc/lib/TjTime_rb.html +1 -1
  308. data/doc/lib/TjpExample_rb.html +1 -1
  309. data/doc/lib/TjpSyntaxRules_rb.html +1 -1
  310. data/doc/lib/URLParameter_rb.html +1 -1
  311. data/doc/lib/UTF8String_rb.html +1 -1
  312. data/doc/lib/UserManual_rb.html +1 -1
  313. data/doc/lib/{ruby-signal-bug_rb.html → VimSyntax_rb.html} +17 -4
  314. data/doc/lib/WorkingHours_rb.html +1 -1
  315. data/doc/lib/XMLDocument_rb.html +1 -1
  316. data/doc/lib/XMLElement_rb.html +1 -1
  317. data/doc/lib/daemon/Daemon_rb.html +1 -1
  318. data/doc/lib/daemon/ProcessIntercom_rb.html +1 -1
  319. data/doc/lib/daemon/ProjectBroker_rb.html +1 -1
  320. data/doc/lib/daemon/ProjectServer_rb.html +1 -1
  321. data/doc/lib/daemon/ReportServer_rb.html +1 -3
  322. data/doc/lib/daemon/WebServer_rb.html +1 -1
  323. data/doc/lib/deep_copy_rb.html +1 -1
  324. data/doc/lib/reports/CSVFile_rb.html +1 -1
  325. data/doc/lib/reports/ColumnTable_rb.html +1 -1
  326. data/doc/lib/reports/GanttChart_rb.html +1 -1
  327. data/doc/lib/reports/GanttContainer_rb.html +1 -1
  328. data/doc/lib/reports/GanttHeaderScaleItem_rb.html +1 -1
  329. data/doc/lib/reports/GanttHeader_rb.html +1 -1
  330. data/doc/lib/reports/GanttLine_rb.html +1 -1
  331. data/doc/lib/reports/GanttLoadStack_rb.html +1 -1
  332. data/doc/lib/reports/GanttMilestone_rb.html +1 -1
  333. data/doc/lib/reports/GanttRouter_rb.html +1 -1
  334. data/doc/lib/reports/GanttTaskBar_rb.html +1 -1
  335. data/doc/lib/reports/HTMLGraphics_rb.html +1 -1
  336. data/doc/lib/reports/Navigator_rb.html +1 -1
  337. data/doc/lib/reports/NikuReport_rb.html +1 -1
  338. data/doc/lib/reports/ReportBase_rb.html +1 -1
  339. data/doc/lib/reports/ReportContext_rb.html +1 -1
  340. data/doc/lib/reports/ReportTableCell_rb.html +1 -1
  341. data/doc/lib/reports/ReportTableColumn_rb.html +1 -1
  342. data/doc/lib/reports/ReportTableLegend_rb.html +1 -1
  343. data/doc/lib/reports/ReportTableLine_rb.html +1 -1
  344. data/doc/lib/reports/ReportTable_rb.html +1 -1
  345. data/doc/lib/reports/Report_rb.html +1 -1
  346. data/doc/lib/reports/ResourceListRE_rb.html +1 -1
  347. data/doc/lib/reports/StatusSheetReport_rb.html +1 -1
  348. data/doc/lib/reports/TableReport_rb.html +1 -1
  349. data/doc/lib/reports/TaskListRE_rb.html +1 -1
  350. data/doc/lib/reports/TextReport_rb.html +1 -1
  351. data/doc/lib/reports/TimeSheetReport_rb.html +1 -1
  352. data/doc/lib/reports/TjpExportRE_rb.html +1 -1
  353. data/doc/lib/taskjuggler3_rb.html +1 -1
  354. data/doc/lib/tj3client_rb.html +1 -1
  355. data/doc/lib/tj3d_rb.html +1 -1
  356. data/doc/lib/tj3man_rb.html +1 -1
  357. data/doc/lib/tj3ss_receiver_rb.html +1 -1
  358. data/doc/lib/tj3ss_sender_rb.html +1 -1
  359. data/doc/lib/tj3ts_receiver_rb.html +1 -1
  360. data/doc/lib/tj3ts_sender_rb.html +1 -1
  361. data/doc/lib/tj3ts_summary_rb.html +1 -1
  362. data/lib/Allocation.rb +8 -5
  363. data/lib/BatchProcessor.rb +7 -3
  364. data/lib/FileList.rb +58 -0
  365. data/lib/Journal.rb +73 -33
  366. data/lib/KeywordArray.rb +4 -0
  367. data/lib/KeywordDocumentation.rb +45 -11
  368. data/lib/Limits.rb +0 -1
  369. data/lib/LogicalExpression.rb +1 -1
  370. data/lib/LogicalFunction.rb +14 -12
  371. data/lib/MacroTable.rb +3 -4
  372. data/lib/MessageHandler.rb +136 -7
  373. data/lib/Project.rb +72 -86
  374. data/lib/ProjectFileParser.rb +30 -33
  375. data/lib/ProjectFileScanner.rb +7 -16
  376. data/lib/PropertyList.rb +25 -27
  377. data/lib/PropertySet.rb +1 -1
  378. data/lib/PropertyTreeNode.rb +9 -12
  379. data/lib/Query.rb +5 -4
  380. data/lib/RTFNavigator.rb +2 -1
  381. data/lib/RTFQuery.rb +4 -11
  382. data/lib/RTFReport.rb +2 -1
  383. data/lib/RTFReportLink.rb +10 -4
  384. data/lib/RTFWithQuerySupport.rb +45 -0
  385. data/lib/Resource.rb +20 -20
  386. data/lib/ResourceScenario.rb +3 -3
  387. data/lib/RichText.rb +15 -7
  388. data/lib/RichTextDocument.rb +8 -4
  389. data/lib/RichTextElement.rb +35 -12
  390. data/lib/RichTextFunctionHandler.rb +11 -12
  391. data/lib/RichTextParser.rb +5 -3
  392. data/lib/RichTextScanner.rb +144 -565
  393. data/lib/RichTextSnip.rb +3 -7
  394. data/lib/RichTextSyntaxRules.rb +51 -32
  395. data/lib/ScenarioData.rb +16 -25
  396. data/lib/SheetHandlerBase.rb +59 -2
  397. data/lib/SheetReceiver.rb +36 -18
  398. data/lib/SimpleQueryExpander.rb +58 -0
  399. data/lib/SyntaxReference.rb +9 -5
  400. data/lib/TOCEntry.rb +2 -0
  401. data/lib/TableOfContents.rb +4 -0
  402. data/lib/Task.rb +23 -12
  403. data/lib/TaskJuggler.rb +72 -33
  404. data/lib/TaskScenario.rb +131 -53
  405. data/lib/TextParser.rb +43 -30
  406. data/lib/TextParser/Pattern.rb +17 -13
  407. data/lib/TextParser/Rule.rb +5 -0
  408. data/lib/TextScanner.rb +46 -25
  409. data/lib/TimeSheetSummary.rb +9 -7
  410. data/lib/TimeSheets.rb +14 -23
  411. data/lib/Tj3Config.rb +1 -1
  412. data/lib/TjTime.rb +1 -2
  413. data/lib/TjpSyntaxRules.rb +128 -104
  414. data/lib/UTF8String.rb +0 -1
  415. data/lib/UserManual.rb +5 -4
  416. data/lib/VimSyntax.rb +223 -0
  417. data/lib/daemon/Daemon.rb +9 -0
  418. data/lib/daemon/ProcessIntercom.rb +19 -4
  419. data/lib/daemon/ProjectBroker.rb +149 -68
  420. data/lib/daemon/ProjectServer.rb +119 -79
  421. data/lib/daemon/ReportServer.rb +42 -31
  422. data/lib/daemon/WebServer.rb +21 -2
  423. data/lib/deep_copy.rb +1 -1
  424. data/lib/reports/GanttContainer.rb +2 -2
  425. data/lib/reports/GanttLine.rb +2 -3
  426. data/lib/reports/GanttTaskBar.rb +7 -3
  427. data/lib/reports/Report.rb +62 -57
  428. data/lib/reports/ReportBase.rb +6 -4
  429. data/lib/reports/ReportTableCell.rb +13 -14
  430. data/lib/reports/TableReport.rb +2 -1
  431. data/lib/reports/TextReport.rb +3 -0
  432. data/lib/reports/TimeSheetReport.rb +2 -3
  433. data/lib/reports/TjpExportRE.rb +0 -2
  434. data/lib/tj3client.rb +31 -3
  435. data/lib/tj3d.rb +8 -1
  436. data/manual/Day_To_Day_Juggling +2 -95
  437. data/manual/How_To_Contribute +2 -1
  438. data/manual/Rich_Text_Attributes +37 -3
  439. data/manual/Software +203 -0
  440. data/test/MessageChecker.rb +4 -4
  441. data/test/TestSuite/HTML-Reports/Alerts.html +172 -0
  442. data/test/TestSuite/HTML-Reports/CellText.html +758 -0
  443. data/test/TestSuite/HTML-Reports/ColumnPeriods.html +156 -0
  444. data/test/TestSuite/HTML-Reports/IsOngoing.html +172 -0
  445. data/test/TestSuite/HTML-Reports/LogicalFunctions.html +245 -0
  446. data/test/TestSuite/HTML-Reports/Query.html +31 -0
  447. data/test/TestSuite/HTML-Reports/css/tjmanual.css +14 -0
  448. data/test/TestSuite/HTML-Reports/css/tjreport.css +233 -21
  449. data/test/TestSuite/HTML-Reports/depArrows.html +842 -0
  450. data/test/TestSuite/HTML-Reports/scripts/scripts/wz_tooltip.js +1301 -0
  451. data/test/TestSuite/HTML-Reports/scripts/wz_tooltip.js +20 -20
  452. data/test/TestSuite/ReportGenerator/Correct/Alerts.tjp +48 -0
  453. data/test/TestSuite/ReportGenerator/Correct/Macros.tjp +57 -0
  454. data/test/TestSuite/ReportGenerator/Correct/refs/Alerts-1.csv +386 -0
  455. data/test/TestSuite/ReportGenerator/Correct/refs/Macros-1.csv +6 -0
  456. data/test/TestSuite/ReportGenerator/{Correct → Errors}/css/tjmanual.css +0 -0
  457. data/test/TestSuite/ReportGenerator/{Correct → Errors}/css/tjreport.css +0 -0
  458. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/details.png +0 -0
  459. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/flag-green.png +0 -0
  460. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/flag-red.png +0 -0
  461. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/flag-yellow.png +0 -0
  462. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/resource.png +0 -0
  463. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/resourcegroup.png +0 -0
  464. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/task.png +0 -0
  465. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/taskgroup.png +0 -0
  466. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/trend-down.png +0 -0
  467. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/trend-flat.png +0 -0
  468. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/trend-up.png +0 -0
  469. data/test/TestSuite/ReportGenerator/Errors/rtp_report_recursion.html +26 -0
  470. data/test/TestSuite/ReportGenerator/{Correct → Errors}/scripts/wz_tooltip.js +0 -0
  471. data/test/TestSuite/Scheduler/Correct/Allocate.html +3210 -0
  472. data/test/TestSuite/Scheduler/Correct/Allocate.tjp +19 -0
  473. data/test/TestSuite/Scheduler/Correct/Container.html +22 -22
  474. data/test/TestSuite/Scheduler/Correct/Limits.html +4964 -0
  475. data/test/TestSuite/Scheduler/Correct/Shift.html +1707 -417
  476. data/test/TestSuite/Scheduler/Correct/Shift2.html +9 -9
  477. data/test/TestSuite/Scheduler/Correct/css/tjreport.css +6 -2
  478. data/test/TestSuite/Scheduler/Errors/css/tjmanual.css +66 -0
  479. data/test/TestSuite/Scheduler/Errors/css/tjreport.css +407 -0
  480. data/test/TestSuite/Scheduler/Errors/icons/details.png +0 -0
  481. data/test/TestSuite/Scheduler/Errors/icons/flag-green.png +0 -0
  482. data/test/TestSuite/Scheduler/Errors/icons/flag-red.png +0 -0
  483. data/test/TestSuite/Scheduler/Errors/icons/flag-yellow.png +0 -0
  484. data/test/TestSuite/Scheduler/Errors/icons/resource.png +0 -0
  485. data/test/TestSuite/Scheduler/Errors/icons/resourcegroup.png +0 -0
  486. data/test/TestSuite/Scheduler/Errors/icons/task.png +0 -0
  487. data/test/TestSuite/Scheduler/Errors/icons/taskgroup.png +0 -0
  488. data/test/TestSuite/Scheduler/Errors/icons/trend-down.png +0 -0
  489. data/test/TestSuite/Scheduler/Errors/icons/trend-flat.png +0 -0
  490. data/test/TestSuite/Scheduler/Errors/icons/trend-up.png +0 -0
  491. data/test/TestSuite/Scheduler/Errors/loop_detected_1.tjp +1 -1
  492. data/test/TestSuite/Scheduler/Errors/loop_detected_10.tjp +1 -1
  493. data/test/TestSuite/Scheduler/Errors/loop_detected_11.tjp +1 -1
  494. data/test/TestSuite/Scheduler/Errors/loop_detected_12.tjp +1 -1
  495. data/test/TestSuite/Scheduler/Errors/loop_detected_13.tjp +1 -1
  496. data/test/TestSuite/Scheduler/Errors/loop_detected_14.tjp +1 -1
  497. data/test/TestSuite/Scheduler/Errors/loop_detected_2.tjp +1 -1
  498. data/test/TestSuite/Scheduler/Errors/loop_detected_3.tjp +1 -1
  499. data/test/TestSuite/Scheduler/Errors/loop_detected_4.tjp +1 -1
  500. data/test/TestSuite/Scheduler/Errors/loop_detected_5.tjp +1 -1
  501. data/test/TestSuite/Scheduler/Errors/loop_detected_6.tjp +1 -1
  502. data/test/TestSuite/Scheduler/Errors/loop_detected_7.tjp +1 -1
  503. data/test/TestSuite/Scheduler/Errors/loop_detected_8.tjp +1 -1
  504. data/test/TestSuite/Scheduler/Errors/loop_detected_9.tjp +1 -1
  505. data/test/TestSuite/Scheduler/Errors/scripts/wz_tooltip.js +1301 -0
  506. data/test/TestSuite/Scheduler/Errors/task_pred_before.tjp +11 -0
  507. data/test/TestSuite/Scheduler/Errors/task_pred_before_gd.tjp +11 -0
  508. data/test/TestSuite/Scheduler/Errors/task_pred_before_gl.tjp +11 -0
  509. data/test/TestSuite/Scheduler/Errors/task_succ_after.tjp +12 -0
  510. data/test/TestSuite/Scheduler/Errors/task_succ_after_gd.tjp +12 -0
  511. data/test/TestSuite/Scheduler/Errors/task_succ_after_gl.tjp +12 -0
  512. data/test/TestSuite/StatusSheets/dev2.tji +22 -0
  513. data/test/TestSuite/StatusSheets/resrep.tji +7 -0
  514. data/test/TestSuite/StatusSheets/run +6 -4
  515. data/test/TestSuite/StatusSheets/tj3d.log +312 -0
  516. data/test/TestSuite/Syntax/Correct/Managers.html +263 -0
  517. data/test/TestSuite/Syntax/Correct/tutorial.tjp +1 -2
  518. data/test/TestSuite/Syntax/Errors/empty.tjp +1 -1
  519. data/test/TestSuite/Syntax/Errors/macro_stack_overflow.tjp +1 -1
  520. data/test/TestSuite/TimeSheets/acceptable_intervals +1 -0
  521. data/test/TestSuite/TimeSheets/resrep.tji +7 -0
  522. data/test/TestSuite/TimeSheets/run +6 -5
  523. data/test/TestSuite/TimeSheets/statussheets.log +1 -0
  524. data/test/TestSuite/TimeSheets/ts.tji +351 -0
  525. data/test/TestSuite/TimeSheets/tsdef.tji +2 -0
  526. data/test/test_PropertySet.rb +2 -2
  527. data/test/test_RichText.rb +178 -387
  528. data/test/test_SimpleQueryExpander.rb +55 -0
  529. data/test/test_deep_copy.rb +2 -2
  530. metadata +854 -834
  531. data/lib/MacroParser.rb +0 -77
  532. data/lib/Message.rb +0 -56
  533. data/lib/ruby-signal-bug.rb +0 -43
  534. data/test/TestSuite/HTML-Reports/TimeSheet.html +0 -79
  535. data/test/TestSuite/HTML-Reports/reference.html +0 -51
  536. data/test/TestSuite/ReportGenerator/Correct/Journal.html +0 -63
  537. data/test/TestSuite/ReportGenerator/Correct/LogicalFunctions2.csv +0 -3
  538. data/test/TestSuite/ReportGenerator/Correct/opennodes.csv +0 -2
  539. data/test/TestSuite/ReportGenerator/Correct/opennodes.tjp +0 -26
  540. data/test/TestSuite/ReportGenerator/Correct/refs/opennodes-1.csv +0 -2
  541. data/test/TestSuite/Scheduler/Correct/Booking2.html +0 -603
  542. data/test/TestSuite/Scheduler/Correct/TimeSheet2.html +0 -108
  543. data/test/TestSuite/StatusSheetTemplates/project.tji +0 -35
  544. data/test/TestSuite/StatusSheetTemplates/project.tjp +0 -56
  545. data/test/TestSuite/Syntax/Correct/ResourcePrefix.html +0 -32
@@ -165,6 +165,10 @@
165
165
 
166
166
  <li><a href="../TaskJuggler/DurationAttribute.html">TaskJuggler::DurationAttribute</a></li>
167
167
 
168
+ <li><a href="../TaskJuggler/FileList.html">TaskJuggler::FileList</a></li>
169
+
170
+ <li><a href="../TaskJuggler/FileRecord.html">TaskJuggler::FileRecord</a></li>
171
+
168
172
  <li><a href="../TaskJuggler/FixnumAttribute.html">TaskJuggler::FixnumAttribute</a></li>
169
173
 
170
174
  <li><a href="../TaskJuggler/FlagListAttribute.html">TaskJuggler::FlagListAttribute</a></li>
@@ -237,8 +241,6 @@
237
241
 
238
242
  <li><a href="../TaskJuggler/Macro.html">TaskJuggler::Macro</a></li>
239
243
 
240
- <li><a href="../TaskJuggler/MacroParser.html">TaskJuggler::MacroParser</a></li>
241
-
242
244
  <li><a href="../TaskJuggler/MacroTable.html">TaskJuggler::MacroTable</a></li>
243
245
 
244
246
  <li><a href="../TaskJuggler/ManagerResponsibilities.html">TaskJuggler::ManagerResponsibilities</a></li>
@@ -303,6 +305,8 @@
303
305
 
304
306
  <li><a href="../TaskJuggler/RTFReportLink.html">TaskJuggler::RTFReportLink</a></li>
305
307
 
308
+ <li><a href="../TaskJuggler/RTFWithQuerySupport.html">TaskJuggler::RTFWithQuerySupport</a></li>
309
+
306
310
  <li><a href="../TaskJuggler/RealFormat.html">TaskJuggler::RealFormat</a></li>
307
311
 
308
312
  <li><a href="../TaskJuggler/RealFormatAttribute.html">TaskJuggler::RealFormatAttribute</a></li>
@@ -349,8 +353,6 @@
349
353
 
350
354
  <li><a href="../TaskJuggler/RichTextElement.html">TaskJuggler::RichTextElement</a></li>
351
355
 
352
- <li><a href="../TaskJuggler/RichTextException.html">TaskJuggler::RichTextException</a></li>
353
-
354
356
  <li><a href="../TaskJuggler/RichTextFunctionExample.html">TaskJuggler::RichTextFunctionExample</a></li>
355
357
 
356
358
  <li><a href="../TaskJuggler/RichTextFunctionHandler.html">TaskJuggler::RichTextFunctionHandler</a></li>
@@ -391,6 +393,8 @@
391
393
 
392
394
  <li><a href="../TaskJuggler/ShiftScenario.html">TaskJuggler::ShiftScenario</a></li>
393
395
 
396
+ <li><a href="../TaskJuggler/SimpleQueryExpander.html">TaskJuggler::SimpleQueryExpander</a></li>
397
+
394
398
  <li><a href="../TaskJuggler/SortListAttribute.html">TaskJuggler::SortListAttribute</a></li>
395
399
 
396
400
  <li><a href="../TaskJuggler/SourceFileInfo.html">TaskJuggler::SourceFileInfo</a></li>
@@ -501,6 +505,8 @@
501
505
 
502
506
  <li><a href="../TaskJuggler/UserManual.html">TaskJuggler::UserManual</a></li>
503
507
 
508
+ <li><a href="../TaskJuggler/VimSyntax.html">TaskJuggler::VimSyntax</a></li>
509
+
504
510
  <li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
505
511
 
506
512
  <li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
@@ -638,18 +644,18 @@ href="ProjectServer.html">ProjectServer</a>.
638
644
  <div class="method-source-code"
639
645
  id="new-source">
640
646
  <pre>
641
- <span class="ruby-comment cmt"># File lib/daemon/ProjectServer.rb, line 345</span>
642
- 345: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">tag</span>)
643
- 346: <span class="ruby-comment cmt"># A random tag to uniquely identify the entry.</span>
644
- 347: <span class="ruby-ivar">@tag</span> = <span class="ruby-identifier">tag</span>
645
- 348: <span class="ruby-comment cmt"># The URI of the ReportServer process.</span>
646
- 349: <span class="ruby-ivar">@uri</span> = <span class="ruby-keyword kw">nil</span>
647
- 350: <span class="ruby-comment cmt"># The authentication key of the ReportServer.</span>
648
- 351: <span class="ruby-ivar">@authKey</span> = <span class="ruby-keyword kw">nil</span>
649
- 352: <span class="ruby-comment cmt"># The DRbObject of the ReportServer.</span>
650
- 353: <span class="ruby-ivar">@reportServer</span> = <span class="ruby-keyword kw">nil</span>
651
- 354: <span class="ruby-ivar">@log</span> = <span class="ruby-constant">LogFile</span>.<span class="ruby-identifier">instance</span>
652
- 355: <span class="ruby-keyword kw">end</span></pre>
647
+ <span class="ruby-comment cmt"># File lib/daemon/ProjectServer.rb, line 385</span>
648
+ 385: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">tag</span>)
649
+ 386: <span class="ruby-comment cmt"># A random tag to uniquely identify the entry.</span>
650
+ 387: <span class="ruby-ivar">@tag</span> = <span class="ruby-identifier">tag</span>
651
+ 388: <span class="ruby-comment cmt"># The URI of the ReportServer process.</span>
652
+ 389: <span class="ruby-ivar">@uri</span> = <span class="ruby-keyword kw">nil</span>
653
+ 390: <span class="ruby-comment cmt"># The authentication key of the ReportServer.</span>
654
+ 391: <span class="ruby-ivar">@authKey</span> = <span class="ruby-keyword kw">nil</span>
655
+ 392: <span class="ruby-comment cmt"># The DRbObject of the ReportServer.</span>
656
+ 393: <span class="ruby-ivar">@reportServer</span> = <span class="ruby-keyword kw">nil</span>
657
+ 394: <span class="ruby-ivar">@log</span> = <span class="ruby-constant">LogFile</span>.<span class="ruby-identifier">instance</span>
658
+ 395: <span class="ruby-keyword kw">end</span></pre>
653
659
  </div>
654
660
 
655
661
  </div>
@@ -690,22 +696,22 @@ terminated and we can remove it from the list of active ReportServers.
690
696
  <div class="method-source-code"
691
697
  id="ping-source">
692
698
  <pre>
693
- <span class="ruby-comment cmt"># File lib/daemon/ProjectServer.rb, line 360</span>
694
- 360: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">ping</span>
695
- 361: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@uri</span>
696
- 362:
697
- 363: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;Sending ping to ReportServer #{@uri}&quot;</span>)
698
- 364: <span class="ruby-keyword kw">begin</span>
699
- 365: <span class="ruby-ivar">@reportServer</span> = <span class="ruby-constant">DRbObject</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">nil</span>, <span class="ruby-ivar">@uri</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@reportServer</span>
700
- 366: <span class="ruby-ivar">@reportServer</span>.<span class="ruby-identifier">ping</span>(<span class="ruby-ivar">@authKey</span>)
701
- 367: <span class="ruby-keyword kw">rescue</span>
702
- 368: <span class="ruby-comment cmt"># ReportServer processes terminate on request of their clients. Not</span>
703
- 369: <span class="ruby-comment cmt"># responding to a ping is a normal event.</span>
704
- 370: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;ReportServer (#{@uri}) has terminated&quot;</span>)
705
- 371: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
706
- 372: <span class="ruby-keyword kw">end</span>
707
- 373: <span class="ruby-keyword kw">true</span>
708
- 374: <span class="ruby-keyword kw">end</span></pre>
699
+ <span class="ruby-comment cmt"># File lib/daemon/ProjectServer.rb, line 400</span>
700
+ 400: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">ping</span>
701
+ 401: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@uri</span>
702
+ 402:
703
+ 403: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;Sending ping to ReportServer #{@uri}&quot;</span>)
704
+ 404: <span class="ruby-keyword kw">begin</span>
705
+ 405: <span class="ruby-ivar">@reportServer</span> = <span class="ruby-constant">DRbObject</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">nil</span>, <span class="ruby-ivar">@uri</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@reportServer</span>
706
+ 406: <span class="ruby-ivar">@reportServer</span>.<span class="ruby-identifier">ping</span>(<span class="ruby-ivar">@authKey</span>)
707
+ 407: <span class="ruby-keyword kw">rescue</span>
708
+ 408: <span class="ruby-comment cmt"># ReportServer processes terminate on request of their clients. Not</span>
709
+ 409: <span class="ruby-comment cmt"># responding to a ping is a normal event.</span>
710
+ 410: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;ReportServer (#{@uri}) has terminated&quot;</span>)
711
+ 411: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
712
+ 412: <span class="ruby-keyword kw">end</span>
713
+ 413: <span class="ruby-keyword kw">true</span>
714
+ 414: <span class="ruby-keyword kw">end</span></pre>
709
715
  </div>
710
716
 
711
717
  </div>
@@ -177,6 +177,10 @@
177
177
 
178
178
  <li><a href="../TaskJuggler/DurationAttribute.html">TaskJuggler::DurationAttribute</a></li>
179
179
 
180
+ <li><a href="../TaskJuggler/FileList.html">TaskJuggler::FileList</a></li>
181
+
182
+ <li><a href="../TaskJuggler/FileRecord.html">TaskJuggler::FileRecord</a></li>
183
+
180
184
  <li><a href="../TaskJuggler/FixnumAttribute.html">TaskJuggler::FixnumAttribute</a></li>
181
185
 
182
186
  <li><a href="../TaskJuggler/FlagListAttribute.html">TaskJuggler::FlagListAttribute</a></li>
@@ -249,8 +253,6 @@
249
253
 
250
254
  <li><a href="../TaskJuggler/Macro.html">TaskJuggler::Macro</a></li>
251
255
 
252
- <li><a href="../TaskJuggler/MacroParser.html">TaskJuggler::MacroParser</a></li>
253
-
254
256
  <li><a href="../TaskJuggler/MacroTable.html">TaskJuggler::MacroTable</a></li>
255
257
 
256
258
  <li><a href="../TaskJuggler/ManagerResponsibilities.html">TaskJuggler::ManagerResponsibilities</a></li>
@@ -315,6 +317,8 @@
315
317
 
316
318
  <li><a href="../TaskJuggler/RTFReportLink.html">TaskJuggler::RTFReportLink</a></li>
317
319
 
320
+ <li><a href="../TaskJuggler/RTFWithQuerySupport.html">TaskJuggler::RTFWithQuerySupport</a></li>
321
+
318
322
  <li><a href="../TaskJuggler/RealFormat.html">TaskJuggler::RealFormat</a></li>
319
323
 
320
324
  <li><a href="../TaskJuggler/RealFormatAttribute.html">TaskJuggler::RealFormatAttribute</a></li>
@@ -361,8 +365,6 @@
361
365
 
362
366
  <li><a href="../TaskJuggler/RichTextElement.html">TaskJuggler::RichTextElement</a></li>
363
367
 
364
- <li><a href="../TaskJuggler/RichTextException.html">TaskJuggler::RichTextException</a></li>
365
-
366
368
  <li><a href="../TaskJuggler/RichTextFunctionExample.html">TaskJuggler::RichTextFunctionExample</a></li>
367
369
 
368
370
  <li><a href="../TaskJuggler/RichTextFunctionHandler.html">TaskJuggler::RichTextFunctionHandler</a></li>
@@ -403,6 +405,8 @@
403
405
 
404
406
  <li><a href="../TaskJuggler/ShiftScenario.html">TaskJuggler::ShiftScenario</a></li>
405
407
 
408
+ <li><a href="../TaskJuggler/SimpleQueryExpander.html">TaskJuggler::SimpleQueryExpander</a></li>
409
+
406
410
  <li><a href="../TaskJuggler/SortListAttribute.html">TaskJuggler::SortListAttribute</a></li>
407
411
 
408
412
  <li><a href="../TaskJuggler/SourceFileInfo.html">TaskJuggler::SourceFileInfo</a></li>
@@ -513,6 +517,8 @@
513
517
 
514
518
  <li><a href="../TaskJuggler/UserManual.html">TaskJuggler::UserManual</a></li>
515
519
 
520
+ <li><a href="../TaskJuggler/VimSyntax.html">TaskJuggler::VimSyntax</a></li>
521
+
516
522
  <li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
517
523
 
518
524
  <li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
@@ -590,10 +596,10 @@
590
596
  <div class="method-source-code"
591
597
  id="get-instance-source">
592
598
  <pre>
593
- <span class="ruby-comment cmt"># File lib/daemon/WebServer.rb, line 68</span>
594
- 68: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">get_instance</span>(<span class="ruby-identifier">config</span>, <span class="ruby-identifier">options</span>)
595
- 69: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">config</span>, *<span class="ruby-identifier">options</span>)
596
- 70: <span class="ruby-keyword kw">end</span></pre>
599
+ <span class="ruby-comment cmt"># File lib/daemon/WebServer.rb, line 86</span>
600
+ 86: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">get_instance</span>(<span class="ruby-identifier">config</span>, <span class="ruby-identifier">options</span>)
601
+ 87: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">config</span>, *<span class="ruby-identifier">options</span>)
602
+ 88: <span class="ruby-keyword kw">end</span></pre>
597
603
  </div>
598
604
 
599
605
  </div>
@@ -624,10 +630,10 @@
624
630
  <div class="method-source-code"
625
631
  id="new-source">
626
632
  <pre>
627
- <span class="ruby-comment cmt"># File lib/daemon/WebServer.rb, line 64</span>
628
- 64: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">config</span>, *<span class="ruby-identifier">options</span>)
629
- 65: <span class="ruby-ivar">@broker</span> = <span class="ruby-identifier">options</span>[<span class="ruby-value">0</span>]
630
- 66: <span class="ruby-keyword kw">end</span></pre>
633
+ <span class="ruby-comment cmt"># File lib/daemon/WebServer.rb, line 82</span>
634
+ 82: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">config</span>, *<span class="ruby-identifier">options</span>)
635
+ 83: <span class="ruby-ivar">@broker</span> = <span class="ruby-identifier">options</span>[<span class="ruby-value">0</span>]
636
+ 84: <span class="ruby-keyword kw">end</span></pre>
631
637
  </div>
632
638
 
633
639
  </div>
@@ -664,22 +670,23 @@
664
670
  <div class="method-source-code"
665
671
  id="do--source">
666
672
  <pre>
667
- <span class="ruby-comment cmt"># File lib/daemon/WebServer.rb, line 72</span>
668
- 72: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">do_GET</span>(<span class="ruby-identifier">req</span>, <span class="ruby-identifier">res</span>)
669
- 73: <span class="ruby-ivar">@req</span> = <span class="ruby-identifier">req</span>
670
- 74: <span class="ruby-ivar">@res</span> = <span class="ruby-identifier">res</span>
671
- 75: <span class="ruby-keyword kw">begin</span>
672
- 76: <span class="ruby-identifier">projectId</span> = <span class="ruby-identifier">req</span>.<span class="ruby-identifier">query</span>[<span class="ruby-value str">'project'</span>]
673
- 77: <span class="ruby-identifier">reportId</span> = <span class="ruby-identifier">req</span>.<span class="ruby-identifier">query</span>[<span class="ruby-value str">'report'</span>]
674
- 78: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">projectId</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">reportId</span>.<span class="ruby-identifier">nil?</span>
675
- 79: <span class="ruby-identifier">generateWelcomePage</span>(<span class="ruby-identifier">projectId</span>)
676
- 80: <span class="ruby-keyword kw">else</span>
677
- 81: <span class="ruby-identifier">attributes</span> = <span class="ruby-identifier">req</span>.<span class="ruby-identifier">query</span>[<span class="ruby-value str">'attributes'</span>] <span class="ruby-operator">||</span> <span class="ruby-value str">''</span>
678
- 82: <span class="ruby-identifier">generateReport</span>(<span class="ruby-identifier">projectId</span>, <span class="ruby-identifier">reportId</span>, <span class="ruby-identifier">attributes</span>)
679
- 83: <span class="ruby-keyword kw">end</span>
680
- 84: <span class="ruby-keyword kw">rescue</span>
681
- 85: <span class="ruby-keyword kw">end</span>
682
- 86: <span class="ruby-keyword kw">end</span></pre>
673
+ <span class="ruby-comment cmt"># File lib/daemon/WebServer.rb, line 90</span>
674
+ 90: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">do_GET</span>(<span class="ruby-identifier">req</span>, <span class="ruby-identifier">res</span>)
675
+ 91: <span class="ruby-ivar">@req</span> = <span class="ruby-identifier">req</span>
676
+ 92: <span class="ruby-ivar">@res</span> = <span class="ruby-identifier">res</span>
677
+ 93: <span class="ruby-keyword kw">begin</span>
678
+ 94: <span class="ruby-identifier">projectId</span> = <span class="ruby-identifier">req</span>.<span class="ruby-identifier">query</span>[<span class="ruby-value str">'project'</span>]
679
+ 95: <span class="ruby-identifier">reportId</span> = <span class="ruby-identifier">req</span>.<span class="ruby-identifier">query</span>[<span class="ruby-value str">'report'</span>]
680
+ 96: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">projectId</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">reportId</span>.<span class="ruby-identifier">nil?</span>
681
+ 97: <span class="ruby-identifier">generateWelcomePage</span>(<span class="ruby-identifier">projectId</span>)
682
+ 98: <span class="ruby-keyword kw">else</span>
683
+ 99: <span class="ruby-identifier">attributes</span> = <span class="ruby-identifier">req</span>.<span class="ruby-identifier">query</span>[<span class="ruby-value str">'attributes'</span>] <span class="ruby-operator">||</span> <span class="ruby-value str">''</span>
684
+ 100: <span class="ruby-identifier">attributes</span> = <span class="ruby-constant">URLParameter</span>.<span class="ruby-identifier">decode</span>(<span class="ruby-identifier">attributes</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">attributes</span>.<span class="ruby-identifier">empty?</span>
685
+ 101: <span class="ruby-identifier">generateReport</span>(<span class="ruby-identifier">projectId</span>, <span class="ruby-identifier">reportId</span>, <span class="ruby-identifier">attributes</span>)
686
+ 102: <span class="ruby-keyword kw">end</span>
687
+ 103: <span class="ruby-keyword kw">rescue</span>
688
+ 104: <span class="ruby-keyword kw">end</span>
689
+ 105: <span class="ruby-keyword kw">end</span></pre>
683
690
  </div>
684
691
 
685
692
  </div>
@@ -716,13 +723,13 @@
716
723
  <div class="method-source-code"
717
724
  id="error-source">
718
725
  <pre>
719
- <span class="ruby-comment cmt"># File lib/daemon/WebServer.rb, line 194</span>
720
- 194: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">error</span>(<span class="ruby-identifier">message</span>)
721
- 195: <span class="ruby-ivar">@res</span>.<span class="ruby-identifier">status</span> = <span class="ruby-value">412</span>
722
- 196: <span class="ruby-ivar">@res</span>.<span class="ruby-identifier">body</span> = <span class="ruby-node">&quot;ERROR: #{message}&quot;</span>
723
- 197: <span class="ruby-ivar">@res</span>[<span class="ruby-value str">'content-type'</span>] = <span class="ruby-value str">'text/plain'</span>
724
- 198: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Error: #{message}&quot;</span>
725
- 199: <span class="ruby-keyword kw">end</span></pre>
726
+ <span class="ruby-comment cmt"># File lib/daemon/WebServer.rb, line 213</span>
727
+ 213: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">error</span>(<span class="ruby-identifier">message</span>)
728
+ 214: <span class="ruby-ivar">@res</span>.<span class="ruby-identifier">status</span> = <span class="ruby-value">412</span>
729
+ 215: <span class="ruby-ivar">@res</span>.<span class="ruby-identifier">body</span> = <span class="ruby-node">&quot;ERROR: #{message}&quot;</span>
730
+ 216: <span class="ruby-ivar">@res</span>[<span class="ruby-value str">'content-type'</span>] = <span class="ruby-value str">'text/plain'</span>
731
+ 217: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Error: #{message}&quot;</span>
732
+ 218: <span class="ruby-keyword kw">end</span></pre>
726
733
  </div>
727
734
 
728
735
  </div>
@@ -753,62 +760,62 @@
753
760
  <div class="method-source-code"
754
761
  id="generate-eport-source">
755
762
  <pre>
756
- <span class="ruby-comment cmt"># File lib/daemon/WebServer.rb, line 90</span>
757
- 90: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateReport</span>(<span class="ruby-identifier">projectId</span>, <span class="ruby-identifier">reportId</span>, <span class="ruby-identifier">attributes</span>)
758
- 91: <span class="ruby-comment cmt"># Request the Project credentials from the ProbjectBroker.</span>
759
- 92: <span class="ruby-ivar">@ps_uri</span>, <span class="ruby-ivar">@ps_authKey</span> = <span class="ruby-ivar">@broker</span>.<span class="ruby-identifier">getProject</span>(<span class="ruby-identifier">projectId</span>)
760
- 93: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@ps_uri</span>.<span class="ruby-identifier">nil?</span>
761
- 94: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;No project with ID #{projectId} loaded&quot;</span>)
762
- 95: <span class="ruby-keyword kw">end</span>
763
- 96: <span class="ruby-comment cmt"># Get the responsible ReportServer that can generate the report.</span>
764
- 97: <span class="ruby-keyword kw">begin</span>
765
- 98: <span class="ruby-ivar">@projectServer</span> = <span class="ruby-constant">DRbObject</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">nil</span>, <span class="ruby-ivar">@ps_uri</span>)
766
- 99: <span class="ruby-ivar">@rs_uri</span>, <span class="ruby-ivar">@rs_authKey</span> = <span class="ruby-ivar">@projectServer</span>.<span class="ruby-identifier">getReportServer</span>(<span class="ruby-ivar">@ps_authKey</span>)
767
- 100: <span class="ruby-ivar">@reportServer</span> = <span class="ruby-constant">DRbObject</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">nil</span>, <span class="ruby-ivar">@rs_uri</span>)
768
- 101: <span class="ruby-keyword kw">rescue</span>
769
- 102: <span class="ruby-identifier">error</span>(<span class="ruby-value str">&quot;Cannot get report server&quot;</span>)
770
- 103: <span class="ruby-keyword kw">end</span>
771
- 104: <span class="ruby-comment cmt"># Create two StringIO buffers that will receive the $stdout and $stderr</span>
772
- 105: <span class="ruby-comment cmt"># text from the report server. This buffer will contain the generated</span>
773
- 106: <span class="ruby-comment cmt"># report as HTML encoded text.</span>
774
- 107: <span class="ruby-identifier">stdOut</span> = <span class="ruby-constant">StringIO</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">''</span>)
775
- 108: <span class="ruby-identifier">stdErr</span> = <span class="ruby-constant">StringIO</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">''</span>)
776
- 109: <span class="ruby-keyword kw">begin</span>
777
- 110: <span class="ruby-ivar">@reportServer</span>.<span class="ruby-identifier">connect</span>(<span class="ruby-ivar">@rs_authKey</span>, <span class="ruby-identifier">stdOut</span>, <span class="ruby-identifier">stdErr</span>, <span class="ruby-identifier">$stdin</span>, <span class="ruby-keyword kw">true</span>)
778
- 111: <span class="ruby-keyword kw">rescue</span>
779
- 112: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Can't connect IO: #{$!}&quot;</span>)
780
- 113: <span class="ruby-keyword kw">end</span>
781
- 114:
782
- 115: <span class="ruby-comment cmt"># Ask the ReportServer to generate the reports with the provided ID.</span>
763
+ <span class="ruby-comment cmt"># File lib/daemon/WebServer.rb, line 109</span>
764
+ 109: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateReport</span>(<span class="ruby-identifier">projectId</span>, <span class="ruby-identifier">reportId</span>, <span class="ruby-identifier">attributes</span>)
765
+ 110: <span class="ruby-comment cmt"># Request the Project credentials from the ProbjectBroker.</span>
766
+ 111: <span class="ruby-ivar">@ps_uri</span>, <span class="ruby-ivar">@ps_authKey</span> = <span class="ruby-ivar">@broker</span>.<span class="ruby-identifier">getProject</span>(<span class="ruby-identifier">projectId</span>)
767
+ 112: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@ps_uri</span>.<span class="ruby-identifier">nil?</span>
768
+ 113: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;No project with ID #{projectId} loaded&quot;</span>)
769
+ 114: <span class="ruby-keyword kw">end</span>
770
+ 115: <span class="ruby-comment cmt"># Get the responsible ReportServer that can generate the report.</span>
783
771
  116: <span class="ruby-keyword kw">begin</span>
784
- 117: <span class="ruby-ivar">@reportServer</span>.<span class="ruby-identifier">generateReport</span>(<span class="ruby-ivar">@rs_authKey</span>, <span class="ruby-identifier">reportId</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-identifier">attributes</span>)
785
- 118: <span class="ruby-keyword kw">rescue</span>
786
- 119: <span class="ruby-identifier">stdOut</span>.<span class="ruby-identifier">rewind</span>
787
- 120: <span class="ruby-identifier">stdErr</span>.<span class="ruby-identifier">rewind</span>
788
- 121: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Report server crashed: #{$!}\n#{stdErr.read}\n#{stdOut.read}&quot;</span>)
772
+ 117: <span class="ruby-ivar">@projectServer</span> = <span class="ruby-constant">DRbObject</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">nil</span>, <span class="ruby-ivar">@ps_uri</span>)
773
+ 118: <span class="ruby-ivar">@rs_uri</span>, <span class="ruby-ivar">@rs_authKey</span> = <span class="ruby-ivar">@projectServer</span>.<span class="ruby-identifier">getReportServer</span>(<span class="ruby-ivar">@ps_authKey</span>)
774
+ 119: <span class="ruby-ivar">@reportServer</span> = <span class="ruby-constant">DRbObject</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">nil</span>, <span class="ruby-ivar">@rs_uri</span>)
775
+ 120: <span class="ruby-keyword kw">rescue</span>
776
+ 121: <span class="ruby-identifier">error</span>(<span class="ruby-value str">&quot;Cannot get report server&quot;</span>)
789
777
  122: <span class="ruby-keyword kw">end</span>
790
- 123: <span class="ruby-comment cmt"># Disconnect the ReportServer</span>
791
- 124: <span class="ruby-keyword kw">begin</span>
792
- 125: <span class="ruby-ivar">@reportServer</span>.<span class="ruby-identifier">disconnect</span>(<span class="ruby-ivar">@rs_authKey</span>)
793
- 126: <span class="ruby-keyword kw">rescue</span>
794
- 127: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Can't disconnect IO: #{$!}&quot;</span>)
795
- 128: <span class="ruby-keyword kw">end</span>
796
- 129: <span class="ruby-comment cmt"># And send a termination request.</span>
797
- 130: <span class="ruby-keyword kw">begin</span>
798
- 131: <span class="ruby-ivar">@reportServer</span>.<span class="ruby-identifier">terminate</span>(<span class="ruby-ivar">@rs_authKey</span>)
799
- 132: <span class="ruby-keyword kw">rescue</span>
800
- 133: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Report server termination failed: #{$!}&quot;</span>)
801
- 134: <span class="ruby-keyword kw">end</span>
802
- 135: <span class="ruby-ivar">@reportServer</span> = <span class="ruby-keyword kw">nil</span>
803
- 136:
804
- 137: <span class="ruby-ivar">@res</span>[<span class="ruby-value str">'content-type'</span>] = <span class="ruby-value str">'text/html'</span>
805
- 138: <span class="ruby-identifier">stdErr</span>.<span class="ruby-identifier">rewind</span>
806
- 139: <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">puts</span> <span class="ruby-identifier">stdErr</span>.<span class="ruby-identifier">read</span>
807
- 140: <span class="ruby-comment cmt"># To read the $stdout of the ReportServer we need to rewind the buffer</span>
808
- 141: <span class="ruby-comment cmt"># and then read the full text.</span>
809
- 142: <span class="ruby-identifier">stdOut</span>.<span class="ruby-identifier">rewind</span>
810
- 143: <span class="ruby-ivar">@res</span>.<span class="ruby-identifier">body</span> = <span class="ruby-identifier">stdOut</span>.<span class="ruby-identifier">read</span>
811
- 144: <span class="ruby-keyword kw">end</span></pre>
778
+ 123: <span class="ruby-comment cmt"># Create two StringIO buffers that will receive the $stdout and $stderr</span>
779
+ 124: <span class="ruby-comment cmt"># text from the report server. This buffer will contain the generated</span>
780
+ 125: <span class="ruby-comment cmt"># report as HTML encoded text.</span>
781
+ 126: <span class="ruby-identifier">stdOut</span> = <span class="ruby-constant">StringIO</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">''</span>)
782
+ 127: <span class="ruby-identifier">stdErr</span> = <span class="ruby-constant">StringIO</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">''</span>)
783
+ 128: <span class="ruby-keyword kw">begin</span>
784
+ 129: <span class="ruby-ivar">@reportServer</span>.<span class="ruby-identifier">connect</span>(<span class="ruby-ivar">@rs_authKey</span>, <span class="ruby-identifier">stdOut</span>, <span class="ruby-identifier">stdErr</span>, <span class="ruby-identifier">$stdin</span>, <span class="ruby-keyword kw">true</span>)
785
+ 130: <span class="ruby-keyword kw">rescue</span>
786
+ 131: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Can't connect IO: #{$!}&quot;</span>)
787
+ 132: <span class="ruby-keyword kw">end</span>
788
+ 133:
789
+ 134: <span class="ruby-comment cmt"># Ask the ReportServer to generate the reports with the provided ID.</span>
790
+ 135: <span class="ruby-keyword kw">begin</span>
791
+ 136: <span class="ruby-ivar">@reportServer</span>.<span class="ruby-identifier">generateReport</span>(<span class="ruby-ivar">@rs_authKey</span>, <span class="ruby-identifier">reportId</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-identifier">attributes</span>)
792
+ 137: <span class="ruby-keyword kw">rescue</span>
793
+ 138: <span class="ruby-identifier">stdOut</span>.<span class="ruby-identifier">rewind</span>
794
+ 139: <span class="ruby-identifier">stdErr</span>.<span class="ruby-identifier">rewind</span>
795
+ 140: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Report server crashed: #{$!}\n#{stdErr.read}\n#{stdOut.read}&quot;</span>)
796
+ 141: <span class="ruby-keyword kw">end</span>
797
+ 142: <span class="ruby-comment cmt"># Disconnect the ReportServer</span>
798
+ 143: <span class="ruby-keyword kw">begin</span>
799
+ 144: <span class="ruby-ivar">@reportServer</span>.<span class="ruby-identifier">disconnect</span>(<span class="ruby-ivar">@rs_authKey</span>)
800
+ 145: <span class="ruby-keyword kw">rescue</span>
801
+ 146: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Can't disconnect IO: #{$!}&quot;</span>)
802
+ 147: <span class="ruby-keyword kw">end</span>
803
+ 148: <span class="ruby-comment cmt"># And send a termination request.</span>
804
+ 149: <span class="ruby-keyword kw">begin</span>
805
+ 150: <span class="ruby-ivar">@reportServer</span>.<span class="ruby-identifier">terminate</span>(<span class="ruby-ivar">@rs_authKey</span>)
806
+ 151: <span class="ruby-keyword kw">rescue</span>
807
+ 152: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Report server termination failed: #{$!}&quot;</span>)
808
+ 153: <span class="ruby-keyword kw">end</span>
809
+ 154: <span class="ruby-ivar">@reportServer</span> = <span class="ruby-keyword kw">nil</span>
810
+ 155:
811
+ 156: <span class="ruby-ivar">@res</span>[<span class="ruby-value str">'content-type'</span>] = <span class="ruby-value str">'text/html'</span>
812
+ 157: <span class="ruby-identifier">stdErr</span>.<span class="ruby-identifier">rewind</span>
813
+ 158: <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">puts</span> <span class="ruby-identifier">stdErr</span>.<span class="ruby-identifier">read</span>
814
+ 159: <span class="ruby-comment cmt"># To read the $stdout of the ReportServer we need to rewind the buffer</span>
815
+ 160: <span class="ruby-comment cmt"># and then read the full text.</span>
816
+ 161: <span class="ruby-identifier">stdOut</span>.<span class="ruby-identifier">rewind</span>
817
+ 162: <span class="ruby-ivar">@res</span>.<span class="ruby-identifier">body</span> = <span class="ruby-identifier">stdOut</span>.<span class="ruby-identifier">read</span>
818
+ 163: <span class="ruby-keyword kw">end</span></pre>
812
819
  </div>
813
820
 
814
821
  </div>
@@ -839,38 +846,38 @@
839
846
  <div class="method-source-code"
840
847
  id="generate-elcome-age-source">
841
848
  <pre>
842
- <span class="ruby-comment cmt"># File lib/daemon/WebServer.rb, line 146</span>
843
- 146: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateWelcomePage</span>(<span class="ruby-identifier">projectId</span>)
844
- 147: <span class="ruby-identifier">projects</span> = <span class="ruby-ivar">@broker</span>.<span class="ruby-identifier">getProjectList</span>
845
- 148:
846
- 149: <span class="ruby-identifier">text</span> = <span class="ruby-value str">&quot;== Welcome to the TaskJuggler Project Server ==\n----\n&quot;</span>
847
- 150: <span class="ruby-identifier">projects</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">id</span><span class="ruby-operator">|</span>
848
- 151: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">id</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">projectId</span>
849
- 152: <span class="ruby-comment cmt"># Show the list of reports for this project.</span>
850
- 153: <span class="ruby-identifier">text</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;* [/taskjuggler #{getProjectName(id)}]\n&quot;</span>
851
- 154: <span class="ruby-identifier">reports</span> = <span class="ruby-identifier">getReportList</span>(<span class="ruby-identifier">id</span>)
852
- 155: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">reports</span>.<span class="ruby-identifier">empty?</span>
853
- 156: <span class="ruby-identifier">text</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;** This project has no reports defined.\n&quot;</span>
854
- 157: <span class="ruby-keyword kw">else</span>
855
- 158: <span class="ruby-identifier">reports</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">reportId</span>, <span class="ruby-identifier">reportName</span><span class="ruby-operator">|</span>
856
- 159: <span class="ruby-identifier">text</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;** [/taskjuggler?project=#{id};report=#{reportId} &quot;</span> <span class="ruby-operator">+</span>
857
- 160: <span class="ruby-node">&quot;#{reportName}]\n&quot;</span>
858
- 161: <span class="ruby-keyword kw">end</span>
859
- 162: <span class="ruby-keyword kw">end</span>
860
- 163: <span class="ruby-keyword kw">else</span>
861
- 164: <span class="ruby-comment cmt"># Just show a link to open the report list.</span>
862
- 165: <span class="ruby-identifier">text</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;* [/taskjuggler?project=#{id} #{getProjectName(id)}]\n&quot;</span>
863
- 166: <span class="ruby-keyword kw">end</span>
864
- 167: <span class="ruby-keyword kw">end</span>
865
- 168: <span class="ruby-identifier">rt</span> = <span class="ruby-constant">RichText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">text</span>)
866
- 169: <span class="ruby-identifier">rti</span> = <span class="ruby-identifier">rt</span>.<span class="ruby-identifier">generateIntermediateFormat</span>
867
- 170: <span class="ruby-identifier">rti</span>.<span class="ruby-identifier">sectionNumbers</span> = <span class="ruby-keyword kw">false</span>
868
- 171: <span class="ruby-identifier">page</span> = <span class="ruby-constant">HTMLDocument</span>.<span class="ruby-identifier">new</span>
869
- 172: <span class="ruby-identifier">page</span>.<span class="ruby-identifier">generateHead</span>(<span class="ruby-value str">&quot;The TaskJuggler Project Server&quot;</span>)
870
- 173: <span class="ruby-identifier">page</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">rti</span>.<span class="ruby-identifier">to_html</span>
871
- 174: <span class="ruby-ivar">@res</span>[<span class="ruby-value str">'content-type'</span>] = <span class="ruby-value str">'text/html'</span>
872
- 175: <span class="ruby-ivar">@res</span>.<span class="ruby-identifier">body</span> = <span class="ruby-identifier">page</span>.<span class="ruby-identifier">to_s</span>
873
- 176: <span class="ruby-keyword kw">end</span></pre>
849
+ <span class="ruby-comment cmt"># File lib/daemon/WebServer.rb, line 165</span>
850
+ 165: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateWelcomePage</span>(<span class="ruby-identifier">projectId</span>)
851
+ 166: <span class="ruby-identifier">projects</span> = <span class="ruby-ivar">@broker</span>.<span class="ruby-identifier">getProjectList</span>
852
+ 167:
853
+ 168: <span class="ruby-identifier">text</span> = <span class="ruby-value str">&quot;== Welcome to the TaskJuggler Project Server ==\n----\n&quot;</span>
854
+ 169: <span class="ruby-identifier">projects</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">id</span><span class="ruby-operator">|</span>
855
+ 170: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">id</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">projectId</span>
856
+ 171: <span class="ruby-comment cmt"># Show the list of reports for this project.</span>
857
+ 172: <span class="ruby-identifier">text</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;* [/taskjuggler #{getProjectName(id)}]\n&quot;</span>
858
+ 173: <span class="ruby-identifier">reports</span> = <span class="ruby-identifier">getReportList</span>(<span class="ruby-identifier">id</span>)
859
+ 174: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">reports</span>.<span class="ruby-identifier">empty?</span>
860
+ 175: <span class="ruby-identifier">text</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;** This project has no reports defined.\n&quot;</span>
861
+ 176: <span class="ruby-keyword kw">else</span>
862
+ 177: <span class="ruby-identifier">reports</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">reportId</span>, <span class="ruby-identifier">reportName</span><span class="ruby-operator">|</span>
863
+ 178: <span class="ruby-identifier">text</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;** [/taskjuggler?project=#{id};report=#{reportId} &quot;</span> <span class="ruby-operator">+</span>
864
+ 179: <span class="ruby-node">&quot;#{reportName}]\n&quot;</span>
865
+ 180: <span class="ruby-keyword kw">end</span>
866
+ 181: <span class="ruby-keyword kw">end</span>
867
+ 182: <span class="ruby-keyword kw">else</span>
868
+ 183: <span class="ruby-comment cmt"># Just show a link to open the report list.</span>
869
+ 184: <span class="ruby-identifier">text</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;* [/taskjuggler?project=#{id} #{getProjectName(id)}]\n&quot;</span>
870
+ 185: <span class="ruby-keyword kw">end</span>
871
+ 186: <span class="ruby-keyword kw">end</span>
872
+ 187: <span class="ruby-identifier">rt</span> = <span class="ruby-constant">RichText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">text</span>)
873
+ 188: <span class="ruby-identifier">rti</span> = <span class="ruby-identifier">rt</span>.<span class="ruby-identifier">generateIntermediateFormat</span>
874
+ 189: <span class="ruby-identifier">rti</span>.<span class="ruby-identifier">sectionNumbers</span> = <span class="ruby-keyword kw">false</span>
875
+ 190: <span class="ruby-identifier">page</span> = <span class="ruby-constant">HTMLDocument</span>.<span class="ruby-identifier">new</span>
876
+ 191: <span class="ruby-identifier">page</span>.<span class="ruby-identifier">generateHead</span>(<span class="ruby-value str">&quot;The TaskJuggler Project Server&quot;</span>)
877
+ 192: <span class="ruby-identifier">page</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">rti</span>.<span class="ruby-identifier">to_html</span>
878
+ 193: <span class="ruby-ivar">@res</span>[<span class="ruby-value str">'content-type'</span>] = <span class="ruby-value str">'text/html'</span>
879
+ 194: <span class="ruby-ivar">@res</span>.<span class="ruby-identifier">body</span> = <span class="ruby-identifier">page</span>.<span class="ruby-identifier">to_s</span>
880
+ 195: <span class="ruby-keyword kw">end</span></pre>
874
881
  </div>
875
882
 
876
883
  </div>
@@ -901,14 +908,14 @@
901
908
  <div class="method-source-code"
902
909
  id="get-roject-ame-source">
903
910
  <pre>
904
- <span class="ruby-comment cmt"># File lib/daemon/WebServer.rb, line 178</span>
905
- 178: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">getProjectName</span>(<span class="ruby-identifier">id</span>)
906
- 179: <span class="ruby-identifier">uri</span>, <span class="ruby-identifier">authKey</span> = <span class="ruby-ivar">@broker</span>.<span class="ruby-identifier">getProject</span>(<span class="ruby-identifier">id</span>)
907
- 180: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">uri</span>
908
- 181: <span class="ruby-identifier">projectServer</span> = <span class="ruby-constant">DRbObject</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">uri</span>)
909
- 182: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">projectServer</span>
910
- 183: <span class="ruby-identifier">projectServer</span>.<span class="ruby-identifier">getProjectName</span>(<span class="ruby-identifier">authKey</span>)
911
- 184: <span class="ruby-keyword kw">end</span></pre>
911
+ <span class="ruby-comment cmt"># File lib/daemon/WebServer.rb, line 197</span>
912
+ 197: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">getProjectName</span>(<span class="ruby-identifier">id</span>)
913
+ 198: <span class="ruby-identifier">uri</span>, <span class="ruby-identifier">authKey</span> = <span class="ruby-ivar">@broker</span>.<span class="ruby-identifier">getProject</span>(<span class="ruby-identifier">id</span>)
914
+ 199: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">uri</span>
915
+ 200: <span class="ruby-identifier">projectServer</span> = <span class="ruby-constant">DRbObject</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">uri</span>)
916
+ 201: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">projectServer</span>
917
+ 202: <span class="ruby-identifier">projectServer</span>.<span class="ruby-identifier">getProjectName</span>(<span class="ruby-identifier">authKey</span>)
918
+ 203: <span class="ruby-keyword kw">end</span></pre>
912
919
  </div>
913
920
 
914
921
  </div>
@@ -939,14 +946,14 @@
939
946
  <div class="method-source-code"
940
947
  id="get-eport-ist-source">
941
948
  <pre>
942
- <span class="ruby-comment cmt"># File lib/daemon/WebServer.rb, line 186</span>
943
- 186: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">getReportList</span>(<span class="ruby-identifier">id</span>)
944
- 187: <span class="ruby-identifier">uri</span>, <span class="ruby-identifier">authKey</span> = <span class="ruby-ivar">@broker</span>.<span class="ruby-identifier">getProject</span>(<span class="ruby-identifier">id</span>)
945
- 188: <span class="ruby-keyword kw">return</span> [] <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">uri</span>
946
- 189: <span class="ruby-identifier">projectServer</span> = <span class="ruby-constant">DRbObject</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">uri</span>)
947
- 190: <span class="ruby-keyword kw">return</span> [] <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">projectServer</span>
948
- 191: <span class="ruby-identifier">projectServer</span>.<span class="ruby-identifier">getReportList</span>(<span class="ruby-identifier">authKey</span>)
949
- 192: <span class="ruby-keyword kw">end</span></pre>
949
+ <span class="ruby-comment cmt"># File lib/daemon/WebServer.rb, line 205</span>
950
+ 205: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">getReportList</span>(<span class="ruby-identifier">id</span>)
951
+ 206: <span class="ruby-identifier">uri</span>, <span class="ruby-identifier">authKey</span> = <span class="ruby-ivar">@broker</span>.<span class="ruby-identifier">getProject</span>(<span class="ruby-identifier">id</span>)
952
+ 207: <span class="ruby-keyword kw">return</span> [] <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">uri</span>
953
+ 208: <span class="ruby-identifier">projectServer</span> = <span class="ruby-constant">DRbObject</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">uri</span>)
954
+ 209: <span class="ruby-keyword kw">return</span> [] <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">projectServer</span>
955
+ 210: <span class="ruby-identifier">projectServer</span>.<span class="ruby-identifier">getReportList</span>(<span class="ruby-identifier">authKey</span>)
956
+ 211: <span class="ruby-keyword kw">end</span></pre>
950
957
  </div>
951
958
 
952
959
  </div>