taskjuggler 0.0.8 → 0.0.9

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 (613) hide show
  1. data/CHANGELOG +1144 -2047
  2. data/README +1 -1
  3. data/Rakefile +6 -6
  4. data/data/css/tjmanual.css +20 -0
  5. data/data/css/tjreport.css +7 -6
  6. data/doc/AppConfig.html +136 -130
  7. data/doc/Arguments.html +46 -40
  8. data/doc/CHANGELOG.html +1162 -2057
  9. data/doc/COPYING.html +8 -2
  10. data/doc/Object.html +205 -199
  11. data/doc/README.html +9 -3
  12. data/doc/RuntimeConfig.html +75 -69
  13. data/doc/String.html +69 -63
  14. data/doc/TaskJuggler.html +350 -291
  15. data/doc/TaskJuggler/Account.html +26 -20
  16. data/doc/TaskJuggler/AccountAttribute.html +24 -18
  17. data/doc/TaskJuggler/AccountScenario.html +24 -18
  18. data/doc/TaskJuggler/Allocation.html +74 -68
  19. data/doc/TaskJuggler/AllocationAttribute.html +54 -48
  20. data/doc/TaskJuggler/AttributeBase.html +172 -93
  21. data/doc/TaskJuggler/AttributeDefinition.html +22 -16
  22. data/doc/TaskJuggler/AttributeOverwrite.html +586 -0
  23. data/doc/TaskJuggler/BatchProcessor.html +263 -257
  24. data/doc/TaskJuggler/Booking.html +44 -38
  25. data/doc/TaskJuggler/BookingListAttribute.html +25 -21
  26. data/doc/TaskJuggler/BooleanAttribute.html +24 -18
  27. data/doc/TaskJuggler/CSVFile.html +193 -187
  28. data/doc/TaskJuggler/CellSettingPattern.html +13 -7
  29. data/doc/TaskJuggler/CellSettingPatternList.html +25 -19
  30. data/doc/TaskJuggler/Charge.html +49 -43
  31. data/doc/TaskJuggler/ChargeListAttribute.html +21 -15
  32. data/doc/TaskJuggler/ChargeSet.html +94 -88
  33. data/doc/TaskJuggler/ChargeSetListAttribute.html +29 -25
  34. data/doc/TaskJuggler/CollisionDetector.html +142 -136
  35. data/doc/TaskJuggler/ColumnListAttribute.html +21 -17
  36. data/doc/TaskJuggler/ColumnTable.html +50 -44
  37. data/doc/TaskJuggler/Daemon.html +71 -50
  38. data/doc/TaskJuggler/DataCache.html +110 -58
  39. data/doc/TaskJuggler/DataCacheEntry.html +22 -16
  40. data/doc/TaskJuggler/DateAttribute.html +24 -18
  41. data/doc/TaskJuggler/DefinitionListAttribute.html +12 -6
  42. data/doc/TaskJuggler/DependencyListAttribute.html +29 -25
  43. data/doc/TaskJuggler/DurationAttribute.html +25 -19
  44. data/doc/TaskJuggler/FileList.html +25 -19
  45. data/doc/TaskJuggler/FileRecord.html +17 -11
  46. data/doc/TaskJuggler/FixnumAttribute.html +16 -10
  47. data/doc/TaskJuggler/FlagListAttribute.html +25 -21
  48. data/doc/TaskJuggler/FloatAttribute.html +20 -14
  49. data/doc/TaskJuggler/FormatListAttribute.html +17 -11
  50. data/doc/TaskJuggler/GanttChart.html +242 -236
  51. data/doc/TaskJuggler/GanttContainer.html +71 -67
  52. data/doc/TaskJuggler/GanttHeader.html +113 -107
  53. data/doc/TaskJuggler/GanttHeaderScaleItem.html +26 -20
  54. data/doc/TaskJuggler/GanttLine.html +217 -210
  55. data/doc/TaskJuggler/GanttLoadStack.html +89 -83
  56. data/doc/TaskJuggler/GanttMilestone.html +11 -6
  57. data/doc/TaskJuggler/GanttRouter.html +194 -186
  58. data/doc/TaskJuggler/GanttTaskBar.html +41 -34
  59. data/doc/TaskJuggler/HTMLDocument.html +52 -46
  60. data/doc/TaskJuggler/HTMLGraphics.html +58 -52
  61. data/doc/TaskJuggler/Interval.html +90 -84
  62. data/doc/TaskJuggler/IntervalList.html +777 -0
  63. data/doc/TaskJuggler/IntervalListAttribute.html +29 -25
  64. data/doc/TaskJuggler/JobInfo.html +36 -30
  65. data/doc/TaskJuggler/Journal.html +188 -177
  66. data/doc/TaskJuggler/JournalEntry.html +36 -30
  67. data/doc/TaskJuggler/JournalEntryList.html +88 -82
  68. data/doc/TaskJuggler/KeywordArray.html +12 -6
  69. data/doc/TaskJuggler/KeywordDocumentation.html +512 -503
  70. data/doc/TaskJuggler/Limits.html +111 -105
  71. data/doc/TaskJuggler/Limits/Limit.html +71 -65
  72. data/doc/TaskJuggler/LimitsAttribute.html +21 -15
  73. data/doc/TaskJuggler/ListAttributeBase.html +16 -10
  74. data/doc/TaskJuggler/Log.html +111 -105
  75. data/doc/TaskJuggler/LogFile.html +54 -48
  76. data/doc/TaskJuggler/LogicalAttribute.html +35 -29
  77. data/doc/TaskJuggler/LogicalExpression.html +32 -26
  78. data/doc/TaskJuggler/LogicalExpressionAttribute.html +16 -10
  79. data/doc/TaskJuggler/LogicalExpressionListAttribute.html +671 -0
  80. data/doc/TaskJuggler/LogicalFlag.html +24 -18
  81. data/doc/TaskJuggler/LogicalFunction.html +164 -158
  82. data/doc/TaskJuggler/LogicalOperation.html +138 -132
  83. data/doc/TaskJuggler/Macro.html +14 -8
  84. data/doc/TaskJuggler/MacroTable.html +42 -36
  85. data/doc/TaskJuggler/ManagerResponsibilities.html +19 -13
  86. data/doc/TaskJuggler/ManagerStatusRecord.html +23 -17
  87. data/doc/TaskJuggler/Message.html +56 -50
  88. data/doc/TaskJuggler/MessageHandler.html +73 -67
  89. data/doc/TaskJuggler/Navigator.html +92 -86
  90. data/doc/TaskJuggler/NavigatorElement.html +88 -82
  91. data/doc/TaskJuggler/NikuProject.html +15 -9
  92. data/doc/TaskJuggler/NikuReport.html +405 -370
  93. data/doc/TaskJuggler/NikuResource.html +13 -7
  94. data/doc/TaskJuggler/NodeListAttribute.html +13 -9
  95. data/doc/TaskJuggler/PlaceHolderCell.html +22 -16
  96. data/doc/TaskJuggler/ProcessIntercom.html +116 -110
  97. data/doc/TaskJuggler/ProcessIntercomIface.html +39 -33
  98. data/doc/TaskJuggler/Project.html +1064 -895
  99. data/doc/TaskJuggler/ProjectBroker.html +439 -366
  100. data/doc/TaskJuggler/ProjectBrokerIface.html +63 -53
  101. data/doc/TaskJuggler/ProjectFileParser.html +329 -319
  102. data/doc/TaskJuggler/ProjectFileScanner.html +351 -345
  103. data/doc/TaskJuggler/ProjectRecord.html +66 -60
  104. data/doc/TaskJuggler/ProjectServer.html +287 -280
  105. data/doc/TaskJuggler/ProjectServerIface.html +43 -37
  106. data/doc/TaskJuggler/PropertyAttribute.html +16 -10
  107. data/doc/TaskJuggler/PropertyList.html +205 -199
  108. data/doc/TaskJuggler/PropertySet.html +264 -296
  109. data/doc/TaskJuggler/PropertyTreeNode.html +455 -505
  110. data/doc/TaskJuggler/Query.html +309 -524
  111. data/doc/TaskJuggler/RTFHandlers.html +17 -11
  112. data/doc/TaskJuggler/RTFNavigator.html +33 -27
  113. data/doc/TaskJuggler/RTFQuery.html +135 -129
  114. data/doc/TaskJuggler/RTFReport.html +63 -57
  115. data/doc/TaskJuggler/RTFReportLink.html +55 -49
  116. data/doc/TaskJuggler/RTFWithQuerySupport.html +17 -11
  117. data/doc/TaskJuggler/RealFormat.html +64 -58
  118. data/doc/TaskJuggler/RealFormatAttribute.html +12 -6
  119. data/doc/TaskJuggler/ReferenceAttribute.html +35 -29
  120. data/doc/TaskJuggler/Report.html +294 -249
  121. data/doc/TaskJuggler/ReportBase.html +229 -223
  122. data/doc/TaskJuggler/ReportContext.html +52 -46
  123. data/doc/TaskJuggler/ReportServer.html +143 -137
  124. data/doc/TaskJuggler/ReportServerIface.html +51 -43
  125. data/doc/TaskJuggler/ReportServerRecord.html +36 -30
  126. data/doc/TaskJuggler/ReportServlet.html +167 -140
  127. data/doc/TaskJuggler/ReportTable.html +137 -131
  128. data/doc/TaskJuggler/ReportTableCell.html +332 -292
  129. data/doc/TaskJuggler/ReportTableColumn.html +46 -40
  130. data/doc/TaskJuggler/ReportTableLegend.html +43 -38
  131. data/doc/TaskJuggler/ReportTableLine.html +66 -60
  132. data/doc/TaskJuggler/Resource.html +166 -160
  133. data/doc/TaskJuggler/ResourceListAttribute.html +54 -32
  134. data/doc/TaskJuggler/ResourceListRE.html +47 -41
  135. data/doc/TaskJuggler/ResourceScenario.html +671 -644
  136. data/doc/TaskJuggler/RichText.html +51 -45
  137. data/doc/TaskJuggler/RichTextAttribute.html +28 -22
  138. data/doc/TaskJuggler/RichTextDocument.html +96 -90
  139. data/doc/TaskJuggler/RichTextElement.html +503 -497
  140. data/doc/TaskJuggler/RichTextFunctionExample.html +41 -35
  141. data/doc/TaskJuggler/RichTextFunctionHandler.html +19 -13
  142. data/doc/TaskJuggler/RichTextImage.html +14 -8
  143. data/doc/TaskJuggler/RichTextIntermediate.html +86 -80
  144. data/doc/TaskJuggler/RichTextParser.html +59 -53
  145. data/doc/TaskJuggler/RichTextScanner.html +184 -178
  146. data/doc/TaskJuggler/RichTextSnip.html +69 -63
  147. data/doc/TaskJuggler/RichTextSyntaxRules.html +416 -410
  148. data/doc/TaskJuggler/Scenario.html +13 -7
  149. data/doc/TaskJuggler/ScenarioData.html +40 -34
  150. data/doc/TaskJuggler/ScenarioListAttribute.html +21 -15
  151. data/doc/TaskJuggler/Scoreboard.html +129 -107
  152. data/doc/TaskJuggler/SheetHandlerBase.html +245 -239
  153. data/doc/TaskJuggler/SheetReceiver.html +333 -327
  154. data/doc/TaskJuggler/SheetSender.html +227 -221
  155. data/doc/TaskJuggler/Shift.html +26 -20
  156. data/doc/TaskJuggler/ShiftAssignment.html +45 -39
  157. data/doc/TaskJuggler/ShiftAssignments.html +178 -172
  158. data/doc/TaskJuggler/ShiftAssignmentsAttribute.html +21 -15
  159. data/doc/TaskJuggler/ShiftScenario.html +29 -23
  160. data/doc/TaskJuggler/SimpleQueryExpander.html +36 -30
  161. data/doc/TaskJuggler/SortListAttribute.html +17 -13
  162. data/doc/TaskJuggler/SourceFileInfo.html +19 -13
  163. data/doc/TaskJuggler/StatusSheetReceiver.html +31 -25
  164. data/doc/TaskJuggler/StatusSheetReport.html +166 -159
  165. data/doc/TaskJuggler/StatusSheetSender.html +80 -74
  166. data/doc/TaskJuggler/StringAttribute.html +20 -14
  167. data/doc/TaskJuggler/SymbolAttribute.html +16 -10
  168. data/doc/TaskJuggler/SyntaxReference.html +231 -225
  169. data/doc/TaskJuggler/TOCEntry.html +46 -40
  170. data/doc/TaskJuggler/TSResourceRecord.html +15 -9
  171. data/doc/TaskJuggler/TSTaskRecord.html +16 -10
  172. data/doc/TaskJuggler/TableColumnDefinition.html +84 -39
  173. data/doc/TaskJuggler/TableOfContents.html +28 -22
  174. data/doc/TaskJuggler/TableReport.html +906 -866
  175. data/doc/TaskJuggler/Task.html +99 -93
  176. data/doc/TaskJuggler/TaskDependency.html +24 -18
  177. data/doc/TaskJuggler/TaskListAttribute.html +29 -25
  178. data/doc/TaskJuggler/TaskListRE.html +46 -39
  179. data/doc/TaskJuggler/TaskScenario.html +2218 -1965
  180. data/doc/TaskJuggler/TextFormatter.html +154 -148
  181. data/doc/TaskJuggler/TextParser.html +362 -348
  182. data/doc/TaskJuggler/TextParser/Pattern.html +313 -307
  183. data/doc/TaskJuggler/TextParser/Rule.html +147 -141
  184. data/doc/TaskJuggler/TextParser/StackElement.html +58 -52
  185. data/doc/TaskJuggler/TextParser/State.html +88 -82
  186. data/doc/TaskJuggler/TextParser/StateTransition.html +42 -36
  187. data/doc/TaskJuggler/TextParser/TextParserResultArray.html +20 -14
  188. data/doc/TaskJuggler/TextParser/TokenDoc.html +19 -13
  189. data/doc/TaskJuggler/TextReport.html +80 -74
  190. data/doc/TaskJuggler/TextScanner.html +284 -272
  191. data/doc/TaskJuggler/TextScanner/BufferStreamHandle.html +14 -8
  192. data/doc/TaskJuggler/TextScanner/FileStreamHandle.html +21 -15
  193. data/doc/TaskJuggler/TextScanner/MacroStackEntry.html +15 -9
  194. data/doc/TaskJuggler/TextScanner/StreamHandle.html +102 -96
  195. data/doc/TaskJuggler/TimeSheet.html +123 -117
  196. data/doc/TaskJuggler/TimeSheetReceiver.html +28 -22
  197. data/doc/TaskJuggler/TimeSheetRecord.html +212 -206
  198. data/doc/TaskJuggler/TimeSheetReport.html +206 -199
  199. data/doc/TaskJuggler/TimeSheetSender.html +27 -21
  200. data/doc/TaskJuggler/TimeSheetSummary.html +140 -134
  201. data/doc/TaskJuggler/TimeSheets.html +20 -14
  202. data/doc/TaskJuggler/Tj3AppBase.html +100 -94
  203. data/doc/TaskJuggler/Tj3Client.html +407 -483
  204. data/doc/TaskJuggler/Tj3Daemon.html +116 -107
  205. data/doc/TaskJuggler/Tj3SheetAppBase.html +45 -39
  206. data/doc/TaskJuggler/Tj3SsReceiver.html +31 -25
  207. data/doc/TaskJuggler/Tj3SsSender.html +64 -58
  208. data/doc/TaskJuggler/Tj3TsReceiver.html +31 -25
  209. data/doc/TaskJuggler/Tj3TsSender.html +51 -45
  210. data/doc/TaskJuggler/Tj3TsSummary.html +59 -53
  211. data/doc/TaskJuggler/TjException.html +13 -7
  212. data/doc/TaskJuggler/TjTime.html +444 -438
  213. data/doc/TaskJuggler/TjpExample.html +84 -78
  214. data/doc/TaskJuggler/TjpExportRE.html +356 -349
  215. data/doc/TaskJuggler/TjpSyntaxRules.html +4279 -4151
  216. data/doc/TaskJuggler/URLParameter.html +16 -10
  217. data/doc/TaskJuggler/UserManual.html +185 -179
  218. data/doc/TaskJuggler/VimSyntax.html +144 -138
  219. data/doc/TaskJuggler/WebServer.html +46 -39
  220. data/doc/TaskJuggler/WelcomePage.html +769 -0
  221. data/doc/TaskJuggler/WorkingHours.html +185 -179
  222. data/doc/TaskJuggler/WorkingHoursAttribute.html +42 -36
  223. data/doc/TaskJuggler/XMLBlob.html +21 -15
  224. data/doc/TaskJuggler/XMLComment.html +17 -11
  225. data/doc/TaskJuggler/XMLDocument.html +33 -27
  226. data/doc/TaskJuggler/XMLElement.html +97 -91
  227. data/doc/TaskJuggler/XMLNamedText.html +13 -7
  228. data/doc/TaskJuggler/XMLText.html +32 -26
  229. data/doc/index.html +601 -563
  230. data/doc/lib/AccountScenario_rb.html +5 -3
  231. data/doc/lib/Account_rb.html +5 -3
  232. data/doc/lib/Allocation_rb.html +5 -3
  233. data/doc/lib/AppConfig_rb.html +5 -3
  234. data/doc/lib/AttributeBase_rb.html +5 -3
  235. data/doc/lib/AttributeDefinition_rb.html +5 -3
  236. data/doc/lib/Attributes_rb.html +5 -3
  237. data/doc/lib/BatchProcessor_rb.html +5 -3
  238. data/doc/lib/Booking_rb.html +5 -3
  239. data/doc/lib/ChargeSet_rb.html +5 -3
  240. data/doc/lib/Charge_rb.html +5 -3
  241. data/doc/lib/DataCache_rb.html +5 -3
  242. data/doc/lib/FileList_rb.html +5 -3
  243. data/doc/lib/HTMLDocument_rb.html +5 -3
  244. data/doc/lib/IntervalList_rb.html +69 -0
  245. data/doc/lib/Interval_rb.html +5 -3
  246. data/doc/lib/Journal_rb.html +5 -3
  247. data/doc/lib/KeywordArray_rb.html +5 -3
  248. data/doc/lib/KeywordDocumentation_rb.html +5 -3
  249. data/doc/lib/Limits_rb.html +5 -3
  250. data/doc/lib/LogFile_rb.html +5 -3
  251. data/doc/lib/Log_rb.html +5 -3
  252. data/doc/lib/LogicalExpression_rb.html +5 -3
  253. data/doc/lib/LogicalFunction_rb.html +5 -3
  254. data/doc/lib/LogicalOperation_rb.html +5 -3
  255. data/doc/lib/MacroTable_rb.html +5 -3
  256. data/doc/lib/MessageHandler_rb.html +5 -3
  257. data/doc/lib/ProjectFileParser_rb.html +5 -3
  258. data/doc/lib/ProjectFileScanner_rb.html +5 -3
  259. data/doc/lib/Project_rb.html +5 -3
  260. data/doc/lib/PropertyList_rb.html +5 -3
  261. data/doc/lib/PropertySet_rb.html +5 -3
  262. data/doc/lib/PropertyTreeNode_rb.html +5 -3
  263. data/doc/lib/Query_rb.html +5 -3
  264. data/doc/lib/RTFHandlers_rb.html +5 -3
  265. data/doc/lib/RTFNavigator_rb.html +5 -3
  266. data/doc/lib/RTFQuery_rb.html +5 -3
  267. data/doc/lib/RTFReportLink_rb.html +5 -3
  268. data/doc/lib/RTFReport_rb.html +5 -3
  269. data/doc/lib/RTFWithQuerySupport_rb.html +5 -3
  270. data/doc/lib/RealFormat_rb.html +5 -3
  271. data/doc/lib/ResourceScenario_rb.html +5 -3
  272. data/doc/lib/Resource_rb.html +5 -3
  273. data/doc/lib/RichTextDocument_rb.html +5 -3
  274. data/doc/lib/RichTextElement_rb.html +5 -3
  275. data/doc/lib/RichTextFunctionExample_rb.html +5 -3
  276. data/doc/lib/RichTextFunctionHandler_rb.html +5 -3
  277. data/doc/lib/RichTextParser_rb.html +5 -3
  278. data/doc/lib/RichTextScanner_rb.html +5 -3
  279. data/doc/lib/RichTextSnip_rb.html +5 -3
  280. data/doc/lib/RichTextSyntaxRules_rb.html +5 -3
  281. data/doc/lib/RichText_rb.html +5 -3
  282. data/doc/lib/RuntimeConfig_rb.html +5 -3
  283. data/doc/lib/ScenarioData_rb.html +5 -3
  284. data/doc/lib/Scenario_rb.html +5 -3
  285. data/doc/lib/Scoreboard_rb.html +7 -3
  286. data/doc/lib/SheetHandlerBase_rb.html +5 -3
  287. data/doc/lib/SheetReceiver_rb.html +5 -3
  288. data/doc/lib/SheetSender_rb.html +5 -3
  289. data/doc/lib/ShiftAssignments_rb.html +5 -3
  290. data/doc/lib/ShiftScenario_rb.html +5 -3
  291. data/doc/lib/Shift_rb.html +5 -3
  292. data/doc/lib/SimpleQueryExpander_rb.html +5 -3
  293. data/doc/lib/SourceFileInfo_rb.html +5 -3
  294. data/doc/lib/StatusSheetReceiver_rb.html +5 -3
  295. data/doc/lib/StatusSheetSender_rb.html +5 -3
  296. data/doc/lib/SyntaxReference_rb.html +5 -3
  297. data/doc/lib/TOCEntry_rb.html +5 -3
  298. data/doc/lib/TableColumnDefinition_rb.html +5 -3
  299. data/doc/lib/TableOfContents_rb.html +5 -3
  300. data/doc/lib/TaskDependency_rb.html +5 -3
  301. data/doc/lib/TaskJuggler_rb.html +5 -3
  302. data/doc/lib/TaskScenario_rb.html +5 -3
  303. data/doc/lib/Task_rb.html +5 -3
  304. data/doc/lib/TextFormatter_rb.html +6 -4
  305. data/doc/lib/TextParser/Pattern_rb.html +5 -3
  306. data/doc/lib/TextParser/Rule_rb.html +5 -3
  307. data/doc/lib/TextParser/StackElement_rb.html +5 -3
  308. data/doc/lib/TextParser/State_rb.html +6 -4
  309. data/doc/lib/TextParser/TokenDoc_rb.html +5 -3
  310. data/doc/lib/TextParser_rb.html +5 -3
  311. data/doc/lib/TextScanner_rb.html +5 -3
  312. data/doc/lib/TimeSheetReceiver_rb.html +5 -3
  313. data/doc/lib/TimeSheetSender_rb.html +5 -3
  314. data/doc/lib/TimeSheetSummary_rb.html +6 -4
  315. data/doc/lib/TimeSheets_rb.html +5 -3
  316. data/doc/lib/Tj3AppBase_rb.html +5 -3
  317. data/doc/lib/Tj3Config_rb.html +5 -3
  318. data/doc/lib/Tj3SheetAppBase_rb.html +5 -3
  319. data/doc/lib/TjException_rb.html +5 -3
  320. data/doc/lib/TjTime_rb.html +5 -3
  321. data/doc/lib/TjpExample_rb.html +5 -3
  322. data/doc/lib/TjpSyntaxRules_rb.html +5 -3
  323. data/doc/lib/URLParameter_rb.html +5 -3
  324. data/doc/lib/UTF8String_rb.html +5 -3
  325. data/doc/lib/UserManual_rb.html +5 -3
  326. data/doc/lib/VimSyntax_rb.html +6 -4
  327. data/doc/lib/WorkingHours_rb.html +5 -3
  328. data/doc/lib/XMLDocument_rb.html +5 -3
  329. data/doc/lib/XMLElement_rb.html +5 -3
  330. data/doc/lib/daemon/Daemon_rb.html +5 -3
  331. data/doc/lib/daemon/ProcessIntercom_rb.html +7 -3
  332. data/doc/lib/daemon/ProjectBroker_rb.html +5 -3
  333. data/doc/lib/daemon/ProjectServer_rb.html +5 -3
  334. data/doc/lib/daemon/ReportServer_rb.html +5 -3
  335. data/doc/lib/daemon/ReportServlet_rb.html +69 -0
  336. data/doc/lib/daemon/WebServer_rb.html +9 -3
  337. data/doc/lib/daemon/WelcomePage_rb.html +71 -0
  338. data/doc/lib/deep_copy_rb.html +5 -3
  339. data/doc/lib/reports/CSVFile_rb.html +5 -3
  340. data/doc/lib/reports/CollisionDetector_rb.html +5 -3
  341. data/doc/lib/reports/ColumnTable_rb.html +5 -3
  342. data/doc/lib/reports/GanttChart_rb.html +5 -3
  343. data/doc/lib/reports/GanttContainer_rb.html +5 -3
  344. data/doc/lib/reports/GanttHeaderScaleItem_rb.html +5 -3
  345. data/doc/lib/reports/GanttHeader_rb.html +5 -3
  346. data/doc/lib/reports/GanttLine_rb.html +5 -3
  347. data/doc/lib/reports/GanttLoadStack_rb.html +5 -3
  348. data/doc/lib/reports/GanttMilestone_rb.html +5 -3
  349. data/doc/lib/reports/GanttRouter_rb.html +5 -3
  350. data/doc/lib/reports/GanttTaskBar_rb.html +5 -3
  351. data/doc/lib/reports/HTMLGraphics_rb.html +5 -3
  352. data/doc/lib/reports/Navigator_rb.html +5 -3
  353. data/doc/lib/reports/NikuReport_rb.html +5 -3
  354. data/doc/lib/reports/ReportBase_rb.html +5 -3
  355. data/doc/lib/reports/ReportContext_rb.html +5 -3
  356. data/doc/lib/reports/ReportTableCell_rb.html +5 -3
  357. data/doc/lib/reports/ReportTableColumn_rb.html +5 -3
  358. data/doc/lib/reports/ReportTableLegend_rb.html +5 -3
  359. data/doc/lib/reports/ReportTableLine_rb.html +5 -3
  360. data/doc/lib/reports/ReportTable_rb.html +5 -3
  361. data/doc/lib/reports/Report_rb.html +5 -3
  362. data/doc/lib/reports/ResourceListRE_rb.html +5 -3
  363. data/doc/lib/reports/StatusSheetReport_rb.html +5 -3
  364. data/doc/lib/reports/TableReport_rb.html +5 -3
  365. data/doc/lib/reports/TaskListRE_rb.html +5 -3
  366. data/doc/lib/reports/TextReport_rb.html +5 -3
  367. data/doc/lib/reports/TimeSheetReport_rb.html +5 -3
  368. data/doc/lib/reports/TjpExportRE_rb.html +5 -3
  369. data/doc/lib/{taskjuggler3_rb.html → tj3_rb.html} +7 -5
  370. data/doc/lib/tj3client_rb.html +5 -3
  371. data/doc/lib/tj3d_rb.html +6 -4
  372. data/doc/lib/tj3man_rb.html +5 -3
  373. data/doc/lib/tj3ss_receiver_rb.html +5 -3
  374. data/doc/lib/tj3ss_sender_rb.html +5 -3
  375. data/doc/lib/tj3ts_receiver_rb.html +5 -3
  376. data/doc/lib/tj3ts_sender_rb.html +5 -3
  377. data/doc/lib/tj3ts_summary_rb.html +5 -3
  378. data/examples/tutorial.tjp +13 -5
  379. data/gem_spec.rb +3 -0
  380. data/lib/Account.rb +2 -1
  381. data/lib/AccountScenario.rb +2 -1
  382. data/lib/Allocation.rb +2 -1
  383. data/lib/AppConfig.rb +2 -1
  384. data/lib/AttributeBase.rb +19 -5
  385. data/lib/AttributeDefinition.rb +2 -1
  386. data/lib/Attributes.rb +49 -38
  387. data/lib/BatchProcessor.rb +2 -1
  388. data/lib/Booking.rb +2 -1
  389. data/lib/Charge.rb +2 -1
  390. data/lib/ChargeSet.rb +2 -1
  391. data/lib/DataCache.rb +15 -1
  392. data/lib/FileList.rb +2 -1
  393. data/lib/HTMLDocument.rb +2 -1
  394. data/lib/Interval.rb +2 -1
  395. data/lib/IntervalList.rb +100 -0
  396. data/lib/Journal.rb +8 -2
  397. data/lib/KeywordArray.rb +2 -1
  398. data/lib/KeywordDocumentation.rb +10 -6
  399. data/lib/Limits.rb +2 -1
  400. data/lib/Log.rb +3 -2
  401. data/lib/LogFile.rb +2 -1
  402. data/lib/LogicalExpression.rb +2 -1
  403. data/lib/LogicalFunction.rb +2 -1
  404. data/lib/LogicalOperation.rb +2 -1
  405. data/lib/MacroTable.rb +2 -1
  406. data/lib/MessageHandler.rb +2 -1
  407. data/lib/Project.rb +92 -25
  408. data/lib/ProjectFileParser.rb +7 -2
  409. data/lib/ProjectFileScanner.rb +2 -1
  410. data/lib/PropertyList.rb +2 -1
  411. data/lib/PropertySet.rb +2 -6
  412. data/lib/PropertyTreeNode.rb +22 -44
  413. data/lib/Query.rb +32 -13
  414. data/lib/RTFHandlers.rb +2 -1
  415. data/lib/RTFNavigator.rb +2 -1
  416. data/lib/RTFQuery.rb +3 -2
  417. data/lib/RTFReport.rb +2 -1
  418. data/lib/RTFReportLink.rb +2 -1
  419. data/lib/RTFWithQuerySupport.rb +2 -1
  420. data/lib/RealFormat.rb +2 -1
  421. data/lib/Resource.rb +2 -1
  422. data/lib/ResourceScenario.rb +35 -14
  423. data/lib/RichText.rb +2 -1
  424. data/lib/RichTextDocument.rb +2 -1
  425. data/lib/RichTextElement.rb +2 -1
  426. data/lib/RichTextFunctionExample.rb +2 -1
  427. data/lib/RichTextFunctionHandler.rb +2 -1
  428. data/lib/RichTextParser.rb +2 -1
  429. data/lib/RichTextScanner.rb +2 -1
  430. data/lib/RichTextSnip.rb +2 -1
  431. data/lib/RichTextSyntaxRules.rb +2 -1
  432. data/lib/RuntimeConfig.rb +2 -1
  433. data/lib/Scenario.rb +2 -1
  434. data/lib/ScenarioData.rb +2 -1
  435. data/lib/Scoreboard.rb +27 -8
  436. data/lib/SheetHandlerBase.rb +2 -1
  437. data/lib/SheetReceiver.rb +2 -1
  438. data/lib/SheetSender.rb +2 -1
  439. data/lib/Shift.rb +2 -1
  440. data/lib/ShiftAssignments.rb +2 -1
  441. data/lib/ShiftScenario.rb +2 -1
  442. data/lib/SimpleQueryExpander.rb +2 -1
  443. data/lib/SourceFileInfo.rb +2 -1
  444. data/lib/StatusSheetReceiver.rb +2 -1
  445. data/lib/StatusSheetSender.rb +2 -1
  446. data/lib/SyntaxReference.rb +2 -1
  447. data/lib/TOCEntry.rb +2 -1
  448. data/lib/TableColumnDefinition.rb +9 -2
  449. data/lib/TableOfContents.rb +2 -1
  450. data/lib/Task.rb +2 -1
  451. data/lib/TaskDependency.rb +2 -1
  452. data/lib/TaskJuggler.rb +8 -6
  453. data/lib/TaskScenario.rb +337 -153
  454. data/lib/TextFormatter.rb +3 -2
  455. data/lib/TextParser.rb +7 -2
  456. data/lib/TextParser/Pattern.rb +2 -1
  457. data/lib/TextParser/Rule.rb +2 -1
  458. data/lib/TextParser/StackElement.rb +2 -1
  459. data/lib/TextParser/State.rb +3 -2
  460. data/lib/TextParser/TokenDoc.rb +2 -1
  461. data/lib/TextScanner.rb +12 -5
  462. data/lib/TimeSheetReceiver.rb +2 -1
  463. data/lib/TimeSheetSender.rb +2 -1
  464. data/lib/TimeSheetSummary.rb +3 -2
  465. data/lib/TimeSheets.rb +2 -1
  466. data/lib/Tj3AppBase.rb +6 -5
  467. data/lib/Tj3Config.rb +5 -4
  468. data/lib/Tj3SheetAppBase.rb +2 -1
  469. data/lib/TjException.rb +2 -1
  470. data/lib/TjTime.rb +2 -1
  471. data/lib/TjpExample.rb +2 -1
  472. data/lib/TjpSyntaxRules.rb +264 -65
  473. data/lib/URLParameter.rb +2 -1
  474. data/lib/UTF8String.rb +2 -1
  475. data/lib/UserManual.rb +2 -1
  476. data/lib/VimSyntax.rb +3 -2
  477. data/lib/WorkingHours.rb +2 -1
  478. data/lib/XMLDocument.rb +2 -1
  479. data/lib/XMLElement.rb +2 -1
  480. data/lib/daemon/Daemon.rb +3 -1
  481. data/lib/daemon/ProcessIntercom.rb +3 -1
  482. data/lib/daemon/ProjectBroker.rb +84 -32
  483. data/lib/daemon/ProjectServer.rb +5 -3
  484. data/lib/daemon/ReportServer.rb +8 -5
  485. data/lib/daemon/ReportServlet.rb +166 -0
  486. data/lib/daemon/WebServer.rb +6 -150
  487. data/lib/daemon/WelcomePage.rb +80 -0
  488. data/lib/deep_copy.rb +2 -1
  489. data/lib/reports/CSVFile.rb +2 -1
  490. data/lib/reports/CollisionDetector.rb +2 -1
  491. data/lib/reports/ColumnTable.rb +2 -1
  492. data/lib/reports/GanttChart.rb +2 -1
  493. data/lib/reports/GanttContainer.rb +3 -4
  494. data/lib/reports/GanttHeader.rb +2 -1
  495. data/lib/reports/GanttHeaderScaleItem.rb +2 -1
  496. data/lib/reports/GanttLine.rb +12 -10
  497. data/lib/reports/GanttLoadStack.rb +2 -1
  498. data/lib/reports/GanttMilestone.rb +3 -3
  499. data/lib/reports/GanttRouter.rb +4 -1
  500. data/lib/reports/GanttTaskBar.rb +9 -7
  501. data/lib/reports/HTMLGraphics.rb +2 -1
  502. data/lib/reports/Navigator.rb +2 -1
  503. data/lib/reports/NikuReport.rb +79 -49
  504. data/lib/reports/Report.rb +42 -10
  505. data/lib/reports/ReportBase.rb +2 -1
  506. data/lib/reports/ReportContext.rb +2 -1
  507. data/lib/reports/ReportTable.rb +2 -1
  508. data/lib/reports/ReportTableCell.rb +63 -28
  509. data/lib/reports/ReportTableColumn.rb +2 -1
  510. data/lib/reports/ReportTableLegend.rb +5 -5
  511. data/lib/reports/ReportTableLine.rb +2 -1
  512. data/lib/reports/ResourceListRE.rb +2 -1
  513. data/lib/reports/StatusSheetReport.rb +4 -2
  514. data/lib/reports/TableReport.rb +42 -38
  515. data/lib/reports/TaskListRE.rb +4 -2
  516. data/lib/reports/TextReport.rb +2 -1
  517. data/lib/reports/TimeSheetReport.rb +4 -2
  518. data/lib/reports/TjpExportRE.rb +4 -2
  519. data/lib/{taskjuggler3.rb → tj3.rb} +6 -5
  520. data/lib/tj3client.rb +19 -36
  521. data/lib/tj3d.rb +6 -2
  522. data/lib/tj3man.rb +4 -3
  523. data/lib/tj3ss_receiver.rb +2 -1
  524. data/lib/tj3ss_sender.rb +2 -1
  525. data/lib/tj3ts_receiver.rb +2 -1
  526. data/lib/tj3ts_sender.rb +2 -1
  527. data/lib/tj3ts_summary.rb +2 -1
  528. data/manual/Day_To_Day_Juggling +36 -0
  529. data/manual/How_To_Contribute +9 -4
  530. data/manual/Installation +10 -3
  531. data/manual/TaskJuggler_Internals +0 -2
  532. data/manual/Tutorial +25 -3
  533. data/prj_cfg.rb +4 -2
  534. data/spec/IntervalList_spec.rb +138 -0
  535. data/spec/ProjectBroker_spec.rb +133 -0
  536. data/tasks/changelog.rake +41 -24
  537. data/tasks/csts.rake +1 -0
  538. data/tasks/gem.rake +1 -0
  539. data/tasks/rcov.rake +1 -1
  540. data/tasks/spec.rake +7 -0
  541. data/tasks/test.rake +1 -0
  542. data/test/MessageChecker.rb +2 -1
  543. data/test/TestSuite/CSV-Reports/niku.tjp +70 -0
  544. data/test/TestSuite/CSV-Reports/{celltext-Reference.csv → refs/celltext.csv} +0 -0
  545. data/test/TestSuite/CSV-Reports/refs/niku.csv +5 -0
  546. data/test/TestSuite/CSV-Reports/{resourcereport-Reference.csv → refs/resourcereport.csv} +0 -0
  547. data/test/TestSuite/CSV-Reports/{resourcereport_with_tasks-Reference.csv → refs/resourcereport_with_tasks.csv} +0 -0
  548. data/test/TestSuite/CSV-Reports/{sortByTree-Reference.csv → refs/sortByTree.csv} +0 -0
  549. data/test/TestSuite/CSV-Reports/{sortBy_duration.down-Reference.csv → refs/sortBy_duration.down.csv} +0 -0
  550. data/test/TestSuite/CSV-Reports/{sortBy_effort.up-Reference.csv → refs/sortBy_effort.up.csv} +0 -0
  551. data/test/TestSuite/CSV-Reports/{sortBy_plan.start.down-Reference.csv → refs/sortBy_plan.start.down.csv} +0 -0
  552. data/test/TestSuite/CSV-Reports/{taskreport-Reference.csv → refs/taskreport.csv} +0 -0
  553. data/test/TestSuite/CSV-Reports/{taskreport_with_resources-Reference.csv → refs/taskreport_with_resources.csv} +0 -0
  554. data/test/TestSuite/CSV-Reports/{weekly-Reference.csv → refs/weekly.csv} +0 -0
  555. data/test/TestSuite/HTML-Reports/Alerts.tjp +12 -0
  556. data/test/TestSuite/Scheduler/Correct/Allocate.tjp +2 -2
  557. data/test/TestSuite/Scheduler/Correct/Container-2.tjp +1 -2
  558. data/test/TestSuite/Scheduler/Correct/InheritedAttributes.tjp +77 -0
  559. data/test/TestSuite/Scheduler/Correct/WeakDeps.tjp +40 -0
  560. data/test/TestSuite/Scheduler/Errors/loop_detected_12.tjp +2 -2
  561. data/test/TestSuite/Scheduler/Errors/loop_detected_13.tjp +3 -4
  562. data/test/TestSuite/Scheduler/Errors/loop_detected_3.tjp +2 -2
  563. data/test/TestSuite/Scheduler/Errors/loop_detected_6.tjp +8 -7
  564. data/test/TestSuite/Scheduler/Errors/onend_wrong_direction.tjp +19 -0
  565. data/test/TestSuite/Scheduler/Errors/onstart_wrong_direction.tjp +18 -0
  566. data/test/TestSuite/Scheduler/Errors/task_depend_multi.tjp +1 -2
  567. data/test/TestSuite/StatusSheets/StatusSheetTemplates/2002-03-02/boss_2002-03-02.tji +46 -0
  568. data/test/TestSuite/StatusSheets/StatusSheetTemplates/2002-03-02/dev2_2002-03-02.tji +22 -0
  569. data/test/TestSuite/StatusSheets/StatusSheetTemplates/2002-03-02/resources.yml +11 -0
  570. data/test/TestSuite/StatusSheets/StatusSheetTemplates/acceptable_intervals +1 -0
  571. data/test/TestSuite/StatusSheets/sender.log +256 -0
  572. data/test/TestSuite/StatusSheets/statussheets.log +9 -0
  573. data/test/TestSuite/StatusSheets/tj3d.log +395 -0
  574. data/test/TestSuite/Syntax/Correct/Limits-1.tjp +2 -0
  575. data/test/TestSuite/Syntax/Correct/Niku.tjp +6 -1
  576. data/test/TestSuite/Syntax/Correct/Scenario.tjp +4 -1
  577. data/test/TestSuite/Syntax/Correct/Supplement.tjp +12 -5
  578. data/test/TestSuite/Syntax/Correct/TaskPrefix.tji +3 -0
  579. data/test/TestSuite/Syntax/Correct/TaskPrefix.tjp +24 -0
  580. data/test/TestSuite/Syntax/Correct/css/tjreport.css +7 -2
  581. data/test/TestSuite/Syntax/Correct/tutorial.tjp +15 -5
  582. data/test/all.rb +2 -4
  583. data/test/test_BatchProcessor.rb +2 -1
  584. data/test/test_CSV-Reports.rb +34 -23
  585. data/test/test_CSVFile.rb +2 -1
  586. data/test/test_CollisionDetector.rb +3 -2
  587. data/test/test_Journal.rb +2 -1
  588. data/test/test_Limits.rb +2 -1
  589. data/test/test_LogicalExpression.rb +2 -1
  590. data/test/test_MacroTable.rb +2 -1
  591. data/test/test_Project.rb +3 -2
  592. data/test/test_ProjectFileScanner.rb +2 -1
  593. data/test/test_PropertySet.rb +2 -1
  594. data/test/test_Query.rb +2 -1
  595. data/test/test_RealFormat.rb +2 -1
  596. data/test/test_ReportGenerator.rb +2 -1
  597. data/test/test_RichText.rb +2 -1
  598. data/test/test_Scheduler.rb +2 -1
  599. data/test/test_ShiftAssignments.rb +2 -1
  600. data/test/test_SimpleQueryExpander.rb +2 -1
  601. data/test/test_Syntax.rb +2 -1
  602. data/test/test_TextFormatter.rb +3 -2
  603. data/test/test_TjTime.rb +2 -1
  604. data/test/test_TjpExample.rb +2 -1
  605. data/test/test_URLParameter.rb +2 -1
  606. data/test/test_UTF8String.rb +2 -1
  607. data/test/test_WorkingHours.rb +2 -1
  608. data/test/test_deep_copy.rb +2 -1
  609. metadata +74 -20
  610. data/doc/StringIO.html +0 -595
  611. data/test/TestSuite/Scheduler/Errors/loop_detected_7.tjp +0 -46
  612. data/test/TestSuite/Scheduler/Errors/loop_detected_8.tjp +0 -51
  613. data/test/TestSuite/Scheduler/Errors/multiple_durations.tjp +0 -11
