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
@@ -169,6 +169,10 @@
169
169
 
170
170
  <li><a href="../TaskJuggler/DurationAttribute.html">TaskJuggler::DurationAttribute</a></li>
171
171
 
172
+ <li><a href="../TaskJuggler/FileList.html">TaskJuggler::FileList</a></li>
173
+
174
+ <li><a href="../TaskJuggler/FileRecord.html">TaskJuggler::FileRecord</a></li>
175
+
172
176
  <li><a href="../TaskJuggler/FixnumAttribute.html">TaskJuggler::FixnumAttribute</a></li>
173
177
 
174
178
  <li><a href="../TaskJuggler/FlagListAttribute.html">TaskJuggler::FlagListAttribute</a></li>
@@ -241,8 +245,6 @@
241
245
 
242
246
  <li><a href="../TaskJuggler/Macro.html">TaskJuggler::Macro</a></li>
243
247
 
244
- <li><a href="../TaskJuggler/MacroParser.html">TaskJuggler::MacroParser</a></li>
245
-
246
248
  <li><a href="../TaskJuggler/MacroTable.html">TaskJuggler::MacroTable</a></li>
247
249
 
248
250
  <li><a href="../TaskJuggler/ManagerResponsibilities.html">TaskJuggler::ManagerResponsibilities</a></li>
@@ -307,6 +309,8 @@
307
309
 
308
310
  <li><a href="../TaskJuggler/RTFReportLink.html">TaskJuggler::RTFReportLink</a></li>
309
311
 
312
+ <li><a href="../TaskJuggler/RTFWithQuerySupport.html">TaskJuggler::RTFWithQuerySupport</a></li>
313
+
310
314
  <li><a href="../TaskJuggler/RealFormat.html">TaskJuggler::RealFormat</a></li>
311
315
 
312
316
  <li><a href="../TaskJuggler/RealFormatAttribute.html">TaskJuggler::RealFormatAttribute</a></li>
@@ -353,8 +357,6 @@
353
357
 
354
358
  <li><a href="../TaskJuggler/RichTextElement.html">TaskJuggler::RichTextElement</a></li>
355
359
 
356
- <li><a href="../TaskJuggler/RichTextException.html">TaskJuggler::RichTextException</a></li>
357
-
358
360
  <li><a href="../TaskJuggler/RichTextFunctionExample.html">TaskJuggler::RichTextFunctionExample</a></li>
359
361
 
360
362
  <li><a href="../TaskJuggler/RichTextFunctionHandler.html">TaskJuggler::RichTextFunctionHandler</a></li>
@@ -395,6 +397,8 @@
395
397
 
396
398
  <li><a href="../TaskJuggler/ShiftScenario.html">TaskJuggler::ShiftScenario</a></li>
397
399
 
400
+ <li><a href="../TaskJuggler/SimpleQueryExpander.html">TaskJuggler::SimpleQueryExpander</a></li>
401
+
398
402
  <li><a href="../TaskJuggler/SortListAttribute.html">TaskJuggler::SortListAttribute</a></li>
399
403
 
400
404
  <li><a href="../TaskJuggler/SourceFileInfo.html">TaskJuggler::SourceFileInfo</a></li>
@@ -505,6 +509,8 @@
505
509
 
506
510
  <li><a href="../TaskJuggler/UserManual.html">TaskJuggler::UserManual</a></li>
507
511
 
512
+ <li><a href="../TaskJuggler/VimSyntax.html">TaskJuggler::VimSyntax</a></li>
513
+
508
514
  <li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
509
515
 
510
516
  <li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
@@ -665,7 +671,7 @@ project data is accessed via tj3client on a tj3 server process.
665
671
  41: <span class="ruby-comment cmt"># A list of email addresses to send the summary to</span>
666
672
  42: <span class="ruby-ivar">@digestRecipients</span> = []
667
673
  43:
668
- 44: <span class="ruby-ivar">@resourceIntro</span> = <span class="ruby-value str">&quot; Weekly Report from %s\n\n&quot;</span>
674
+ 44: <span class="ruby-ivar">@resourceIntro</span> = <span class="ruby-value str">&quot;== Weekly Report from &lt;nowiki&gt;%s&lt;/nowiki&gt; ==\n&quot;</span>
669
675
  45: <span class="ruby-ivar">@resourceSheetSubject</span> = <span class="ruby-value str">&quot;Weekly report %s&quot;</span>
670
676
  46: <span class="ruby-ivar">@summarySubject</span> = <span class="ruby-value str">&quot;Weekly staff reports %s&quot;</span>
671
677
  47: <span class="ruby-ivar">@reminderSubject</span> = <span class="ruby-value str">&quot;Your time sheet for the period ending %s is overdue!&quot;</span>
@@ -731,56 +737,57 @@ project data is accessed via tj3client on a tj3 server process.
731
737
  84: <span class="ruby-comment cmt"># Resource has submitted a time sheet</span>
732
738
  85: <span class="ruby-identifier">sheet</span> = <span class="ruby-identifier">getResourceJournal</span>(<span class="ruby-identifier">sheetFile</span>)
733
739
  86: <span class="ruby-identifier">summary</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">sprintf</span>(<span class="ruby-ivar">@resourceIntro</span>, <span class="ruby-identifier">resourceName</span>)
