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
@@ -188,6 +188,10 @@
188
188
 
189
189
  <li><a href="../TaskJuggler/DurationAttribute.html">TaskJuggler::DurationAttribute</a></li>
190
190
 
191
+ <li><a href="../TaskJuggler/FileList.html">TaskJuggler::FileList</a></li>
192
+
193
+ <li><a href="../TaskJuggler/FileRecord.html">TaskJuggler::FileRecord</a></li>
194
+
191
195
  <li><a href="../TaskJuggler/FixnumAttribute.html">TaskJuggler::FixnumAttribute</a></li>
192
196
 
193
197
  <li><a href="../TaskJuggler/FlagListAttribute.html">TaskJuggler::FlagListAttribute</a></li>
@@ -260,8 +264,6 @@
260
264
 
261
265
  <li><a href="../TaskJuggler/Macro.html">TaskJuggler::Macro</a></li>
262
266
 
263
- <li><a href="../TaskJuggler/MacroParser.html">TaskJuggler::MacroParser</a></li>
264
-
265
267
  <li><a href="../TaskJuggler/MacroTable.html">TaskJuggler::MacroTable</a></li>
266
268
 
267
269
  <li><a href="../TaskJuggler/ManagerResponsibilities.html">TaskJuggler::ManagerResponsibilities</a></li>
@@ -326,6 +328,8 @@
326
328
 
327
329
  <li><a href="../TaskJuggler/RTFReportLink.html">TaskJuggler::RTFReportLink</a></li>
328
330
 
331
+ <li><a href="../TaskJuggler/RTFWithQuerySupport.html">TaskJuggler::RTFWithQuerySupport</a></li>
332
+
329
333
  <li><a href="../TaskJuggler/RealFormat.html">TaskJuggler::RealFormat</a></li>
330
334
 
331
335
  <li><a href="../TaskJuggler/RealFormatAttribute.html">TaskJuggler::RealFormatAttribute</a></li>
@@ -372,8 +376,6 @@
372
376
 
373
377
  <li><a href="../TaskJuggler/RichTextElement.html">TaskJuggler::RichTextElement</a></li>
374
378
 
375
- <li><a href="../TaskJuggler/RichTextException.html">TaskJuggler::RichTextException</a></li>
376
-
377
379
  <li><a href="../TaskJuggler/RichTextFunctionExample.html">TaskJuggler::RichTextFunctionExample</a></li>
378
380
 
379
381
  <li><a href="../TaskJuggler/RichTextFunctionHandler.html">TaskJuggler::RichTextFunctionHandler</a></li>
@@ -414,6 +416,8 @@
414
416
 
415
417
  <li><a href="../TaskJuggler/ShiftScenario.html">TaskJuggler::ShiftScenario</a></li>
416
418
 
419
+ <li><a href="../TaskJuggler/SimpleQueryExpander.html">TaskJuggler::SimpleQueryExpander</a></li>
420
+
417
421
  <li><a href="../TaskJuggler/SortListAttribute.html">TaskJuggler::SortListAttribute</a></li>
418
422
 
419
423
  <li><a href="../TaskJuggler/SourceFileInfo.html">TaskJuggler::SourceFileInfo</a></li>
@@ -524,6 +528,8 @@
524
528
 
525
529
  <li><a href="../TaskJuggler/UserManual.html">TaskJuggler::UserManual</a></li>
526
530
 
531
+ <li><a href="../TaskJuggler/VimSyntax.html">TaskJuggler::VimSyntax</a></li>
532
+
527
533
  <li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
528
534
 
529
535
  <li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
@@ -623,7 +629,7 @@
623
629
  <div class="method-heading">
624
630
 
625
631
  <span class="method-name">new</span><span
626
- class="method-args">(tj)</span>
632
+ class="method-args">(tj, logConsole = false)</span>
627
633
  <span class="method-click-advice">click to toggle source</span>
628
634
 
629
635
  </div>
@@ -637,64 +643,76 @@
637
643
  <div class="method-source-code"
638
644
  id="new-source">
639
645
  <pre>