@@ -133,6 +133,8 @@
133
133
 
134
134
  <li><a href="../TaskJuggler/AttributeDefinition.html">TaskJuggler::AttributeDefinition</a></li>
135
135
 
136
+ <li><a href="../TaskJuggler/AttributeOverwrite.html">TaskJuggler::AttributeOverwrite</a></li>
137
+
136
138
  <li><a href="../TaskJuggler/BatchProcessor.html">TaskJuggler::BatchProcessor</a></li>
137
139
 
138
140
  <li><a href="../TaskJuggler/Booking.html">TaskJuggler::Booking</a></li>
@@ -211,6 +213,8 @@
211
213
 
212
214
  <li><a href="../TaskJuggler/Interval.html">TaskJuggler::Interval</a></li>
213
215
 
216
+ <li><a href="../TaskJuggler/IntervalList.html">TaskJuggler::IntervalList</a></li>
217
+
214
218
  <li><a href="../TaskJuggler/IntervalListAttribute.html">TaskJuggler::IntervalListAttribute</a></li>
215
219
 
216
220
  <li><a href="../TaskJuggler/JobInfo.html">TaskJuggler::JobInfo</a></li>
@@ -243,6 +247,8 @@
243
247
 
244
248
  <li><a href="../TaskJuggler/LogicalExpressionAttribute.html">TaskJuggler::LogicalExpressionAttribute</a></li>