734
- 87: <span class="ruby-identifier">summary</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">sheet</span> <span class="ruby-operator">+</span> <span class="ruby-node">&quot;\n#{'-' * 74}\n\n&quot;</span>
740
+ 87: <span class="ruby-identifier">summary</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">sheet</span> <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;\n----\n&quot;</span>
735
741
  88: <span class="ruby-identifier">info</span>(<span class="ruby-node">&quot;Adding report from #{resourceName} to summary&quot;</span>)
736
742
  89:
737
743
  90: <span class="ruby-ivar">@sheetRecipients</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">to</span><span class="ruby-operator">|</span>
738
- 91: <span class="ruby-identifier">sendEmail</span>(<span class="ruby-identifier">to</span>, <span class="ruby-identifier">sprintf</span>(<span class="ruby-ivar">@resourceSheetSubject</span>, <span class="ruby-ivar">@date</span>), <span class="ruby-identifier">sheet</span>,
739
- 92: <span class="ruby-keyword kw">nil</span>, <span class="ruby-node">&quot;#{resourceName} &lt;#{resourceEmail}&gt;&quot;</span>)
740
- 93: <span class="ruby-keyword kw">end</span>
741
- 94: <span class="ruby-keyword kw">end</span>
742
- 95: <span class="ruby-keyword kw">else</span>
743
- 96: <span class="ruby-identifier">defaulterList</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">resource</span>
744
- 97: <span class="ruby-comment cmt"># Resource did not submit a time sheet</span>
745
- 98: <span class="ruby-identifier">info</span>(<span class="ruby-node">&quot;Report from #{resourceId} is missing&quot;</span>)
746
- 99: <span class="ruby-keyword kw">end</span>
747
- 100: <span class="ruby-keyword kw">end</span>
748
- 101: <span class="ruby-keyword kw">end</span>
749
- 102:
750
- 103: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">defaulterList</span>.<span class="ruby-identifier">empty?</span>
751
- 104: <span class="ruby-comment cmt"># Prepend the defaulter list to the summary.</span>
752
- 105: <span class="ruby-identifier">text</span> = <span class="ruby-identifier">sprintf</span>(<span class="ruby-ivar">@defaulterHeader</span>, <span class="ruby-identifier">defaulterList</span>.<span class="ruby-identifier">length</span>)
753
- 106: <span class="ruby-identifier">defaulterList</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">resource</span><span class="ruby-operator">|</span>
754
- 107: <span class="ruby-identifier">text</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot; * #{resource[1]}\n&quot;</span>
755
- 108: <span class="ruby-keyword kw">end</span>
756
- 109: <span class="ruby-identifier">text</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot;\n#{'-' * 74}\n\n&quot;</span>
757
- 110: <span class="ruby-identifier">summary</span> = <span class="ruby-identifier">text</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">summary</span>
758
- 111:
759
- 112: <span class="ruby-comment cmt"># Create a file with the IDs of the resources who's reports are</span>
760
- 113: <span class="ruby-comment cmt"># missing.</span>
761
- 114: <span class="ruby-identifier">missingFile</span> = <span class="ruby-node">&quot;#{@sheetDir}/#{@date}/missing-reports&quot;</span>
762
- 115: <span class="ruby-keyword kw">begin</span>
763
- 116: <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">missingFile</span>, <span class="ruby-value str">'w'</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span>
764
- 117: <span class="ruby-identifier">defaulterList</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">resource</span><span class="ruby-operator">|</span> <span class="ruby-identifier">f</span>.<span class="ruby-identifier">puts</span> <span class="ruby-identifier">resource</span>[<span class="ruby-value">0</span>] }
765
- 118: <span class="ruby-keyword kw">end</span>
766
- 119: <span class="ruby-keyword kw">rescue</span>
767
- 120: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Cannot write file with missing reports (#missingFile): #{$!}&quot;</span>)
768
- 121: <span class="ruby-keyword kw">end</span>
769
- 122: <span class="ruby-keyword kw">end</span>
770
- 123:
771
- 124: <span class="ruby-comment cmt"># Send out the summary text to the list of digest recipients.</span>
772
- 125: <span class="ruby-ivar">@digestRecipients</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">to</span><span class="ruby-operator">|</span>
773
- 126: <span class="ruby-identifier">sendEmail</span>(<span class="ruby-identifier">to</span>, <span class="ruby-identifier">sprintf</span>(<span class="ruby-ivar">@summarySubject</span>, <span class="ruby-ivar">@date</span>), <span class="ruby-identifier">summary</span>)
774
- 127: <span class="ruby-keyword kw">end</span>
775
- 128:
776
- 129: <span class="ruby-comment cmt"># If there is a reminder text defined, resend the template to those</span>
777
- 130: <span class="ruby-comment cmt"># individuals that have not yet submitted their report yet.</span>
778
- 131: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@reminderText</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@reminderText</span>.<span class="ruby-identifier">empty?</span>
779
- 132: <span class="ruby-identifier">defaulterList</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">resource</span><span class="ruby-operator">|</span>
780
- 133: <span class="ruby-identifier">sendReminder</span>(<span class="ruby-identifier">resource</span>[<span class="ruby-value">0</span>], <span class="ruby-identifier">resource</span>[<span class="ruby-value">1</span>], <span class="ruby-identifier">resource</span>[<span class="ruby-value">2</span>])
781
- 134: <span class="ruby-keyword kw">end</span>
782
- 135: <span class="ruby-keyword kw">end</span>
783
- 136: <span class="ruby-keyword kw">end</span></pre>
744
+ 91: <span class="ruby-identifier">sendRichTextEmail</span>(<span class="ruby-identifier">to</span>, <span class="ruby-identifier">sprintf</span>(<span class="ruby-ivar">@resourceSheetSubject</span>, <span class="ruby-ivar">@date</span>),
745
+ 92: <span class="ruby-identifier">sheet</span>, <span class="ruby-keyword kw">nil</span>,
746
+ 93: <span class="ruby-node">&quot;#{resourceName} &lt;#{resourceEmail}&gt;&quot;</span>)
747
+ 94: <span class="ruby-keyword kw">end</span>
748
+ 95: <span class="ruby-keyword kw">end</span>
749
+ 96: <span class="ruby-keyword kw">else</span>
750
+ 97: <span class="ruby-identifier">defaulterList</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">resource</span>
751
+ 98: <span class="ruby-comment cmt"># Resource did not submit a time sheet</span>
752
+ 99: <span class="ruby-identifier">info</span>(<span class="ruby-node">&quot;Report from #{resourceId} is missing&quot;</span>)
753
+ 100: <span class="ruby-keyword kw">end</span>
754
+ 101: <span class="ruby-keyword kw">end</span>
755
+ 102: <span class="ruby-keyword kw">end</span>
756
+ 103:
757
+ 104: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">defaulterList</span>.<span class="ruby-identifier">empty?</span>
758
+ 105: <span class="ruby-comment cmt"># Prepend the defaulter list to the summary.</span>
759
+ 106: <span class="ruby-identifier">text</span> = <span class="ruby-identifier">sprintf</span>(<span class="ruby-ivar">@defaulterHeader</span>, <span class="ruby-identifier">defaulterList</span>.<span class="ruby-identifier">length</span>)
760
+ 107: <span class="ruby-identifier">defaulterList</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">resource</span><span class="ruby-operator">|</span>
761
+ 108: <span class="ruby-identifier">text</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot;* &lt;nowiki&gt;#{resource[1]}&lt;/nowiki&gt;\n&quot;</span>
762
+ 109: <span class="ruby-keyword kw">end</span>
763
+ 110: <span class="ruby-identifier">text</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">&quot;\n----\n&quot;</span>
764
+ 111: <span class="ruby-identifier">summary</span> = <span class="ruby-identifier">text</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">summary</span>
765
+ 112:
766
+ 113: <span class="ruby-comment cmt"># Create a file with the IDs of the resources who's reports are</span>
767
+ 114: <span class="ruby-comment cmt"># missing.</span>
768
+ 115: <span class="ruby-identifier">missingFile</span> = <span class="ruby-node">&quot;#{@sheetDir}/#{@date}/missing-reports&quot;</span>
769
+ 116: <span class="ruby-keyword kw">begin</span>
770
+ 117: <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">missingFile</span>, <span class="ruby-value str">'w'</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span>
771
+ 118: <span class="ruby-identifier">defaulterList</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">resource</span><span class="ruby-operator">|</span> <span class="ruby-identifier">f</span>.<span class="ruby-identifier">puts</span> <span class="ruby-identifier">resource</span>[<span class="ruby-value">0</span>] }
772
+ 119: <span class="ruby-keyword kw">end</span>
773
+ 120: <span class="ruby-keyword kw">rescue</span>
774
+ 121: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Cannot write file with missing reports (#missingFile): #{$!}&quot;</span>)
775
+ 122: <span class="ruby-keyword kw">end</span>
776
+ 123: <span class="ruby-keyword kw">end</span>
777
+ 124:
778
+ 125: <span class="ruby-comment cmt"># Send out the summary text to the list of digest recipients.</span>
779
+ 126: <span class="ruby-ivar">@digestRecipients</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">to</span><span class="ruby-operator">|</span>
780
+ 127: <span class="ruby-identifier">sendRichTextEmail</span>(<span class="ruby-identifier">to</span>, <span class="ruby-identifier">sprintf</span>(<span class="ruby-ivar">@summarySubject</span>, <span class="ruby-ivar">@date</span>), <span class="ruby-identifier">summary</span>)
781
+ 128: <span class="ruby-keyword kw">end</span>
782
+ 129:
783
+ 130: <span class="ruby-comment cmt"># If there is a reminder text defined, resend the template to those</span>
784
+ 131: <span class="ruby-comment cmt"># individuals that have not yet submitted their report yet.</span>
785
+ 132: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@reminderText</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@reminderText</span>.<span class="ruby-identifier">empty?</span>
786
+ 133: <span class="ruby-identifier">defaulterList</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">resource</span><span class="ruby-operator">|</span>
787
+ 134: <span class="ruby-identifier">sendReminder</span>(<span class="ruby-identifier">resource</span>[<span class="ruby-value">0</span>], <span class="ruby-identifier">resource</span>[<span class="ruby-value">1</span>], <span class="ruby-identifier">resource</span>[<span class="ruby-value">2</span>])
788
+ 135: <span class="ruby-keyword kw">end</span>
789
+ 136: <span class="ruby-keyword kw">end</span>
790
+ 137: <span class="ruby-keyword kw">end</span></pre>
784
791
  </div>
785
792
 
786
793
  </div>
@@ -817,25 +824,26 @@ project data is accessed via tj3client on a tj3 server process.
817
824
  <div class="method-source-code"
818
825
  id="get-esource-ournal-source">
819
826
  <pre>
820
- <span class="ruby-comment cmt"># File lib/TimeSheetSummary.rb, line 152</span>
821
- 152: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">getResourceJournal</span>(<span class="ruby-identifier">sheetFile</span>)
822
- 153: <span class="ruby-identifier">err</span> = <span class="ruby-value str">''</span>
823
- 154: <span class="ruby-identifier">status</span> = <span class="ruby-keyword kw">nil</span>
824
- 155: <span class="ruby-identifier">report</span> = <span class="ruby-keyword kw">nil</span>
825
- 156: <span class="ruby-identifier">warnings</span> = <span class="ruby-keyword kw">nil</span>
826
- 157: <span class="ruby-keyword kw">begin</span>
827
- 158: <span class="ruby-comment cmt"># Save a copy of the sheet for debugging purposes.</span>
828
- 159: <span class="ruby-identifier">command</span> = <span class="ruby-node">&quot;tj3client --silent check-ts #{@projectId} #{sheetFile}&quot;</span>
829
- 160: <span class="ruby-identifier">status</span> = <span class="ruby-constant">Open4</span>.<span class="ruby-identifier">popen4</span>(<span class="ruby-identifier">command</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">pid</span>, <span class="ruby-identifier">stdin</span>, <span class="ruby-identifier">stdout</span>, <span class="ruby-identifier">stderr</span><span class="ruby-operator">|</span>
830
- 161: <span class="ruby-comment cmt"># Send the report to the tj3client process via stdin.</span>
831
- 162: <span class="ruby-identifier">report</span> = <span class="ruby-identifier">stdout</span>.<span class="ruby-identifier">read</span>
832
- 163: <span class="ruby-identifier">warnings</span> = <span class="ruby-identifier">stderr</span>.<span class="ruby-identifier">read</span>
833
- 164: <span class="ruby-keyword kw">end</span>
834
- 165: <span class="ruby-keyword kw">rescue</span>
835
- 166: <span class="ruby-identifier">fatal</span>(<span class="ruby-node">&quot;Cannot summarize sheet: #{$!}&quot;</span>)
836
- 167: <span class="ruby-keyword kw">end</span>
837
- 168: <span class="ruby-identifier">report</span>
838
- 169: <span class="ruby-keyword kw">end</span></pre>
827
+ <span class="ruby-comment cmt"># File lib/TimeSheetSummary.rb, line 153</span>
828
+ 153: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">getResourceJournal</span>(<span class="ruby-identifier">sheetFile</span>)
829
+ 154: <span class="ruby-identifier">err</span> = <span class="ruby-value str">''</span>
830
+ 155: <span class="ruby-identifier">status</span> = <span class="ruby-keyword kw">nil</span>
831
+ 156: <span class="ruby-identifier">report</span> = <span class="ruby-keyword kw">nil</span>
832
+ 157: <span class="ruby-identifier">warnings</span> = <span class="ruby-keyword kw">nil</span>
833
+ 158: <span class="ruby-keyword kw">begin</span>
834
+ 159: <span class="ruby-comment cmt"># Save a copy of the sheet for debugging purposes.</span>
835
+ 160: <span class="ruby-identifier">command</span> = <span class="ruby-node">&quot;tj3client --silent check-ts #{@projectId} #{sheetFile}&quot;</span>
836
+ 161: <span class="ruby-identifier">status</span> = <span class="ruby-constant">Open4</span>.<span class="ruby-identifier">popen4</span>(<span class="ruby-identifier">command</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">pid</span>, <span class="ruby-identifier">stdin</span>, <span class="ruby-identifier">stdout</span>, <span class="ruby-identifier">stderr</span><span class="ruby-operator">|</span>
837
+ 162: <span class="ruby-comment cmt"># Send the report to the tj3client process via stdin.</span>
838
+ 163: <span class="ruby-identifier">report</span> = <span class="ruby-identifier">stdout</span>.<span class="ruby-identifier">read</span>
839
+ 164: <span class="ruby-identifier">warnings</span> = <span class="ruby-identifier">stderr</span>.<span class="ruby-identifier">read</span>
840
+ 165: <span class="ruby-keyword kw">end</span>
841
+ 166: <span class="ruby-keyword kw">rescue</span>
842
+ 167: <span class="ruby-identifier">fatal</span>(<span class="ruby-node">&quot;Cannot summarize sheet: #{$!}&quot;</span>)
843
+ 168: <span class="ruby-keyword kw">end</span>
844
+ 169:
845
+ 170: <span class="ruby-identifier">report</span>
846
+ 171: <span class="ruby-keyword kw">end</span></pre>
839
847
  </div>
840
848
 
841
849
  </div>
@@ -866,18 +874,18 @@ project data is accessed via tj3client on a tj3 server process.
866
874
  <div class="method-source-code"
867
875
  id="send-eminder-source">
868
876
  <pre>
869
- <span class="ruby-comment cmt"># File lib/TimeSheetSummary.rb, line 140</span>
870
- 140: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sendReminder</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">name</span>, <span class="ruby-identifier">email</span>)
871
- 141: <span class="ruby-identifier">attachment</span> = <span class="ruby-node">&quot;#{@templateDir}/#{@date}/#{id}_#{@date}.tji&quot;</span>
872
- 142: <span class="ruby-keyword kw">unless</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">exist?</span>(<span class="ruby-identifier">attachment</span>)
873
- 143: <span class="ruby-identifier">error</span>(<span class="ruby-value str">&quot;sendReportTemplates: &quot;</span> <span class="ruby-operator">+</span>
874
- 144: <span class="ruby-node">&quot;#{@sheetType} sheet #{attachment} for #{name} not found&quot;</span>)
875
- 145: <span class="ruby-keyword kw">end</span>
876
- 146:
877
- 147: <span class="ruby-identifier">message</span> = <span class="ruby-node">&quot;Hello #{name}!\n\n#{@reminderText}&quot;</span> <span class="ruby-operator">+</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">read</span>(<span class="ruby-identifier">attachment</span>)
878
- 148:
879
- 149: <span class="ruby-identifier">sendEmail</span>(<span class="ruby-identifier">email</span>, <span class="ruby-identifier">sprintf</span>(<span class="ruby-ivar">@reminderSubject</span>, <span class="ruby-ivar">@date</span>), <span class="ruby-identifier">message</span>, <span class="ruby-identifier">attachment</span>)
880
- 150: <span class="ruby-keyword kw">end</span></pre>
877
+ <span class="ruby-comment cmt"># File lib/TimeSheetSummary.rb, line 141</span>
878
+ 141: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sendReminder</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">name</span>, <span class="ruby-identifier">email</span>)
879
+ 142: <span class="ruby-identifier">attachment</span> = <span class="ruby-node">&quot;#{@templateDir}/#{@date}/#{id}_#{@date}.tji&quot;</span>
880
+ 143: <span class="ruby-keyword kw">unless</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">exist?</span>(<span class="ruby-identifier">attachment</span>)
881
+ 144: <span class="ruby-identifier">error</span>(<span class="ruby-value str">&quot;sendReportTemplates: &quot;</span> <span class="ruby-operator">+</span>
882
+ 145: <span class="ruby-node">&quot;#{@sheetType} sheet #{attachment} for #{name} not found&quot;</span>)
883
+ 146: <span class="ruby-keyword kw">end</span>
884
+ 147:
885
+ 148: <span class="ruby-identifier">message</span> = <span class="ruby-node">&quot;Hello #{name}!\n\n#{@reminderText}&quot;</span> <span class="ruby-operator">+</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">read</span>(<span class="ruby-identifier">attachment</span>)
886
+ 149:
887
+ 150: <span class="ruby-identifier">sendEmail</span>(<span class="ruby-identifier">email</span>, <span class="ruby-identifier">sprintf</span>(<span class="ruby-ivar">@reminderSubject</span>, <span class="ruby-ivar">@date</span>), <span class="ruby-identifier">message</span>, <span class="ruby-identifier">attachment</span>)
888
+ 151: <span class="ruby-keyword kw">end</span></pre>
881
889
  </div>
882
890
 
883
891
  </div>
@@ -167,6 +167,10 @@
167
167
 
168
168
  <li><a href="../TaskJuggler/DurationAttribute.html">TaskJuggler::DurationAttribute</a></li>
169
169
 
170
+ <li><a href="../TaskJuggler/FileList.html">TaskJuggler::FileList</a></li>
171
+
172
+ <li><a href="../TaskJuggler/FileRecord.html">TaskJuggler::FileRecord</a></li>
173
+
170
174
  <li><a href="../TaskJuggler/FixnumAttribute.html">TaskJuggler::FixnumAttribute</a></li>
171
175
 
172
176
  <li><a href="../TaskJuggler/FlagListAttribute.html">TaskJuggler::FlagListAttribute</a></li>
@@ -239,8 +243,6 @@
239
243
 
240
244
  <li><a href="../TaskJuggler/Macro.html">TaskJuggler::Macro</a></li>
241
245
 
242
- <li><a href="../TaskJuggler/MacroParser.html">TaskJuggler::MacroParser</a></li>
243
-
244
246
  <li><a href="../TaskJuggler/MacroTable.html">TaskJuggler::MacroTable</a></li>
245
247
 
246
248
  <li><a href="../TaskJuggler/ManagerResponsibilities.html">TaskJuggler::ManagerResponsibilities</a></li>
@@ -305,6 +307,8 @@
305
307
 
306
308
  <li><a href="../TaskJuggler/RTFReportLink.html">TaskJuggler::RTFReportLink</a></li>
307
309
 
310
+ <li><a href="../TaskJuggler/RTFWithQuerySupport.html">TaskJuggler::RTFWithQuerySupport</a></li>
311
+
308
312
  <li><a href="../TaskJuggler/RealFormat.html">TaskJuggler::RealFormat</a></li>
309
313
 
310
314
  <li><a href="../TaskJuggler/RealFormatAttribute.html">TaskJuggler::RealFormatAttribute</a></li>
@@ -351,8 +355,6 @@
351
355
 
352
356
  <li><a href="../TaskJuggler/RichTextElement.html">TaskJuggler::RichTextElement</a></li>
353
357
 
354
- <li><a href="../TaskJuggler/RichTextException.html">TaskJuggler::RichTextException</a></li>
355
-
356
358
  <li><a href="../TaskJuggler/RichTextFunctionExample.html">TaskJuggler::RichTextFunctionExample</a></li>
357
359
 
358
360
  <li><a href="../TaskJuggler/RichTextFunctionHandler.html">TaskJuggler::RichTextFunctionHandler</a></li>
@@ -393,6 +395,8 @@
393
395
 
394
396
  <li><a href="../TaskJuggler/ShiftScenario.html">TaskJuggler::ShiftScenario</a></li>
395
397
 
398
+ <li><a href="../TaskJuggler/SimpleQueryExpander.html">TaskJuggler::SimpleQueryExpander</a></li>
399
+
396
400
  <li><a href="../TaskJuggler/SortListAttribute.html">TaskJuggler::SortListAttribute</a></li>
397
401
 
398
402
  <li><a href="../TaskJuggler/SourceFileInfo.html">TaskJuggler::SourceFileInfo</a></li>
@@ -503,6 +507,8 @@
503
507
 
504
508
  <li><a href="../TaskJuggler/UserManual.html">TaskJuggler::UserManual</a></li>
505
509
 
510
+ <li><a href="../TaskJuggler/VimSyntax.html">TaskJuggler::VimSyntax</a></li>
511
+
506
512
  <li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
507
513
 
508
514
  <li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
@@ -583,10 +589,10 @@ A class to hold all time sheets of a project.
583
589
  <div class="method-source-code"
584
590
  id="new-source">
585
591
  <pre>
586
- <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 392</span>
587
- 392: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>
588
- 393: <span class="ruby-keyword kw">super</span>
589
- 394: <span class="ruby-keyword kw">end</span></pre>
592
+ <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 383</span>
593
+ 383: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>
594
+ 384: <span class="ruby-keyword kw">super</span>
595
+ 385: <span class="ruby-keyword kw">end</span></pre>
590
596
  </div>
591
597
 
592
598
  </div>
@@ -623,10 +629,10 @@ A class to hold all time sheets of a project.
623
629
  <div class="method-source-code"
624
630
  id="check-source">
625
631
  <pre>
626
- <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 396</span>
627
- 396: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">check</span>
628
- 397: <span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">s</span><span class="ruby-operator">|</span> <span class="ruby-identifier">s</span>.<span class="ruby-identifier">check</span> }
629
- 398: <span class="ruby-keyword kw">end</span></pre>
632
+ <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 387</span>
633
+ 387: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">check</span>
634
+ 388: <span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">s</span><span class="ruby-operator">|</span> <span class="ruby-identifier">s</span>.<span class="ruby-identifier">check</span> }
635
+ 389: <span class="ruby-keyword kw">end</span></pre>
630
636
  </div>
631
637
 
632
638
  </div>
@@ -657,10 +663,10 @@ A class to hold all time sheets of a project.
657
663
  <div class="method-source-code"
658
664
  id="warn-n-elta-source">
659
665
  <pre>
660
- <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 400</span>
661
- 400: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">warnOnDelta</span>
662
- 401: <span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">s</span><span class="ruby-operator">|</span> <span class="ruby-identifier">s</span>.<span class="ruby-identifier">warnOnDelta</span> }
663
- 402: <span class="ruby-keyword kw">end</span></pre>
666
+ <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 391</span>
667
+ 391: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">warnOnDelta</span>
668
+ 392: <span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">s</span><span class="ruby-operator">|</span> <span class="ruby-identifier">s</span>.<span class="ruby-identifier">warnOnDelta</span> }
669
+ 393: <span class="ruby-keyword kw">end</span></pre>
664
670
  </div>
665
671
 
666
672
  </div>
@@ -169,6 +169,10 @@
169
169
 
170
170
  <li><a href="../TaskJuggler/DurationAttribute.html">TaskJuggler::DurationAttribute</a></li>
171
171
 
172
+ <li><a href="../TaskJuggler/FileList.html">TaskJuggler::FileList</a></li>
173
+
174
+ <li><a href="../TaskJuggler/FileRecord.html">TaskJuggler::FileRecord</a></li>
175
+
172
176
  <li><a href="../TaskJuggler/FixnumAttribute.html">TaskJuggler::FixnumAttribute</a></li>
173
177
 
174
178
  <li><a href="../TaskJuggler/FlagListAttribute.html">TaskJuggler::FlagListAttribute</a></li>
@@ -241,8 +245,6 @@
241
245
 
242
246
  <li><a href="../TaskJuggler/Macro.html">TaskJuggler::Macro</a></li>
243
247
 
244
- <li><a href="../TaskJuggler/MacroParser.html">TaskJuggler::MacroParser</a></li>
245
-
246
248
  <li><a href="../TaskJuggler/MacroTable.html">TaskJuggler::MacroTable</a></li>
247
249
 
248
250
  <li><a href="../TaskJuggler/ManagerResponsibilities.html">TaskJuggler::ManagerResponsibilities</a></li>
@@ -307,6 +309,8 @@
307
309
 
308
310
  <li><a href="../TaskJuggler/RTFReportLink.html">TaskJuggler::RTFReportLink</a></li>
309
311
 
312
+ <li><a href="../TaskJuggler/RTFWithQuerySupport.html">TaskJuggler::RTFWithQuerySupport</a></li>
313
+
310
314
  <li><a href="../TaskJuggler/RealFormat.html">TaskJuggler::RealFormat</a></li>
311
315
 
312
316
  <li><a href="../TaskJuggler/RealFormatAttribute.html">TaskJuggler::RealFormatAttribute</a></li>
@@ -353,8 +357,6 @@
353
357
 
354
358
  <li><a href="../TaskJuggler/RichTextElement.html">TaskJuggler::RichTextElement</a></li>
355
359
 
356
- <li><a href="../TaskJuggler/RichTextException.html">TaskJuggler::RichTextException</a></li>
357
-
358
360
  <li><a href="../TaskJuggler/RichTextFunctionExample.html">TaskJuggler::RichTextFunctionExample</a></li>
359
361
 
360
362
  <li><a href="../TaskJuggler/RichTextFunctionHandler.html">TaskJuggler::RichTextFunctionHandler</a></li>
@@ -395,6 +397,8 @@
395
397
 
396
398
  <li><a href="../TaskJuggler/ShiftScenario.html">TaskJuggler::ShiftScenario</a></li>
397
399
 
400
+ <li><a href="../TaskJuggler/SimpleQueryExpander.html">TaskJuggler::SimpleQueryExpander</a></li>
401
+
398
402
  <li><a href="../TaskJuggler/SortListAttribute.html">TaskJuggler::SortListAttribute</a></li>
399
403
 
400
404
  <li><a href="../TaskJuggler/SourceFileInfo.html">TaskJuggler::SourceFileInfo</a></li>
@@ -505,6 +509,8 @@
505
509
 
506
510
  <li><a href="../TaskJuggler/UserManual.html">TaskJuggler::UserManual</a></li>
507
511
 
512
+ <li><a href="../TaskJuggler/VimSyntax.html">TaskJuggler::VimSyntax</a></li>
513
+
508
514
  <li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
509
515
 
510
516
  <li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
@@ -193,6 +193,10 @@
193
193
 
194
194
  <li><a href="../TaskJuggler/DurationAttribute.html">TaskJuggler::DurationAttribute</a></li>
195
195
 
196
+ <li><a href="../TaskJuggler/FileList.html">TaskJuggler::FileList</a></li>
197
+
198
+ <li><a href="../TaskJuggler/FileRecord.html">TaskJuggler::FileRecord</a></li>
199
+
196
200
  <li><a href="../TaskJuggler/FixnumAttribute.html">TaskJuggler::FixnumAttribute</a></li>
197
201
 
198
202
  <li><a href="../TaskJuggler/FlagListAttribute.html">TaskJuggler::FlagListAttribute</a></li>
@@ -265,8 +269,6 @@
265
269
 
266
270
  <li><a href="../TaskJuggler/Macro.html">TaskJuggler::Macro</a></li>
267
271
 
268
- <li><a href="../TaskJuggler/MacroParser.html">TaskJuggler::MacroParser</a></li>
269
-
270
272
  <li><a href="../TaskJuggler/MacroTable.html">TaskJuggler::MacroTable</a></li>
271
273
 
272
274
  <li><a href="../TaskJuggler/ManagerResponsibilities.html">TaskJuggler::ManagerResponsibilities</a></li>
@@ -331,6 +333,8 @@
331
333
 
332
334
  <li><a href="../TaskJuggler/RTFReportLink.html">TaskJuggler::RTFReportLink</a></li>
333
335
 
336
+ <li><a href="../TaskJuggler/RTFWithQuerySupport.html">TaskJuggler::RTFWithQuerySupport</a></li>
337
+
334
338
  <li><a href="../TaskJuggler/RealFormat.html">TaskJuggler::RealFormat</a></li>
335
339
 
336
340
  <li><a href="../TaskJuggler/RealFormatAttribute.html">TaskJuggler::RealFormatAttribute</a></li>
@@ -377,8 +381,6 @@
377
381
 
378
382
  <li><a href="../TaskJuggler/RichTextElement.html">TaskJuggler::RichTextElement</a></li>
379
383
 
380
- <li><a href="../TaskJuggler/RichTextException.html">TaskJuggler::RichTextException</a></li>
381
-
382
384
  <li><a href="../TaskJuggler/RichTextFunctionExample.html">TaskJuggler::RichTextFunctionExample</a></li>
383
385
 
384
386
  <li><a href="../TaskJuggler/RichTextFunctionHandler.html">TaskJuggler::RichTextFunctionHandler</a></li>
@@ -419,6 +421,8 @@
419
421
 
420
422
  <li><a href="../TaskJuggler/ShiftScenario.html">TaskJuggler::ShiftScenario</a></li>
421
423
 
424
+ <li><a href="../TaskJuggler/SimpleQueryExpander.html">TaskJuggler::SimpleQueryExpander</a></li>
425
+
422
426
  <li><a href="../TaskJuggler/SortListAttribute.html">TaskJuggler::SortListAttribute</a></li>
423
427
 
424
428
  <li><a href="../TaskJuggler/SourceFileInfo.html">TaskJuggler::SourceFileInfo</a></li>
@@ -529,6 +533,8 @@
529
533
 
530
534
  <li><a href="../TaskJuggler/UserManual.html">TaskJuggler::UserManual</a></li>
531
535
 
536
+ <li><a href="../TaskJuggler/VimSyntax.html">TaskJuggler::VimSyntax</a></li>
537
+
532
538
  <li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
533
539
 
534
540
  <li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
@@ -624,53 +630,60 @@ configured tj3d to work.
624
630
  36: <span class="ruby-ivar">@host</span> = <span class="ruby-value str">'127.0.0.1'</span>
625
631
  37: <span class="ruby-comment cmt"># The default port. 'T' and 'J' in ASCII decimal</span>
626
632
  38: <span class="ruby-ivar">@port</span> = <span class="ruby-value">8474</span>
627
- 39: <span class="ruby-comment cmt"># This must must be changed for the communication to work.</span>
628
- 40: <span class="ruby-ivar">@authKey</span> = <span class="ruby-keyword kw">nil</span>
629
- 41: <span class="ruby-comment cmt"># Determines whether report IDs are fix IDs or regular expressions that</span>
630
- 42: <span class="ruby-comment cmt"># match a set of reports.</span>
631
- 43: <span class="ruby-ivar">@regExpMode</span> = <span class="ruby-keyword kw">false</span>
632
- 44:
633
- 45: <span class="ruby-ivar">@mandatoryArgs</span> = <span class="ruby-value str">'&lt;command&gt; [arg1 arg2 ...]'</span>
633
+ 39: <span class="ruby-comment cmt"># The file with the server URI in case port is 0.</span>
634
+ 40: <span class="ruby-ivar">@uriFile</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-constant">Dir</span>.<span class="ruby-identifier">getwd</span>, <span class="ruby-value str">'.tj3d.uri'</span>)
635
+ 41: <span class="ruby-comment cmt"># This must must be changed for the communication to work.</span>
636
+ 42: <span class="ruby-ivar">@authKey</span> = <span class="ruby-keyword kw">nil</span>
637
+ 43: <span class="ruby-comment cmt"># Determines whether report IDs are fix IDs or regular expressions that</span>
638
+ 44: <span class="ruby-comment cmt"># match a set of reports.</span>
639
+ 45: <span class="ruby-ivar">@regExpMode</span> = <span class="ruby-keyword kw">false</span>
634
640
  46:
635
- 47: <span class="ruby-comment cmt"># This list describes the supported command line commands and their</span>
636
- 48: <span class="ruby-comment cmt"># parameter.</span>
637
- 49: <span class="ruby-comment cmt"># :label : The command name</span>
638
- 50: <span class="ruby-comment cmt"># :args : A list of parameters. If the first character is a '+' the</span>
639
- 51: <span class="ruby-comment cmt"># parameter must be provided 1 or more times. If the first character is</span>
640
- 52: <span class="ruby-comment cmt"># a '*' the parameter must be provided 0 or more times. Repeatable and</span>
641
- 53: <span class="ruby-comment cmt"># optional paramters must follow the mandatory ones.</span>
642
- 54: <span class="ruby-comment cmt"># :descr : A short description of the command used for the help text.</span>
643
- 55: <span class="ruby-ivar">@commands</span> = [
644
- 56: { <span class="ruby-value">:label</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'status'</span>,
645
- 57: <span class="ruby-value">:args</span> =<span class="ruby-operator">&gt;</span> [],
646
- 58: <span class="ruby-value">:descr</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'Display the status of the available projects'</span> },
647
- 59: { <span class="ruby-value">:label</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'terminate'</span>,
648
- 60: <span class="ruby-value">:args</span> =<span class="ruby-operator">&gt;</span> [],
649
- 61: <span class="ruby-value">:descr</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'Terminate the TaskJuggler daemon'</span> },
650
- 62: { <span class="ruby-value">:label</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'add'</span>,
651
- 63: <span class="ruby-value">:args</span> =<span class="ruby-operator">&gt;</span> [ <span class="ruby-value str">'tjp file'</span>, <span class="ruby-value str">'*tji file'</span>],
652
- 64: <span class="ruby-value">:descr</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'Add a new project or update and existing one'</span> },
653
- 65: { <span class="ruby-value">:label</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'remove'</span>,
654
- 66: <span class="ruby-value">:args</span> =<span class="ruby-operator">&gt;</span> [ <span class="ruby-value str">'+project ID'</span> ],
655
- 67: <span class="ruby-value">:descr</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'Remove the project with the specified ID from the daemon'</span> },
656
- 68: { <span class="ruby-value">:label</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'report'</span>,
657
- 69: <span class="ruby-value">:args</span> =<span class="ruby-operator">&gt;</span> [ <span class="ruby-value str">'project ID'</span>, <span class="ruby-value str">'+report ID'</span>, <span class="ruby-value str">'!='</span>, <span class="ruby-value str">'*tji file'</span>],
658
- 70: <span class="ruby-value">:descr</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'Generate the report with the provided ID for '</span> <span class="ruby-operator">+</span>
659
- 71: <span class="ruby-value str">'the project with the given ID'</span>},
660
- 72: { <span class="ruby-value">:label</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'list-reports'</span>,
661
- 73: <span class="ruby-value">:args</span> =<span class="ruby-operator">&gt;</span> [ <span class="ruby-value str">'project ID'</span>, <span class="ruby-value str">'!report ID'</span> ],
662
- 74: <span class="ruby-value">:descr</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'List all available reports of the project or those '</span> <span class="ruby-operator">+</span>
663
- 75: <span class="ruby-value str">'that match the provided report ID'</span> },
664
- 76: { <span class="ruby-value">:label</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'check-ts'</span>,
665
- 77: <span class="ruby-value">:args</span> =<span class="ruby-operator">&gt;</span> [ <span class="ruby-value str">'project ID'</span>, <span class="ruby-value str">'time sheet'</span> ],
666
- 78: <span class="ruby-value">:descr</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'Check the provided time sheet for correctness'</span> <span class="ruby-operator">+</span>
667
- 79: <span class="ruby-value str">'against the project with the given ID'</span>},
668
- 80: { <span class="ruby-value">:label</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'check-ss'</span>,
669
- 81: <span class="ruby-value">:args</span> =<span class="ruby-operator">&gt;</span> [ <span class="ruby-value str">'project ID'</span>, <span class="ruby-value str">'status sheet'</span> ],
670
- 82: <span class="ruby-value">:descr</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'Check the provided status sheet for correctness '</span> <span class="ruby-operator">+</span>
671
- 83: <span class="ruby-value str">'against the project with the given ID'</span>}
672
- 84: ]
673
- 85: <span class="ruby-keyword kw">end</span></pre>
641
+ 47: <span class="ruby-ivar">@mandatoryArgs</span> = <span class="ruby-value str">'&lt;command&gt; [arg1 arg2 ...]'</span>
642
+ 48:
643
+ 49: <span class="ruby-comment cmt"># This list describes the supported command line commands and their</span>
644
+ 50: <span class="ruby-comment cmt"># parameter.</span>
645
+ 51: <span class="ruby-comment cmt"># :label : The command name</span>
646
+ 52: <span class="ruby-comment cmt"># :args : A list of parameters. If the first character is a '+' the</span>
647
+ 53: <span class="ruby-comment cmt"># parameter must be provided 1 or more times. If the first character is</span>
648
+ 54: <span class="ruby-comment cmt"># a '*' the parameter must be provided 0 or more times. Repeatable and</span>
649
+ 55: <span class="ruby-comment cmt"># optional paramters must follow the mandatory ones.</span>
650
+ 56: <span class="ruby-comment cmt"># :descr : A short description of the command used for the help text.</span>
651
+ 57: <span class="ruby-ivar">@commands</span> = [
652
+ 58: { <span class="ruby-value">:label</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'status'</span>,
653
+ 59: <span class="ruby-value">:args</span> =<span class="ruby-operator">&gt;</span> [],
654
+ 60: <span class="ruby-value">:descr</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'Display the status of the available projects'</span> },
655
+ 61: { <span class="ruby-value">:label</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'terminate'</span>,
656
+ 62: <span class="ruby-value">:args</span> =<span class="ruby-operator">&gt;</span> [],
657
+ 63: <span class="ruby-value">:descr</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'Terminate the TaskJuggler daemon'</span> },
658
+ 64: { <span class="ruby-value">:label</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'add'</span>,
659
+ 65: <span class="ruby-value">:args</span> =<span class="ruby-operator">&gt;</span> [ <span class="ruby-value str">'tjp file'</span>, <span class="ruby-value str">'*tji file'</span>],
660
+ 66: <span class="ruby-value">:descr</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'Add a new project or update and existing one'</span> },
661
+ 67: { <span class="ruby-value">:label</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'update'</span>,
662
+ 68: <span class="ruby-value">:args</span> =<span class="ruby-operator">&gt;</span> [],
663
+ 69: <span class="ruby-value">:descr</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'Reload all projects that have modified files and '</span><span class="ruby-operator">+</span>
664
+ 70: <span class="ruby-value str">'are not being reloaded already'</span> },
665
+ 71: { <span class="ruby-value">:label</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'remove'</span>,
666
+ 72: <span class="ruby-value">:args</span> =<span class="ruby-operator">&gt;</span> [ <span class="ruby-value str">'+project ID'</span> ],
667
+ 73: <span class="ruby-value">:descr</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'Remove the project with the specified ID from the '</span> <span class="ruby-operator">+</span>
668
+ 74: <span class="ruby-value str">'daemon'</span> },
669
+ 75: { <span class="ruby-value">:label</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'report'</span>,
670
+ 76: <span class="ruby-value">:args</span> =<span class="ruby-operator">&gt;</span> [ <span class="ruby-value str">'project ID'</span>, <span class="ruby-value str">'+report ID'</span>, <span class="ruby-value str">'!='</span>, <span class="ruby-value str">'*tji file'</span>],
671
+ 77: <span class="ruby-value">:descr</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'Generate the report with the provided ID for '</span> <span class="ruby-operator">+</span>
672
+ 78: <span class="ruby-value str">'the project with the given ID'</span>},
673
+ 79: { <span class="ruby-value">:label</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'list-reports'</span>,
674
+ 80: <span class="ruby-value">:args</span> =<span class="ruby-operator">&gt;</span> [ <span class="ruby-value str">'project ID'</span>, <span class="ruby-value str">'!report ID'</span> ],
675
+ 81: <span class="ruby-value">:descr</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'List all available reports of the project or those '</span> <span class="ruby-operator">+</span>
676
+ 82: <span class="ruby-value str">'that match the provided report ID'</span> },
677
+ 83: { <span class="ruby-value">:label</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'check-ts'</span>,
678
+ 84: <span class="ruby-value">:args</span> =<span class="ruby-operator">&gt;</span> [ <span class="ruby-value str">'project ID'</span>, <span class="ruby-value str">'time sheet'</span> ],
679
+ 85: <span class="ruby-value">:descr</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'Check the provided time sheet for correctness '</span> <span class="ruby-operator">+</span>
680
+ 86: <span class="ruby-value str">'against the project with the given ID'</span>},
681
+ 87: { <span class="ruby-value">:label</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'check-ss'</span>,
682
+ 88: <span class="ruby-value">:args</span> =<span class="ruby-operator">&gt;</span> [ <span class="ruby-value str">'project ID'</span>, <span class="ruby-value str">'status sheet'</span> ],
683
+ 89: <span class="ruby-value">:descr</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'Check the provided status sheet for correctness '</span> <span class="ruby-operator">+</span>
684
+ 90: <span class="ruby-value str">'against the project with the given ID'</span>}
685
+ 91: ]
686
+ 92: <span class="ruby-keyword kw">end</span></pre>
674
687
  </div>
675
688
 
676
689
  </div>
@@ -707,21 +720,21 @@ configured tj3d to work.
707
720
  <div class="method-source-code"
708
721
  id="main-source">
709
722
  <pre>
710
- <span class="ruby-comment cmt"># File lib/tj3client.rb, line 129</span>
711
- 129: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">main</span>
712
- 130: <span class="ruby-identifier">args</span> = <span class="ruby-keyword kw">super</span>
713
- 131: <span class="ruby-comment cmt"># Run a first check of the non-option command line arguments.</span>
714
- 132: <span class="ruby-identifier">checkCommand</span>(<span class="ruby-identifier">args</span>)
715
- 133: <span class="ruby-comment cmt"># Read some configuration variables. Except for the authKey, they are</span>
716
- 134: <span class="ruby-comment cmt"># all optional.</span>
717
- 135: <span class="ruby-ivar">@rc</span>.<span class="ruby-identifier">configure</span>(<span class="ruby-keyword kw">self</span>, <span class="ruby-value str">'global'</span>)
718
- 136:
719
- 137: <span class="ruby-identifier">connectDaemon</span>
720
- 138: <span class="ruby-identifier">retVal</span> = <span class="ruby-identifier">executeCommand</span>(<span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>], <span class="ruby-identifier">args</span>[<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">1</span>])
721
- 139: <span class="ruby-identifier">disconnectDaemon</span>
722
- 140:
723
- 141: <span class="ruby-identifier">retVal</span>
724
- 142: <span class="ruby-keyword kw">end</span></pre>
723
+ <span class="ruby-comment cmt"># File lib/tj3client.rb, line 141</span>
724
+ 141: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">main</span>
725
+ 142: <span class="ruby-identifier">args</span> = <span class="ruby-keyword kw">super</span>
726
+ 143: <span class="ruby-comment cmt"># Run a first check of the non-option command line arguments.</span>
727
+ 144: <span class="ruby-identifier">checkCommand</span>(<span class="ruby-identifier">args</span>)
728
+ 145: <span class="ruby-comment cmt"># Read some configuration variables. Except for the authKey, they are</span>
729
+ 146: <span class="ruby-comment cmt"># all optional.</span>
730
+ 147: <span class="ruby-ivar">@rc</span>.<span class="ruby-identifier">configure</span>(<span class="ruby-keyword kw">self</span>, <span class="ruby-value str">'global'</span>)
731
+ 148:
732
+ 149: <span class="ruby-identifier">connectDaemon</span>
733
+ 150: <span class="ruby-identifier">retVal</span> = <span class="ruby-identifier">executeCommand</span>(<span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>], <span class="ruby-identifier">args</span>[<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">1</span>])
734
+ 151: <span class="ruby-identifier">disconnectDaemon</span>
735
+ 152:
736
+ 153: <span class="ruby-identifier">retVal</span>
737
+ 154: <span class="ruby-keyword kw">end</span></pre>
725
738
  </div>
726
739
 
727
740
  </div>
@@ -752,42 +765,47 @@ configured tj3d to work.
752
765
  <div class="method-source-code"
753
766
  id="process-rguments-source">
754
767
  <pre>
755
- <span class="ruby-comment cmt"># File lib/tj3client.rb, line 87</span>
756
- 87: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">processArguments</span>(<span class="ruby-identifier">argv</span>)
757
- 88: <span class="ruby-keyword kw">super</span> <span class="ruby-keyword kw">do</span>
758
- 89: <span class="ruby-ivar">@opts</span>.<span class="ruby-identifier">banner</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">The TaskJuggler client is used to send commands and data to the TaskJugglerdaemon. The communication is done via TCP/IP.The following commands are supported:</span>
759
- 90:
760
- 91: <span class="ruby-comment cmt"># Convert the command list into a help text.</span>
761
- 92: <span class="ruby-ivar">@commands</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">cmd</span><span class="ruby-operator">|</span>
762
- 93: <span class="ruby-identifier">tail</span> = <span class="ruby-value str">''</span>
763
- 94: <span class="ruby-identifier">args</span> = <span class="ruby-identifier">cmd</span>[<span class="ruby-value">:args</span>].<span class="ruby-identifier">dup</span>
764
- 95: <span class="ruby-identifier">args</span>.<span class="ruby-identifier">map!</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">c</span><span class="ruby-operator">|</span>
765
- 96: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">c</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">'*'</span>
766
- 97: <span class="ruby-node">&quot;[&lt;#{c[1..-1]}&gt; ...]&quot;</span>
767
- 98: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">c</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">'+'</span>
768
- 99: <span class="ruby-node">&quot;&lt;#{c[1..-1]}&gt; [&lt;#{c[1..-1]}&gt; ...]&quot;</span>
769
- 100: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">c</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">'!'</span>
770
- 101: <span class="ruby-identifier">tail</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">']'</span>
771
- 102: <span class="ruby-node">&quot;[#{c[1..-1]} &quot;</span>
772
- 103: <span class="ruby-keyword kw">else</span>
773
- 104: <span class="ruby-node">&quot;&lt;#{c}&gt;&quot;</span>
774
- 105: <span class="ruby-keyword kw">end</span>
775
- 106: <span class="ruby-keyword kw">end</span>
776
- 107: <span class="ruby-identifier">args</span> = <span class="ruby-identifier">args</span>.<span class="ruby-identifier">join</span>(<span class="ruby-value str">' '</span>)
777
- 108: <span class="ruby-ivar">@opts</span>.<span class="ruby-identifier">banner</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot; #{cmd[:label] + ' ' + args + tail}&quot;</span> <span class="ruby-operator">+</span>
778
- 109: <span class="ruby-node">&quot;\n\n#{' ' * 10 + format(cmd[:descr], 10)}\n&quot;</span>
779
- 110: <span class="ruby-keyword kw">end</span>
780
- 111: <span class="ruby-ivar">@opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'-p'</span>, <span class="ruby-value str">'--port &lt;NUMBER&gt;'</span>, <span class="ruby-constant">Integer</span>,
781
- 112: <span class="ruby-identifier">format</span>(<span class="ruby-value str">'Use the specified TCP/IP port'</span>)) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">arg</span><span class="ruby-operator">|</span>
782
- 113: <span class="ruby-ivar">@port</span> = <span class="ruby-identifier">arg</span>
783
- 114: <span class="ruby-keyword kw">end</span>
784
- 115: <span class="ruby-ivar">@opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'-r'</span>, <span class="ruby-value str">'--regexp'</span>,
785
- 116: <span class="ruby-identifier">format</span>(<span class="ruby-value str">'The report IDs are not fixed but regular expressions '</span> <span class="ruby-operator">+</span>
786
- 117: <span class="ruby-value str">'that match a set of reports'</span>)) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">arg</span><span class="ruby-operator">|</span>
787
- 118: <span class="ruby-ivar">@regExpMode</span> = <span class="ruby-keyword kw">true</span>
788
- 119: <span class="ruby-keyword kw">end</span>
789
- 120: <span class="ruby-keyword kw">end</span>
790
- 121: <span class="ruby-keyword kw">end</span></pre>
768
+ <span class="ruby-comment cmt"># File lib/tj3client.rb, line 94</span>
769
+ 94: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">processArguments</span>(<span class="ruby-identifier">argv</span>)
770
+ 95: <span class="ruby-keyword kw">super</span> <span class="ruby-keyword kw">do</span>
771
+ 96: <span class="ruby-ivar">@opts</span>.<span class="ruby-identifier">banner</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">The TaskJuggler client is used to send commands and data to the TaskJugglerdaemon. The communication is done via TCP/IP.The following commands are supported:</span>
772
+ 97:
773
+ 98: <span class="ruby-comment cmt"># Convert the command list into a help text.</span>
774
+ 99: <span class="ruby-ivar">@commands</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">cmd</span><span class="ruby-operator">|</span>
775
+ 100: <span class="ruby-identifier">tail</span> = <span class="ruby-value str">''</span>
776
+ 101: <span class="ruby-identifier">args</span> = <span class="ruby-identifier">cmd</span>[<span class="ruby-value">:args</span>].<span class="ruby-identifier">dup</span>
777
+ 102: <span class="ruby-identifier">args</span>.<span class="ruby-identifier">map!</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">c</span><span class="ruby-operator">|</span>
778
+ 103: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">c</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">'*'</span>
779
+ 104: <span class="ruby-node">&quot;[&lt;#{c[1..-1]}&gt; ...]&quot;</span>
780
+ 105: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">c</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">'+'</span>
781
+ 106: <span class="ruby-node">&quot;&lt;#{c[1..-1]}&gt; [&lt;#{c[1..-1]}&gt; ...]&quot;</span>
782
+ 107: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">c</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">'!'</span>
783
+ 108: <span class="ruby-identifier">tail</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">']'</span>
784
+ 109: <span class="ruby-node">&quot;[#{c[1..-1]} &quot;</span>
785
+ 110: <span class="ruby-keyword kw">else</span>
786
+ 111: <span class="ruby-node">&quot;&lt;#{c}&gt;&quot;</span>
787
+ 112: <span class="ruby-keyword kw">end</span>
788
+ 113: <span class="ruby-keyword kw">end</span>
789
+ 114: <span class="ruby-identifier">args</span> = <span class="ruby-identifier">args</span>.<span class="ruby-identifier">join</span>(<span class="ruby-value str">' '</span>)
790
+ 115: <span class="ruby-ivar">@opts</span>.<span class="ruby-identifier">banner</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot; #{cmd[:label] + ' ' + args + tail}&quot;</span> <span class="ruby-operator">+</span>
791
+ 116: <span class="ruby-node">&quot;\n\n#{' ' * 10 + format(cmd[:descr], 10)}\n&quot;</span>
792
+ 117: <span class="ruby-keyword kw">end</span>
793
+ 118: <span class="ruby-ivar">@opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'-p'</span>, <span class="ruby-value str">'--port &lt;NUMBER&gt;'</span>, <span class="ruby-constant">Integer</span>,
794
+ 119: <span class="ruby-identifier">format</span>(<span class="ruby-value str">'Use the specified TCP/IP port'</span>)) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">arg</span><span class="ruby-operator">|</span>
795
+ 120: <span class="ruby-ivar">@port</span> = <span class="ruby-identifier">arg</span>
796
+ 121: <span class="ruby-keyword kw">end</span>
797
+ 122: <span class="ruby-ivar">@opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'--urifile'</span>, <span class="ruby-constant">String</span>,
798
+ 123: <span class="ruby-identifier">format</span>(<span class="ruby-value str">'If the port is 0, use this file to get the URI '</span> <span class="ruby-operator">+</span>
799
+ 124: <span class="ruby-value str">'of the server.'</span>)) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">arg</span><span class="ruby-operator">|</span>
800
+ 125: <span class="ruby-ivar">@uriFile</span> = <span class="ruby-identifier">arg</span>
801
+ 126: <span class="ruby-keyword kw">end</span>
802
+ 127: <span class="ruby-ivar">@opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'-r'</span>, <span class="ruby-value str">'--regexp'</span>,
803
+ 128: <span class="ruby-identifier">format</span>(<span class="ruby-value str">'The report IDs are not fixed but regular expressions '</span> <span class="ruby-operator">+</span>
804
+ 129: <span class="ruby-value str">'that match a set of reports'</span>)) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">arg</span><span class="ruby-operator">|</span>
805
+ 130: <span class="ruby-ivar">@regExpMode</span> = <span class="ruby-keyword kw">true</span>
806
+ 131: <span class="ruby-keyword kw">end</span>
807
+ 132: <span class="ruby-keyword kw">end</span>
808
+ 133: <span class="ruby-keyword kw">end</span></pre>
791
809
  </div>
792
810
 
793
811
  </div>
@@ -826,19 +844,19 @@ Transfer the <em>tjiFiles</em> to the <em>reportServer</em>.
826
844
  <div class="method-source-code"
827
845
  id="add-iles-source">
828
846
  <pre>
829
- <span class="ruby-comment cmt"># File lib/tj3client.rb, line 418</span>
830
- 418: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">addFiles</span>(<span class="ruby-identifier">tjiFiles</span>)
831
- 419: <span class="ruby-identifier">tjiFiles</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">file</span><span class="ruby-operator">|</span>
832
- 420: <span class="ruby-keyword kw">begin</span>
833
- 421: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@reportServer</span>.<span class="ruby-identifier">addFile</span>(<span class="ruby-ivar">@rs_authKey</span>, <span class="ruby-identifier">file</span>)
834
- 422: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
835
- 423: <span class="ruby-keyword kw">end</span>
836
- 424: <span class="ruby-keyword kw">rescue</span>
837
- 425: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Cannot add file #{file} to ReportServer&quot;</span>)
838
- 426: <span class="ruby-keyword kw">end</span>
839
- 427: <span class="ruby-keyword kw">end</span>
840
- 428: <span class="ruby-keyword kw">true</span>
841
- 429: <span class="ruby-keyword kw">end</span></pre>
847
+ <span class="ruby-comment cmt"># File lib/tj3client.rb, line 446</span>
848
+ 446: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">addFiles</span>(<span class="ruby-identifier">tjiFiles</span>)
849
+ 447: <span class="ruby-identifier">tjiFiles</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">file</span><span class="ruby-operator">|</span>
850
+ 448: <span class="ruby-keyword kw">begin</span>
851
+ 449: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@reportServer</span>.<span class="ruby-identifier">addFile</span>(<span class="ruby-ivar">@rs_authKey</span>, <span class="ruby-identifier">file</span>)
852
+ 450: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
853
+ 451: <span class="ruby-keyword kw">end</span>
854
+ 452: <span class="ruby-keyword kw">rescue</span>
855
+ 453: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Cannot add file #{file} to ReportServer&quot;</span>)
856
+ 454: <span class="ruby-keyword kw">end</span>
857
+ 455: <span class="ruby-keyword kw">end</span>
858
+ 456: <span class="ruby-keyword kw">true</span>
859
+ 457: <span class="ruby-keyword kw">end</span></pre>
842
860
  </div>
843
861
 
844
862
  </div>
@@ -873,15 +891,15 @@ command with the provided arguments.
873
891
  <div class="method-source-code"
874
892
  id="call-aemon-source">
875
893
  <pre>
876
- <span class="ruby-comment cmt"># File lib/tj3client.rb, line 387</span>
877
- 387: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">callDaemon</span>(<span class="ruby-identifier">command</span>, <span class="ruby-identifier">args</span>)
878
- 388: <span class="ruby-keyword kw">begin</span>
879
- 389: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@broker</span>.<span class="ruby-identifier">command</span>(<span class="ruby-ivar">@authKey</span>, <span class="ruby-identifier">command</span>, <span class="ruby-identifier">args</span>)
880
- 390: <span class="ruby-keyword kw">rescue</span>
881
- 391: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Call to TaskJuggler server on host '#{@host}' &quot;</span> <span class="ruby-operator">+</span>
882
- 392: <span class="ruby-node">&quot;port #{@port} failed: #{$!}&quot;</span>)
883
- 393: <span class="ruby-keyword kw">end</span>
884
- 394: <span class="ruby-keyword kw">end</span></pre>
894
+ <span class="ruby-comment cmt"># File lib/tj3client.rb, line 415</span>
895
+ 415: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">callDaemon</span>(<span class="ruby-identifier">command</span>, <span class="ruby-identifier">args</span>)
896
+ 416: <span class="ruby-keyword kw">begin</span>
897
+ 417: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@broker</span>.<span class="ruby-identifier">command</span>(<span class="ruby-ivar">@authKey</span>, <span class="ruby-identifier">command</span>, <span class="ruby-identifier">args</span>)
898
+ 418: <span class="ruby-keyword kw">rescue</span>
899
+ 419: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Call to TaskJuggler server on host '#{@host}' &quot;</span> <span class="ruby-operator">+</span>
900
+ 420: <span class="ruby-node">&quot;port #{@port} failed: #{$!}&quot;</span>)
901
+ 421: <span class="ruby-keyword kw">end</span>
902
+ 422: <span class="ruby-keyword kw">end</span></pre>
885
903
  </div>
886
904
 
887
905
  </div>
@@ -912,35 +930,35 @@ command with the provided arguments.
912
930
  <div class="method-source-code"
913
931
  id="check-ommand-source">
914
932
  <pre>
915
- <span class="ruby-comment cmt"># File lib/tj3client.rb, line 146</span>
916
- 146: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">checkCommand</span>(<span class="ruby-identifier">args</span>)
917
- 147: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">args</span>.<span class="ruby-identifier">empty?</span>
918
- 148: <span class="ruby-identifier">errorMessage</span> = <span class="ruby-value str">'You must specify a command!'</span>
919
- 149: <span class="ruby-keyword kw">else</span>
920
- 150: <span class="ruby-identifier">errorMessage</span> = <span class="ruby-node">&quot;Unknown command #{args[0]}&quot;</span>
921
- 151: <span class="ruby-ivar">@commands</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">cmd</span><span class="ruby-operator">|</span>
922
- 152: <span class="ruby-comment cmt"># The first value of args is the command name.</span>
923
- 153: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cmd</span>[<span class="ruby-value">:label</span>] <span class="ruby-operator">==</span> <span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>]
924
- 154: <span class="ruby-comment cmt"># Find out how many arguments we need to have and if that's a</span>
925
- 155: <span class="ruby-comment cmt"># lower limit or a fixed value.</span>
926
- 156: <span class="ruby-identifier">minArgs</span> = <span class="ruby-value">0</span>
927
- 157: <span class="ruby-identifier">varArgs</span> = <span class="ruby-keyword kw">false</span>
928
- 158: <span class="ruby-identifier">cmd</span>[<span class="ruby-value">:args</span>].<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">arg</span><span class="ruby-operator">|</span>
929
- 159: <span class="ruby-comment cmt"># Arguments starting with '+' must have 1 or more showings.</span>
930
- 160: <span class="ruby-comment cmt"># Arguments starting with '*' may show up 0 or more times.</span>
931
- 161: <span class="ruby-identifier">minArgs</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-value str">'!*'</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">arg</span>[<span class="ruby-value">0</span>])
932
- 162: <span class="ruby-identifier">varArgs</span> = <span class="ruby-keyword kw">true</span> <span class="ruby-keyword kw">if</span> <span class="ruby-value str">'!*+'</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">arg</span>[<span class="ruby-value">0</span>])
933
- 163: <span class="ruby-keyword kw">end</span>
934
- 164: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">args</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-identifier">minArgs</span>
935
- 165: <span class="ruby-identifier">errorMessage</span> = <span class="ruby-node">&quot;Command #{args[0]} must have &quot;</span> <span class="ruby-operator">+</span>
936
- 166: <span class="ruby-node">&quot;#{varArgs ? 'at least ' : ''}#{minArgs} &quot;</span> <span class="ruby-operator">+</span>
937
- 167: <span class="ruby-value str">'arguments'</span>
938
- 168: <span class="ruby-keyword kw">end</span>
939
- 169: <span class="ruby-keyword kw">end</span>
940
- 170: <span class="ruby-keyword kw">end</span>
941
- 171:
942
- 172: <span class="ruby-identifier">error</span>(<span class="ruby-identifier">errorMessage</span>)
943
- 173: <span class="ruby-keyword kw">end</span></pre>
933
+ <span class="ruby-comment cmt"># File lib/tj3client.rb, line 158</span>
934
+ 158: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">checkCommand</span>(<span class="ruby-identifier">args</span>)
935
+ 159: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">args</span>.<span class="ruby-identifier">empty?</span>
936
+ 160: <span class="ruby-identifier">errorMessage</span> = <span class="ruby-value str">'You must specify a command!'</span>
937
+ 161: <span class="ruby-keyword kw">else</span>
938
+ 162: <span class="ruby-identifier">errorMessage</span> = <span class="ruby-node">&quot;Unknown command #{args[0]}&quot;</span>
939
+ 163: <span class="ruby-ivar">@commands</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">cmd</span><span class="ruby-operator">|</span>
940
+ 164: <span class="ruby-comment cmt"># The first value of args is the command name.</span>
941
+ 165: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cmd</span>[<span class="ruby-value">:label</span>] <span class="ruby-operator">==</span> <span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>]
942
+ 166: <span class="ruby-comment cmt"># Find out how many arguments we need to have and if that's a</span>
943
+ 167: <span class="ruby-comment cmt"># lower limit or a fixed value.</span>
944
+ 168: <span class="ruby-identifier">minArgs</span> = <span class="ruby-value">0</span>
945
+ 169: <span class="ruby-identifier">varArgs</span> = <span class="ruby-keyword kw">false</span>
946
+ 170: <span class="ruby-identifier">cmd</span>[<span class="ruby-value">:args</span>].<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">arg</span><span class="ruby-operator">|</span>
947
+ 171: <span class="ruby-comment cmt"># Arguments starting with '+' must have 1 or more showings.</span>
948
+ 172: <span class="ruby-comment cmt"># Arguments starting with '*' may show up 0 or more times.</span>
949
+ 173: <span class="ruby-identifier">minArgs</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-value str">'!*'</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">arg</span>[<span class="ruby-value">0</span>])
950
+ 174: <span class="ruby-identifier">varArgs</span> = <span class="ruby-keyword kw">true</span> <span class="ruby-keyword kw">if</span> <span class="ruby-value str">'!*+'</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">arg</span>[<span class="ruby-value">0</span>])
951
+ 175: <span class="ruby-keyword kw">end</span>
952
+ 176: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">args</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-identifier">minArgs</span>
953
+ 177: <span class="ruby-identifier">errorMessage</span> = <span class="ruby-node">&quot;Command #{args[0]} must have &quot;</span> <span class="ruby-operator">+</span>
954
+ 178: <span class="ruby-node">&quot;#{varArgs ? 'at least ' : ''}#{minArgs} &quot;</span> <span class="ruby-operator">+</span>
955
+ 179: <span class="ruby-value str">'arguments'</span>
956
+ 180: <span class="ruby-keyword kw">end</span>
957
+ 181: <span class="ruby-keyword kw">end</span>
958
+ 182: <span class="ruby-keyword kw">end</span>
959
+ 183:
960
+ 184: <span class="ruby-identifier">error</span>(<span class="ruby-identifier">errorMessage</span>)
961
+ 185: <span class="ruby-keyword kw">end</span></pre>
944
962
  </div>
945
963
 
946
964
  </div>
@@ -971,37 +989,50 @@ command with the provided arguments.
971
989
  <div class="method-source-code"
972
990
  id="connect-aemon-source">
973
991
  <pre>
974
- <span class="ruby-comment cmt"># File lib/tj3client.rb, line 175</span>
975
- 175: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">connectDaemon</span>
976
- 176: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@authKey</span>
977
- 177: <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">puts</span> <span class="ruby-value str">You must set an authentication key in the configuration file. Create a filenamed .taskjugglerrc or taskjuggler.rc that contains at least the followinglines. Replace 'your_secret_key' with some random character sequence._global: authKey: your_secret_key</span>
978
- 178: <span class="ruby-keyword kw">end</span>
979
- 179:
980
- 180: <span class="ruby-comment cmt"># We try to play it safe here. The client also starts a DRb server, so</span>
981
- 181: <span class="ruby-comment cmt"># we need to make sure it's constricted to localhost only. We require</span>
982
- 182: <span class="ruby-comment cmt"># the DRb server for the standard IO redirection to work.</span>
983
- 183: <span class="ruby-identifier">$SAFE</span> = <span class="ruby-value">1</span>
984
- 184: <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
985
- 185: allow 127.0.0.1 ]</span>))
986
- 186: <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>)
987
- 187:
988
- 188: <span class="ruby-keyword kw">begin</span>
989
- 189: <span class="ruby-comment cmt"># Get the ProjectBroker object from the tj3d.</span>
990
- 190: <span class="ruby-ivar">@broker</span> = <span class="ruby-constant">DRbObject</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">nil</span>, <span class="ruby-node">&quot;druby://#{@host}:#{@port}&quot;</span>)
991
- 191: <span class="ruby-comment cmt"># Client and server should always come from the same Gem. Since we</span>
992
- 192: <span class="ruby-comment cmt"># restict communication to localhost, that's probably not a problem.</span>
993
- 193: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">check</span> = <span class="ruby-ivar">@broker</span>.<span class="ruby-identifier">apiVersion</span>(<span class="ruby-ivar">@authKey</span>, <span class="ruby-value">1</span>)) <span class="ruby-operator">&lt;</span> <span class="ruby-value">0</span>
994
- 194: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'This client is too old for the server. Please '</span> <span class="ruby-operator">+</span>
995
- 195: <span class="ruby-value str">'upgrade to a more recent version of the software.'</span>)
996
- 196: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">check</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
997
- 197: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'Authentication failed. Please check your authentication '</span> <span class="ruby-operator">+</span>
998
- 198: <span class="ruby-value str">'key to match the server key.'</span>)
999
- 199: <span class="ruby-keyword kw">end</span>
1000
- 200: <span class="ruby-keyword kw">rescue</span>
1001
- 201: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;TaskJuggler server on host '#{@host}' port &quot;</span> <span class="ruby-operator">+</span>
1002
- 202: <span class="ruby-node">&quot;#{@port} is not responding&quot;</span>)
992
+ <span class="ruby-comment cmt"># File lib/tj3client.rb, line 187</span>
993
+ 187: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">connectDaemon</span>
994
+ 188: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@authKey</span>
995
+ 189: <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">puts</span> <span class="ruby-value str">You must set an authentication key in the configuration file. Create a filenamed .taskjugglerrc or taskjuggler.rc that contains at least the followinglines. Replace 'your_secret_key' with some random character sequence._global: authKey: your_secret_key</span>
996
+ 190: <span class="ruby-keyword kw">end</span>
997
+ 191:
998
+ 192: <span class="ruby-identifier">uri</span> = <span class="ruby-node">&quot;druby://#{@host}:#{@port}&quot;</span>
999
+ 193: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@port</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
1000
+ 194: <span class="ruby-comment cmt"># If the @port is configured to 0, we need to read the URI to connect</span>
1001
+ 195: <span class="ruby-comment cmt"># to the server from the .tj3d.uri file that has been generated by the</span>
1002
+ 196: <span class="ruby-comment cmt"># server.</span>
1003
+ 197: <span class="ruby-keyword kw">begin</span>
1004
+ 198: <span class="ruby-identifier">uri</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">read</span>(<span class="ruby-ivar">@uriFile</span>).<span class="ruby-identifier">chomp</span>
1005
+ 199: <span class="ruby-keyword kw">rescue</span>
1006
+ 200: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'The server port is configured to be 0, but no '</span> <span class="ruby-operator">+</span>
1007
+ 201: <span class="ruby-node">&quot;.tj3d.uri file can be found: #{$!}&quot;</span>)
1008
+ 202: <span class="ruby-keyword kw">end</span>
1003
1009
  203: <span class="ruby-keyword kw">end</span>
1004
- 204: <span class="ruby-keyword kw">end</span></pre>
1010
+ 204:
1011
+ 205: <span class="ruby-comment cmt"># We try to play it safe here. The client also starts a DRb server, so</span>
1012
+ 206: <span class="ruby-comment cmt"># we need to make sure it's constricted to localhost only. We require</span>
1013
+ 207: <span class="ruby-comment cmt"># the DRb server for the standard IO redirection to work.</span>
1014
+ 208: <span class="ruby-identifier">$SAFE</span> = <span class="ruby-value">1</span>
1015
+ 209: <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
1016
+ 210: allow 127.0.0.1 ]</span>))
1017
+ 211: <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>)
1018
+ 212:
1019
+ 213: <span class="ruby-keyword kw">begin</span>
1020
+ 214: <span class="ruby-comment cmt"># Get the ProjectBroker object from the tj3d.</span>
1021
+ 215: <span class="ruby-ivar">@broker</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>)
1022
+ 216: <span class="ruby-comment cmt"># Client and server should always come from the same Gem. Since we</span>
1023
+ 217: <span class="ruby-comment cmt"># restict communication to localhost, that's probably not a problem.</span>
1024
+ 218: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">check</span> = <span class="ruby-ivar">@broker</span>.<span class="ruby-identifier">apiVersion</span>(<span class="ruby-ivar">@authKey</span>, <span class="ruby-value">1</span>)) <span class="ruby-operator">&lt;</span> <span class="ruby-value">0</span>
1025
+ 219: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'This client is too old for the server. Please '</span> <span class="ruby-operator">+</span>
1026
+ 220: <span class="ruby-value str">'upgrade to a more recent version of the software.'</span>)
1027
+ 221: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">check</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
1028
+ 222: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'Authentication failed. Please check your authentication '</span> <span class="ruby-operator">+</span>
1029
+ 223: <span class="ruby-value str">'key to match the server key.'</span>)
1030
+ 224: <span class="ruby-keyword kw">end</span>
1031
+ 225: <span class="ruby-keyword kw">rescue</span>
1032
+ 226: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;TaskJuggler server on host '#{@host}' port &quot;</span> <span class="ruby-operator">+</span>
1033
+ 227: <span class="ruby-node">&quot;#{@port} is not responding&quot;</span>)
1034
+ 228: <span class="ruby-keyword kw">end</span>
1035
+ 229: <span class="ruby-keyword kw">end</span></pre>
1005
1036
  </div>