640
- <span class="ruby-comment cmt"># File lib/daemon/ReportServer.rb, line 26</span>
641
- 26: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">tj</span>)
642
- 27: <span class="ruby-identifier">initIntercom</span>
643
- 28:
644
- 29: <span class="ruby-ivar">@pid</span> = <span class="ruby-keyword kw">nil</span>
645
- 30: <span class="ruby-ivar">@uri</span> = <span class="ruby-keyword kw">nil</span>
646
- 31:
647
- 32: <span class="ruby-comment cmt"># A reference to the TaskJuggler object that holds the project data.</span>
648
- 33: <span class="ruby-ivar">@tj</span> = <span class="ruby-identifier">tj</span>
649
- 34:
650
- 35: <span class="ruby-ivar">@lastPing</span> = <span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">now</span>
651
- 36:
652
- 37: <span class="ruby-comment cmt"># We've started a DRb server before. This will continue to live somewhat</span>
653
- 38: <span class="ruby-comment cmt"># in the child. All attempts to create a DRb connection from the child</span>
654
- 39: <span class="ruby-comment cmt"># to the parent will end up in the child again. So we use a Pipe to</span>
655
- 40: <span class="ruby-comment cmt"># communicate the URI of the child DRb server to the parent. The</span>
656
- 41: <span class="ruby-comment cmt"># communication from the parent to the child is not affected by the</span>
657
- 42: <span class="ruby-comment cmt"># zombie DRb server in the child process.</span>
658
- 43: <span class="ruby-identifier">rd</span>, <span class="ruby-identifier">wr</span> = <span class="ruby-constant">IO</span>.<span class="ruby-identifier">pipe</span>
659
- 44:
660
- 45: <span class="ruby-keyword kw">if</span> (<span class="ruby-ivar">@pid</span> = <span class="ruby-identifier">fork</span>) <span class="ruby-operator">==</span> <span class="ruby-value">1</span>
661
- 46: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">fatal</span>(<span class="ruby-value str">'ReportServer fork failed'</span>)
662
- 47: <span class="ruby-keyword kw">elsif</span> <span class="ruby-ivar">@pid</span>.<span class="ruby-identifier">nil?</span>
663
- 48: <span class="ruby-comment cmt"># This is the child</span>
664
- 49: <span class="ruby-identifier">$SAFE</span> = <span class="ruby-value">1</span>
665
- 50: <span class="ruby-constant">DRb</span>.<span class="ruby-identifier">install_acl</span>(<span class="ruby-constant">ACL</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">] deny all
666
- 51: allow 127.0.0.1 ]</span>))
667
- 52: <span class="ruby-constant">DRb</span>.<span class="ruby-identifier">start_service</span>
668
- 53: <span class="ruby-identifier">iFace</span> = <span class="ruby-constant">ReportServerIface</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">self</span>)
669
- 54: <span class="ruby-keyword kw">begin</span>
670
- 55: <span class="ruby-identifier">uri</span> = <span class="ruby-constant">DRb</span>.<span class="ruby-identifier">start_service</span>(<span class="ruby-value str">'druby://127.0.0.1:0'</span>, <span class="ruby-identifier">iFace</span>).<span class="ruby-identifier">uri</span>
671
- 56: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;Report server is listening on #{uri}&quot;</span>)
672
- 57: <span class="ruby-keyword kw">rescue</span>
673
- 58: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">fatal</span>(<span class="ruby-node">&quot;ReportServer can't start DRb: #{$!}&quot;</span>)
674
- 59: <span class="ruby-keyword kw">end</span>
675
- 60:
676
- 61: <span class="ruby-comment cmt"># Send the URI of the newly started DRb server to the parent process.</span>
677
- 62: <span class="ruby-identifier">rd</span>.<span class="ruby-identifier">close</span>
678
- 63: <span class="ruby-identifier">wr</span>.<span class="ruby-identifier">write</span> <span class="ruby-identifier">uri</span>
679
- 64: <span class="ruby-identifier">wr</span>.<span class="ruby-identifier">close</span>
680
- 65:
681
- 66: <span class="ruby-comment cmt"># Start a Thread that waits for the @terminate flag to be set and does</span>
682
- 67: <span class="ruby-comment cmt"># other background tasks.</span>
683
- 68: <span class="ruby-identifier">startTerminator</span>
684
- 69: <span class="ruby-identifier">startWatchDog</span>
685
- 70:
686
- 71: <span class="ruby-comment cmt"># Cleanup the DRb threads</span>
687
- 72: <span class="ruby-constant">DRb</span>.<span class="ruby-identifier">thread</span>.<span class="ruby-identifier">join</span>
688
- 73: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-value str">'Report server terminated'</span>)
689
- 74: <span class="ruby-identifier">exit</span> <span class="ruby-value">0</span>
690
- 75: <span class="ruby-keyword kw">else</span>
691
- 76: <span class="ruby-constant">Process</span>.<span class="ruby-identifier">detach</span>(<span class="ruby-ivar">@pid</span>)
692
- 77: <span class="ruby-comment cmt"># This is the parent</span>
693
- 78: <span class="ruby-identifier">wr</span>.<span class="ruby-identifier">close</span>
694
- 79: <span class="ruby-ivar">@uri</span> = <span class="ruby-identifier">rd</span>.<span class="ruby-identifier">read</span>
695
- 80: <span class="ruby-identifier">rd</span>.<span class="ruby-identifier">close</span>
696
- 81: <span class="ruby-keyword kw">end</span>
697
- 82: <span class="ruby-keyword kw">end</span></pre>
646
+ <span class="ruby-comment cmt"># File lib/daemon/ReportServer.rb, line 25</span>
647
+ 25: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">tj</span>, <span class="ruby-identifier">logConsole</span> = <span class="ruby-keyword kw">false</span>)
648
+ 26: <span class="ruby-identifier">initIntercom</span>
649
+ 27:
650
+ 28: <span class="ruby-ivar">@pid</span> = <span class="ruby-keyword kw">nil</span>
651
+ 29: <span class="ruby-ivar">@uri</span> = <span class="ruby-keyword kw">nil</span>
652
+ 30:
653
+ 31: <span class="ruby-comment cmt"># A reference to the TaskJuggler object that holds the project data.</span>
654
+ 32: <span class="ruby-ivar">@tj</span> = <span class="ruby-identifier">tj</span>
655
+ 33:
656
+ 34: <span class="ruby-ivar">@lastPing</span> = <span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">now</span>
657
+ 35:
658
+ 36: <span class="ruby-comment cmt"># We've started a DRb server before. This will continue to live somewhat</span>
659
+ 37: <span class="ruby-comment cmt"># in the child. All attempts to create a DRb connection from the child</span>
660
+ 38: <span class="ruby-comment cmt"># to the parent will end up in the child again. So we use a Pipe to</span>
661
+ 39: <span class="ruby-comment cmt"># communicate the URI of the child DRb server to the parent. The</span>
662
+ 40: <span class="ruby-comment cmt"># communication from the parent to the child is not affected by the</span>
663
+ 41: <span class="ruby-comment cmt"># zombie DRb server in the child process.</span>
664
+ 42: <span class="ruby-identifier">rd</span>, <span class="ruby-identifier">wr</span> = <span class="ruby-constant">IO</span>.<span class="ruby-identifier">pipe</span>
665
+ 43:
666
+ 44: <span class="ruby-keyword kw">if</span> (<span class="ruby-ivar">@pid</span> = <span class="ruby-identifier">fork</span>) <span class="ruby-operator">==</span> <span class="ruby-value">1</span>
667
+ 45: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">fatal</span>(<span class="ruby-value str">'ReportServer fork failed'</span>)
668
+ 46: <span class="ruby-keyword kw">elsif</span> <span class="ruby-ivar">@pid</span>.<span class="ruby-identifier">nil?</span>
669
+ 47: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">logConsole</span>
670
+ 48: <span class="ruby-comment cmt"># If the Broker wasn't daemonized, log stdout and stderr to PID</span>
671
+ 49: <span class="ruby-comment cmt"># specific files.</span>
672
+ 50: <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">reopen</span>(<span class="ruby-node">&quot;tj3d.rs.#{$$}.stderr&quot;</span>, <span class="ruby-value str">'w'</span>)
673
+ 51: <span class="ruby-identifier">$stdout</span>.<span class="ruby-identifier">reopen</span>(<span class="ruby-node">&quot;tj3d.rs.#{$$}.stdout&quot;</span>, <span class="ruby-value str">'w'</span>)
674
+ 52: <span class="ruby-keyword kw">end</span>
675
+ 53: <span class="ruby-keyword kw">begin</span>
676
+ 54: <span class="ruby-comment cmt"># This is the child</span>
677
+ 55: <span class="ruby-identifier">$SAFE</span> = <span class="ruby-value">1</span>
678
+ 56: <span class="ruby-constant">DRb</span>.<span class="ruby-identifier">install_acl</span>(<span class="ruby-constant">ACL</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">] deny all
679
+ 57: allow 127.0.0.1 ]</span>))
680
+ 58: <span class="ruby-constant">DRb</span>.<span class="ruby-identifier">start_service</span>
681
+ 59: <span class="ruby-identifier">iFace</span> = <span class="ruby-constant">ReportServerIface</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">self</span>)
682
+ 60: <span class="ruby-keyword kw">begin</span>
683
+ 61: <span class="ruby-identifier">uri</span> = <span class="ruby-constant">DRb</span>.<span class="ruby-identifier">start_service</span>(<span class="ruby-value str">'druby://127.0.0.1:0'</span>, <span class="ruby-identifier">iFace</span>).<span class="ruby-identifier">uri</span>
684
+ 62: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;Report server is listening on #{uri}&quot;</span>)
685
+ 63: <span class="ruby-keyword kw">rescue</span>
686
+ 64: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">fatal</span>(<span class="ruby-node">&quot;ReportServer can't start DRb: #{$!}&quot;</span>)
687
+ 65: <span class="ruby-keyword kw">end</span>
688
+ 66:
689
+ 67: <span class="ruby-comment cmt"># Send the URI of the newly started DRb server to the parent process.</span>
690
+ 68: <span class="ruby-identifier">rd</span>.<span class="ruby-identifier">close</span>
691
+ 69: <span class="ruby-identifier">wr</span>.<span class="ruby-identifier">write</span> <span class="ruby-identifier">uri</span>
692
+ 70: <span class="ruby-identifier">wr</span>.<span class="ruby-identifier">close</span>
693
+ 71:
694
+ 72: <span class="ruby-comment cmt"># Start a Thread that waits for the @terminate flag to be set and does</span>
695
+ 73: <span class="ruby-comment cmt"># other background tasks.</span>
696
+ 74: <span class="ruby-identifier">startTerminator</span>
697
+ 75: <span class="ruby-identifier">startWatchDog</span>
698
+ 76:
699
+ 77: <span class="ruby-comment cmt"># Cleanup the DRb threads</span>
700
+ 78: <span class="ruby-constant">DRb</span>.<span class="ruby-identifier">thread</span>.<span class="ruby-identifier">join</span>
701
+ 79: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-value str">'Report server terminated'</span>)
702
+ 80: <span class="ruby-identifier">exit</span> <span class="ruby-value">0</span>
703
+ 81: <span class="ruby-keyword kw">rescue</span>
704
+ 82: <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">print</span> <span class="ruby-identifier">$!</span>.<span class="ruby-identifier">to_s</span>
705
+ 83: <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">print</span> <span class="ruby-identifier">$!</span>.<span class="ruby-identifier">backtrace</span>.<span class="ruby-identifier">join</span>(<span class="ruby-value str">&quot;\n&quot;</span>)
706
+ 84: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">fatal</span>(<span class="ruby-node">&quot;ReportServer caught unexpected exception: #{$!}&quot;</span>)
707
+ 85: <span class="ruby-keyword kw">end</span>
708
+ 86: <span class="ruby-keyword kw">else</span>
709
+ 87: <span class="ruby-constant">Process</span>.<span class="ruby-identifier">detach</span>(<span class="ruby-ivar">@pid</span>)
710
+ 88: <span class="ruby-comment cmt"># This is the parent</span>
711
+ 89: <span class="ruby-identifier">wr</span>.<span class="ruby-identifier">close</span>
712
+ 90: <span class="ruby-ivar">@uri</span> = <span class="ruby-identifier">rd</span>.<span class="ruby-identifier">read</span>
713
+ 91: <span class="ruby-identifier">rd</span>.<span class="ruby-identifier">close</span>
714
+ 92: <span class="ruby-keyword kw">end</span>
715
+ 93: <span class="ruby-keyword kw">end</span></pre>
698
716
  </div>