245
249
 
250
+ <li><a href="../TaskJuggler/LogicalExpressionListAttribute.html">TaskJuggler::LogicalExpressionListAttribute</a></li>
251
+
246
252
  <li><a href="../TaskJuggler/LogicalFlag.html">TaskJuggler::LogicalFlag</a></li>
247
253
 
248
254
  <li><a href="../TaskJuggler/LogicalFunction.html">TaskJuggler::LogicalFunction</a></li>
@@ -523,6 +529,8 @@
523
529
 
524
530
  <li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
525
531
 
532
+ <li><a href="../TaskJuggler/WelcomePage.html">TaskJuggler::WelcomePage</a></li>
533
+
526
534
  <li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
527
535
 
528
536
  <li><a href="../TaskJuggler/WorkingHoursAttribute.html">TaskJuggler::WorkingHoursAttribute</a></li>
@@ -549,8 +557,6 @@
549
557
 
550
558
  <li><a href="../String.html">String</a></li>
551
559
 
552
- <li><a href="../StringIO.html">StringIO</a></li>
553
-
554
560
  </ul>
555
561
  <div id="no-class-search-results" style="display: none;">No matching classes.</div>
556
562
  </div>
@@ -598,17 +604,17 @@
598
604
  <div class="method-source-code"
599
605
  id="new-source">
600
606
  <pre>
601
- <span class="ruby-comment cmt"># File lib/Tj3AppBase.rb, line 24</span>
602
- 24: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>
603
- 25: <span class="ruby-comment cmt"># Indent and width of options. The deriving class may has to change</span>
604
- 26: <span class="ruby-comment cmt"># this.</span>
605
- 27: <span class="ruby-ivar">@optsSummaryWidth</span> = <span class="ruby-value">22</span>
606
- 28: <span class="ruby-ivar">@optsSummaryIndent</span> = <span class="ruby-value">5</span>
607
- 29: <span class="ruby-comment cmt"># Show some progress information by default</span>
608
- 30: <span class="ruby-ivar">@silent</span> = <span class="ruby-keyword kw">false</span>
609
- 31: <span class="ruby-ivar">@configFile</span> = <span class="ruby-keyword kw">nil</span>
610
- 32: <span class="ruby-ivar">@mandatoryArgs</span> = <span class="ruby-value str">''</span>
611
- 33: <span class="ruby-keyword kw">end</span></pre>
607
+ <span class="ruby-comment cmt"># File lib/Tj3AppBase.rb, line 25</span>
608
+ 25: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>
609
+ 26: <span class="ruby-comment cmt"># Indent and width of options. The deriving class may has to change</span>
610
+ 27: <span class="ruby-comment cmt"># this.</span>
611
+ 28: <span class="ruby-ivar">@optsSummaryWidth</span> = <span class="ruby-value">22</span>
612
+ 29: <span class="ruby-ivar">@optsSummaryIndent</span> = <span class="ruby-value">5</span>
613
+ 30: <span class="ruby-comment cmt"># Show some progress information by default</span>
614
+ 31: <span class="ruby-ivar">@silent</span> = <span class="ruby-keyword kw">false</span>
615
+ 32: <span class="ruby-ivar">@configFile</span> = <span class="ruby-keyword kw">nil</span>
616
+ 33: <span class="ruby-ivar">@mandatoryArgs</span> = <span class="ruby-value str">''</span>
617
+ 34: <span class="ruby-keyword kw">end</span></pre>
612
618
  </div>
613
619
 
614
620
  </div>
@@ -645,32 +651,32 @@
645
651
  <div class="method-source-code"
646
652
  id="main-source">
647
653
  <pre>