1006
1037
 
1007
1038
  </div>
@@ -1032,20 +1063,20 @@ command with the provided arguments.
1032
1063
  <div class="method-source-code"
1033
1064
  id="connect-o-roject-erver-source">
1034
1065
  <pre>
1035
- <span class="ruby-comment cmt"># File lib/tj3client.rb, line 325</span>
1036
- 325: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">connectToProjectServer</span>
1037
- 326: <span class="ruby-ivar">@ps_uri</span>, <span class="ruby-ivar">@ps_authKey</span> = <span class="ruby-identifier">callDaemon</span>(<span class="ruby-value">:addProject</span>, [])
1038
- 327: <span class="ruby-keyword kw">begin</span>
1039
- 328: <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>)
1040
- 329: <span class="ruby-keyword kw">rescue</span>
1041
- 330: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Can't get ProjectServer object: #{$!}&quot;</span>)
1042
- 331: <span class="ruby-keyword kw">end</span>
1043
- 332: <span class="ruby-keyword kw">begin</span>
1044
- 333: <span class="ruby-ivar">@projectServer</span>.<span class="ruby-identifier">connect</span>(<span class="ruby-ivar">@ps_authKey</span>, <span class="ruby-identifier">$stdout</span>, <span class="ruby-identifier">$stderr</span>, <span class="ruby-identifier">$stdin</span>, <span class="ruby-ivar">@silent</span>)
1045
- 334: <span class="ruby-keyword kw">rescue</span>
1046
- 335: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Can't connect IO: #{$!}&quot;</span>)
1047
- 336: <span class="ruby-keyword kw">end</span>
1048
- 337: <span class="ruby-keyword kw">end</span></pre>
1066
+ <span class="ruby-comment cmt"># File lib/tj3client.rb, line 353</span>
1067
+ 353: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">connectToProjectServer</span>
1068
+ 354: <span class="ruby-ivar">@ps_uri</span>, <span class="ruby-ivar">@ps_authKey</span> = <span class="ruby-identifier">callDaemon</span>(<span class="ruby-value">:addProject</span>, [])
1069
+ 355: <span class="ruby-keyword kw">begin</span>
1070
+ 356: <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>)
1071
+ 357: <span class="ruby-keyword kw">rescue</span>
1072
+ 358: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Can't get ProjectServer object: #{$!}&quot;</span>)
1073
+ 359: <span class="ruby-keyword kw">end</span>
1074
+ 360: <span class="ruby-keyword kw">begin</span>
1075
+ 361: <span class="ruby-ivar">@projectServer</span>.<span class="ruby-identifier">connect</span>(<span class="ruby-ivar">@ps_authKey</span>, <span class="ruby-identifier">$stdout</span>, <span class="ruby-identifier">$stderr</span>, <span class="ruby-identifier">$stdin</span>, <span class="ruby-ivar">@silent</span>)
1076
+ 362: <span class="ruby-keyword kw">rescue</span>
1077
+ 363: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Can't connect IO: #{$!}&quot;</span>)
1078
+ 364: <span class="ruby-keyword kw">end</span>
1079
+ 365: <span class="ruby-keyword kw">end</span></pre>
1049
1080
  </div>