699
717
 
700
718
  </div>
@@ -731,16 +749,16 @@
731
749
  <div class="method-source-code"
732
750
  id="add-ile-source">
733
751
  <pre>
734
- <span class="ruby-comment cmt"># File lib/daemon/ReportServer.rb, line 88</span>
735
- 88: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">addFile</span>(<span class="ruby-identifier">file</span>)
736
- 89: <span class="ruby-keyword kw">begin</span>
737
- 90: <span class="ruby-ivar">@tj</span>.<span class="ruby-identifier">parseFile</span>(<span class="ruby-identifier">file</span>, <span class="ruby-value str">'properties'</span>)
738
- 91: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">TjException</span>
739
- 92: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
740
- 93: <span class="ruby-keyword kw">end</span>
741
- 94: <span class="ruby-identifier">restartTimer</span>
742
- 95: <span class="ruby-keyword kw">true</span>
743
- 96: <span class="ruby-keyword kw">end</span></pre>
752
+ <span class="ruby-comment cmt"># File lib/daemon/ReportServer.rb, line 99</span>
753
+ 99: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">addFile</span>(<span class="ruby-identifier">file</span>)
754
+ 100: <span class="ruby-keyword kw">begin</span>
755
+ 101: <span class="ruby-ivar">@tj</span>.<span class="ruby-identifier">parseFile</span>(<span class="ruby-identifier">file</span>, <span class="ruby-value str">'properties'</span>)
756
+ 102: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">TjException</span>
757
+ 103: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
758
+ 104: <span class="ruby-keyword kw">end</span>
759
+ 105: <span class="ruby-identifier">restartTimer</span>
760
+ 106: <span class="ruby-keyword kw">true</span>
761
+ 107: <span class="ruby-keyword kw">end</span></pre>
744
762
  </div>