648
- <span class="ruby-comment cmt"># File lib/Tj3AppBase.rb, line 85</span>
649
- 85: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">main</span>
650
- 86: <span class="ruby-comment cmt"># Install signal handler to exit gracefully on CTRL-C.</span>
651
- 87: <span class="ruby-identifier">intHandler</span> = <span class="ruby-constant">Kernel</span>.<span class="ruby-identifier">trap</span>(<span class="ruby-value str">'INT'</span>) <span class="ruby-keyword kw">do</span>
652
- 88: <span class="ruby-identifier">puts</span> <span class="ruby-value str">&quot;\nAborting on user request!&quot;</span>
653
- 89: <span class="ruby-identifier">exit</span> <span class="ruby-value">1</span>
654
- 90: <span class="ruby-keyword kw">end</span>
655
- 91:
656
- 92: <span class="ruby-identifier">args</span> = <span class="ruby-identifier">processArguments</span>(<span class="ruby-constant">ARGV</span>)
657
- 93:
658
- 94: <span class="ruby-comment cmt"># If DEBUG mode has been enabled, we restore the INT trap handler again</span>
659
- 95: <span class="ruby-comment cmt"># to get Ruby backtrackes.</span>
660
- 96: <span class="ruby-constant">Kernel</span>.<span class="ruby-identifier">trap</span>(<span class="ruby-value str">'INT'</span>, <span class="ruby-identifier">intHandler</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$DEBUG</span>
661
- 97:
662
- 98: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@silent</span>
663
- 99: <span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;#{AppConfig.softwareName} v#{AppConfig.version} - &quot;</span> <span class="ruby-operator">+</span>
664
- 100: <span class="ruby-node">&quot;#{AppConfig.packageInfo}\n\n&quot;</span> <span class="ruby-operator">+</span>
665
- 101: <span class="ruby-node">&quot;Copyright (c) #{AppConfig.copyright.join(', ')}&quot;</span> <span class="ruby-operator">+</span>
666
- 102: <span class="ruby-node">&quot; by #{AppConfig.authors.join(', ')}\n\n&quot;</span> <span class="ruby-operator">+</span>
667
- 103: <span class="ruby-node">&quot;#{AppConfig.license}\n&quot;</span>
668
- 104: <span class="ruby-keyword kw">end</span>
669
- 105:
670
- 106: <span class="ruby-ivar">@rc</span> = <span class="ruby-constant">RuntimeConfig</span>.<span class="ruby-identifier">new</span>(<span class="ruby-constant">AppConfig</span>.<span class="ruby-identifier">packageName</span>, <span class="ruby-ivar">@configFile</span>)
671
- 107:
672
- 108: <span class="ruby-identifier">args</span>
673
- 109: <span class="ruby-keyword kw">end</span></pre>
654
+ <span class="ruby-comment cmt"># File lib/Tj3AppBase.rb, line 86</span>
655
+ 86: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">main</span>
656
+ 87: <span class="ruby-comment cmt"># Install signal handler to exit gracefully on CTRL-C.</span>
657
+ 88: <span class="ruby-identifier">intHandler</span> = <span class="ruby-constant">Kernel</span>.<span class="ruby-identifier">trap</span>(<span class="ruby-value str">'INT'</span>) <span class="ruby-keyword kw">do</span>
658
+ 89: <span class="ruby-identifier">puts</span> <span class="ruby-value str">&quot;\nAborting on user request!&quot;</span>
659
+ 90: <span class="ruby-identifier">exit</span> <span class="ruby-value">1</span>
660
+ 91: <span class="ruby-keyword kw">end</span>
661
+ 92:
662
+ 93: <span class="ruby-identifier">args</span> = <span class="ruby-identifier">processArguments</span>(<span class="ruby-constant">ARGV</span>)
663
+ 94:
664
+ 95: <span class="ruby-comment cmt"># If DEBUG mode has been enabled, we restore the INT trap handler again</span>
665
+ 96: <span class="ruby-comment cmt"># to get Ruby backtrackes.</span>
666
+ 97: <span class="ruby-constant">Kernel</span>.<span class="ruby-identifier">trap</span>(<span class="ruby-value str">'INT'</span>, <span class="ruby-identifier">intHandler</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$DEBUG</span>
667
+ 98:
668
+ 99: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@silent</span>
669
+ 100: <span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;#{AppConfig.softwareName} v#{AppConfig.version} - &quot;</span> <span class="ruby-operator">+</span>
670
+ 101: <span class="ruby-node">&quot;#{AppConfig.packageInfo}\n\n&quot;</span> <span class="ruby-operator">+</span>
671
+ 102: <span class="ruby-node">&quot;Copyright (c) #{AppConfig.copyright.join(', ')}\n&quot;</span> <span class="ruby-operator">+</span>
672
+ 103: <span class="ruby-node">&quot; by #{AppConfig.authors.join(', ')}\n\n&quot;</span> <span class="ruby-operator">+</span>
673
+ 104: <span class="ruby-node">&quot;#{AppConfig.license}\n&quot;</span>
674
+ 105: <span class="ruby-keyword kw">end</span>
675
+ 106:
676
+ 107: <span class="ruby-ivar">@rc</span> = <span class="ruby-constant">RuntimeConfig</span>.<span class="ruby-identifier">new</span>(<span class="ruby-constant">AppConfig</span>.<span class="ruby-identifier">packageName</span>, <span class="ruby-ivar">@configFile</span>)
677
+ 108:
678
+ 109: <span class="ruby-identifier">args</span>
679
+ 110: <span class="ruby-keyword kw">end</span></pre>
674
680
  </div>
675
681
 
676
682
  </div>
@@ -701,56 +707,56 @@
701
707
  <div class="method-source-code"
702
708
  id="process-rguments-source">
703
709
  <pre>
704
- <span class="ruby-comment cmt"># File lib/Tj3AppBase.rb, line 35</span>
705
- 35: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">processArguments</span>(<span class="ruby-identifier">argv</span>)
706
- 36: <span class="ruby-ivar">@opts</span> = <span class="ruby-constant">OptionParser</span>.<span class="ruby-identifier">new</span>
707
- 37: <span class="ruby-ivar">@opts</span>.<span class="ruby-identifier">summary_width</span> = <span class="ruby-ivar">@optsSummaryWidth</span>
708
- 38: <span class="ruby-ivar">@opts</span>.<span class="ruby-identifier">summary_indent</span> = <span class="ruby-value str">' '</span> * <span class="ruby-ivar">@optsSummaryIndent</span>
709
- 39:
710
- 40: <span class="ruby-ivar">@opts</span>.<span class="ruby-identifier">banner</span> = <span class="ruby-node">&quot;#{AppConfig.softwareName} v#{AppConfig.version} - &quot;</span> <span class="ruby-operator">+</span>
711
- 41: <span class="ruby-node">&quot;#{AppConfig.packageInfo}\n\n&quot;</span> <span class="ruby-operator">+</span>
712
- 42: <span class="ruby-node">&quot;Copyright (c) #{AppConfig.copyright.join(', ')}&quot;</span> <span class="ruby-operator">+</span>
713
- 43: <span class="ruby-node">&quot; by #{AppConfig.authors.join(', ')}\n\n&quot;</span> <span class="ruby-operator">+</span>
714
- 44: <span class="ruby-node">&quot;#{AppConfig.license}\n&quot;</span> <span class="ruby-operator">+</span>
715
- 45: <span class="ruby-node">&quot;For more info about #{AppConfig.softwareName} see &quot;</span> <span class="ruby-operator">+</span>
716
- 46: <span class="ruby-node">&quot;#{AppConfig.contact}\n\n&quot;</span> <span class="ruby-operator">+</span>
717
- 47: <span class="ruby-node">&quot;Usage: #{AppConfig.appName} [options] &quot;</span> <span class="ruby-operator">+</span>
718
- 48: <span class="ruby-node">&quot;#{@mandatoryArgs}\n\n&quot;</span>
719
- 49: <span class="ruby-ivar">@opts</span>.<span class="ruby-identifier">separator</span> <span class="ruby-value str">&quot;&quot;</span>
720
- 50: <span class="ruby-ivar">@opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'-c'</span>, <span class="ruby-value str">'--config &lt;FILE&gt;'</span>, <span class="ruby-constant">String</span>,
721
- 51: <span class="ruby-identifier">format</span>(<span class="ruby-value str">'Use the specified YAML configuration file'</span>)) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">arg</span><span class="ruby-operator">|</span>
722
- 52: <span class="ruby-ivar">@configFile</span> = <span class="ruby-identifier">arg</span>
723
- 53: <span class="ruby-keyword kw">end</span>
724
- 54: <span class="ruby-ivar">@opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'--silent'</span>,
725
- 55: <span class="ruby-identifier">format</span>(<span class="ruby-value str">&quot;Don't show program and progress information&quot;</span>)) <span class="ruby-keyword kw">do</span>
726
- 56: <span class="ruby-ivar">@silent</span> = <span class="ruby-keyword kw">true</span>
727
- 57: <span class="ruby-keyword kw">end</span>
728
- 58: <span class="ruby-ivar">@opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'--debug'</span>, <span class="ruby-identifier">format</span>(<span class="ruby-value str">'Enable Ruby debug mode'</span>)) <span class="ruby-keyword kw">do</span>
729
- 59: <span class="ruby-identifier">$DEBUG</span> = <span class="ruby-keyword kw">true</span>
730
- 60: <span class="ruby-keyword kw">end</span>
731
- 61:
732
- 62: <span class="ruby-keyword kw">yield</span>
733
- 63:
734
- 64: <span class="ruby-ivar">@opts</span>.<span class="ruby-identifier">on_tail</span>(<span class="ruby-value str">'-h'</span>, <span class="ruby-value str">'--help'</span>, <span class="ruby-identifier">format</span>(<span class="ruby-value str">'Show this message'</span>)) <span class="ruby-keyword kw">do</span>
735
- 65: <span class="ruby-identifier">puts</span> <span class="ruby-ivar">@opts</span>.<span class="ruby-identifier">to_s</span>
736
- 66: <span class="ruby-identifier">exit</span> <span class="ruby-value">0</span>
737
- 67: <span class="ruby-keyword kw">end</span>
738
- 68: <span class="ruby-ivar">@opts</span>.<span class="ruby-identifier">on_tail</span>(<span class="ruby-value str">'--version'</span>, <span class="ruby-identifier">format</span>(<span class="ruby-value str">'Show version info'</span>)) <span class="ruby-keyword kw">do</span>
739
- 69: <span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;#{AppConfig.softwareName} v#{AppConfig.version} - &quot;</span> <span class="ruby-operator">+</span>
740
- 70: <span class="ruby-node">&quot;#{AppConfig.packageInfo}&quot;</span>
741
- 71: <span class="ruby-identifier">exit</span> <span class="ruby-value">0</span>
742
- 72: <span class="ruby-keyword kw">end</span>
743
- 73:
744
- 74: <span class="ruby-keyword kw">begin</span>
745
- 75: <span class="ruby-identifier">files</span> = <span class="ruby-ivar">@opts</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">argv</span>)
746
- 76: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">OptionParser</span><span class="ruby-operator">::</span><span class="ruby-constant">ParseError</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">msg</span>
747
- 77: <span class="ruby-identifier">puts</span> <span class="ruby-ivar">@opts</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;\n&quot;</span>
748
- 78: <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">puts</span> <span class="ruby-identifier">msg</span>
749
- 79: <span class="ruby-identifier">exit</span> <span class="ruby-value">2</span>
750
- 80: <span class="ruby-keyword kw">end</span>
751
- 81:
752
- 82: <span class="ruby-identifier">files</span>
753
- 83: <span class="ruby-keyword kw">end</span></pre>
710
+ <span class="ruby-comment cmt"># File lib/Tj3AppBase.rb, line 36</span>
711
+ 36: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">processArguments</span>(<span class="ruby-identifier">argv</span>)
712
+ 37: <span class="ruby-ivar">@opts</span> = <span class="ruby-constant">OptionParser</span>.<span class="ruby-identifier">new</span>
713
+ 38: <span class="ruby-ivar">@opts</span>.<span class="ruby-identifier">summary_width</span> = <span class="ruby-ivar">@optsSummaryWidth</span>
714
+ 39: <span class="ruby-ivar">@opts</span>.<span class="ruby-identifier">summary_indent</span> = <span class="ruby-value str">' '</span> * <span class="ruby-ivar">@optsSummaryIndent</span>
715
+ 40:
716
+ 41: <span class="ruby-ivar">@opts</span>.<span class="ruby-identifier">banner</span> = <span class="ruby-node">&quot;#{AppConfig.softwareName} v#{AppConfig.version} - &quot;</span> <span class="ruby-operator">+</span>
717
+ 42: <span class="ruby-node">&quot;#{AppConfig.packageInfo}\n\n&quot;</span> <span class="ruby-operator">+</span>
718
+ 43: <span class="ruby-node">&quot;Copyright (c) #{AppConfig.copyright.join(', ')}\n&quot;</span> <span class="ruby-operator">+</span>
719
+ 44: <span class="ruby-node">&quot; by #{AppConfig.authors.join(', ')}\n\n&quot;</span> <span class="ruby-operator">+</span>
720
+ 45: <span class="ruby-node">&quot;#{AppConfig.license}\n&quot;</span> <span class="ruby-operator">+</span>
721
+ 46: <span class="ruby-node">&quot;For more info about #{AppConfig.softwareName} see &quot;</span> <span class="ruby-operator">+</span>
722
+ 47: <span class="ruby-node">&quot;#{AppConfig.contact}\n\n&quot;</span> <span class="ruby-operator">+</span>
723
+ 48: <span class="ruby-node">&quot;Usage: #{AppConfig.appName} [options] &quot;</span> <span class="ruby-operator">+</span>
724
+ 49: <span class="ruby-node">&quot;#{@mandatoryArgs}\n\n&quot;</span>
725
+ 50: <span class="ruby-ivar">@opts</span>.<span class="ruby-identifier">separator</span> <span class="ruby-value str">&quot;&quot;</span>
726
+ 51: <span class="ruby-ivar">@opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'-c'</span>, <span class="ruby-value str">'--config &lt;FILE&gt;'</span>, <span class="ruby-constant">String</span>,
727
+ 52: <span class="ruby-identifier">format</span>(<span class="ruby-value str">'Use the specified YAML configuration file'</span>)) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">arg</span><span class="ruby-operator">|</span>
728
+ 53: <span class="ruby-ivar">@configFile</span> = <span class="ruby-identifier">arg</span>
729
+ 54: <span class="ruby-keyword kw">end</span>
730
+ 55: <span class="ruby-ivar">@opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'--silent'</span>,
731
+ 56: <span class="ruby-identifier">format</span>(<span class="ruby-value str">&quot;Don't show program and progress information&quot;</span>)) <span class="ruby-keyword kw">do</span>
732
+ 57: <span class="ruby-ivar">@silent</span> = <span class="ruby-keyword kw">true</span>
733
+ 58: <span class="ruby-keyword kw">end</span>
734
+ 59: <span class="ruby-ivar">@opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'--debug'</span>, <span class="ruby-identifier">format</span>(<span class="ruby-value str">'Enable Ruby debug mode'</span>)) <span class="ruby-keyword kw">do</span>
735
+ 60: <span class="ruby-identifier">$DEBUG</span> = <span class="ruby-keyword kw">true</span>
736
+ 61: <span class="ruby-keyword kw">end</span>
737
+ 62:
738
+ 63: <span class="ruby-keyword kw">yield</span>
739
+ 64:
740
+ 65: <span class="ruby-ivar">@opts</span>.<span class="ruby-identifier">on_tail</span>(<span class="ruby-value str">'-h'</span>, <span class="ruby-value str">'--help'</span>, <span class="ruby-identifier">format</span>(<span class="ruby-value str">'Show this message'</span>)) <span class="ruby-keyword kw">do</span>
741
+ 66: <span class="ruby-identifier">puts</span> <span class="ruby-ivar">@opts</span>.<span class="ruby-identifier">to_s</span>
742
+ 67: <span class="ruby-identifier">exit</span> <span class="ruby-value">0</span>
743
+ 68: <span class="ruby-keyword kw">end</span>
744
+ 69: <span class="ruby-ivar">@opts</span>.<span class="ruby-identifier">on_tail</span>(<span class="ruby-value str">'--version'</span>, <span class="ruby-identifier">format</span>(<span class="ruby-value str">'Show version info'</span>)) <span class="ruby-keyword kw">do</span>
745
+ 70: <span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;#{AppConfig.softwareName} v#{AppConfig.version} - &quot;</span> <span class="ruby-operator">+</span>
746
+ 71: <span class="ruby-node">&quot;#{AppConfig.packageInfo}&quot;</span>
747
+ 72: <span class="ruby-identifier">exit</span> <span class="ruby-value">0</span>
748
+ 73: <span class="ruby-keyword kw">end</span>
749
+ 74:
750
+ 75: <span class="ruby-keyword kw">begin</span>
751
+ 76: <span class="ruby-identifier">files</span> = <span class="ruby-ivar">@opts</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">argv</span>)
752
+ 77: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">OptionParser</span><span class="ruby-operator">::</span><span class="ruby-constant">ParseError</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">msg</span>
753
+ 78: <span class="ruby-identifier">puts</span> <span class="ruby-ivar">@opts</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;\n&quot;</span>
754
+ 79: <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">puts</span> <span class="ruby-identifier">msg</span>
755
+ 80: <span class="ruby-identifier">exit</span> <span class="ruby-value">2</span>
756
+ 81: <span class="ruby-keyword kw">end</span>
757
+ 82:
758
+ 83: <span class="ruby-identifier">files</span>
759
+ 84: <span class="ruby-keyword kw">end</span></pre>
754
760
  </div>
755
761
 
756
762
  </div>
@@ -787,11 +793,11 @@
787
793
  <div class="method-source-code"
788
794
  id="format-source">
789
795
  <pre>
790
- <span class="ruby-comment cmt"># File lib/Tj3AppBase.rb, line 113</span>
791
- 113: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">format</span>(<span class="ruby-identifier">str</span>, <span class="ruby-identifier">indent</span> = <span class="ruby-keyword kw">nil</span>)
792
- 114: <span class="ruby-identifier">indent</span> = <span class="ruby-ivar">@optsSummaryWidth</span> <span class="ruby-operator">+</span> <span class="ruby-ivar">@optsSummaryIndent</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">indent</span>
793
- 115: <span class="ruby-constant">TextFormatter</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value">79</span>, <span class="ruby-identifier">indent</span>).<span class="ruby-identifier">format</span>(<span class="ruby-identifier">str</span>)[<span class="ruby-identifier">indent</span><span class="ruby-operator">..</span><span class="ruby-value">1</span>]
794
- 116: <span class="ruby-keyword kw">end</span></pre>
796
+ <span class="ruby-comment cmt"># File lib/Tj3AppBase.rb, line 114</span>
797
+ 114: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">format</span>(<span class="ruby-identifier">str</span>, <span class="ruby-identifier">indent</span> = <span class="ruby-keyword kw">nil</span>)
798
+ 115: <span class="ruby-identifier">indent</span> = <span class="ruby-ivar">@optsSummaryWidth</span> <span class="ruby-operator">+</span> <span class="ruby-ivar">@optsSummaryIndent</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">indent</span>
799
+ 116: <span class="ruby-constant">TextFormatter</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value">79</span>, <span class="ruby-identifier">indent</span>).<span class="ruby-identifier">format</span>(<span class="ruby-identifier">str</span>)[<span class="ruby-identifier">indent</span><span class="ruby-operator">..</span><span class="ruby-value">1</span>]
800
+ 117: <span class="ruby-keyword kw">end</span></pre>
795
801
  </div>
796
802
 
797
803
  </div>
@@ -79,14 +79,10 @@
79
79
 
80
80
  <li><a href="#method-i-connectDaemon">#connectDaemon</a></li>
81
81
 
82
- <li><a href="#method-i-connectToProjectServer">#connectToProjectServer</a></li>
83
-
84
82
  <li><a href="#method-i-connectToReportServer">#connectToReportServer</a></li>
85
83
 
86
84
  <li><a href="#method-i-disconnectDaemon">#disconnectDaemon</a></li>
87
85
 