1050
1081
 
1051
1082
  </div>
@@ -1076,25 +1107,25 @@ command with the provided arguments.
1076
1107
  <div class="method-source-code"
1077
1108
  id="connect-o-eport-erver-source">
1078
1109
  <pre>
1079
- <span class="ruby-comment cmt"># File lib/tj3client.rb, line 347</span>
1080
- 347: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">connectToReportServer</span>(<span class="ruby-identifier">projectId</span>)
1081
- 348: <span class="ruby-ivar">@ps_uri</span>, <span class="ruby-ivar">@ps_authKey</span> = <span class="ruby-identifier">callDaemon</span>(<span class="ruby-value">:getProject</span>, <span class="ruby-identifier">projectId</span>)
1082
- 349: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@ps_uri</span>.<span class="ruby-identifier">nil?</span>
1083
- 350: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;No project with ID #{projectId} loaded&quot;</span>)
1084
- 351: <span class="ruby-keyword kw">end</span>
1085
- 352: <span class="ruby-keyword kw">begin</span>
1086
- 353: <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>)
1087
- 354: <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>)
1088
- 355: <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>)
1089
- 356: <span class="ruby-keyword kw">rescue</span>
1090
- 357: <span class="ruby-identifier">error</span>(<span class="ruby-value str">&quot;Cannot get report server&quot;</span>)
1091
- 358: <span class="ruby-keyword kw">end</span>
1092
- 359: <span class="ruby-keyword kw">begin</span>
1093
- 360: <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-ivar">@silent</span>)
1094
- 361: <span class="ruby-keyword kw">rescue</span>
1095
- 362: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Can't connect IO: #{$!}&quot;</span>)
1096
- 363: <span class="ruby-keyword kw">end</span>
1097
- 364: <span class="ruby-keyword kw">end</span></pre>
1110
+ <span class="ruby-comment cmt"># File lib/tj3client.rb, line 375</span>
1111
+ 375: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">connectToReportServer</span>(<span class="ruby-identifier">projectId</span>)
1112
+ 376: <span class="ruby-ivar">@ps_uri</span>, <span class="ruby-ivar">@ps_authKey</span> = <span class="ruby-identifier">callDaemon</span>(<span class="ruby-value">:getProject</span>, <span class="ruby-identifier">projectId</span>)
1113
+ 377: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@ps_uri</span>.<span class="ruby-identifier">nil?</span>
1114
+ 378: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;No project with ID #{projectId} loaded&quot;</span>)
1115
+ 379: <span class="ruby-keyword kw">end</span>
1116
+ 380: <span class="ruby-keyword kw">begin</span>
1117
+ 381: <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>)
1118
+ 382: <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>)
1119
+ 383: <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>)
1120
+ 384: <span class="ruby-keyword kw">rescue</span>
1121
+ 385: <span class="ruby-identifier">error</span>(<span class="ruby-value str">&quot;Cannot get report server&quot;</span>)
1122
+ 386: <span class="ruby-keyword kw">end</span>
1123
+ 387: <span class="ruby-keyword kw">begin</span>
1124
+ 388: <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-ivar">@silent</span>)
1125
+ 389: <span class="ruby-keyword kw">rescue</span>
1126
+ 390: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Can't connect IO: #{$!}&quot;</span>)
1127
+ 391: <span class="ruby-keyword kw">end</span>
1128
+ 392: <span class="ruby-keyword kw">end</span></pre>
1098
1129
  </div>