745
763
 
746
764
  </div>
@@ -771,14 +789,14 @@
771
789
  <div class="method-source-code"
772
790
  id="check-tatus-heet-source">
773
791
  <pre>
774
- <span class="ruby-comment cmt"># File lib/daemon/ReportServer.rb, line 128</span>
775
- 128: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">checkStatusSheet</span>(<span class="ruby-identifier">sheet</span>)
776
- 129: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">info</span>(<span class="ruby-node">&quot;Checking status sheet #{sheet}&quot;</span>)
777
- 130: <span class="ruby-identifier">ok</span> = <span class="ruby-ivar">@tj</span>.<span class="ruby-identifier">checkStatusSheet</span>(<span class="ruby-identifier">sheet</span>)
778
- 131: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;Status sheet #{sheet} is #{ok ? '' : 'not '}ok&quot;</span>)
779
- 132: <span class="ruby-identifier">restartTimer</span>
780
- 133: <span class="ruby-identifier">ok</span>
781
- 134: <span class="ruby-keyword kw">end</span></pre>
792
+ <span class="ruby-comment cmt"># File lib/daemon/ReportServer.rb, line 139</span>
793
+ 139: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">checkStatusSheet</span>(<span class="ruby-identifier">sheet</span>)
794
+ 140: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">info</span>(<span class="ruby-node">&quot;Checking status sheet #{sheet}&quot;</span>)
795
+ 141: <span class="ruby-identifier">ok</span> = <span class="ruby-ivar">@tj</span>.<span class="ruby-identifier">checkStatusSheet</span>(<span class="ruby-identifier">sheet</span>)
796
+ 142: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;Status sheet #{sheet} is #{ok ? '' : 'not '}ok&quot;</span>)
797
+ 143: <span class="ruby-identifier">restartTimer</span>
798
+ 144: <span class="ruby-identifier">ok</span>
799
+ 145: <span class="ruby-keyword kw">end</span></pre>
782
800
  </div>
783
801
 
784
802
  </div>
@@ -809,14 +827,14 @@
809
827
  <div class="method-source-code"
810
828
  id="check-ime-heet-source">
811
829
  <pre>
812
- <span class="ruby-comment cmt"># File lib/daemon/ReportServer.rb, line 120</span>
813
- 120: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">checkTimeSheet</span>(<span class="ruby-identifier">sheet</span>)
814
- 121: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">info</span>(<span class="ruby-node">&quot;Checking time sheet #{sheet}&quot;</span>)
815
- 122: <span class="ruby-identifier">ok</span> = <span class="ruby-ivar">@tj</span>.<span class="ruby-identifier">checkTimeSheet</span>(<span class="ruby-identifier">sheet</span>)
816
- 123: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;Time sheet #{sheet} is #{ok ? '' : 'not '}ok&quot;</span>)
817
- 124: <span class="ruby-identifier">restartTimer</span>
818
- 125: <span class="ruby-identifier">ok</span>
819
- 126: <span class="ruby-keyword kw">end</span></pre>
830
+ <span class="ruby-comment cmt"># File lib/daemon/ReportServer.rb, line 131</span>
831
+ 131: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">checkTimeSheet</span>(<span class="ruby-identifier">sheet</span>)
832
+ 132: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">info</span>(<span class="ruby-node">&quot;Checking time sheet #{sheet}&quot;</span>)
833
+ 133: <span class="ruby-identifier">ok</span> = <span class="ruby-ivar">@tj</span>.<span class="ruby-identifier">checkTimeSheet</span>(<span class="ruby-identifier">sheet</span>)
834
+ 134: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;Time sheet #{sheet} is #{ok ? '' : 'not '}ok&quot;</span>)
835
+ 135: <span class="ruby-identifier">restartTimer</span>
836
+ 136: <span class="ruby-identifier">ok</span>
837
+ 137: <span class="ruby-keyword kw">end</span></pre>
820
838
  </div>