88
- <li><a href="#method-i-disconnectProjectServer">#disconnectProjectServer</a></li>
89
-
90
86
  <li><a href="#method-i-disconnectReportServer">#disconnectReportServer</a></li>
91
87
 
92
88
  <li><a href="#method-i-error">#error</a></li>
@@ -157,6 +153,8 @@
157
153
 
158
154
  <li><a href="../TaskJuggler/AttributeDefinition.html">TaskJuggler::AttributeDefinition</a></li>
159
155
 
156
+ <li><a href="../TaskJuggler/AttributeOverwrite.html">TaskJuggler::AttributeOverwrite</a></li>
157
+
160
158
  <li><a href="../TaskJuggler/BatchProcessor.html">TaskJuggler::BatchProcessor</a></li>
161
159
 
162
160
  <li><a href="../TaskJuggler/Booking.html">TaskJuggler::Booking</a></li>
@@ -235,6 +233,8 @@
235
233
 
236
234
  <li><a href="../TaskJuggler/Interval.html">TaskJuggler::Interval</a></li>
237
235
 
236
+ <li><a href="../TaskJuggler/IntervalList.html">TaskJuggler::IntervalList</a></li>
237
+
238
238
  <li><a href="../TaskJuggler/IntervalListAttribute.html">TaskJuggler::IntervalListAttribute</a></li>
239
239
 
240
240
  <li><a href="../TaskJuggler/JobInfo.html">TaskJuggler::JobInfo</a></li>
@@ -267,6 +267,8 @@
267
267
 
268
268
  <li><a href="../TaskJuggler/LogicalExpressionAttribute.html">TaskJuggler::LogicalExpressionAttribute</a></li>
269
269
 
270
+ <li><a href="../TaskJuggler/LogicalExpressionListAttribute.html">TaskJuggler::LogicalExpressionListAttribute</a></li>
271
+
270
272
  <li><a href="../TaskJuggler/LogicalFlag.html">TaskJuggler::LogicalFlag</a></li>
271
273
 
272
274
  <li><a href="../TaskJuggler/LogicalFunction.html">TaskJuggler::LogicalFunction</a></li>
@@ -547,6 +549,8 @@
547
549
 
548
550
  <li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
549
551
 
552
+ <li><a href="../TaskJuggler/WelcomePage.html">TaskJuggler::WelcomePage</a></li>
553
+
550
554
  <li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
551
555
 
552
556
  <li><a href="../TaskJuggler/WorkingHoursAttribute.html">TaskJuggler::WorkingHoursAttribute</a></li>
@@ -573,8 +577,6 @@
573
577
 
574
578
  <li><a href="../String.html">String</a></li>
575
579
 
576
- <li><a href="../StringIO.html">StringIO</a></li>
577
-
578
580
  </ul>
579
581
  <div id="no-class-search-results" style="display: none;">No matching classes.</div>
580
582
  </div>
@@ -630,70 +632,72 @@ configured tj3d to work.
630
632
  <div class="method-source-code"
631
633
  id="new-source">
632
634
  <pre>
633
- <span class="ruby-comment cmt"># File lib/tj3client.rb, line 30</span>
634
- 30: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>
635
- 31: <span class="ruby-keyword kw">super</span>
636
- 32:
637
- 33: <span class="ruby-comment cmt"># For security reasons, this will probably not change. All DRb</span>
638
- 34: <span class="ruby-comment cmt"># operations are limited to localhost only. The client and the sever</span>
639
- 35: <span class="ruby-comment cmt"># must have access to the identical file system.</span>
640
- 36: <span class="ruby-ivar">@host</span> = <span class="ruby-value str">'127.0.0.1'</span>
641
- 37: <span class="ruby-comment cmt"># The default port. 'T' and 'J' in ASCII decimal</span>
642
- 38: <span class="ruby-ivar">@port</span> = <span class="ruby-value">8474</span>
643
- 39: <span class="ruby-comment cmt"># The file with the server URI in case port is 0.</span>
644
- 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>)
645
- 41: <span class="ruby-comment cmt"># This must must be changed for the communication to work.</span>
646
- 42: <span class="ruby-ivar">@authKey</span> = <span class="ruby-keyword kw">nil</span>
647
- 43: <span class="ruby-comment cmt"># Determines whether report IDs are fix IDs or regular expressions that</span>
648
- 44: <span class="ruby-comment cmt"># match a set of reports.</span>
649
- 45: <span class="ruby-ivar">@regExpMode</span> = <span class="ruby-keyword kw">false</span>
650
- 46:
651
- 47: <span class="ruby-ivar">@mandatoryArgs</span> = <span class="ruby-value str">'&lt;command&gt; [arg1 arg2 ...]'</span>
652
- 48:
653
- 49: <span class="ruby-comment cmt"># This list describes the supported command line commands and their</span>
654
- 50: <span class="ruby-comment cmt"># parameter.</span>
655
- 51: <span class="ruby-comment cmt"># :label : The command name</span>
656
- 52: <span class="ruby-comment cmt"># :args : A list of parameters. If the first character is a '+' the</span>
657
- 53: <span class="ruby-comment cmt"># parameter must be provided 1 or more times. If the first character is</span>
658
- 54: <span class="ruby-comment cmt"># a '*' the parameter must be provided 0 or more times. Repeatable and</span>
659
- 55: <span class="ruby-comment cmt"># optional paramters must follow the mandatory ones.</span>
660
- 56: <span class="ruby-comment cmt"># :descr : A short description of the command used for the help text.</span>
661
- 57: <span class="ruby-ivar">@commands</span> = [
662
- 58: { <span class="ruby-value">:label</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'status'</span>,
663
- 59: <span class="ruby-value">:args</span> =<span class="ruby-operator">&gt;</span> [],
664
- 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> },
665
- 61: { <span class="ruby-value">:label</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'terminate'</span>,
635
+ <span class="ruby-comment cmt"># File lib/tj3client.rb, line 31</span>
636
+ 31: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>
637
+ 32: <span class="ruby-keyword kw">super</span>
638
+ 33:
639
+ 34: <span class="ruby-comment cmt"># For security reasons, this will probably not change. All DRb</span>
640
+ 35: <span class="ruby-comment cmt"># operations are limited to localhost only. The client and the sever</span>
641
+ 36: <span class="ruby-comment cmt"># must have access to the identical file system.</span>
642
+ 37: <span class="ruby-ivar">@host</span> = <span class="ruby-value str">'127.0.0.1'</span>
643
+ 38: <span class="ruby-comment cmt"># The default port. 'T' and 'J' in ASCII decimal</span>
644
+ 39: <span class="ruby-ivar">@port</span> = <span class="ruby-value">8474</span>
645
+ 40: <span class="ruby-comment cmt"># The file with the server URI in case port is 0.</span>
646
+ 41: <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>)
647
+ 42: <span class="ruby-comment cmt"># This must must be changed for the communication to work.</span>
648
+ 43: <span class="ruby-ivar">@authKey</span> = <span class="ruby-keyword kw">nil</span>
649
+ 44: <span class="ruby-comment cmt"># Determines whether report IDs are fix IDs or regular expressions that</span>
650
+ 45: <span class="ruby-comment cmt"># match a set of reports.</span>
651
+ 46: <span class="ruby-ivar">@regExpMode</span> = <span class="ruby-keyword kw">false</span>
652
+ 47: <span class="ruby-comment cmt"># List of requested output formats for reports.</span>
653
+ 48: <span class="ruby-ivar">@formats</span> = <span class="ruby-keyword kw">nil</span>
654
+ 49:
655
+ 50: <span class="ruby-ivar">@mandatoryArgs</span> = <span class="ruby-value str">'&lt;command&gt; [arg1 arg2 ...]'</span>
656
+ 51:
657
+ 52: <span class="ruby-comment cmt"># This list describes the supported command line commands and their</span>
658
+ 53: <span class="ruby-comment cmt"># parameter.</span>
659
+ 54: <span class="ruby-comment cmt"># :label : The command name</span>
660
+ 55: <span class="ruby-comment cmt"># :args : A list of parameters. If the first character is a '+' the</span>
661
+ 56: <span class="ruby-comment cmt"># parameter must be provided 1 or more times. If the first character is</span>
662
+ 57: <span class="ruby-comment cmt"># a '*' the parameter must be provided 0 or more times. Repeatable and</span>
663
+ 58: <span class="ruby-comment cmt"># optional paramters must follow the mandatory ones.</span>
664
+ 59: <span class="ruby-comment cmt"># :descr : A short description of the command used for the help text.</span>
665
+ 60: <span class="ruby-ivar">@commands</span> = [
666
+ 61: { <span class="ruby-value">:label</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'status'</span>,
666
667
  62: <span class="ruby-value">:args</span> =<span class="ruby-operator">&gt;</span> [],
667
- 63: <span class="ruby-value">:descr</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'Terminate the TaskJuggler daemon'</span> },
668
- 64: { <span class="ruby-value">:label</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'add'</span>,
669
- 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>],
670
- 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> },
671
- 67: { <span class="ruby-value">:label</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'update'</span>,
672
- 68: <span class="ruby-value">:args</span> =<span class="ruby-operator">&gt;</span> [],
673
- 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>
674
- 70: <span class="ruby-value str">'are not being reloaded already'</span> },
675
- 71: { <span class="ruby-value">:label</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'remove'</span>,
676
- 72: <span class="ruby-value">:args</span> =<span class="ruby-operator">&gt;</span> [ <span class="ruby-value str">'+project ID'</span> ],
677
- 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>
678
- 74: <span class="ruby-value str">'daemon'</span> },
679
- 75: { <span class="ruby-value">:label</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'report'</span>,
680
- 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>],
681
- 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>
682
- 78: <span class="ruby-value str">'the project with the given ID'</span>},
683
- 79: { <span class="ruby-value">:label</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'list-reports'</span>,
684
- 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> ],
685
- 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>
686
- 82: <span class="ruby-value str">'that match the provided report ID'</span> },
687
- 83: { <span class="ruby-value">:label</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'check-ts'</span>,
688
- 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> ],
689
- 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>
690
- 86: <span class="ruby-value str">'against the project with the given ID'</span>},
691
- 87: { <span class="ruby-value">:label</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'check-ss'</span>,
692
- 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> ],
693
- 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>
694
- 90: <span class="ruby-value str">'against the project with the given ID'</span>}
695
- 91: ]
696
- 92: <span class="ruby-keyword kw">end</span></pre>
668
+ 63: <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> },
669
+ 64: { <span class="ruby-value">:label</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'terminate'</span>,
670
+ 65: <span class="ruby-value">:args</span> =<span class="ruby-operator">&gt;</span> [],
671
+ 66: <span class="ruby-value">:descr</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'Terminate the TaskJuggler daemon'</span> },
672
+ 67: { <span class="ruby-value">:label</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'add'</span>,
673
+ 68: <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>],
674
+ 69: <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> },
675
+ 70: { <span class="ruby-value">:label</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'update'</span>,
676
+ 71: <span class="ruby-value">:args</span> =<span class="ruby-operator">&gt;</span> [],
677
+ 72: <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>
678
+ 73: <span class="ruby-value str">'are not being reloaded already'</span> },
679
+ 74: { <span class="ruby-value">:label</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'remove'</span>,
680
+ 75: <span class="ruby-value">:args</span> =<span class="ruby-operator">&gt;</span> [ <span class="ruby-value str">'+project ID'</span> ],
681
+ 76: <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>
682
+ 77: <span class="ruby-value str">'daemon'</span> },
683
+ 78: { <span class="ruby-value">:label</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'report'</span>,
684
+ 79: <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>],
685
+ 80: <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>
686
+ 81: <span class="ruby-value str">'the project with the given ID'</span>},
687
+ 82: { <span class="ruby-value">:label</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'list-reports'</span>,
688
+ 83: <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> ],
689
+ 84: <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>
690
+ 85: <span class="ruby-value str">'that match the provided report ID'</span> },
691
+ 86: { <span class="ruby-value">:label</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'check-ts'</span>,
692
+ 87: <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> ],
693
+ 88: <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>
694
+ 89: <span class="ruby-value str">'against the project with the given ID'</span>},
695
+ 90: { <span class="ruby-value">:label</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'check-ss'</span>,
696
+ 91: <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> ],
697
+ 92: <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>
698
+ 93: <span class="ruby-value str">'against the project with the given ID'</span>}
699
+ 94: ]
700
+ 95: <span class="ruby-keyword kw">end</span></pre>
697
701
  </div>
698
702
 
699
703
  </div>
@@ -730,21 +734,21 @@ configured tj3d to work.
730
734
  <div class="method-source-code"
731
735
  id="main-source">
732
736
  <pre>
733
- <span class="ruby-comment cmt"># File lib/tj3client.rb, line 141</span>
734
- 141: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">main</span>
735
- 142: <span class="ruby-identifier">args</span> = <span class="ruby-keyword kw">super</span>
736
- 143: <span class="ruby-comment cmt"># Run a first check of the non-option command line arguments.</span>
737
- 144: <span class="ruby-identifier">checkCommand</span>(<span class="ruby-identifier">args</span>)
738
- 145: <span class="ruby-comment cmt"># Read some configuration variables. Except for the authKey, they are</span>
739
- 146: <span class="ruby-comment cmt"># all optional.</span>
740
- 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>)
741
- 148:
742
- 149: <span class="ruby-identifier">connectDaemon</span>
743
- 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>])
744
- 151: <span class="ruby-identifier">disconnectDaemon</span>
745
- 152:
746
- 153: <span class="ruby-identifier">retVal</span>
747
- 154: <span class="ruby-keyword kw">end</span></pre>
737
+ <span class="ruby-comment cmt"># File lib/tj3client.rb, line 153</span>
738
+ 153: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">main</span>
739
+ 154: <span class="ruby-identifier">args</span> = <span class="ruby-keyword kw">super</span>
740
+ 155: <span class="ruby-comment cmt"># Run a first check of the non-option command line arguments.</span>
741
+ 156: <span class="ruby-identifier">checkCommand</span>(<span class="ruby-identifier">args</span>)
742
+ 157: <span class="ruby-comment cmt"># Read some configuration variables. Except for the authKey, they are</span>
743
+ 158: <span class="ruby-comment cmt"># all optional.</span>
744
+ 159: <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>)
745
+ 160:
746
+ 161: <span class="ruby-identifier">connectDaemon</span>
747
+ 162: <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>])
748
+ 163: <span class="ruby-identifier">disconnectDaemon</span>
749
+ 164:
750
+ 165: <span class="ruby-identifier">retVal</span>
751
+ 166: <span class="ruby-keyword kw">end</span></pre>
748
752
  </div>
749
753
 
750
754
  </div>
@@ -775,47 +779,56 @@ configured tj3d to work.
775
779
  <div class="method-source-code"
776
780
  id="process-rguments-source">
777
781
  <pre>