1099
1130
 
1100
1131
  </div>
@@ -1125,12 +1156,12 @@ command with the provided arguments.
1125
1156
  <div class="method-source-code"
1126
1157
  id="disconnect-aemon-source">
1127
1158
  <pre>
1128
- <span class="ruby-comment cmt"># File lib/tj3client.rb, line 213</span>
1129
- 213: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">disconnectDaemon</span>
1130
- 214: <span class="ruby-ivar">@broker</span> = <span class="ruby-keyword kw">nil</span>
1131
- 215:
1132
- 216: <span class="ruby-constant">DRb</span>.<span class="ruby-identifier">stop_service</span>
1133
- 217: <span class="ruby-keyword kw">end</span></pre>
1159
+ <span class="ruby-comment cmt"># File lib/tj3client.rb, line 238</span>
1160
+ 238: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">disconnectDaemon</span>
1161
+ 239: <span class="ruby-ivar">@broker</span> = <span class="ruby-keyword kw">nil</span>
1162
+ 240:
1163
+ 241: <span class="ruby-constant">DRb</span>.<span class="ruby-identifier">stop_service</span>
1164
+ 242: <span class="ruby-keyword kw">end</span></pre>
1134
1165
  </div>
1135
1166
 
1136
1167
  </div>
@@ -1161,14 +1192,14 @@ command with the provided arguments.
1161
1192
  <div class="method-source-code"