821
839
 
822
840
  </div>
@@ -847,17 +865,17 @@
847
865
  <div class="method-source-code"
848
866
  id="generate-eport-source">
849
867
  <pre>
850
- <span class="ruby-comment cmt"># File lib/daemon/ReportServer.rb, line 98</span>
851
- 98: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateReport</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">regExpMode</span>, <span class="ruby-identifier">dynamicAttributes</span>)
852
- 99: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">info</span>(<span class="ruby-node">&quot;Generating report #{id}&quot;</span>)
853
- 100: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">ok</span> = <span class="ruby-ivar">@tj</span>.<span class="ruby-identifier">generateReport</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">regExpMode</span>, <span class="ruby-identifier">dynamicAttributes</span>))
854
- 101: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;Report #{id} generated&quot;</span>)
855
- 102: <span class="ruby-keyword kw">else</span>
856
- 103: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Report generation of #{id} failed&quot;</span>)
857
- 104: <span class="ruby-keyword kw">end</span>
858
- 105: <span class="ruby-identifier">restartTimer</span>
859
- 106: <span class="ruby-identifier">ok</span>
860
- 107: <span class="ruby-keyword kw">end</span></pre>
868
+ <span class="ruby-comment cmt"># File lib/daemon/ReportServer.rb, line 109</span>
869
+ 109: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateReport</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">regExpMode</span>, <span class="ruby-identifier">dynamicAttributes</span>)
870
+ 110: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">info</span>(<span class="ruby-node">&quot;Generating report #{id}&quot;</span>)
871
+ 111: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">ok</span> = <span class="ruby-ivar">@tj</span>.<span class="ruby-identifier">generateReport</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">regExpMode</span>, <span class="ruby-identifier">dynamicAttributes</span>))
872
+ 112: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;Report #{id} generated&quot;</span>)
873
+ 113: <span class="ruby-keyword kw">else</span>
874
+ 114: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Report generation of #{id} failed&quot;</span>)
875
+ 115: <span class="ruby-keyword kw">end</span>
876
+ 116: <span class="ruby-identifier">restartTimer</span>
877
+ 117: <span class="ruby-identifier">ok</span>
878
+ 118: <span class="ruby-keyword kw">end</span></pre>
861
879
  </div>
862
880
 
863
881
  </div>
@@ -888,17 +906,17 @@
888
906
  <div class="method-source-code"
889
907
  id="list-eports-source">
890
908
  <pre>
891
- <span class="ruby-comment cmt"># File lib/daemon/ReportServer.rb, line 109</span>
892
- 109: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">listReports</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">regExpMode</span>)
893
- 110: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">info</span>(<span class="ruby-node">&quot;Listing report #{id}&quot;</span>)
894
- 111: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">ok</span> = <span class="ruby-ivar">@tj</span>.<span class="ruby-identifier">listReports</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">regExpMode</span>))
895
- 112: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;Report list for #{id} generated&quot;</span>)
896
- 113: <span class="ruby-keyword kw">else</span>
897
- 114: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Report list compilation of #{id} failed&quot;</span>)
898
- 115: <span class="ruby-keyword kw">end</span>
899
- 116: <span class="ruby-identifier">restartTimer</span>
900
- 117: <span class="ruby-identifier">ok</span>
901
- 118: <span class="ruby-keyword kw">end</span></pre>
909
+ <span class="ruby-comment cmt"># File lib/daemon/ReportServer.rb, line 120</span>
910
+ 120: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">listReports</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">regExpMode</span>)
911
+ 121: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">info</span>(<span class="ruby-node">&quot;Listing report #{id}&quot;</span>)
912
+ 122: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">ok</span> = <span class="ruby-ivar">@tj</span>.<span class="ruby-identifier">listReports</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">regExpMode</span>))
913
+ 123: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;Report list for #{id} generated&quot;</span>)
914
+ 124: <span class="ruby-keyword kw">else</span>
915
+ 125: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Report list compilation of #{id} failed&quot;</span>)
916
+ 126: <span class="ruby-keyword kw">end</span>
917
+ 127: <span class="ruby-identifier">restartTimer</span>
918
+ 128: <span class="ruby-identifier">ok</span>
919
+ 129: <span class="ruby-keyword kw">end</span></pre>
902
920
  </div>
903
921
 
904
922
  </div>
@@ -929,10 +947,10 @@
929
947
  <div class="method-source-code"
930
948
  id="ping-source">
931
949
  <pre>
932
- <span class="ruby-comment cmt"># File lib/daemon/ReportServer.rb, line 84</span>
933
- 84: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">ping</span>
934
- 85: <span class="ruby-ivar">@lastPing</span> = <span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">now</span>
935
- 86: <span class="ruby-keyword kw">end</span></pre>
950
+ <span class="ruby-comment cmt"># File lib/daemon/ReportServer.rb, line 95</span>
951
+ 95: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">ping</span>
952
+ 96: <span class="ruby-ivar">@lastPing</span> = <span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">now</span>
953
+ 97: <span class="ruby-keyword kw">end</span></pre>
936
954
  </div>
937
955
 
938
956
  </div>