778
- <span class="ruby-comment cmt"># File lib/tj3client.rb, line 94</span>
779
- 94: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">processArguments</span>(<span class="ruby-identifier">argv</span>)
780
- 95: <span class="ruby-keyword kw">super</span> <span class="ruby-keyword kw">do</span>
781
- 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>
782
- 97:
783
- 98: <span class="ruby-comment cmt"># Convert the command list into a help text.</span>
784
- 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>
785
- 100: <span class="ruby-identifier">tail</span> = <span class="ruby-value str">''</span>
786
- 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>
787
- 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>
788
- 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>
789
- 104: <span class="ruby-node">&quot;[&lt;#{c[1..-1]}&gt; ...]&quot;</span>
790
- 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>
791
- 106: <span class="ruby-node">&quot;&lt;#{c[1..-1]}&gt; [&lt;#{c[1..-1]}&gt; ...]&quot;</span>
792
- 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>
793
- 108: <span class="ruby-identifier">tail</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">']'</span>
794
- 109: <span class="ruby-node">&quot;[#{c[1..-1]} &quot;</span>
795
- 110: <span class="ruby-keyword kw">else</span>
796
- 111: <span class="ruby-node">&quot;&lt;#{c}&gt;&quot;</span>
797
- 112: <span class="ruby-keyword kw">end</span>
798
- 113: <span class="ruby-keyword kw">end</span>
799
- 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>)
800
- 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>
801
- 116: <span class="ruby-node">&quot;\n\n#{' ' * 10 + format(cmd[:descr], 10)}\n&quot;</span>
802
- 117: <span class="ruby-keyword kw">end</span>
803
- 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>,
804
- 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>
805
- 120: <span class="ruby-ivar">@port</span> = <span class="ruby-identifier">arg</span>
806
- 121: <span class="ruby-keyword kw">end</span>
807
- 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>,
808
- 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>
809
- 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>
810
- 125: <span class="ruby-ivar">@uriFile</span> = <span class="ruby-identifier">arg</span>
811
- 126: <span class="ruby-keyword kw">end</span>
812
- 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>,
813
- 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>
814
- 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>
815
- 130: <span class="ruby-ivar">@regExpMode</span> = <span class="ruby-keyword kw">true</span>
816
- 131: <span class="ruby-keyword kw">end</span>
817
- 132: <span class="ruby-keyword kw">end</span>
818
- 133: <span class="ruby-keyword kw">end</span></pre>
782
+ <span class="ruby-comment cmt"># File lib/tj3client.rb, line 97</span>
783
+ 97: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">processArguments</span>(<span class="ruby-identifier">argv</span>)
784
+ 98: <span class="ruby-keyword kw">super</span> <span class="ruby-keyword kw">do</span>
785
+ 99: <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>
786
+ 100:
787
+ 101: <span class="ruby-comment cmt"># Convert the command list into a help text.</span>
788
+ 102: <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>
789
+ 103: <span class="ruby-identifier">tail</span> = <span class="ruby-value str">''</span>
790
+ 104: <span class="ruby-identifier">args</span> = <span class="ruby-identifier">cmd</span>[<span class="ruby-value">:args</span>].<span class="ruby-identifier">dup</span>
791
+ 105: <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>
792
+ 106: <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>
793
+ 107: <span class="ruby-node">&quot;[&lt;#{c[1..-1]}&gt; ...]&quot;</span>
794
+ 108: <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>
795
+ 109: <span class="ruby-node">&quot;&lt;#{c[1..-1]}&gt; [&lt;#{c[1..-1]}&gt; ...]&quot;</span>
796
+ 110: <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>
797
+ 111: <span class="ruby-identifier">tail</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">']'</span>
798
+ 112: <span class="ruby-node">&quot;[#{c[1..-1]} &quot;</span>
799
+ 113: <span class="ruby-keyword kw">else</span>
800
+ 114: <span class="ruby-node">&quot;&lt;#{c}&gt;&quot;</span>
801
+ 115: <span class="ruby-keyword kw">end</span>
802
+ 116: <span class="ruby-keyword kw">end</span>
803
+ 117: <span class="ruby-identifier">args</span> = <span class="ruby-identifier">args</span>.<span class="ruby-identifier">join</span>(<span class="ruby-value str">' '</span>)
804
+ 118: <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>
805
+ 119: <span class="ruby-node">&quot;\n\n#{' ' * 10 + format(cmd[:descr], 10)}\n&quot;</span>
806
+ 120: <span class="ruby-keyword kw">end</span>
807
+ 121: <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>,
808
+ 122: <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>
809
+ 123: <span class="ruby-ivar">@port</span> = <span class="ruby-identifier">arg</span>
810
+ 124: <span class="ruby-keyword kw">end</span>
811
+ 125: <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>,
812
+ 126: <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>
813
+ 127: <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>
814
+ 128: <span class="ruby-ivar">@uriFile</span> = <span class="ruby-identifier">arg</span>
815
+ 129: <span class="ruby-keyword kw">end</span>
816
+ 130: <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>,
817
+ 131: <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>
818
+ 132: <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>
819
+ 133: <span class="ruby-ivar">@regExpMode</span> = <span class="ruby-keyword kw">true</span>
820
+ 134: <span class="ruby-keyword kw">end</span>
821
+ 135: <span class="ruby-ivar">@opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'--format [FORMAT]'</span>, [ <span class="ruby-value">:csv</span>, <span class="ruby-value">:html</span>, <span class="ruby-value">:niku</span>, <span class="ruby-value">:tjp</span> ],
822
+ 136: <span class="ruby-identifier">format</span>(<span class="ruby-value str">'Request the report to be generated in the specified'</span> <span class="ruby-operator">+</span>
823
+ 137: <span class="ruby-value str">'format. Use multiple options to request multiple '</span> <span class="ruby-operator">+</span>
824
+ 138: <span class="ruby-value str">'formats. Supported formats are csv, html, niku and '</span> <span class="ruby-operator">+</span>
825
+ 139: <span class="ruby-value str">'tjp. By default, the formats specified in the report '</span> <span class="ruby-operator">+</span>
826
+ 140: <span class="ruby-value str">'definition are used.'</span>)) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">arg</span><span class="ruby-operator">|</span>
827
+ 141: <span class="ruby-ivar">@formats</span> = [] <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@formats</span>
828
+ 142: <span class="ruby-ivar">@formats</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">arg</span>
829
+ 143: <span class="ruby-keyword kw">end</span>
830
+ 144: <span class="ruby-keyword kw">end</span>
831
+ 145: <span class="ruby-keyword kw">end</span></pre>
819
832
  </div>
820
833
 
821
834
  </div>
@@ -854,19 +867,19 @@ Transfer the <em>tjiFiles</em> to the <em>reportServer</em>.
854
867
  <div class="method-source-code"
855
868
  id="add-iles-source">
856
869
  <pre>
857
- <span class="ruby-comment cmt"># File lib/tj3client.rb, line 446</span>
858
- 446: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">addFiles</span>(<span class="ruby-identifier">tjiFiles</span>)
859
- 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>
860
- 448: <span class="ruby-keyword kw">begin</span>
861
- 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>)
862
- 450: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
863
- 451: <span class="ruby-keyword kw">end</span>
864
- 452: <span class="ruby-keyword kw">rescue</span>
865
- 453: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Cannot add file #{file} to ReportServer&quot;</span>)
866
- 454: <span class="ruby-keyword kw">end</span>
867
- 455: <span class="ruby-keyword kw">end</span>
868
- 456: <span class="ruby-keyword kw">true</span>
869
- 457: <span class="ruby-keyword kw">end</span></pre>
870
+ <span class="ruby-comment cmt"># File lib/tj3client.rb, line 429</span>
871
+ 429: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">addFiles</span>(<span class="ruby-identifier">tjiFiles</span>)
872
+ 430: <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>
873
+ 431: <span class="ruby-keyword kw">begin</span>
874
+ 432: <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>)
875
+ 433: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
876
+ 434: <span class="ruby-keyword kw">end</span>
877
+ 435: <span class="ruby-keyword kw">rescue</span>
878
+ 436: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Cannot add file #{file} to ReportServer&quot;</span>)
879
+ 437: <span class="ruby-keyword kw">end</span>
880
+ 438: <span class="ruby-keyword kw">end</span>
881
+ 439: <span class="ruby-keyword kw">true</span>
882
+ 440: <span class="ruby-keyword kw">end</span></pre>
870
883
  </div>
871
884
 
872
885
  </div>
@@ -901,15 +914,15 @@ command with the provided arguments.
901
914
  <div class="method-source-code"
902
915
  id="call-aemon-source">
903
916
  <pre>
904
- <span class="ruby-comment cmt"># File lib/tj3client.rb, line 415</span>
905
- 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>)
906
- 416: <span class="ruby-keyword kw">begin</span>
907
- 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>)
908
- 418: <span class="ruby-keyword kw">rescue</span>
909
- 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>
910
- 420: <span class="ruby-node">&quot;port #{@port} failed: #{$!}&quot;</span>)
911
- 421: <span class="ruby-keyword kw">end</span>
912
- 422: <span class="ruby-keyword kw">end</span></pre>
917
+ <span class="ruby-comment cmt"># File lib/tj3client.rb, line 398</span>
918
+ 398: <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>)
919
+ 399: <span class="ruby-keyword kw">begin</span>
920
+ 400: <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>)
921
+ 401: <span class="ruby-keyword kw">rescue</span>
922
+ 402: <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>
923
+ 403: <span class="ruby-node">&quot;port #{@port} failed: #{$!}&quot;</span>)
924
+ 404: <span class="ruby-keyword kw">end</span>
925
+ 405: <span class="ruby-keyword kw">end</span></pre>
913
926
  </div>
914
927
 
915
928
  </div>
@@ -940,35 +953,35 @@ command with the provided arguments.
940
953
  <div class="method-source-code"
941
954
  id="check-ommand-source">
942
955
  <pre>
943
- <span class="ruby-comment cmt"># File lib/tj3client.rb, line 158</span>
944
- 158: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">checkCommand</span>(<span class="ruby-identifier">args</span>)
945
- 159: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">args</span>.<span class="ruby-identifier">empty?</span>
946
- 160: <span class="ruby-identifier">errorMessage</span> = <span class="ruby-value str">'You must specify a command!'</span>
947
- 161: <span class="ruby-keyword kw">else</span>
948
- 162: <span class="ruby-identifier">errorMessage</span> = <span class="ruby-node">&quot;Unknown command #{args[0]}&quot;</span>
949
- 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>
950
- 164: <span class="ruby-comment cmt"># The first value of args is the command name.</span>
951
- 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>]
952
- 166: <span class="ruby-comment cmt"># Find out how many arguments we need to have and if that's a</span>
953
- 167: <span class="ruby-comment cmt"># lower limit or a fixed value.</span>
954
- 168: <span class="ruby-identifier">minArgs</span> = <span class="ruby-value">0</span>
955
- 169: <span class="ruby-identifier">varArgs</span> = <span class="ruby-keyword kw">false</span>
956
- 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>
957
- 171: <span class="ruby-comment cmt"># Arguments starting with '+' must have 1 or more showings.</span>
958
- 172: <span class="ruby-comment cmt"># Arguments starting with '*' may show up 0 or more times.</span>
959
- 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>])
960
- 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>])
961
- 175: <span class="ruby-keyword kw">end</span>
962
- 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>
963
- 177: <span class="ruby-identifier">errorMessage</span> = <span class="ruby-node">&quot;Command #{args[0]} must have &quot;</span> <span class="ruby-operator">+</span>
964
- 178: <span class="ruby-node">&quot;#{varArgs ? 'at least ' : ''}#{minArgs} &quot;</span> <span class="ruby-operator">+</span>
965
- 179: <span class="ruby-value str">'arguments'</span>
966
- 180: <span class="ruby-keyword kw">end</span>
967
- 181: <span class="ruby-keyword kw">end</span>
968
- 182: <span class="ruby-keyword kw">end</span>
969
- 183:
970
- 184: <span class="ruby-identifier">error</span>(<span class="ruby-identifier">errorMessage</span>)
971
- 185: <span class="ruby-keyword kw">end</span></pre>
956
+ <span class="ruby-comment cmt"># File lib/tj3client.rb, line 170</span>
957
+ 170: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">checkCommand</span>(<span class="ruby-identifier">args</span>)
958
+ 171: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">args</span>.<span class="ruby-identifier">empty?</span>
959
+ 172: <span class="ruby-identifier">errorMessage</span> = <span class="ruby-value str">'You must specify a command!'</span>
960
+ 173: <span class="ruby-keyword kw">else</span>
961
+ 174: <span class="ruby-identifier">errorMessage</span> = <span class="ruby-node">&quot;Unknown command #{args[0]}&quot;</span>
962
+ 175: <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>
963
+ 176: <span class="ruby-comment cmt"># The first value of args is the command name.</span>
964
+ 177: <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>]
965
+ 178: <span class="ruby-comment cmt"># Find out how many arguments we need to have and if that's a</span>
966
+ 179: <span class="ruby-comment cmt"># lower limit or a fixed value.</span>
967
+ 180: <span class="ruby-identifier">minArgs</span> = <span class="ruby-value">0</span>
968
+ 181: <span class="ruby-identifier">varArgs</span> = <span class="ruby-keyword kw">false</span>
969
+ 182: <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>
970
+ 183: <span class="ruby-comment cmt"># Arguments starting with '+' must have 1 or more showings.</span>
971
+ 184: <span class="ruby-comment cmt"># Arguments starting with '*' may show up 0 or more times.</span>
972
+ 185: <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>])
973
+ 186: <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>])
974
+ 187: <span class="ruby-keyword kw">end</span>
975
+ 188: <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>
976
+ 189: <span class="ruby-identifier">errorMessage</span> = <span class="ruby-node">&quot;Command #{args[0]} must have &quot;</span> <span class="ruby-operator">+</span>
977
+ 190: <span class="ruby-node">&quot;#{varArgs ? 'at least ' : ''}#{minArgs} &quot;</span> <span class="ruby-operator">+</span>
978
+ 191: <span class="ruby-value str">'arguments'</span>
979
+ 192: <span class="ruby-keyword kw">end</span>
980
+ 193: <span class="ruby-keyword kw">end</span>
981
+ 194: <span class="ruby-keyword kw">end</span>
982
+ 195:
983
+ 196: <span class="ruby-identifier">error</span>(<span class="ruby-identifier">errorMessage</span>)
984
+ 197: <span class="ruby-keyword kw">end</span></pre>
972
985
  </div>
973
986
 
974
987
  </div>
@@ -999,94 +1012,50 @@ command with the provided arguments.
999
1012
  <div class="method-source-code"
1000
1013
  id="connect-aemon-source">
1001
1014
  <pre>
1002
- <span class="ruby-comment cmt"># File lib/tj3client.rb, line 187</span>
1003
- 187: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">connectDaemon</span>
1004
- 188: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@authKey</span>
1005
- 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>
1006
- 190: <span class="ruby-keyword kw">end</span>
1007
- 191:
1008
- 192: <span class="ruby-identifier">uri</span> = <span class="ruby-node">&quot;druby://#{@host}:#{@port}&quot;</span>
1009
- 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>
1010
- 194: <span class="ruby-comment cmt"># If the @port is configured to 0, we need to read the URI to connect</span>
1011
- 195: <span class="ruby-comment cmt"># to the server from the .tj3d.uri file that has been generated by the</span>
1012
- 196: <span class="ruby-comment cmt"># server.</span>
1013
- 197: <span class="ruby-keyword kw">begin</span>
1014
- 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>
1015
- 199: <span class="ruby-keyword kw">rescue</span>
1016
- 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>
1017
- 201: <span class="ruby-node">&quot;.tj3d.uri file can be found: #{$!}&quot;</span>)
1018
- 202: <span class="ruby-keyword kw">end</span>
1019
- 203: <span class="ruby-keyword kw">end</span>
1020
- 204:
1021
- 205: <span class="ruby-comment cmt"># We try to play it safe here. The client also starts a DRb server, so</span>
1022
- 206: <span class="ruby-comment cmt"># we need to make sure it's constricted to localhost only. We require</span>
1023
- 207: <span class="ruby-comment cmt"># the DRb server for the standard IO redirection to work.</span>
1024
- 208: <span class="ruby-identifier">$SAFE</span> = <span class="ruby-value">1</span>
1025
- 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
1026
- 210: allow 127.0.0.1 ]</span>))
1027
- 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>)
1028
- 212:
1029
- 213: <span class="ruby-keyword kw">begin</span>
1030
- 214: <span class="ruby-comment cmt"># Get the ProjectBroker object from the tj3d.</span>
1031
- 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>)
1032
- 216: <span class="ruby-comment cmt"># Client and server should always come from the same Gem. Since we</span>
1033
- 217: <span class="ruby-comment cmt"># restict communication to localhost, that's probably not a problem.</span>
1034
- 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>
1035
- 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>
1036
- 220: <span class="ruby-value str">'upgrade to a more recent version of the software.'</span>)
1037
- 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>
1038
- 222: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'Authentication failed. Please check your authentication '</span> <span class="ruby-operator">+</span>
1039
- 223: <span class="ruby-value str">'key to match the server key.'</span>)
1040
- 224: <span class="ruby-keyword kw">end</span>
1041
- 225: <span class="ruby-keyword kw">rescue</span>
1042
- 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>
1043
- 227: <span class="ruby-node">&quot;#{@port} is not responding&quot;</span>)
1044
- 228: <span class="ruby-keyword kw">end</span>
1045
- 229: <span class="ruby-keyword kw">end</span></pre>
1046
- </div>
1047
-
1048
- </div>
1049
-
1050
-
1051
-
1052
-
1053
- </div>
1054
-
1055
-
1056
- <div id="connect-o-roject-erver-method" class="method-detail ">
1057
- <a name="method-i-connectToProjectServer"></a>
1058
-
1059
- <div class="method-heading">
1060
-
1061
- <span class="method-name">connectToProjectServer</span><span
1062
- class="method-args">()</span>
1063
- <span class="method-click-advice">click to toggle source</span>
1064
-
1065
- </div>
1066
-
1067
- <div class="method-description">
1068
-
1069
-
1070
-
1071
-
1072
-
1073
- <div class="method-source-code"
1074
- id="connect-o-roject-erver-source">
1075
- <pre>
1076
- <span class="ruby-comment cmt"># File lib/tj3client.rb, line 353</span>
1077
- 353: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">connectToProjectServer</span>
1078
- 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>, [])
1079
- 355: <span class="ruby-keyword kw">begin</span>
1080
- 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>)
1081
- 357: <span class="ruby-keyword kw">rescue</span>
1082
- 358: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Can't get ProjectServer object: #{$!}&quot;</span>)
1083
- 359: <span class="ruby-keyword kw">end</span>
1084
- 360: <span class="ruby-keyword kw">begin</span>
1085
- 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>)
1086
- 362: <span class="ruby-keyword kw">rescue</span>
1087
- 363: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Can't connect IO: #{$!}&quot;</span>)
1088
- 364: <span class="ruby-keyword kw">end</span>
1089
- 365: <span class="ruby-keyword kw">end</span></pre>
1015
+ <span class="ruby-comment cmt"># File lib/tj3client.rb, line 199</span>
1016
+ 199: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">connectDaemon</span>
1017
+ 200: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@authKey</span>
1018
+ 201: <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>
1019
+ 202: <span class="ruby-keyword kw">end</span>
1020
+ 203:
1021
+ 204: <span class="ruby-identifier">uri</span> = <span class="ruby-node">&quot;druby://#{@host}:#{@port}&quot;</span>
1022
+ 205: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@port</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
1023
+ 206: <span class="ruby-comment cmt"># If the @port is configured to 0, we need to read the URI to connect</span>
1024
+ 207: <span class="ruby-comment cmt"># to the server from the .tj3d.uri file that has been generated by the</span>
1025
+ 208: <span class="ruby-comment cmt"># server.</span>
1026
+ 209: <span class="ruby-keyword kw">begin</span>
1027
+ 210: <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>
1028
+ 211: <span class="ruby-keyword kw">rescue</span>
1029
+ 212: <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>
1030
+ 213: <span class="ruby-node">&quot;.tj3d.uri file can be found: #{$!}&quot;</span>)
1031
+ 214: <span class="ruby-keyword kw">end</span>
1032
+ 215: <span class="ruby-keyword kw">end</span>
1033
+ 216:
1034
+ 217: <span class="ruby-comment cmt"># We try to play it safe here. The client also starts a DRb server, so</span>
1035
+ 218: <span class="ruby-comment cmt"># we need to make sure it's constricted to localhost only. We require</span>
1036
+ 219: <span class="ruby-comment cmt"># the DRb server for the standard IO redirection to work.</span>
1037
+ 220: <span class="ruby-identifier">$SAFE</span> = <span class="ruby-value">1</span>
1038
+ 221: <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
1039
+ 222: allow 127.0.0.1 ]</span>))
1040
+ 223: <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>)
1041
+ 224:
1042
+ 225: <span class="ruby-keyword kw">begin</span>
1043
+ 226: <span class="ruby-comment cmt"># Get the ProjectBroker object from the tj3d.</span>
1044
+ 227: <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>)
1045
+ 228: <span class="ruby-comment cmt"># Client and server should always come from the same Gem. Since we</span>
1046
+ 229: <span class="ruby-comment cmt"># restict communication to localhost, that's probably not a problem.</span>
1047
+ 230: <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>
1048
+ 231: <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>
1049
+ 232: <span class="ruby-value str">'upgrade to a more recent version of the software.'</span>)
1050
+ 233: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">check</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
1051
+ 234: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'Authentication failed. Please check your authentication '</span> <span class="ruby-operator">+</span>
1052
+ 235: <span class="ruby-value str">'key to match the server key.'</span>)
1053
+ 236: <span class="ruby-keyword kw">end</span>
1054
+ 237: <span class="ruby-keyword kw">rescue</span>
1055
+ 238: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;TaskJuggler server on host '#{@host}' port &quot;</span> <span class="ruby-operator">+</span>
1056
+ 239: <span class="ruby-node">&quot;#{@port} is not responding&quot;</span>)
1057
+ 240: <span class="ruby-keyword kw">end</span>
1058
+ 241: <span class="ruby-keyword kw">end</span></pre>
1090
1059
  </div>