1162
1193
  id="disconnect-roject-erver-source">
1163
1194
  <pre>
1164
- <span class="ruby-comment cmt"># File lib/tj3client.rb, line 339</span>
1165
- 339: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">disconnectProjectServer</span>
1166
- 340: <span class="ruby-keyword kw">begin</span>
1167
- 341: <span class="ruby-ivar">@projectServer</span>.<span class="ruby-identifier">disconnect</span>(<span class="ruby-ivar">@ps_authKey</span>)
1168
- 342: <span class="ruby-keyword kw">rescue</span>
1169
- 343: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Can't disconnect IO: #{$!}&quot;</span>)
1170
- 344: <span class="ruby-keyword kw">end</span>
1171
- 345: <span class="ruby-keyword kw">end</span></pre>
1195
+ <span class="ruby-comment cmt"># File lib/tj3client.rb, line 367</span>
1196
+ 367: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">disconnectProjectServer</span>
1197
+ 368: <span class="ruby-keyword kw">begin</span>
1198
+ 369: <span class="ruby-ivar">@projectServer</span>.<span class="ruby-identifier">disconnect</span>(<span class="ruby-ivar">@ps_authKey</span>)
1199
+ 370: <span class="ruby-keyword kw">rescue</span>
1200
+ 371: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Can't disconnect IO: #{$!}&quot;</span>)
1201
+ 372: <span class="ruby-keyword kw">end</span>
1202
+ 373: <span class="ruby-keyword kw">end</span></pre>
1172
1203
  </div>
1173
1204
 
1174
1205
  </div>
@@ -1199,25 +1230,25 @@ command with the provided arguments.
1199
1230
  <div class="method-source-code"
1200
1231
  id="disconnect-eport-erver-source">
1201
1232
  <pre>