@@ -969,17 +987,17 @@
969
987
  <div class="method-source-code"
970
988
  id="start-atch-og-source">
971
989
  <pre>
972
- <span class="ruby-comment cmt"># File lib/daemon/ReportServer.rb, line 138</span>
973
- 138: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">startWatchDog</span>
974
- 139: <span class="ruby-constant">Thread</span>.<span class="ruby-identifier">new</span> <span class="ruby-keyword kw">do</span>
975
- 140: <span class="ruby-identifier">loop</span> <span class="ruby-keyword kw">do</span>
976
- 141: <span class="ruby-keyword kw">if</span> <span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">now</span> <span class="ruby-operator">-</span> <span class="ruby-ivar">@lastPing</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">120</span>
977
- 142: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">fatal</span>(<span class="ruby-value str">'Heartbeat from ProjectServer lost. Terminating.'</span>)
978
- 143: <span class="ruby-keyword kw">end</span>
979
- 144: <span class="ruby-identifier">sleep</span> <span class="ruby-value">30</span>
980
- 145: <span class="ruby-keyword kw">end</span>
981
- 146: <span class="ruby-keyword kw">end</span>
982
- 147: <span class="ruby-keyword kw">end</span></pre>
990
+ <span class="ruby-comment cmt"># File lib/daemon/ReportServer.rb, line 149</span>
991
+ 149: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">startWatchDog</span>
992
+ 150: <span class="ruby-constant">Thread</span>.<span class="ruby-identifier">new</span> <span class="ruby-keyword kw">do</span>
993
+ 151: <span class="ruby-identifier">loop</span> <span class="ruby-keyword kw">do</span>
994
+ 152: <span class="ruby-keyword kw">if</span> <span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">now</span> <span class="ruby-operator">-</span> <span class="ruby-ivar">@lastPing</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">120</span>
995
+ 153: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">fatal</span>(<span class="ruby-value str">'Heartbeat from ProjectServer lost. Terminating.'</span>)
996
+ 154: <span class="ruby-keyword kw">end</span>
997
+ 155: <span class="ruby-identifier">sleep</span> <span class="ruby-value">30</span>
998
+ 156: <span class="ruby-keyword kw">end</span>
999
+ 157: <span class="ruby-keyword kw">end</span>
1000
+ 158: <span class="ruby-keyword kw">end</span></pre>
983
1001
  </div>
984
1002
 
985
1003
  </div>
@@ -186,6 +186,10 @@
186
186
 
187
187
  <li><a href="../TaskJuggler/DurationAttribute.html">TaskJuggler::DurationAttribute</a></li>
188
188
 
189
+ <li><a href="../TaskJuggler/FileList.html">TaskJuggler::FileList</a></li>
190
+
191
+ <li><a href="../TaskJuggler/FileRecord.html">TaskJuggler::FileRecord</a></li>
192
+
189
193
  <li><a href="../TaskJuggler/FixnumAttribute.html">TaskJuggler::FixnumAttribute</a></li>
190
194
 
191
195
  <li><a href="../TaskJuggler/FlagListAttribute.html">TaskJuggler::FlagListAttribute</a></li>
@@ -258,8 +262,6 @@
258
262
 
259
263
  <li><a href="../TaskJuggler/Macro.html">TaskJuggler::Macro</a></li>
260
264
 
261
- <li><a href="../TaskJuggler/MacroParser.html">TaskJuggler::MacroParser</a></li>
262
-
263
265
  <li><a href="../TaskJuggler/MacroTable.html">TaskJuggler::MacroTable</a></li>
264
266
 
265
267
  <li><a href="../TaskJuggler/ManagerResponsibilities.html">TaskJuggler::ManagerResponsibilities</a></li>
@@ -324,6 +326,8 @@
324
326
 
325
327
  <li><a href="../TaskJuggler/RTFReportLink.html">TaskJuggler::RTFReportLink</a></li>
326
328
 
329
+ <li><a href="../TaskJuggler/RTFWithQuerySupport.html">TaskJuggler::RTFWithQuerySupport</a></li>
330
+
327
331
  <li><a href="../TaskJuggler/RealFormat.html">TaskJuggler::RealFormat</a></li>
328
332
 
329
333
  <li><a href="../TaskJuggler/RealFormatAttribute.html">TaskJuggler::RealFormatAttribute</a></li>
@@ -370,8 +374,6 @@
370
374
 
371
375
  <li><a href="../TaskJuggler/RichTextElement.html">TaskJuggler::RichTextElement</a></li>
372
376
 
373
- <li><a href="../TaskJuggler/RichTextException.html">TaskJuggler::RichTextException</a></li>
374
-
375
377
  <li><a href="../TaskJuggler/RichTextFunctionExample.html">TaskJuggler::RichTextFunctionExample</a></li>
376
378
 
377
379
  <li><a href="../TaskJuggler/RichTextFunctionHandler.html">TaskJuggler::RichTextFunctionHandler</a></li>
@@ -412,6 +414,8 @@
412
414
 
413
415
  <li><a href="../TaskJuggler/ShiftScenario.html">TaskJuggler::ShiftScenario</a></li>
414
416
 
417
+ <li><a href="../TaskJuggler/SimpleQueryExpander.html">TaskJuggler::SimpleQueryExpander</a></li>
418
+
415
419
  <li><a href="../TaskJuggler/SortListAttribute.html">TaskJuggler::SortListAttribute</a></li>
416
420
 
417
421
  <li><a href="../TaskJuggler/SourceFileInfo.html">TaskJuggler::SourceFileInfo</a></li>