1091
1060
 
1092
1061
  </div>
@@ -1117,25 +1086,25 @@ command with the provided arguments.
1117
1086
  <div class="method-source-code"
1118
1087
  id="connect-o-eport-erver-source">
1119
1088
  <pre>
1120
- <span class="ruby-comment cmt"># File lib/tj3client.rb, line 375</span>
1121
- 375: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">connectToReportServer</span>(<span class="ruby-identifier">projectId</span>)
1122
- 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>)
1123
- 377: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@ps_uri</span>.<span class="ruby-identifier">nil?</span>
1124
- 378: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;No project with ID #{projectId} loaded&quot;</span>)
1125
- 379: <span class="ruby-keyword kw">end</span>
1126
- 380: <span class="ruby-keyword kw">begin</span>
1127
- 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>)
1128
- 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>)
1129
- 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>)
1130
- 384: <span class="ruby-keyword kw">rescue</span>
1131
- 385: <span class="ruby-identifier">error</span>(<span class="ruby-value str">&quot;Cannot get report server&quot;</span>)
1132
- 386: <span class="ruby-keyword kw">end</span>
1133
- 387: <span class="ruby-keyword kw">begin</span>
1134
- 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>)
1135
- 389: <span class="ruby-keyword kw">rescue</span>
1136
- 390: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Can't connect IO: #{$!}&quot;</span>)
1137
- 391: <span class="ruby-keyword kw">end</span>
1138
- 392: <span class="ruby-keyword kw">end</span></pre>
1089
+ <span class="ruby-comment cmt"># File lib/tj3client.rb, line 358</span>
1090
+ 358: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">connectToReportServer</span>(<span class="ruby-identifier">projectId</span>)
1091
+ 359: <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>)
1092
+ 360: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@ps_uri</span>.<span class="ruby-identifier">nil?</span>
1093
+ 361: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;No project with ID #{projectId} loaded&quot;</span>)
1094
+ 362: <span class="ruby-keyword kw">end</span>
1095
+ 363: <span class="ruby-keyword kw">begin</span>
1096
+ 364: <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>)
1097
+ 365: <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>)
1098
+ 366: <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>)
1099
+ 367: <span class="ruby-keyword kw">rescue</span>
1100
+ 368: <span class="ruby-identifier">error</span>(<span class="ruby-value str">&quot;Cannot get report server&quot;</span>)
1101
+ 369: <span class="ruby-keyword kw">end</span>
1102
+ 370: <span class="ruby-keyword kw">begin</span>
1103
+ 371: <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>)
1104
+ 372: <span class="ruby-keyword kw">rescue</span>
1105
+ 373: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Can't connect IO: #{$!}&quot;</span>)
1106
+ 374: <span class="ruby-keyword kw">end</span>
1107
+ 375: <span class="ruby-keyword kw">end</span></pre>
1139
1108
  </div>
1140
1109
 
1141
1110
  </div>
@@ -1166,50 +1135,12 @@ command with the provided arguments.
1166
1135
  <div class="method-source-code"
1167
1136
  id="disconnect-aemon-source">
1168
1137
  <pre>
1169
- <span class="ruby-comment cmt"># File lib/tj3client.rb, line 238</span>
1170
- 238: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">disconnectDaemon</span>
1171
- 239: <span class="ruby-ivar">@broker</span> = <span class="ruby-keyword kw">nil</span>
1172
- 240:
1173
- 241: <span class="ruby-constant">DRb</span>.<span class="ruby-identifier">stop_service</span>
1174
- 242: <span class="ruby-keyword kw">end</span></pre>
1175
- </div>
1176
-
1177
- </div>
1178
-
1179
-
1180
-
1181
-
1182
- </div>
1183
-
1184
-
1185
- <div id="disconnect-roject-erver-method" class="method-detail ">
1186
- <a name="method-i-disconnectProjectServer"></a>
1187
-
1188
- <div class="method-heading">
1189
-
1190
- <span class="method-name">disconnectProjectServer</span><span
1191
- class="method-args">()</span>
1192
- <span class="method-click-advice">click to toggle source</span>
1193
-
1194
- </div>
1195
-
1196
- <div class="method-description">
1197
-
1198
-
1199
-
1200
-
1201
-
1202
- <div class="method-source-code"
1203
- id="disconnect-roject-erver-source">
1204
- <pre>
1205
- <span class="ruby-comment cmt"># File lib/tj3client.rb, line 367</span>
1206
- 367: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">disconnectProjectServer</span>
1207
- 368: <span class="ruby-keyword kw">begin</span>
1208
- 369: <span class="ruby-ivar">@projectServer</span>.<span class="ruby-identifier">disconnect</span>(<span class="ruby-ivar">@ps_authKey</span>)
1209
- 370: <span class="ruby-keyword kw">rescue</span>
1210
- 371: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Can't disconnect IO: #{$!}&quot;</span>)
1211
- 372: <span class="ruby-keyword kw">end</span>
1212
- 373: <span class="ruby-keyword kw">end</span></pre>
1138
+ <span class="ruby-comment cmt"># File lib/tj3client.rb, line 250</span>
1139
+ 250: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">disconnectDaemon</span>
1140
+ 251: <span class="ruby-ivar">@broker</span> = <span class="ruby-keyword kw">nil</span>
1141
+ 252:
1142
+ 253: <span class="ruby-constant">DRb</span>.<span class="ruby-identifier">stop_service</span>
1143
+ 254: <span class="ruby-keyword kw">end</span></pre>
1213
1144
  </div>
1214
1145
 
1215
1146
  </div>
@@ -1240,25 +1171,25 @@ command with the provided arguments.
1240
1171
  <div class="method-source-code"
1241
1172
  id="disconnect-eport-erver-source">
1242
1173
  <pre>
1243
- <span class="ruby-comment cmt"># File lib/tj3client.rb, line 394</span>
1244
- 394: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">disconnectReportServer</span>
1245
- 395: <span class="ruby-keyword kw">begin</span>
1246
- 396: <span class="ruby-ivar">@reportServer</span>.<span class="ruby-identifier">disconnect</span>(<span class="ruby-ivar">@rs_authKey</span>)
1247
- 397: <span class="ruby-keyword kw">rescue</span>
1248
- 398: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Can't disconnect IO: #{$!}&quot;</span>)
1249
- 399: <span class="ruby-keyword kw">end</span>
1250
- 400: <span class="ruby-keyword kw">begin</span>
1251
- 401: <span class="ruby-ivar">@reportServer</span>.<span class="ruby-identifier">terminate</span>(<span class="ruby-ivar">@rs_authKey</span>)
1252
- 402: <span class="ruby-keyword kw">rescue</span>
1253
- 403: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Report server termination failed: #{$!}&quot;</span>)
1254
- 404: <span class="ruby-keyword kw">end</span>
1255
- 405: <span class="ruby-ivar">@reportServer</span> = <span class="ruby-keyword kw">nil</span>
1256
- 406: <span class="ruby-ivar">@rs_uri</span> = <span class="ruby-keyword kw">nil</span>
1257
- 407: <span class="ruby-ivar">@rs_authKey</span> = <span class="ruby-keyword kw">nil</span>
1258
- 408: <span class="ruby-ivar">@projectServer</span> = <span class="ruby-keyword kw">nil</span>
1259
- 409: <span class="ruby-ivar">@ps_uri</span> = <span class="ruby-keyword kw">nil</span>
1260
- 410: <span class="ruby-ivar">@ps_authKey</span> = <span class="ruby-keyword kw">nil</span>
1261
- 411: <span class="ruby-keyword kw">end</span></pre>
1174
+ <span class="ruby-comment cmt"># File lib/tj3client.rb, line 377</span>
1175
+ 377: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">disconnectReportServer</span>
1176
+ 378: <span class="ruby-keyword kw">begin</span>
1177
+ 379: <span class="ruby-ivar">@reportServer</span>.<span class="ruby-identifier">disconnect</span>(<span class="ruby-ivar">@rs_authKey</span>)
1178
+ 380: <span class="ruby-keyword kw">rescue</span>
1179
+ 381: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Can't disconnect IO: #{$!}&quot;</span>)
1180
+ 382: <span class="ruby-keyword kw">end</span>
1181
+ 383: <span class="ruby-keyword kw">begin</span>
1182
+ 384: <span class="ruby-ivar">@reportServer</span>.<span class="ruby-identifier">terminate</span>(<span class="ruby-ivar">@rs_authKey</span>)
1183
+ 385: <span class="ruby-keyword kw">rescue</span>
1184
+ 386: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Report server termination failed: #{$!}&quot;</span>)
1185
+ 387: <span class="ruby-keyword kw">end</span>
1186
+ 388: <span class="ruby-ivar">@reportServer</span> = <span class="ruby-keyword kw">nil</span>
1187
+ 389: <span class="ruby-ivar">@rs_uri</span> = <span class="ruby-keyword kw">nil</span>
1188
+ 390: <span class="ruby-ivar">@rs_authKey</span> = <span class="ruby-keyword kw">nil</span>
1189
+ 391: <span class="ruby-ivar">@projectServer</span> = <span class="ruby-keyword kw">nil</span>
1190
+ 392: <span class="ruby-ivar">@ps_uri</span> = <span class="ruby-keyword kw">nil</span>
1191
+ 393: <span class="ruby-ivar">@ps_authKey</span> = <span class="ruby-keyword kw">nil</span>
1192
+ 394: <span class="ruby-keyword kw">end</span></pre>
1262
1193
  </div>
1263
1194
 
1264
1195
  </div>
@@ -1289,11 +1220,11 @@ command with the provided arguments.
1289
1220
  <div class="method-source-code"
1290
1221
  id="error-source">
1291
1222
  <pre>
1292
- <span class="ruby-comment cmt"># File lib/tj3client.rb, line 464</span>
1293
- 464: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">error</span>(<span class="ruby-identifier">message</span>)
1294
- 465: <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;ERROR: #{message}&quot;</span>
1295
- 466: <span class="ruby-identifier">exit</span> <span class="ruby-value">1</span>
1296
- 467: <span class="ruby-keyword kw">end</span></pre>
1223
+ <span class="ruby-comment cmt"># File lib/tj3client.rb, line 447</span>
1224
+ 447: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">error</span>(<span class="ruby-identifier">message</span>)
1225
+ 448: <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;ERROR: #{message}&quot;</span>
1226
+ 449: <span class="ruby-identifier">exit</span> <span class="ruby-value">1</span>
1227
+ 450: <span class="ruby-keyword kw">end</span></pre>
1297
1228
  </div>
1298
1229
 
1299
1230
  </div>
@@ -1324,115 +1255,108 @@ command with the provided arguments.
1324
1255
  <div class="method-source-code"
1325
1256
  id="execute-ommand-source">
1326
1257
  <pre>