1202
- <span class="ruby-comment cmt"># File lib/tj3client.rb, line 366</span>
1203
- 366: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">disconnectReportServer</span>
1204
- 367: <span class="ruby-keyword kw">begin</span>
1205
- 368: <span class="ruby-ivar">@reportServer</span>.<span class="ruby-identifier">disconnect</span>(<span class="ruby-ivar">@rs_authKey</span>)
1206
- 369: <span class="ruby-keyword kw">rescue</span>
1207
- 370: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Can't disconnect IO: #{$!}&quot;</span>)
1208
- 371: <span class="ruby-keyword kw">end</span>
1209
- 372: <span class="ruby-keyword kw">begin</span>
1210
- 373: <span class="ruby-ivar">@reportServer</span>.<span class="ruby-identifier">terminate</span>(<span class="ruby-ivar">@rs_authKey</span>)
1211
- 374: <span class="ruby-keyword kw">rescue</span>
1212
- 375: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Report server termination failed: #{$!}&quot;</span>)
1213
- 376: <span class="ruby-keyword kw">end</span>
1214
- 377: <span class="ruby-ivar">@reportServer</span> = <span class="ruby-keyword kw">nil</span>
1215
- 378: <span class="ruby-ivar">@rs_uri</span> = <span class="ruby-keyword kw">nil</span>
1216
- 379: <span class="ruby-ivar">@rs_authKey</span> = <span class="ruby-keyword kw">nil</span>
1217
- 380: <span class="ruby-ivar">@projectServer</span> = <span class="ruby-keyword kw">nil</span>
1218
- 381: <span class="ruby-ivar">@ps_uri</span> = <span class="ruby-keyword kw">nil</span>
1219
- 382: <span class="ruby-ivar">@ps_authKey</span> = <span class="ruby-keyword kw">nil</span>
1220
- 383: <span class="ruby-keyword kw">end</span></pre>
1233
+ <span class="ruby-comment cmt"># File lib/tj3client.rb, line 394</span>
1234
+ 394: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">disconnectReportServer</span>
1235
+ 395: <span class="ruby-keyword kw">begin</span>
1236
+ 396: <span class="ruby-ivar">@reportServer</span>.<span class="ruby-identifier">disconnect</span>(<span class="ruby-ivar">@rs_authKey</span>)
1237
+ 397: <span class="ruby-keyword kw">rescue</span>
1238
+ 398: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Can't disconnect IO: #{$!}&quot;</span>)
1239
+ 399: <span class="ruby-keyword kw">end</span>
1240
+ 400: <span class="ruby-keyword kw">begin</span>
1241
+ 401: <span class="ruby-ivar">@reportServer</span>.<span class="ruby-identifier">terminate</span>(<span class="ruby-ivar">@rs_authKey</span>)
1242
+ 402: <span class="ruby-keyword kw">rescue</span>
1243
+ 403: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Report server termination failed: #{$!}&quot;</span>)
1244
+ 404: <span class="ruby-keyword kw">end</span>
1245
+ 405: <span class="ruby-ivar">@reportServer</span> = <span class="ruby-keyword kw">nil</span>
1246
+ 406: <span class="ruby-ivar">@rs_uri</span> = <span class="ruby-keyword kw">nil</span>
1247
+ 407: <span class="ruby-ivar">@rs_authKey</span> = <span class="ruby-keyword kw">nil</span>
1248
+ 408: <span class="ruby-ivar">@projectServer</span> = <span class="ruby-keyword kw">nil</span>
1249
+ 409: <span class="ruby-ivar">@ps_uri</span> = <span class="ruby-keyword kw">nil</span>
1250
+ 410: <span class="ruby-ivar">@ps_authKey</span> = <span class="ruby-keyword kw">nil</span>
1251
+ 411: <span class="ruby-keyword kw">end</span></pre>
1221
1252
  </div>
1222
1253
 
1223
1254
  </div>
@@ -1248,11 +1279,11 @@ command with the provided arguments.
1248
1279
  <div class="method-source-code"
1249
1280
  id="error-source">
1250
1281
  <pre>
1251
- <span class="ruby-comment cmt"># File lib/tj3client.rb, line 436</span>
1252
- 436: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">error</span>(<span class="ruby-identifier">message</span>)
1253
- 437: <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;ERROR: #{message}&quot;</span>
1254
- 438: <span class="ruby-identifier">exit</span> <span class="ruby-value">1</span>
1255
- 439: <span class="ruby-keyword kw">end</span></pre>
1282
+ <span class="ruby-comment cmt"># File lib/tj3client.rb, line 464</span>
1283
+ 464: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">error</span>(<span class="ruby-identifier">message</span>)
1284
+ 465: <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;ERROR: #{message}&quot;</span>
1285
+ 466: <span class="ruby-identifier">exit</span> <span class="ruby-value">1</span>
1286
+ 467: <span class="ruby-keyword kw">end</span></pre>
1256
1287
  </div>
1257
1288
 
1258
1289
  </div>
@@ -1283,62 +1314,37 @@ command with the provided arguments.
1283
1314
  <div class="method-source-code"
1284
1315
  id="execute-ommand-source">
1285
1316
  <pre>
1286
- <span class="ruby-comment cmt"># File lib/tj3client.rb, line 219</span>
1287
- 219: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">executeCommand</span>(<span class="ruby-identifier">command</span>, <span class="ruby-identifier">args</span>)
1288
- 220: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">command</span>
1289
- 221: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'status'</span>
1290
- 222: <span class="ruby-identifier">$stdout</span>.<span class="ruby-identifier">puts</span> <span class="ruby-identifier">callDaemon</span>(<span class="ruby-value">:status</span>, [])
1291
- 223: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'terminate'</span>
1292
- 224: <span class="ruby-identifier">callDaemon</span>(<span class="ruby-value">:stop</span>, [])
1293
- 225: <span class="ruby-identifier">info</span>(<span class="ruby-value str">'Daemon terminated'</span>)
1294
- 226: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'add'</span>
1295
- 227: <span class="ruby-comment cmt"># Ask the daemon to create a new ProjectServer process and return a</span>
1296
- 228: <span class="ruby-comment cmt"># DRbObject to access it.</span>
1297
- 229: <span class="ruby-identifier">connectToProjectServer</span>
1298
- 230: <span class="ruby-comment cmt"># Ask the server to load the files in _args_ into the ProjectServer.</span>
1299
- 231: <span class="ruby-keyword kw">begin</span>
1300
- 232: <span class="ruby-identifier">res</span> = <span class="ruby-ivar">@projectServer</span>.<span class="ruby-identifier">loadProject</span>(<span class="ruby-ivar">@ps_authKey</span>, [ <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">getwd</span>, *<span class="ruby-identifier">args</span> ])
1301
- 233: <span class="ruby-keyword kw">rescue</span>
1302
- 234: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Loading of project failed: #{$!}&quot;</span>)
1303
- 235: <span class="ruby-keyword kw">end</span>
1304
- 236: <span class="ruby-identifier">disconnectProjectServer</span>
1305
- 237: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">res</span> <span class="ruby-operator">?</span> <span class="ruby-value">0</span> <span class="ruby-operator">:</span> <span class="ruby-value">1</span>
1306
- 238: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'remove'</span>
1307
- 239: <span class="ruby-identifier">args</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">arg</span><span class="ruby-operator">|</span>
1308
- 240: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">callDaemon</span>(<span class="ruby-value">:removeProject</span>, <span class="ruby-identifier">arg</span>)
1309
- 241: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Project '#{arg}' not found in list&quot;</span>)
1310
- 242: <span class="ruby-keyword kw">end</span>
1311
- 243: <span class="ruby-keyword kw">end</span>
1312
- 244: <span class="ruby-identifier">info</span>(<span class="ruby-value str">'Project removed'</span>)
1313
- 245: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'report'</span>
1314
- 246: <span class="ruby-comment cmt"># The first value of args is the project ID. The following values</span>
1315
- 247: <span class="ruby-comment cmt"># could be either report IDs or TJI file # names ('.' or '*.tji').</span>
1316
- 248: <span class="ruby-identifier">projectId</span> = <span class="ruby-identifier">args</span>.<span class="ruby-identifier">shift</span>
1317
- 249: <span class="ruby-comment cmt"># Ask the ProjectServer to launch a new ReportServer process and</span>
1318
- 250: <span class="ruby-comment cmt"># provide a DRbObject reference to it.</span>
1319
- 251: <span class="ruby-identifier">connectToReportServer</span>(<span class="ruby-identifier">projectId</span>)
1320
- 252:
1321
- 253: <span class="ruby-identifier">reportIds</span>, <span class="ruby-identifier">tjiFiles</span> = <span class="ruby-identifier">splitIdsAndFiles</span>(<span class="ruby-identifier">args</span>)
1322
- 254: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">reportIds</span>.<span class="ruby-identifier">empty?</span>
1323
- 255: <span class="ruby-identifier">disconnectReportServer</span>
1324
- 256: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'You must provide at least one report ID'</span>)
1325
- 257: <span class="ruby-keyword kw">end</span>
1326
- 258: <span class="ruby-comment cmt"># Send the provided .tji files to the ReportServer.</span>
1327
- 259: <span class="ruby-identifier">failed</span> = <span class="ruby-operator">!</span><span class="ruby-identifier">addFiles</span>(<span class="ruby-identifier">tjiFiles</span>)
1328
- 260: <span class="ruby-comment cmt"># Ask the ReportServer to generate the reports with the provided IDs.</span>
1329
- 261: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">failed</span>
1330
- 262: <span class="ruby-identifier">reportIds</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-operator">|</span>
1331
- 263: <span class="ruby-keyword kw">unless</span> <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>,
1332
- 264: <span class="ruby-ivar">@regExpMode</span>, <span class="ruby-keyword kw">nil</span>)
1333
- 265: <span class="ruby-identifier">failed</span> = <span class="ruby-keyword kw">true</span>
1334
- 266: <span class="ruby-keyword kw">break</span>
1335
- 267: <span class="ruby-keyword kw">end</span>
1336
- 268: <span class="ruby-keyword kw">end</span>
1337
- 269: <span class="ruby-keyword kw">end</span>
1338
- 270: <span class="ruby-comment cmt"># Terminate the ReportServer</span>
1339
- 271: <span class="ruby-identifier">disconnectReportServer</span>
1340
- 272: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">failed</span> <span class="ruby-operator">?</span> <span class="ruby-value">1</span> <span class="ruby-operator">:</span> <span class="ruby-value">0</span>
1341
- 273: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'list-reports'</span>
1317
+ <span class="ruby-comment cmt"># File lib/tj3client.rb, line 244</span>
1318
+ 244: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">executeCommand</span>(<span class="ruby-identifier">command</span>, <span class="ruby-identifier">args</span>)
1319
+ 245: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">command</span>
1320
+ 246: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'status'</span>
1321
+ 247: <span class="ruby-identifier">$stdout</span>.<span class="ruby-identifier">puts</span> <span class="ruby-identifier">callDaemon</span>(<span class="ruby-value">:status</span>, [])
1322
+ 248: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'terminate'</span>
1323
+ 249: <span class="ruby-identifier">callDaemon</span>(<span class="ruby-value">:stop</span>, [])
1324
+ 250: <span class="ruby-identifier">info</span>(<span class="ruby-value str">'Daemon terminated'</span>)
1325
+ 251: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'add'</span>
1326
+ 252: <span class="ruby-comment cmt"># Ask the daemon to create a new ProjectServer process and return a</span>
1327
+ 253: <span class="ruby-comment cmt"># DRbObject to access it.</span>
1328
+ 254: <span class="ruby-identifier">connectToProjectServer</span>
1329
+ 255: <span class="ruby-comment cmt"># Ask the server to load the files in _args_ into the ProjectServer.</span>
1330
+ 256: <span class="ruby-keyword kw">begin</span>
1331
+ 257: <span class="ruby-identifier">res</span> = <span class="ruby-ivar">@projectServer</span>.<span class="ruby-identifier">loadProject</span>(<span class="ruby-ivar">@ps_authKey</span>, [ <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">getwd</span>, *<span class="ruby-identifier">args</span> ])
1332
+ 258: <span class="ruby-keyword kw">rescue</span>
1333
+ 259: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Loading of project failed: #{$!}&quot;</span>)
1334
+ 260: <span class="ruby-keyword kw">end</span>
1335
+ 261: <span class="ruby-identifier">disconnectProjectServer</span>
1336
+ 262: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">res</span> <span class="ruby-operator">?</span> <span class="ruby-value">0</span> <span class="ruby-operator">:</span> <span class="ruby-value">1</span>
1337
+ 263: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'remove'</span>
1338
+ 264: <span class="ruby-identifier">args</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">arg</span><span class="ruby-operator">|</span>
1339
+ 265: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">callDaemon</span>(<span class="ruby-value">:removeProject</span>, <span class="ruby-identifier">arg</span>)
1340
+ 266: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Project '#{arg}' not found in list&quot;</span>)
1341
+ 267: <span class="ruby-keyword kw">end</span>
1342
+ 268: <span class="ruby-keyword kw">end</span>
1343
+ 269: <span class="ruby-identifier">info</span>(<span class="ruby-value str">'Project removed'</span>)
1344
+ 270: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'update'</span>
1345
+ 271: <span class="ruby-identifier">callDaemon</span>(<span class="ruby-value">:update</span>, [])
1346
+ 272: <span class="ruby-identifier">info</span>(<span class="ruby-value str">'Reload requested'</span>)
1347
+ 273: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'report'</span>
1342
1348
  274: <span class="ruby-comment cmt"># The first value of args is the project ID. The following values</span>
1343
1349
  275: <span class="ruby-comment cmt"># could be either report IDs or TJI file # names ('.' or '*.tji').</span>
1344
1350
  276: <span class="ruby-identifier">projectId</span> = <span class="ruby-identifier">args</span>.<span class="ruby-identifier">shift</span>
@@ -1348,16 +1354,16 @@ command with the provided arguments.
1348
1354
  280:
1349
1355
  281: <span class="ruby-identifier">reportIds</span>, <span class="ruby-identifier">tjiFiles</span> = <span class="ruby-identifier">splitIdsAndFiles</span>(<span class="ruby-identifier">args</span>)
1350
1356
  282: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">reportIds</span>.<span class="ruby-identifier">empty?</span>
1351
- 283: <span class="ruby-comment cmt"># If the user did not provide a report ID we generate a full list.</span>
1352
- 284: <span class="ruby-identifier">reportIds</span> = [ <span class="ruby-value str">'.*'</span> ]
1353
- 285: <span class="ruby-ivar">@regExpMode</span> = <span class="ruby-keyword kw">true</span>
1354
- 286: <span class="ruby-keyword kw">end</span>
1355
- 287: <span class="ruby-comment cmt"># Send the provided .tji files to the ReportServer.</span>
1356
- 288: <span class="ruby-identifier">failed</span> = <span class="ruby-operator">!</span><span class="ruby-identifier">addFiles</span>(<span class="ruby-identifier">tjiFiles</span>)
1357
- 289: <span class="ruby-comment cmt"># Ask the ReportServer to generate the reports with the provided IDs.</span>
1358
- 290: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">failed</span>
1359
- 291: <span class="ruby-identifier">reportIds</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-operator">|</span>
1360
- 292: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@reportServer</span>.<span class="ruby-identifier">listReports</span>(<span class="ruby-ivar">@rs_authKey</span>, <span class="ruby-identifier">reportId</span>, <span class="ruby-ivar">@regExpMode</span>)
1357
+ 283: <span class="ruby-identifier">disconnectReportServer</span>
1358
+ 284: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'You must provide at least one report ID'</span>)
1359
+ 285: <span class="ruby-keyword kw">end</span>
1360
+ 286: <span class="ruby-comment cmt"># Send the provided .tji files to the ReportServer.</span>
1361
+ 287: <span class="ruby-identifier">failed</span> = <span class="ruby-operator">!</span><span class="ruby-identifier">addFiles</span>(<span class="ruby-identifier">tjiFiles</span>)
1362
+ 288: <span class="ruby-comment cmt"># Ask the ReportServer to generate the reports with the provided IDs.</span>
1363
+ 289: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">failed</span>
1364
+ 290: <span class="ruby-identifier">reportIds</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-operator">|</span>
1365
+ 291: <span class="ruby-keyword kw">unless</span> <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>,
1366
+ 292: <span class="ruby-ivar">@regExpMode</span>, <span class="ruby-keyword kw">nil</span>)
1361
1367
  293: <span class="ruby-identifier">failed</span> = <span class="ruby-keyword kw">true</span>