@@ -522,6 +526,8 @@
522
526
 
523
527
  <li><a href="../TaskJuggler/UserManual.html">TaskJuggler::UserManual</a></li>
524
528
 
529
+ <li><a href="../TaskJuggler/VimSyntax.html">TaskJuggler::VimSyntax</a></li>
530
+
525
531
  <li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
526
532
 
527
533
  <li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
@@ -599,10 +605,10 @@
599
605
  <div class="method-source-code"
600
606
  id="new-source">
601
607
  <pre>
602
- <span class="ruby-comment cmt"># File lib/daemon/ReportServer.rb, line 155</span>
603
- 155: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">server</span>)
604
- 156: <span class="ruby-ivar">@server</span> = <span class="ruby-identifier">server</span>
605
- 157: <span class="ruby-keyword kw">end</span></pre>
608
+ <span class="ruby-comment cmt"># File lib/daemon/ReportServer.rb, line 166</span>
609
+ 166: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">server</span>)
610
+ 167: <span class="ruby-ivar">@server</span> = <span class="ruby-identifier">server</span>
611
+ 168: <span class="ruby-keyword kw">end</span></pre>
606
612
  </div>
607
613
 
608
614
  </div>
@@ -639,12 +645,12 @@
639
645
  <div class="method-source-code"
640
646
  id="add-ile-source">
641
647
  <pre>
642
- <span class="ruby-comment cmt"># File lib/daemon/ReportServer.rb, line 165</span>
643
- 165: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">addFile</span>(<span class="ruby-identifier">authKey</span>, <span class="ruby-identifier">file</span>)
644
- 166: <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">@server</span>.<span class="ruby-identifier">checkKey</span>(<span class="ruby-identifier">authKey</span>, <span class="ruby-value str">'addFile'</span>)
645
- 167:
646
- 168: <span class="ruby-ivar">@server</span>.<span class="ruby-identifier">addFile</span>(<span class="ruby-identifier">file</span>)
647
- 169: <span class="ruby-keyword kw">end</span></pre>
648
+ <span class="ruby-comment cmt"># File lib/daemon/ReportServer.rb, line 176</span>
649
+ 176: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">addFile</span>(<span class="ruby-identifier">authKey</span>, <span class="ruby-identifier">file</span>)
650
+ 177: <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">@server</span>.<span class="ruby-identifier">checkKey</span>(<span class="ruby-identifier">authKey</span>, <span class="ruby-value str">'addFile'</span>)
651
+ 178:
652
+ 179: <span class="ruby-identifier">trap</span> { <span class="ruby-ivar">@server</span>.<span class="ruby-identifier">addFile</span>(<span class="ruby-identifier">file</span>) }
653
+ 180: <span class="ruby-keyword kw">end</span></pre>
648
654
  </div>
649
655
 
650
656
  </div>
@@ -675,12 +681,12 @@
675
681
  <div class="method-source-code"
676
682
  id="check-tatus-heet-source">
677
683
  <pre>
678
- <span class="ruby-comment cmt"># File lib/daemon/ReportServer.rb, line 190</span>
679
- 190: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">checkStatusSheet</span>(<span class="ruby-identifier">authKey</span>, <span class="ruby-identifier">sheet</span>)
680
- 191: <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">@server</span>.<span class="ruby-identifier">checkKey</span>(<span class="ruby-identifier">authKey</span>, <span class="ruby-value str">'checkStatusSheet'</span>)
681
- 192:
682
- 193: <span class="ruby-ivar">@server</span>.<span class="ruby-identifier">checkStatusSheet</span>(<span class="ruby-identifier">sheet</span>)
683
- 194: <span class="ruby-keyword kw">end</span></pre>
684
+ <span class="ruby-comment cmt"># File lib/daemon/ReportServer.rb, line 201</span>
685
+ 201: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">checkStatusSheet</span>(<span class="ruby-identifier">authKey</span>, <span class="ruby-identifier">sheet</span>)
686
+ 202: <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">@server</span>.<span class="ruby-identifier">checkKey</span>(<span class="ruby-identifier">authKey</span>, <span class="ruby-value str">'checkStatusSheet'</span>)
687
+ 203:
688
+ 204: <span class="ruby-identifier">trap</span> { <span class="ruby-ivar">@server</span>.<span class="ruby-identifier">checkStatusSheet</span>(<span class="ruby-identifier">sheet</span>) }
689
+ 205: <span class="ruby-keyword kw">end</span></pre>
684
690
  </div>
685
691
 
686
692
  </div>
@@ -711,12 +717,12 @@
711
717
  <div class="method-source-code"
712
718
  id="check-ime-heet-source">
713
719
  <pre>
714
- <span class="ruby-comment cmt"># File lib/daemon/ReportServer.rb, line 184</span>
715
- 184: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">checkTimeSheet</span>(<span class="ruby-identifier">authKey</span>, <span class="ruby-identifier">sheet</span>)
716
- 185: <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">@server</span>.<span class="ruby-identifier">checkKey</span>(<span class="ruby-identifier">authKey</span>, <span class="ruby-value str">'checkTimeSheet'</span>)
717
- 186:
718
- 187: <span class="ruby-ivar">@server</span>.<span class="ruby-identifier">checkTimeSheet</span>(<span class="ruby-identifier">sheet</span>)
719
- 188: <span class="ruby-keyword kw">end</span></pre>
720
+ <span class="ruby-comment cmt"># File lib/daemon/ReportServer.rb, line 195</span>
721
+ 195: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">checkTimeSheet</span>(<span class="ruby-identifier">authKey</span>, <span class="ruby-identifier">sheet</span>)
722
+ 196: <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">@server</span>.<span class="ruby-identifier">checkKey</span>(<span class="ruby-identifier">authKey</span>, <span class="ruby-value str">'checkTimeSheet'</span>)
723
+ 197:
724
+ 198: <span class="ruby-identifier">trap</span> { <span class="ruby-ivar">@server</span>.<span class="ruby-identifier">checkTimeSheet</span>(<span class="ruby-identifier">sheet</span>) }
725
+ 199: <span class="ruby-keyword kw">end</span></pre>
720
726
  </div>