1327
- <span class="ruby-comment cmt"># File lib/tj3client.rb, line 244</span>
1328
- 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>)
1329
- 245: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">command</span>
1330
- 246: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'status'</span>
1331
- 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>, [])
1332
- 248: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'terminate'</span>
1333
- 249: <span class="ruby-identifier">callDaemon</span>(<span class="ruby-value">:stop</span>, [])
1334
- 250: <span class="ruby-identifier">info</span>(<span class="ruby-value str">'Daemon terminated'</span>)
1335
- 251: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'add'</span>
1336
- 252: <span class="ruby-comment cmt"># Ask the daemon to create a new ProjectServer process and return a</span>
1337
- 253: <span class="ruby-comment cmt"># DRbObject to access it.</span>
1338
- 254: <span class="ruby-identifier">connectToProjectServer</span>
1339
- 255: <span class="ruby-comment cmt"># Ask the server to load the files in _args_ into the ProjectServer.</span>
1340
- 256: <span class="ruby-keyword kw">begin</span>
1341
- 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> ])
1342
- 258: <span class="ruby-keyword kw">rescue</span>
1343
- 259: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Loading of project failed: #{$!}&quot;</span>)
1344
- 260: <span class="ruby-keyword kw">end</span>
1345
- 261: <span class="ruby-identifier">disconnectProjectServer</span>
1346
- 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>
1347
- 263: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'remove'</span>
1348
- 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>
1349
- 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>)
1350
- 266: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Project '#{arg}' not found in list&quot;</span>)
1351
- 267: <span class="ruby-keyword kw">end</span>
1352
- 268: <span class="ruby-keyword kw">end</span>
1353
- 269: <span class="ruby-identifier">info</span>(<span class="ruby-value str">'Project removed'</span>)
1354
- 270: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'update'</span>
1355
- 271: <span class="ruby-identifier">callDaemon</span>(<span class="ruby-value">:update</span>, [])
1356
- 272: <span class="ruby-identifier">info</span>(<span class="ruby-value str">'Reload requested'</span>)
1357
- 273: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'report'</span>
1358
- 274: <span class="ruby-comment cmt"># The first value of args is the project ID. The following values</span>
1359
- 275: <span class="ruby-comment cmt"># could be either report IDs or TJI file # names ('.' or '*.tji').</span>
1360
- 276: <span class="ruby-identifier">projectId</span> = <span class="ruby-identifier">args</span>.<span class="ruby-identifier">shift</span>
1361
- 277: <span class="ruby-comment cmt"># Ask the ProjectServer to launch a new ReportServer process and</span>
1362
- 278: <span class="ruby-comment cmt"># provide a DRbObject reference to it.</span>
1363
- 279: <span class="ruby-identifier">connectToReportServer</span>(<span class="ruby-identifier">projectId</span>)
1364
- 280:
1365
- 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>)
1366
- 282: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">reportIds</span>.<span class="ruby-identifier">empty?</span>
1367
- 283: <span class="ruby-identifier">disconnectReportServer</span>
1368
- 284: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'You must provide at least one report ID'</span>)
1369
- 285: <span class="ruby-keyword kw">end</span>
1370
- 286: <span class="ruby-comment cmt"># Send the provided .tji files to the ReportServer.</span>
1371
- 287: <span class="ruby-identifier">failed</span> = <span class="ruby-operator">!</span><span class="ruby-identifier">addFiles</span>(<span class="ruby-identifier">tjiFiles</span>)
1372
- 288: <span class="ruby-comment cmt"># Ask the ReportServer to generate the reports with the provided IDs.</span>
1373
- 289: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">failed</span>
1374
- 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>
1375
- 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>,
1376
- 292: <span class="ruby-ivar">@regExpMode</span>, <span class="ruby-keyword kw">nil</span>)
1377
- 293: <span class="ruby-identifier">failed</span> = <span class="ruby-keyword kw">true</span>
1378
- 294: <span class="ruby-keyword kw">break</span>
1379
- 295: <span class="ruby-keyword kw">end</span>
1380
- 296: <span class="ruby-keyword kw">end</span>
1381
- 297: <span class="ruby-keyword kw">end</span>
1382
- 298: <span class="ruby-comment cmt"># Terminate the ReportServer</span>
1383
- 299: <span class="ruby-identifier">disconnectReportServer</span>
1384
- 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>
1385
- 301: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'list-reports'</span>
1386
- 302: <span class="ruby-comment cmt"># The first value of args is the project ID. The following values</span>
1387
- 303: <span class="ruby-comment cmt"># could be either report IDs or TJI file # names ('.' or '*.tji').</span>
1388
- 304: <span class="ruby-identifier">projectId</span> = <span class="ruby-identifier">args</span>.<span class="ruby-identifier">shift</span>
1389
- 305: <span class="ruby-comment cmt"># Ask the ProjectServer to launch a new ReportServer process and</span>
1390
- 306: <span class="ruby-comment cmt"># provide a DRbObject reference to it.</span>
1391
- 307: <span class="ruby-identifier">connectToReportServer</span>(<span class="ruby-identifier">projectId</span>)
1392
- 308:
1393
- 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>)
1394
- 310: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">reportIds</span>.<span class="ruby-identifier">empty?</span>
1395
- 311: <span class="ruby-comment cmt"># If the user did not provide a report ID we generate a full list.</span>
1396
- 312: <span class="ruby-identifier">reportIds</span> = [ <span class="ruby-value str">'.*'</span> ]
1397
- 313: <span class="ruby-ivar">@regExpMode</span> = <span class="ruby-keyword kw">true</span>
1398
- 314: <span class="ruby-keyword kw">end</span>
1399
- 315: <span class="ruby-comment cmt"># Send the provided .tji files to the ReportServer.</span>
1400
- 316: <span class="ruby-identifier">failed</span> = <span class="ruby-operator">!</span><span class="ruby-identifier">addFiles</span>(<span class="ruby-identifier">tjiFiles</span>)
1401
- 317: <span class="ruby-comment cmt"># Ask the ReportServer to generate the reports with the provided IDs.</span>
1402
- 318: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">failed</span>
1403
- 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>
1404
- 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>)
1405
- 321: <span class="ruby-identifier">failed</span> = <span class="ruby-keyword kw">true</span>
1406
- 322: <span class="ruby-keyword kw">break</span>
1407
- 323: <span class="ruby-keyword kw">end</span>
1408
- 324: <span class="ruby-keyword kw">end</span>
1409
- 325: <span class="ruby-keyword kw">end</span>
1410
- 326: <span class="ruby-comment cmt"># Terminate the ReportServer</span>
1411
- 327: <span class="ruby-identifier">disconnectReportServer</span>
1412
- 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>
1413
- 329: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'check-ts'</span>
1414
- 330: <span class="ruby-identifier">connectToReportServer</span>(<span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>])
1415
- 331: <span class="ruby-keyword kw">begin</span>
1416
- 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>])
1417
- 333: <span class="ruby-keyword kw">rescue</span>
1418
- 334: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Time sheet check failed: #{$!}&quot;</span>)
1419
- 335: <span class="ruby-keyword kw">end</span>
1420
- 336: <span class="ruby-identifier">disconnectReportServer</span>
1421
- 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>
1422
- 338: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'check-ss'</span>
1423
- 339: <span class="ruby-identifier">connectToReportServer</span>(<span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>])
1424
- 340: <span class="ruby-keyword kw">begin</span>
1425
- 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>])
1426
- 342: <span class="ruby-keyword kw">rescue</span>
1427
- 343: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Status sheet check failed: #{$!}&quot;</span>)
1428
- 344: <span class="ruby-keyword kw">end</span>
1429
- 345: <span class="ruby-identifier">disconnectReportServer</span>
1430
- 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>
1431
- 347: <span class="ruby-keyword kw">else</span>
1432
- 348: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Unknown command #{command}&quot;</span>
1433
- 349: <span class="ruby-keyword kw">end</span>
1434
- 350: <span class="ruby-value">0</span>
1435
- 351: <span class="ruby-keyword kw">end</span></pre>
1258
+ <span class="ruby-comment cmt"># File lib/tj3client.rb, line 256</span>
1259
+ 256: <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>)
1260
+ 257: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">command</span>
1261
+ 258: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'status'</span>
1262
+ 259: <span class="ruby-identifier">$stdout</span>.<span class="ruby-identifier">puts</span> <span class="ruby-identifier">callDaemon</span>(<span class="ruby-value">:status</span>, [])
1263
+ 260: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'terminate'</span>
1264
+ 261: <span class="ruby-identifier">callDaemon</span>(<span class="ruby-value">:stop</span>, [])
1265
+ 262: <span class="ruby-identifier">info</span>(<span class="ruby-value str">'Daemon terminated'</span>)
1266
+ 263: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'add'</span>
1267
+ 264: <span class="ruby-identifier">res</span> = <span class="ruby-identifier">callDaemon</span>(<span class="ruby-value">:addProject</span>, [ <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">getwd</span>, <span class="ruby-identifier">args</span>,
1268
+ 265: <span class="ruby-identifier">$stdout</span>, <span class="ruby-identifier">$stderr</span>, <span class="ruby-identifier">$stdin</span>, <span class="ruby-ivar">@silent</span> ])
1269
+ 266: <span class="ruby-identifier">info</span>(<span class="ruby-node">&quot;Project(s) #{args.join(', ')} added&quot;</span>)
1270
+ 267: <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>
1271
+ 268: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'remove'</span>
1272
+ 269: <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>
1273
+ 270: <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>)
1274
+ 271: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Project '#{arg}' not found in list&quot;</span>)
1275
+ 272: <span class="ruby-keyword kw">end</span>
1276
+ 273: <span class="ruby-keyword kw">end</span>
1277
+ 274: <span class="ruby-identifier">info</span>(<span class="ruby-value str">'Project removed'</span>)
1278
+ 275: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'update'</span>
1279
+ 276: <span class="ruby-identifier">callDaemon</span>(<span class="ruby-value">:update</span>, [])
1280
+ 277: <span class="ruby-identifier">info</span>(<span class="ruby-value str">'Reload requested'</span>)
1281
+ 278: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'report'</span>
1282
+ 279: <span class="ruby-comment cmt"># The first value of args is the project ID. The following values</span>
1283
+ 280: <span class="ruby-comment cmt"># could be either report IDs or TJI file # names ('.' or '*.tji').</span>
1284
+ 281: <span class="ruby-identifier">projectId</span> = <span class="ruby-identifier">args</span>.<span class="ruby-identifier">shift</span>
1285
+ 282: <span class="ruby-comment cmt"># Ask the ProjectServer to launch a new ReportServer process and</span>
1286
+ 283: <span class="ruby-comment cmt"># provide a DRbObject reference to it.</span>
1287
+ 284: <span class="ruby-identifier">connectToReportServer</span>(<span class="ruby-identifier">projectId</span>)
1288
+ 285:
1289
+ 286: <span class="ruby-identifier">reportIds</span>, <span class="ruby-identifier">tjiFiles</span> = <span class="ruby-identifier">splitIdsAndFiles</span>(<span class="ruby-identifier">args</span>)
1290
+ 287: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">reportIds</span>.<span class="ruby-identifier">empty?</span>
1291
+ 288: <span class="ruby-identifier">disconnectReportServer</span>
1292
+ 289: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'You must provide at least one report ID'</span>)
1293
+ 290: <span class="ruby-keyword kw">end</span>
1294
+ 291: <span class="ruby-comment cmt"># Send the provided .tji files to the ReportServer.</span>
1295
+ 292: <span class="ruby-identifier">failed</span> = <span class="ruby-operator">!</span><span class="ruby-identifier">addFiles</span>(<span class="ruby-identifier">tjiFiles</span>)
1296
+ 293: <span class="ruby-comment cmt"># Ask the ReportServer to generate the reports with the provided IDs.</span>
1297
+ 294: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">failed</span>
1298
+ 295: <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>
1299
+ 296: <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>,
1300
+ 297: <span class="ruby-ivar">@regExpMode</span>, <span class="ruby-ivar">@formats</span>, <span class="ruby-keyword kw">nil</span>)
1301
+ 298: <span class="ruby-identifier">failed</span> = <span class="ruby-keyword kw">true</span>
1302
+ 299: <span class="ruby-keyword kw">break</span>
1303
+ 300: <span class="ruby-keyword kw">end</span>
1304
+ 301: <span class="ruby-keyword kw">end</span>
1305
+ 302: <span class="ruby-keyword kw">end</span>
1306
+ 303: <span class="ruby-comment cmt"># Terminate the ReportServer</span>
1307
+ 304: <span class="ruby-identifier">disconnectReportServer</span>
1308
+ 305: <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>
1309
+ 306: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'list-reports'</span>
1310
+ 307: <span class="ruby-comment cmt"># The first value of args is the project ID. The following values</span>
1311
+ 308: <span class="ruby-comment cmt"># could be either report IDs or TJI file # names ('.' or '*.tji').</span>
1312
+ 309: <span class="ruby-identifier">projectId</span> = <span class="ruby-identifier">args</span>.<span class="ruby-identifier">shift</span>
1313
+ 310: <span class="ruby-comment cmt"># Ask the ProjectServer to launch a new ReportServer process and</span>
1314
+ 311: <span class="ruby-comment cmt"># provide a DRbObject reference to it.</span>
1315
+ 312: <span class="ruby-identifier">connectToReportServer</span>(<span class="ruby-identifier">projectId</span>)
1316
+ 313:
1317
+ 314: <span class="ruby-identifier">reportIds</span>, <span class="ruby-identifier">tjiFiles</span> = <span class="ruby-identifier">splitIdsAndFiles</span>(<span class="ruby-identifier">args</span>)
1318
+ 315: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">reportIds</span>.<span class="ruby-identifier">empty?</span>
1319
+ 316: <span class="ruby-comment cmt"># If the user did not provide a report ID we generate a full list.</span>
1320
+ 317: <span class="ruby-identifier">reportIds</span> = [ <span class="ruby-value str">'.*'</span> ]
1321
+ 318: <span class="ruby-ivar">@regExpMode</span> = <span class="ruby-keyword kw">true</span>
1322
+ 319: <span class="ruby-keyword kw">end</span>
1323
+ 320: <span class="ruby-comment cmt"># Send the provided .tji files to the ReportServer.</span>
1324
+ 321: <span class="ruby-identifier">failed</span> = <span class="ruby-operator">!</span><span class="ruby-identifier">addFiles</span>(<span class="ruby-identifier">tjiFiles</span>)
1325
+ 322: <span class="ruby-comment cmt"># Ask the ReportServer to generate the reports with the provided IDs.</span>
1326
+ 323: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">failed</span>
1327
+ 324: <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>
1328
+ 325: <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>)
1329
+ 326: <span class="ruby-identifier">failed</span> = <span class="ruby-keyword kw">true</span>
1330
+ 327: <span class="ruby-keyword kw">break</span>
1331
+ 328: <span class="ruby-keyword kw">end</span>
1332
+ 329: <span class="ruby-keyword kw">end</span>
1333
+ 330: <span class="ruby-keyword kw">end</span>
1334
+ 331: <span class="ruby-comment cmt"># Terminate the ReportServer</span>
1335
+ 332: <span class="ruby-identifier">disconnectReportServer</span>
1336
+ 333: <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>
1337
+ 334: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'check-ts'</span>
1338
+ 335: <span class="ruby-identifier">connectToReportServer</span>(<span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>])
1339
+ 336: <span class="ruby-keyword kw">begin</span>
1340
+ 337: <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>])
1341
+ 338: <span class="ruby-keyword kw">rescue</span>
1342
+ 339: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Time sheet check failed: #{$!}&quot;</span>)
1343
+ 340: <span class="ruby-keyword kw">end</span>
1344
+ 341: <span class="ruby-identifier">disconnectReportServer</span>
1345
+ 342: <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>
1346
+ 343: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'check-ss'</span>
1347
+ 344: <span class="ruby-identifier">connectToReportServer</span>(<span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>])
1348
+ 345: <span class="ruby-keyword kw">begin</span>
1349
+ 346: <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>])
1350
+ 347: <span class="ruby-keyword kw">rescue</span>
1351
+ 348: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Status sheet check failed: #{$!}&quot;</span>)
1352
+ 349: <span class="ruby-keyword kw">end</span>
1353
+ 350: <span class="ruby-identifier">disconnectReportServer</span>
1354
+ 351: <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>
1355
+ 352: <span class="ruby-keyword kw">else</span>
1356
+ 353: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Unknown command #{command}&quot;</span>
1357
+ 354: <span class="ruby-keyword kw">end</span>
1358
+ 355: <span class="ruby-value">0</span>
1359
+ 356: <span class="ruby-keyword kw">end</span></pre>
1436
1360
  </div>
1437
1361
 
1438
1362
  </div>
@@ -1463,11 +1387,11 @@ command with the provided arguments.
1463
1387
  <div class="method-source-code"
1464
1388
  id="info-source">
1465
1389
  <pre>
1466
- <span class="ruby-comment cmt"># File lib/tj3client.rb, line 459</span>
1467
- 459: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">info</span>(<span class="ruby-identifier">message</span>)
1468
- 460: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@silent</span>
1469
- 461: <span class="ruby-identifier">$stdout</span>.<span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;#{message}&quot;</span>
1470
- 462: <span class="ruby-keyword kw">end</span></pre>
1390
+ <span class="ruby-comment cmt"># File lib/tj3client.rb, line 442</span>
1391
+ 442: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">info</span>(<span class="ruby-identifier">message</span>)
1392
+ 443: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@silent</span>
1393
+ 444: <span class="ruby-identifier">$stdout</span>.<span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;#{message}&quot;</span>
1394
+ 445: <span class="ruby-keyword kw">end</span></pre>
1471
1395
  </div>
1472
1396
 
1473
1397
  </div>
@@ -1502,24 +1426,24 @@ files are present, they must be separated from the report ID list by a
1502
1426
  <div class="method-source-code"
1503
1427
  id="split-ds-nd-iles-source">
1504
1428
  <pre>
1505
- <span class="ruby-comment cmt"># File lib/tj3client.rb, line 427</span>
1506
- 427: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">splitIdsAndFiles</span>(<span class="ruby-identifier">args</span>)
1507
- 428: <span class="ruby-identifier">reportIds</span> = []
1508
- 429: <span class="ruby-identifier">tjiFiles</span> = []
1509
- 430: <span class="ruby-identifier">addToReports</span> = <span class="ruby-keyword kw">true</span>
1510
- 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>
1511
- 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>
1512
- 433: <span class="ruby-comment cmt"># Switch to tji file list.</span>
1513
- 434: <span class="ruby-identifier">addToReports</span> = <span class="ruby-keyword kw">false</span>
1514
- 435: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">addToReports</span>
1515
- 436: <span class="ruby-identifier">reportIds</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">arg</span>
1516
- 437: <span class="ruby-keyword kw">else</span>
1517
- 438: <span class="ruby-identifier">tjiFiles</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">arg</span>
1518
- 439: <span class="ruby-keyword kw">end</span>
1519
- 440: <span class="ruby-keyword kw">end</span>
1520
- 441:
1521
- 442: [ <span class="ruby-identifier">reportIds</span>, <span class="ruby-identifier">tjiFiles</span> ]
1522
- 443: <span class="ruby-keyword kw">end</span></pre>
1429
+ <span class="ruby-comment cmt"># File lib/tj3client.rb, line 410</span>
1430
+ 410: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">splitIdsAndFiles</span>(<span class="ruby-identifier">args</span>)
1431
+ 411: <span class="ruby-identifier">reportIds</span> = []
1432
+ 412: <span class="ruby-identifier">tjiFiles</span> = []
1433
+ 413: <span class="ruby-identifier">addToReports</span> = <span class="ruby-keyword kw">true</span>
1434
+ 414: <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>
1435
+ 415: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">arg</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'='</span>
1436
+ 416: <span class="ruby-comment cmt"># Switch to tji file list.</span>
1437
+ 417: <span class="ruby-identifier">addToReports</span> = <span class="ruby-keyword kw">false</span>
1438
+ 418: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">addToReports</span>
1439
+ 419: <span class="ruby-identifier">reportIds</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">arg</span>
1440
+ 420: <span class="ruby-keyword kw">else</span>
1441
+ 421: <span class="ruby-identifier">tjiFiles</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">arg</span>
1442
+ 422: <span class="ruby-keyword kw">end</span>
1443
+ 423: <span class="ruby-keyword kw">end</span>
1444
+ 424:
1445
+ 425: [ <span class="ruby-identifier">reportIds</span>, <span class="ruby-identifier">tjiFiles</span> ]
1446
+ 426: <span class="ruby-keyword kw">end</span></pre>
1523
1447
  </div>
1524
1448
 
1525
1449
  </div>