1362
1368
  294: <span class="ruby-keyword kw">break</span>
1363
1369
  295: <span class="ruby-keyword kw">end</span>
@@ -1366,29 +1372,57 @@ command with the provided arguments.
1366
1372
  298: <span class="ruby-comment cmt"># Terminate the ReportServer</span>
1367
1373
  299: <span class="ruby-identifier">disconnectReportServer</span>
1368
1374
  300: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">failed</span> <span class="ruby-operator">?</span> <span class="ruby-value">1</span> <span class="ruby-operator">:</span> <span class="ruby-value">0</span>
1369
- 301: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'check-ts'</span>
1370
- 302: <span class="ruby-identifier">connectToReportServer</span>(<span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>])
1371
- 303: <span class="ruby-keyword kw">begin</span>
1372
- 304: <span class="ruby-identifier">res</span> = <span class="ruby-ivar">@reportServer</span>.<span class="ruby-identifier">checkTimeSheet</span>(<span class="ruby-ivar">@rs_authKey</span>, <span class="ruby-identifier">args</span>[<span class="ruby-value">1</span>])
1373
- 305: <span class="ruby-keyword kw">rescue</span>
1374
- 306: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Time sheet check failed: #{$!}&quot;</span>)
1375
- 307: <span class="ruby-keyword kw">end</span>
1376
- 308: <span class="ruby-identifier">disconnectReportServer</span>
1377
- 309: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">res</span> <span class="ruby-operator">?</span> <span class="ruby-value">0</span> <span class="ruby-operator">:</span> <span class="ruby-value">1</span>
1378
- 310: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'check-ss'</span>
1379
- 311: <span class="ruby-identifier">connectToReportServer</span>(<span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>])
1380
- 312: <span class="ruby-keyword kw">begin</span>
1381
- 313: <span class="ruby-identifier">res</span> = <span class="ruby-ivar">@reportServer</span>.<span class="ruby-identifier">checkStatusSheet</span>(<span class="ruby-ivar">@rs_authKey</span>, <span class="ruby-identifier">args</span>[<span class="ruby-value">1</span>])
1382
- 314: <span class="ruby-keyword kw">rescue</span>
1383
- 315: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Status sheet check failed: #{$!}&quot;</span>)
1384
- 316: <span class="ruby-keyword kw">end</span>
1385
- 317: <span class="ruby-identifier">disconnectReportServer</span>
1386
- 318: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">res</span> <span class="ruby-operator">?</span> <span class="ruby-value">0</span> <span class="ruby-operator">:</span> <span class="ruby-value">1</span>
1387
- 319: <span class="ruby-keyword kw">else</span>
1388
- 320: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Unknown command #{command}&quot;</span>
1389
- 321: <span class="ruby-keyword kw">end</span>
1390
- 322: <span class="ruby-value">0</span>
1391
- 323: <span class="ruby-keyword kw">end</span></pre>
1375
+ 301: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'list-reports'</span>
1376
+ 302: <span class="ruby-comment cmt"># The first value of args is the project ID. The following values</span>
1377
+ 303: <span class="ruby-comment cmt"># could be either report IDs or TJI file # names ('.' or '*.tji').</span>
1378
+ 304: <span class="ruby-identifier">projectId</span> = <span class="ruby-identifier">args</span>.<span class="ruby-identifier">shift</span>
1379
+ 305: <span class="ruby-comment cmt"># Ask the ProjectServer to launch a new ReportServer process and</span>
1380
+ 306: <span class="ruby-comment cmt"># provide a DRbObject reference to it.</span>
1381
+ 307: <span class="ruby-identifier">connectToReportServer</span>(<span class="ruby-identifier">projectId</span>)
1382
+ 308:
1383
+ 309: <span class="ruby-identifier">reportIds</span>, <span class="ruby-identifier">tjiFiles</span> = <span class="ruby-identifier">splitIdsAndFiles</span>(<span class="ruby-identifier">args</span>)
1384
+ 310: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">reportIds</span>.<span class="ruby-identifier">empty?</span>
1385
+ 311: <span class="ruby-comment cmt"># If the user did not provide a report ID we generate a full list.</span>
1386
+ 312: <span class="ruby-identifier">reportIds</span> = [ <span class="ruby-value str">'.*'</span> ]
1387
+ 313: <span class="ruby-ivar">@regExpMode</span> = <span class="ruby-keyword kw">true</span>
1388
+ 314: <span class="ruby-keyword kw">end</span>
1389
+ 315: <span class="ruby-comment cmt"># Send the provided .tji files to the ReportServer.</span>
1390
+ 316: <span class="ruby-identifier">failed</span> = <span class="ruby-operator">!</span><span class="ruby-identifier">addFiles</span>(<span class="ruby-identifier">tjiFiles</span>)
1391
+ 317: <span class="ruby-comment cmt"># Ask the ReportServer to generate the reports with the provided IDs.</span>
1392
+ 318: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">failed</span>
1393
+ 319: <span class="ruby-identifier">reportIds</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-operator">|</span>
1394
+ 320: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@reportServer</span>.<span class="ruby-identifier">listReports</span>(<span class="ruby-ivar">@rs_authKey</span>, <span class="ruby-identifier">reportId</span>, <span class="ruby-ivar">@regExpMode</span>)
1395
+ 321: <span class="ruby-identifier">failed</span> = <span class="ruby-keyword kw">true</span>
1396
+ 322: <span class="ruby-keyword kw">break</span>
1397
+ 323: <span class="ruby-keyword kw">end</span>
1398
+ 324: <span class="ruby-keyword kw">end</span>
1399
+ 325: <span class="ruby-keyword kw">end</span>
1400
+ 326: <span class="ruby-comment cmt"># Terminate the ReportServer</span>
1401
+ 327: <span class="ruby-identifier">disconnectReportServer</span>
1402
+ 328: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">failed</span> <span class="ruby-operator">?</span> <span class="ruby-value">1</span> <span class="ruby-operator">:</span> <span class="ruby-value">0</span>
1403
+ 329: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'check-ts'</span>
1404
+ 330: <span class="ruby-identifier">connectToReportServer</span>(<span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>])
1405
+ 331: <span class="ruby-keyword kw">begin</span>
1406
+ 332: <span class="ruby-identifier">res</span> = <span class="ruby-ivar">@reportServer</span>.<span class="ruby-identifier">checkTimeSheet</span>(<span class="ruby-ivar">@rs_authKey</span>, <span class="ruby-identifier">args</span>[<span class="ruby-value">1</span>])
1407
+ 333: <span class="ruby-keyword kw">rescue</span>
1408
+ 334: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Time sheet check failed: #{$!}&quot;</span>)
1409
+ 335: <span class="ruby-keyword kw">end</span>
1410
+ 336: <span class="ruby-identifier">disconnectReportServer</span>
1411
+ 337: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">res</span> <span class="ruby-operator">?</span> <span class="ruby-value">0</span> <span class="ruby-operator">:</span> <span class="ruby-value">1</span>
1412
+ 338: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'check-ss'</span>
1413
+ 339: <span class="ruby-identifier">connectToReportServer</span>(<span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>])
1414
+ 340: <span class="ruby-keyword kw">begin</span>
1415
+ 341: <span class="ruby-identifier">res</span> = <span class="ruby-ivar">@reportServer</span>.<span class="ruby-identifier">checkStatusSheet</span>(<span class="ruby-ivar">@rs_authKey</span>, <span class="ruby-identifier">args</span>[<span class="ruby-value">1</span>])
1416
+ 342: <span class="ruby-keyword kw">rescue</span>
1417
+ 343: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Status sheet check failed: #{$!}&quot;</span>)
1418
+ 344: <span class="ruby-keyword kw">end</span>
1419
+ 345: <span class="ruby-identifier">disconnectReportServer</span>
1420
+ 346: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">res</span> <span class="ruby-operator">?</span> <span class="ruby-value">0</span> <span class="ruby-operator">:</span> <span class="ruby-value">1</span>
1421
+ 347: <span class="ruby-keyword kw">else</span>
1422
+ 348: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Unknown command #{command}&quot;</span>
1423
+ 349: <span class="ruby-keyword kw">end</span>
1424
+ 350: <span class="ruby-value">0</span>
1425
+ 351: <span class="ruby-keyword kw">end</span></pre>
1392
1426
  </div>
1393
1427
 
1394
1428
  </div>
@@ -1419,11 +1453,11 @@ command with the provided arguments.
1419
1453
  <div class="method-source-code"
1420
1454
  id="info-source">
1421
1455
  <pre>
1422
- <span class="ruby-comment cmt"># File lib/tj3client.rb, line 431</span>
1423
- 431: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">info</span>(<span class="ruby-identifier">message</span>)
1424
- 432: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@silent</span>
1425
- 433: <span class="ruby-identifier">$stdout</span>.<span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;#{message}&quot;</span>
1426
- 434: <span class="ruby-keyword kw">end</span></pre>
1456
+ <span class="ruby-comment cmt"># File lib/tj3client.rb, line 459</span>
1457
+ 459: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">info</span>(<span class="ruby-identifier">message</span>)
1458
+ 460: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@silent</span>
1459
+ 461: <span class="ruby-identifier">$stdout</span>.<span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;#{message}&quot;</span>
1460
+ 462: <span class="ruby-keyword kw">end</span></pre>
1427
1461
  </div>
1428
1462
 
1429
1463
  </div>
@@ -1458,24 +1492,24 @@ files are present, they must be separated from the report ID list by a
1458
1492
  <div class="method-source-code"
1459
1493
  id="split-ds-nd-iles-source">
1460
1494
  <pre>
1461
- <span class="ruby-comment cmt"># File lib/tj3client.rb, line 399</span>
1462
- 399: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">splitIdsAndFiles</span>(<span class="ruby-identifier">args</span>)
1463
- 400: <span class="ruby-identifier">reportIds</span> = []
1464
- 401: <span class="ruby-identifier">tjiFiles</span> = []
1465
- 402: <span class="ruby-identifier">addToReports</span> = <span class="ruby-keyword kw">true</span>
1466
- 403: <span class="ruby-identifier">args</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">arg</span><span class="ruby-operator">|</span>
1467
- 404: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">arg</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'='</span>
1468
- 405: <span class="ruby-comment cmt"># Switch to tji file list.</span>
1469
- 406: <span class="ruby-identifier">addToReports</span> = <span class="ruby-keyword kw">false</span>
1470
- 407: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">addToReports</span>
1471
- 408: <span class="ruby-identifier">reportIds</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">arg</span>
1472
- 409: <span class="ruby-keyword kw">else</span>
1473
- 410: <span class="ruby-identifier">tjiFiles</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">arg</span>
1474
- 411: <span class="ruby-keyword kw">end</span>
1475
- 412: <span class="ruby-keyword kw">end</span>
1476
- 413:
1477
- 414: [ <span class="ruby-identifier">reportIds</span>, <span class="ruby-identifier">tjiFiles</span> ]
1478
- 415: <span class="ruby-keyword kw">end</span></pre>
1495
+ <span class="ruby-comment cmt"># File lib/tj3client.rb, line 427</span>
1496
+ 427: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">splitIdsAndFiles</span>(<span class="ruby-identifier">args</span>)
1497
+ 428: <span class="ruby-identifier">reportIds</span> = []
1498
+ 429: <span class="ruby-identifier">tjiFiles</span> = []
1499
+ 430: <span class="ruby-identifier">addToReports</span> = <span class="ruby-keyword kw">true</span>
1500
+ 431: <span class="ruby-identifier">args</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">arg</span><span class="ruby-operator">|</span>
1501
+ 432: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">arg</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'='</span>
1502
+ 433: <span class="ruby-comment cmt"># Switch to tji file list.</span>
1503
+ 434: <span class="ruby-identifier">addToReports</span> = <span class="ruby-keyword kw">false</span>
1504
+ 435: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">addToReports</span>
1505
+ 436: <span class="ruby-identifier">reportIds</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">arg</span>
1506
+ 437: <span class="ruby-keyword kw">else</span>
1507
+ 438: <span class="ruby-identifier">tjiFiles</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">arg</span>
1508
+ 439: <span class="ruby-keyword kw">end</span>
1509
+ 440: <span class="ruby-keyword kw">end</span>
1510
+ 441:
1511
+ 442: [ <span class="ruby-identifier">reportIds</span>, <span class="ruby-identifier">tjiFiles</span> ]
1512
+ 443: <span class="ruby-keyword kw">end</span></pre>
1479
1513
  </div>
1480
1514
 
1481
1515
  </div>