721
727
 
722
728
  </div>
@@ -747,12 +753,12 @@
747
753
  <div class="method-source-code"
748
754
  id="generate-eport-source">
749
755
  <pre>
750
- <span class="ruby-comment cmt"># File lib/daemon/ReportServer.rb, line 171</span>
751
- 171: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateReport</span>(<span class="ruby-identifier">authKey</span>, <span class="ruby-identifier">reportId</span>, <span class="ruby-identifier">regExpMode</span>, <span class="ruby-identifier">dynamicAttributes</span>)
752
- 172: <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">@server</span>.<span class="ruby-identifier">checkKey</span>(<span class="ruby-identifier">authKey</span>, <span class="ruby-value str">'generateReport'</span>)
753
- 173:
754
- 174: <span class="ruby-ivar">@server</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>)
755
- 175: <span class="ruby-keyword kw">end</span></pre>
756
+ <span class="ruby-comment cmt"># File lib/daemon/ReportServer.rb, line 182</span>
757
+ 182: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateReport</span>(<span class="ruby-identifier">authKey</span>, <span class="ruby-identifier">reportId</span>, <span class="ruby-identifier">regExpMode</span>, <span class="ruby-identifier">dynamicAttributes</span>)
758
+ 183: <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">@server</span>.<span class="ruby-identifier">checkKey</span>(<span class="ruby-identifier">authKey</span>, <span class="ruby-value str">'generateReport'</span>)
759
+ 184:
760
+ 185: <span class="ruby-identifier">trap</span> { <span class="ruby-ivar">@server</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>) }
761
+ 186: <span class="ruby-keyword kw">end</span></pre>
756
762
  </div>
757
763
 
758
764
  </div>
@@ -783,12 +789,12 @@
783
789
  <div class="method-source-code"
784
790
  id="list-eports-source">
785
791
  <pre>
786
- <span class="ruby-comment cmt"># File lib/daemon/ReportServer.rb, line 178</span>
787
- 178: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">listReports</span>(<span class="ruby-identifier">authKey</span>, <span class="ruby-identifier">reportId</span>, <span class="ruby-identifier">regExpMode</span>)
788
- 179: <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">@server</span>.<span class="ruby-identifier">checkKey</span>(<span class="ruby-identifier">authKey</span>, <span class="ruby-value str">'generateReport'</span>)
789
- 180:
790
- 181: <span class="ruby-ivar">@server</span>.<span class="ruby-identifier">listReports</span>(<span class="ruby-identifier">reportId</span>, <span class="ruby-identifier">regExpMode</span>)
791
- 182: <span class="ruby-keyword kw">end</span></pre>
792
+ <span class="ruby-comment cmt"># File lib/daemon/ReportServer.rb, line 189</span>
793
+ 189: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">listReports</span>(<span class="ruby-identifier">authKey</span>, <span class="ruby-identifier">reportId</span>, <span class="ruby-identifier">regExpMode</span>)
794
+ 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">@server</span>.<span class="ruby-identifier">checkKey</span>(<span class="ruby-identifier">authKey</span>, <span class="ruby-value str">'generateReport'</span>)
795
+ 191:
796
+ 192: <span class="ruby-identifier">trap</span> { <span class="ruby-ivar">@server</span>.<span class="ruby-identifier">listReports</span>(<span class="ruby-identifier">reportId</span>, <span class="ruby-identifier">regExpMode</span>) }
797
+ 193: <span class="ruby-keyword kw">end</span></pre>
792
798
  </div>
793
799
 
794
800
  </div>
@@ -819,12 +825,12 @@
819
825
  <div class="method-source-code"
820
826
  id="ping-source">
821
827
  <pre>
822
- <span class="ruby-comment cmt"># File lib/daemon/ReportServer.rb, line 159</span>
823
- 159: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">ping</span>(<span class="ruby-identifier">authKey</span>)
824
- 160: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@server</span>.<span class="ruby-identifier">checkKey</span>(<span class="ruby-identifier">authKey</span>, <span class="ruby-value str">'addFile'</span>)
825
- 161:
826
- 162: <span class="ruby-ivar">@server</span>.<span class="ruby-identifier">ping</span>
827
- 163: <span class="ruby-keyword kw">end</span></pre>
828
+ <span class="ruby-comment cmt"># File lib/daemon/ReportServer.rb, line 170</span>
829
+ 170: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">ping</span>(<span class="ruby-identifier">authKey</span>)
830
+ 171: <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">@server</span>.<span class="ruby-identifier">checkKey</span>(<span class="ruby-identifier">authKey</span>, <span class="ruby-value str">'addFile'</span>)
831
+ 172:
832
+ 173: <span class="ruby-identifier">trap</span> { <span class="ruby-ivar">@server</span>.<span class="ruby-identifier">ping</span> }
833
+ 174: <span class="ruby-keyword kw">end</span></pre>
828
834
  </div>
829
835
 
830
836
  </div>