taskjuggler 0.0.5 → 0.0.6

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 (544) hide show
  1. data/CHANGELOG +2086 -0
  2. data/benchmarks/666tasks.tjp +3183 -0
  3. data/benchmarks/booking.tjp +14 -10
  4. data/doc/AppConfig.html +95 -73
  5. data/doc/Arguments.html +22 -2
  6. data/doc/CHANGELOG.html +2587 -0
  7. data/doc/COPYING.html +21 -1
  8. data/doc/Object.html +161 -122
  9. data/doc/README.html +21 -1
  10. data/doc/RuntimeConfig.html +26 -6
  11. data/doc/String.html +38 -18
  12. data/doc/StringIO.html +579 -0
  13. data/doc/TaskJuggler.html +251 -143
  14. data/doc/TaskJuggler/Account.html +26 -6
  15. data/doc/TaskJuggler/AccountAttribute.html +28 -8
  16. data/doc/TaskJuggler/AccountScenario.html +24 -4
  17. data/doc/TaskJuggler/Allocation.html +30 -10
  18. data/doc/TaskJuggler/AllocationAttribute.html +28 -8
  19. data/doc/TaskJuggler/AttributeBase.html +46 -26
  20. data/doc/TaskJuggler/AttributeDefinition.html +22 -2
  21. data/doc/TaskJuggler/BatchProcessor.html +40 -20
  22. data/doc/TaskJuggler/Booking.html +26 -6
  23. data/doc/TaskJuggler/BookingListAttribute.html +28 -8
  24. data/doc/TaskJuggler/BooleanAttribute.html +28 -8
  25. data/doc/TaskJuggler/CSVFile.html +308 -146
  26. data/doc/TaskJuggler/CellSettingPattern.html +22 -2
  27. data/doc/TaskJuggler/CellSettingPatternList.html +26 -6
  28. data/doc/TaskJuggler/Charge.html +26 -6
  29. data/doc/TaskJuggler/ChargeListAttribute.html +26 -6
  30. data/doc/TaskJuggler/ChargeSet.html +33 -13
  31. data/doc/TaskJuggler/ChargeSetListAttribute.html +28 -8
  32. data/doc/TaskJuggler/ColumnListAttribute.html +26 -6
  33. data/doc/TaskJuggler/ColumnTable.html +24 -4
  34. data/doc/TaskJuggler/Daemon.html +26 -6
  35. data/doc/TaskJuggler/DateAttribute.html +26 -6
  36. data/doc/TaskJuggler/DefinitionListAttribute.html +22 -2
  37. data/doc/TaskJuggler/DependencyListAttribute.html +28 -8
  38. data/doc/TaskJuggler/DurationAttribute.html +28 -8
  39. data/doc/TaskJuggler/FixnumAttribute.html +24 -4
  40. data/doc/TaskJuggler/FlagListAttribute.html +28 -8
  41. data/doc/TaskJuggler/FloatAttribute.html +26 -6
  42. data/doc/TaskJuggler/FormatListAttribute.html +24 -4
  43. data/doc/TaskJuggler/GanttChart.html +147 -126
  44. data/doc/TaskJuggler/GanttContainer.html +34 -14
  45. data/doc/TaskJuggler/GanttHeader.html +28 -8
  46. data/doc/TaskJuggler/GanttHeaderScaleItem.html +24 -4
  47. data/doc/TaskJuggler/GanttLine.html +38 -18
  48. data/doc/TaskJuggler/GanttLoadStack.html +26 -6
  49. data/doc/TaskJuggler/GanttMilestone.html +34 -14
  50. data/doc/TaskJuggler/GanttRouter.html +50 -30
  51. data/doc/TaskJuggler/GanttTaskBar.html +34 -14
  52. data/doc/TaskJuggler/HTMLDocument.html +26 -6
  53. data/doc/TaskJuggler/HTMLGraphics.html +30 -10
  54. data/doc/TaskJuggler/Interval.html +40 -22
  55. data/doc/TaskJuggler/IntervalListAttribute.html +28 -8
  56. data/doc/TaskJuggler/JobInfo.html +24 -4
  57. data/doc/TaskJuggler/Journal.html +226 -147
  58. data/doc/TaskJuggler/JournalEntry.html +22 -2
  59. data/doc/TaskJuggler/JournalEntryList.html +129 -112
  60. data/doc/TaskJuggler/KeywordArray.html +26 -6
  61. data/doc/TaskJuggler/KeywordDocumentation.html +46 -26
  62. data/doc/TaskJuggler/Limits.html +152 -123
  63. data/doc/TaskJuggler/Limits/Limit.html +149 -70
  64. data/doc/TaskJuggler/LimitsAttribute.html +36 -51
  65. data/doc/TaskJuggler/ListAttributeBase.html +24 -4
  66. data/doc/TaskJuggler/Log.html +50 -32
  67. data/doc/TaskJuggler/LogFile.html +37 -17
  68. data/doc/TaskJuggler/LogicalAttribute.html +53 -33
  69. data/doc/TaskJuggler/LogicalExpression.html +26 -6
  70. data/doc/TaskJuggler/LogicalExpressionAttribute.html +32 -12
  71. data/doc/TaskJuggler/LogicalFlag.html +42 -22
  72. data/doc/TaskJuggler/LogicalFunction.html +204 -140
  73. data/doc/TaskJuggler/LogicalOperation.html +135 -111
  74. data/doc/TaskJuggler/Macro.html +22 -2
  75. data/doc/TaskJuggler/MacroParser.html +32 -12
  76. data/doc/TaskJuggler/MacroTable.html +32 -12
  77. data/doc/TaskJuggler/ManagerResponsibilities.html +24 -4
  78. data/doc/TaskJuggler/ManagerStatusRecord.html +24 -4
  79. data/doc/TaskJuggler/Message.html +24 -4
  80. data/doc/TaskJuggler/MessageHandler.html +24 -4
  81. data/doc/TaskJuggler/Navigator.html +104 -71
  82. data/doc/TaskJuggler/NavigatorElement.html +32 -12
  83. data/doc/TaskJuggler/NikuProject.html +22 -2
  84. data/doc/TaskJuggler/NikuReport.html +310 -228
  85. data/doc/TaskJuggler/NikuResource.html +22 -2
  86. data/doc/TaskJuggler/NodeListAttribute.html +615 -0
  87. data/doc/TaskJuggler/OnShiftCache.html +32 -12
  88. data/doc/TaskJuggler/ProcessIntercom.html +205 -78
  89. data/doc/TaskJuggler/ProcessIntercomIface.html +26 -6
  90. data/doc/TaskJuggler/Project.html +708 -660
  91. data/doc/TaskJuggler/ProjectBroker.html +506 -304
  92. data/doc/TaskJuggler/ProjectBrokerIface.html +61 -41
  93. data/doc/TaskJuggler/ProjectFileParser.html +429 -373
  94. data/doc/TaskJuggler/ProjectFileScanner.html +1790 -0
  95. data/doc/TaskJuggler/ProjectRecord.html +80 -60
  96. data/doc/TaskJuggler/ProjectServer.html +312 -237
  97. data/doc/TaskJuggler/ProjectServerIface.html +101 -43
  98. data/doc/TaskJuggler/PropertyAttribute.html +32 -12
  99. data/doc/TaskJuggler/PropertyList.html +166 -145
  100. data/doc/TaskJuggler/PropertySet.html +254 -224
  101. data/doc/TaskJuggler/PropertyTreeNode.html +670 -536
  102. data/doc/TaskJuggler/Query.html +169 -148
  103. data/doc/TaskJuggler/RTFHandlers.html +622 -0
  104. data/doc/TaskJuggler/RTFNavigator.html +28 -8
  105. data/doc/TaskJuggler/RTFQuery.html +40 -20
  106. data/doc/TaskJuggler/RTFReport.html +62 -25
  107. data/doc/TaskJuggler/RTFReportLink.html +765 -0
  108. data/doc/TaskJuggler/RealFormat.html +26 -6
  109. data/doc/TaskJuggler/RealFormatAttribute.html +26 -6
  110. data/doc/TaskJuggler/ReferenceAttribute.html +59 -39
  111. data/doc/TaskJuggler/Report.html +402 -251
  112. data/doc/TaskJuggler/ReportBase.html +162 -137
  113. data/doc/TaskJuggler/ReportContext.html +112 -29
  114. data/doc/TaskJuggler/ReportServer.html +89 -64
  115. data/doc/TaskJuggler/ReportServerIface.html +75 -55
  116. data/doc/TaskJuggler/ReportServerRecord.html +54 -31
  117. data/doc/TaskJuggler/ReportServlet.html +980 -0
  118. data/doc/TaskJuggler/ReportTable.html +41 -21
  119. data/doc/TaskJuggler/ReportTableCell.html +214 -170
  120. data/doc/TaskJuggler/ReportTableColumn.html +30 -10
  121. data/doc/TaskJuggler/ReportTableLegend.html +36 -16
  122. data/doc/TaskJuggler/ReportTableLine.html +32 -12
  123. data/doc/TaskJuggler/Resource.html +99 -87
  124. data/doc/TaskJuggler/ResourceListAttribute.html +59 -39
  125. data/doc/TaskJuggler/ResourceListRE.html +47 -26
  126. data/doc/TaskJuggler/ResourceScenario.html +403 -437
  127. data/doc/TaskJuggler/RichText.html +26 -6
  128. data/doc/TaskJuggler/RichTextAttribute.html +50 -30
  129. data/doc/TaskJuggler/RichTextDocument.html +37 -17
  130. data/doc/TaskJuggler/RichTextElement.html +475 -413
  131. data/doc/TaskJuggler/RichTextException.html +22 -2
  132. data/doc/TaskJuggler/RichTextFunctionExample.html +28 -8
  133. data/doc/TaskJuggler/RichTextFunctionHandler.html +24 -4
  134. data/doc/TaskJuggler/RichTextImage.html +22 -2
  135. data/doc/TaskJuggler/RichTextIntermediate.html +38 -18
  136. data/doc/TaskJuggler/RichTextParser.html +56 -34
  137. data/doc/TaskJuggler/RichTextScanner.html +82 -61
  138. data/doc/TaskJuggler/RichTextSnip.html +34 -14
  139. data/doc/TaskJuggler/RichTextSyntaxRules.html +507 -353
  140. data/doc/TaskJuggler/Scenario.html +22 -2
  141. data/doc/TaskJuggler/ScenarioData.html +30 -46
  142. data/doc/TaskJuggler/ScenarioListAttribute.html +38 -18
  143. data/doc/TaskJuggler/Scoreboard.html +42 -22
  144. data/doc/TaskJuggler/SheetHandlerBase.html +40 -20
  145. data/doc/TaskJuggler/SheetReceiver.html +333 -295
  146. data/doc/TaskJuggler/SheetSender.html +253 -230
  147. data/doc/TaskJuggler/Shift.html +26 -6
  148. data/doc/TaskJuggler/ShiftAssignment.html +89 -73
  149. data/doc/TaskJuggler/ShiftAssignments.html +226 -234
  150. data/doc/TaskJuggler/ShiftAssignmentsAttribute.html +39 -54
  151. data/doc/TaskJuggler/ShiftScenario.html +28 -8
  152. data/doc/TaskJuggler/SortListAttribute.html +34 -14
  153. data/doc/TaskJuggler/SourceFileInfo.html +24 -4
  154. data/doc/TaskJuggler/StatusSheetReceiver.html +24 -3
  155. data/doc/TaskJuggler/StatusSheetReport.html +168 -153
  156. data/doc/TaskJuggler/StatusSheetSender.html +24 -3
  157. data/doc/TaskJuggler/StringAttribute.html +38 -18
  158. data/doc/TaskJuggler/SymbolAttribute.html +32 -12
  159. data/doc/TaskJuggler/SyntaxReference.html +40 -20
  160. data/doc/TaskJuggler/TOCEntry.html +26 -6
  161. data/doc/TaskJuggler/TSResourceRecord.html +22 -2
  162. data/doc/TaskJuggler/TSTaskRecord.html +22 -2
  163. data/doc/TaskJuggler/TableColumnDefinition.html +59 -22
  164. data/doc/TaskJuggler/TableOfContents.html +26 -6
  165. data/doc/TaskJuggler/TableReport.html +937 -904
  166. data/doc/TaskJuggler/Task.html +55 -36
  167. data/doc/TaskJuggler/TaskDependency.html +24 -4
  168. data/doc/TaskJuggler/TaskListAttribute.html +50 -30
  169. data/doc/TaskJuggler/TaskListRE.html +27 -7
  170. data/doc/TaskJuggler/TaskScenario.html +1273 -1153
  171. data/doc/TaskJuggler/TextFormatter.html +28 -8
  172. data/doc/TaskJuggler/TextParser.html +585 -338
  173. data/doc/TaskJuggler/TextParser/Pattern.html +54 -34
  174. data/doc/TaskJuggler/TextParser/Rule.html +95 -73
  175. data/doc/TaskJuggler/TextParser/StackElement.html +39 -17
  176. data/doc/TaskJuggler/TextParser/TextParserResultArray.html +24 -4
  177. data/doc/TaskJuggler/TextParser/TokenDoc.html +22 -2
  178. data/doc/TaskJuggler/TextReport.html +28 -8
  179. data/doc/TaskJuggler/TextScanner.html +400 -1404
  180. data/doc/TaskJuggler/TextScanner/BufferStreamHandle.html +28 -240
  181. data/doc/TaskJuggler/TextScanner/FileStreamHandle.html +37 -184
  182. data/doc/TaskJuggler/TextScanner/MacroStackEntry.html +682 -0
  183. data/doc/TaskJuggler/TextScanner/StreamHandle.html +342 -67
  184. data/doc/TaskJuggler/TimeSheet.html +48 -28
  185. data/doc/TaskJuggler/TimeSheetReceiver.html +24 -3
  186. data/doc/TaskJuggler/TimeSheetRecord.html +47 -27
  187. data/doc/TaskJuggler/TimeSheetReport.html +154 -133
  188. data/doc/TaskJuggler/TimeSheetSender.html +24 -3
  189. data/doc/TaskJuggler/TimeSheetSummary.html +137 -91
  190. data/doc/TaskJuggler/TimeSheets.html +26 -6
  191. data/doc/TaskJuggler/Tj3AppBase.html +85 -58
  192. data/doc/TaskJuggler/Tj3Client.html +292 -238
  193. data/doc/TaskJuggler/Tj3Daemon.html +159 -74
  194. data/doc/TaskJuggler/Tj3SheetAppBase.html +26 -6
  195. data/doc/TaskJuggler/Tj3SsReceiver.html +26 -6
  196. data/doc/TaskJuggler/Tj3SsSender.html +53 -26
  197. data/doc/TaskJuggler/Tj3TsReceiver.html +28 -7
  198. data/doc/TaskJuggler/Tj3TsSender.html +26 -6
  199. data/doc/TaskJuggler/Tj3TsSummary.html +26 -6
  200. data/doc/TaskJuggler/TjException.html +22 -2
  201. data/doc/TaskJuggler/TjTime.html +216 -160
  202. data/doc/TaskJuggler/TjpExample.html +34 -14
  203. data/doc/TaskJuggler/TjpExportRE.html +403 -407
  204. data/doc/TaskJuggler/TjpSyntaxRules.html +4805 -4408
  205. data/doc/TaskJuggler/URLParameter.html +649 -0
  206. data/doc/TaskJuggler/UserManual.html +42 -22
  207. data/doc/TaskJuggler/WebServer.html +702 -0
  208. data/doc/TaskJuggler/WorkingHours.html +38 -18
  209. data/doc/TaskJuggler/WorkingHoursAttribute.html +61 -41
  210. data/doc/TaskJuggler/XMLBlob.html +24 -4
  211. data/doc/TaskJuggler/XMLComment.html +24 -4
  212. data/doc/TaskJuggler/XMLDocument.html +30 -10
  213. data/doc/TaskJuggler/XMLElement.html +34 -14
  214. data/doc/TaskJuggler/XMLNamedText.html +22 -2
  215. data/doc/TaskJuggler/XMLText.html +24 -4
  216. data/doc/index.html +1841 -1666
  217. data/doc/lib/AccountScenario_rb.html +1 -1
  218. data/doc/lib/Account_rb.html +1 -1
  219. data/doc/lib/Allocation_rb.html +1 -1
  220. data/doc/lib/AppConfig_rb.html +2 -2
  221. data/doc/lib/AttributeBase_rb.html +1 -1
  222. data/doc/lib/AttributeDefinition_rb.html +1 -1
  223. data/doc/lib/Attributes_rb.html +2 -2
  224. data/doc/lib/BatchProcessor_rb.html +1 -1
  225. data/doc/lib/Booking_rb.html +1 -1
  226. data/doc/lib/ChargeSet_rb.html +1 -1
  227. data/doc/lib/Charge_rb.html +1 -1
  228. data/doc/lib/HTMLDocument_rb.html +1 -1
  229. data/doc/lib/Interval_rb.html +1 -1
  230. data/doc/lib/Journal_rb.html +2 -2
  231. data/doc/lib/KeywordArray_rb.html +1 -1
  232. data/doc/lib/KeywordDocumentation_rb.html +1 -1
  233. data/doc/lib/Limits_rb.html +2 -2
  234. data/doc/lib/LogFile_rb.html +2 -2
  235. data/doc/lib/Log_rb.html +1 -1
  236. data/doc/lib/LogicalExpression_rb.html +1 -1
  237. data/doc/lib/LogicalFunction_rb.html +2 -2
  238. data/doc/lib/LogicalOperation_rb.html +2 -2
  239. data/doc/lib/MacroParser_rb.html +1 -1
  240. data/doc/lib/MacroTable_rb.html +1 -1
  241. data/doc/lib/MessageHandler_rb.html +1 -1
  242. data/doc/lib/Message_rb.html +1 -1
  243. data/doc/lib/ProjectFileParser_rb.html +4 -8
  244. data/doc/lib/ProjectFileScanner_rb.html +67 -0
  245. data/doc/lib/Project_rb.html +2 -2
  246. data/doc/lib/PropertyList_rb.html +2 -2
  247. data/doc/lib/PropertySet_rb.html +2 -2
  248. data/doc/lib/PropertyTreeNode_rb.html +2 -2
  249. data/doc/lib/Query_rb.html +2 -2
  250. data/doc/lib/RTFHandlers_rb.html +73 -0
  251. data/doc/lib/RTFNavigator_rb.html +1 -1
  252. data/doc/lib/RTFQuery_rb.html +1 -1
  253. data/doc/lib/RTFReportLink_rb.html +71 -0
  254. data/doc/lib/RTFReport_rb.html +2 -2
  255. data/doc/lib/RealFormat_rb.html +1 -1
  256. data/doc/lib/ResourceScenario_rb.html +2 -2
  257. data/doc/lib/Resource_rb.html +2 -2
  258. data/doc/lib/RichTextDocument_rb.html +1 -1
  259. data/doc/lib/RichTextElement_rb.html +2 -2
  260. data/doc/lib/RichTextFunctionExample_rb.html +1 -1
  261. data/doc/lib/RichTextFunctionHandler_rb.html +1 -1
  262. data/doc/lib/RichTextParser_rb.html +2 -2
  263. data/doc/lib/RichTextScanner_rb.html +2 -2
  264. data/doc/lib/RichTextSnip_rb.html +1 -1
  265. data/doc/lib/RichTextSyntaxRules_rb.html +2 -2
  266. data/doc/lib/RichText_rb.html +1 -1
  267. data/doc/lib/RuntimeConfig_rb.html +1 -1
  268. data/doc/lib/ScenarioData_rb.html +2 -2
  269. data/doc/lib/Scenario_rb.html +1 -1
  270. data/doc/lib/Scoreboard_rb.html +1 -1
  271. data/doc/lib/SheetHandlerBase_rb.html +1 -1
  272. data/doc/lib/SheetReceiver_rb.html +2 -2
  273. data/doc/lib/SheetSender_rb.html +4 -2
  274. data/doc/lib/ShiftAssignments_rb.html +4 -2
  275. data/doc/lib/ShiftScenario_rb.html +1 -1
  276. data/doc/lib/Shift_rb.html +1 -1
  277. data/doc/lib/SourceFileInfo_rb.html +1 -1
  278. data/doc/lib/StatusSheetReceiver_rb.html +2 -2
  279. data/doc/lib/StatusSheetSender_rb.html +2 -2
  280. data/doc/lib/SyntaxReference_rb.html +1 -1
  281. data/doc/lib/TOCEntry_rb.html +1 -1
  282. data/doc/lib/TableColumnDefinition_rb.html +2 -2
  283. data/doc/lib/TableOfContents_rb.html +1 -1
  284. data/doc/lib/TaskDependency_rb.html +1 -1
  285. data/doc/lib/TaskJuggler_rb.html +2 -2
  286. data/doc/lib/TaskScenario_rb.html +2 -2
  287. data/doc/lib/Task_rb.html +2 -2
  288. data/doc/lib/TextFormatter_rb.html +1 -1
  289. data/doc/lib/TextParser/Pattern_rb.html +1 -1
  290. data/doc/lib/TextParser/Rule_rb.html +2 -2
  291. data/doc/lib/TextParser/StackElement_rb.html +2 -2
  292. data/doc/lib/TextParser/TokenDoc_rb.html +1 -1
  293. data/doc/lib/TextParser_rb.html +2 -2
  294. data/doc/lib/TextScanner_rb.html +6 -2
  295. data/doc/lib/TimeSheetReceiver_rb.html +2 -2
  296. data/doc/lib/TimeSheetSender_rb.html +2 -2
  297. data/doc/lib/TimeSheetSummary_rb.html +2 -2
  298. data/doc/lib/TimeSheets_rb.html +2 -2
  299. data/doc/lib/Tj3AppBase_rb.html +2 -2
  300. data/doc/lib/Tj3Config_rb.html +2 -2
  301. data/doc/lib/Tj3SheetAppBase_rb.html +2 -2
  302. data/doc/lib/TjException_rb.html +1 -1
  303. data/doc/lib/TjTime_rb.html +2 -2
  304. data/doc/lib/TjpExample_rb.html +1 -1
  305. data/doc/lib/TjpSyntaxRules_rb.html +2 -2
  306. data/doc/lib/URLParameter_rb.html +67 -0
  307. data/doc/lib/UTF8String_rb.html +1 -1
  308. data/doc/lib/UserManual_rb.html +1 -1
  309. data/doc/lib/WorkingHours_rb.html +1 -1
  310. data/doc/lib/XMLDocument_rb.html +2 -2
  311. data/doc/lib/XMLElement_rb.html +1 -1
  312. data/doc/lib/daemon/Daemon_rb.html +1 -1
  313. data/doc/lib/daemon/ProcessIntercom_rb.html +2 -2
  314. data/doc/lib/daemon/ProjectBroker_rb.html +4 -2
  315. data/doc/lib/daemon/ProjectServer_rb.html +2 -2
  316. data/doc/lib/daemon/ReportServer_rb.html +2 -2
  317. data/doc/lib/daemon/WebServer_rb.html +75 -0
  318. data/doc/lib/deep_copy_rb.html +2 -2
  319. data/doc/lib/reports/CSVFile_rb.html +2 -2
  320. data/doc/lib/reports/ColumnTable_rb.html +1 -1
  321. data/doc/lib/reports/GanttChart_rb.html +2 -2
  322. data/doc/lib/reports/GanttContainer_rb.html +1 -1
  323. data/doc/lib/reports/GanttHeaderScaleItem_rb.html +1 -1
  324. data/doc/lib/reports/GanttHeader_rb.html +1 -1
  325. data/doc/lib/reports/GanttLine_rb.html +1 -1
  326. data/doc/lib/reports/GanttLoadStack_rb.html +1 -1
  327. data/doc/lib/reports/GanttMilestone_rb.html +1 -1
  328. data/doc/lib/reports/GanttRouter_rb.html +1 -1
  329. data/doc/lib/reports/GanttTaskBar_rb.html +1 -1
  330. data/doc/lib/reports/HTMLGraphics_rb.html +1 -1
  331. data/doc/lib/reports/Navigator_rb.html +2 -2
  332. data/doc/lib/reports/NikuReport_rb.html +2 -2
  333. data/doc/lib/reports/ReportBase_rb.html +2 -2
  334. data/doc/lib/reports/ReportContext_rb.html +2 -2
  335. data/doc/lib/reports/ReportTableCell_rb.html +2 -2
  336. data/doc/lib/reports/ReportTableColumn_rb.html +1 -1
  337. data/doc/lib/reports/ReportTableLegend_rb.html +1 -1
  338. data/doc/lib/reports/ReportTableLine_rb.html +1 -1
  339. data/doc/lib/reports/ReportTable_rb.html +2 -2
  340. data/doc/lib/reports/Report_rb.html +2 -2
  341. data/doc/lib/reports/ResourceListRE_rb.html +2 -2
  342. data/doc/lib/reports/StatusSheetReport_rb.html +2 -2
  343. data/doc/lib/reports/TableReport_rb.html +2 -2
  344. data/doc/lib/reports/TaskListRE_rb.html +2 -2
  345. data/doc/lib/reports/TextReport_rb.html +1 -1
  346. data/doc/lib/reports/TimeSheetReport_rb.html +2 -2
  347. data/doc/lib/reports/TjpExportRE_rb.html +2 -2
  348. data/doc/lib/ruby-signal-bug_rb.html +1 -1
  349. data/doc/lib/taskjuggler3_rb.html +2 -2
  350. data/doc/lib/tj3client_rb.html +2 -2
  351. data/doc/lib/tj3d_rb.html +2 -2
  352. data/doc/lib/tj3man_rb.html +1 -1
  353. data/doc/lib/tj3ss_receiver_rb.html +1 -1
  354. data/doc/lib/tj3ss_sender_rb.html +2 -2
  355. data/doc/lib/tj3ts_receiver_rb.html +2 -2
  356. data/doc/lib/tj3ts_sender_rb.html +1 -1
  357. data/doc/lib/tj3ts_summary_rb.html +1 -1
  358. data/doc/rdoc.css +9 -4
  359. data/examples/tutorial.tjp +17 -15
  360. data/gem_spec.rb +3 -0
  361. data/lib/AppConfig.rb +3 -1
  362. data/lib/Attributes.rb +10 -8
  363. data/lib/Journal.rb +55 -20
  364. data/lib/Limits.rb +72 -46
  365. data/lib/LogFile.rb +3 -3
  366. data/lib/LogicalFunction.rb +19 -6
  367. data/lib/LogicalOperation.rb +5 -1
  368. data/lib/Project.rb +37 -9
  369. data/lib/ProjectFileParser.rb +25 -22
  370. data/lib/ProjectFileScanner.rb +365 -0
  371. data/lib/PropertyList.rb +2 -1
  372. data/lib/PropertySet.rb +14 -4
  373. data/lib/PropertyTreeNode.rb +42 -29
  374. data/lib/Query.rb +3 -1
  375. data/lib/RTFHandlers.rb +35 -0
  376. data/lib/RTFReport.rb +23 -6
  377. data/lib/RTFReportLink.rb +72 -0
  378. data/lib/Resource.rb +8 -16
  379. data/lib/ResourceScenario.rb +1 -22
  380. data/lib/RichTextElement.rb +42 -0
  381. data/lib/RichTextParser.rb +6 -4
  382. data/lib/RichTextScanner.rb +5 -5
  383. data/lib/RichTextSyntaxRules.rb +48 -10
  384. data/lib/ScenarioData.rb +5 -3
  385. data/lib/SheetReceiver.rb +24 -6
  386. data/lib/SheetSender.rb +17 -13
  387. data/lib/ShiftAssignments.rb +56 -52
  388. data/lib/StatusSheetReceiver.rb +1 -0
  389. data/lib/StatusSheetSender.rb +1 -0
  390. data/lib/TableColumnDefinition.rb +4 -2
  391. data/lib/Task.rb +8 -9
  392. data/lib/TaskJuggler.rb +21 -11
  393. data/lib/TaskScenario.rb +61 -26
  394. data/lib/TextParser.rb +268 -106
  395. data/lib/TextParser/Rule.rb +4 -2
  396. data/lib/TextParser/StackElement.rb +6 -4
  397. data/lib/TextScanner.rb +283 -700
  398. data/lib/TimeSheetReceiver.rb +1 -0
  399. data/lib/TimeSheetSender.rb +1 -0
  400. data/lib/TimeSheetSummary.rb +51 -26
  401. data/lib/TimeSheets.rb +1 -1
  402. data/lib/Tj3AppBase.rb +8 -1
  403. data/lib/Tj3Config.rb +1 -1
  404. data/lib/TjTime.rb +5 -0
  405. data/lib/TjpSyntaxRules.rb +360 -144
  406. data/lib/URLParameter.rb +30 -0
  407. data/lib/XMLDocument.rb +2 -2
  408. data/lib/daemon/ProcessIntercom.rb +50 -9
  409. data/lib/daemon/ProjectBroker.rb +63 -10
  410. data/lib/daemon/ProjectServer.rb +47 -16
  411. data/lib/daemon/ReportServer.rb +9 -4
  412. data/lib/daemon/WebServer.rb +204 -0
  413. data/lib/deep_copy.rb +4 -1
  414. data/lib/reports/CSVFile.rb +150 -66
  415. data/lib/reports/GanttChart.rb +2 -1
  416. data/lib/reports/Navigator.rb +18 -5
  417. data/lib/reports/NikuReport.rb +32 -2
  418. data/lib/reports/Report.rb +65 -37
  419. data/lib/reports/ReportBase.rb +14 -9
  420. data/lib/reports/ReportContext.rb +19 -4
  421. data/lib/reports/ReportTable.rb +2 -2
  422. data/lib/reports/ReportTableCell.rb +54 -30
  423. data/lib/reports/ResourceListRE.rb +4 -3
  424. data/lib/reports/StatusSheetReport.rb +8 -13
  425. data/lib/reports/TableReport.rb +47 -32
  426. data/lib/reports/TaskListRE.rb +3 -3
  427. data/lib/reports/TimeSheetReport.rb +14 -5
  428. data/lib/reports/TjpExportRE.rb +14 -19
  429. data/lib/taskjuggler3.rb +15 -0
  430. data/lib/tj3client.rb +9 -7
  431. data/lib/tj3d.rb +38 -10
  432. data/lib/tj3ss_sender.rb +7 -0
  433. data/lib/tj3ts_receiver.rb +1 -0
  434. data/manual/Day_To_Day_Juggling +1 -1
  435. data/manual/Rich_Text_Attributes +8 -0
  436. data/manual/TaskJuggler_2x_Migration +7 -0
  437. data/manual/The_TaskJuggler_Syntax +20 -6
  438. data/prj_cfg.rb +3 -2
  439. data/tasks/changelog.rake +36 -0
  440. data/tasks/csts.rake +2 -3
  441. data/tasks/gem.rake +10 -0
  442. data/tasks/missing.rake +0 -17
  443. data/test/TestSuite/ReportGenerator/Correct/Journal.html +63 -0
  444. data/test/TestSuite/ReportGenerator/Correct/Journal.tjp +14 -0
  445. data/test/TestSuite/{HTML-Reports/LogicalFunctions.tjp → ReportGenerator/Correct/LogicalFunctions1.tjp} +2 -2
  446. data/test/TestSuite/ReportGenerator/Correct/LogicalFunctions2.csv +3 -0
  447. data/test/TestSuite/ReportGenerator/Correct/LogicalFunctions2.tjp +19 -0
  448. data/test/TestSuite/ReportGenerator/Correct/css/tjmanual.css +66 -0
  449. data/test/TestSuite/ReportGenerator/Correct/css/tjreport.css +407 -0
  450. data/test/TestSuite/ReportGenerator/Correct/icons/details.png +0 -0
  451. data/test/TestSuite/ReportGenerator/Correct/icons/flag-green.png +0 -0
  452. data/test/TestSuite/ReportGenerator/Correct/icons/flag-red.png +0 -0
  453. data/test/TestSuite/ReportGenerator/Correct/icons/flag-yellow.png +0 -0
  454. data/test/TestSuite/ReportGenerator/Correct/icons/resource.png +0 -0
  455. data/test/TestSuite/ReportGenerator/Correct/icons/resourcegroup.png +0 -0
  456. data/test/TestSuite/ReportGenerator/Correct/icons/task.png +0 -0
  457. data/test/TestSuite/ReportGenerator/Correct/icons/taskgroup.png +0 -0
  458. data/test/TestSuite/ReportGenerator/Correct/icons/trend-down.png +0 -0
  459. data/test/TestSuite/ReportGenerator/Correct/icons/trend-flat.png +0 -0
  460. data/test/TestSuite/ReportGenerator/Correct/icons/trend-up.png +0 -0
  461. data/test/TestSuite/ReportGenerator/Correct/opennodes.csv +2 -0
  462. data/test/TestSuite/ReportGenerator/Correct/opennodes.tjp +26 -0
  463. data/test/TestSuite/ReportGenerator/Correct/refs/Journal-1.csv +6 -0
  464. data/test/TestSuite/ReportGenerator/Correct/refs/LogicalFunctions1-1.csv +7 -0
  465. data/test/TestSuite/ReportGenerator/Correct/refs/LogicalFunctions2-1.csv +2 -0
  466. data/test/TestSuite/ReportGenerator/Correct/refs/opennodes-1.csv +2 -0
  467. data/test/TestSuite/ReportGenerator/Correct/scripts/wz_tooltip.js +1301 -0
  468. data/test/TestSuite/ReportGenerator/Errors/rtp_report_recursion.tjp +20 -0
  469. data/test/TestSuite/Scheduler/Correct/Container.html +349 -0
  470. data/test/TestSuite/Scheduler/Correct/Limits.tjp +11 -4
  471. data/test/TestSuite/Scheduler/Correct/Shift2.html +464 -150
  472. data/test/TestSuite/Scheduler/Correct/TimeSheet2.html +108 -0
  473. data/test/TestSuite/Scheduler/Correct/TimeSheet2.tjp +7 -0
  474. data/test/TestSuite/Scheduler/Correct/css/tjmanual.css +14 -0
  475. data/test/TestSuite/Scheduler/Correct/css/tjreport.css +233 -21
  476. data/test/TestSuite/Scheduler/Correct/scripts/wz_tooltip.js +20 -20
  477. data/test/TestSuite/StatusSheetTemplates/project.tji +35 -0
  478. data/test/TestSuite/StatusSheetTemplates/project.tjp +56 -0
  479. data/test/TestSuite/StatusSheets/run +3 -2
  480. data/test/TestSuite/Syntax/Correct/Include.tjp +1 -1
  481. data/test/TestSuite/Syntax/Correct/Macro-1.tjp +1 -1
  482. data/test/TestSuite/Syntax/Correct/Macro-2.tjp +6 -0
  483. data/test/TestSuite/Syntax/Correct/Macro-3.tjp +14 -0
  484. data/test/TestSuite/Syntax/Correct/ResourcePrefix.html +32 -0
  485. data/test/TestSuite/Syntax/Correct/css/tjmanual.css +66 -0
  486. data/test/TestSuite/Syntax/Correct/css/tjreport.css +407 -0
  487. data/test/TestSuite/Syntax/Correct/icons/details.png +0 -0
  488. data/test/TestSuite/Syntax/Correct/icons/flag-green.png +0 -0
  489. data/test/TestSuite/Syntax/Correct/icons/flag-red.png +0 -0
  490. data/test/TestSuite/Syntax/Correct/icons/flag-yellow.png +0 -0
  491. data/test/TestSuite/Syntax/Correct/icons/resource.png +0 -0
  492. data/test/TestSuite/Syntax/Correct/icons/resourcegroup.png +0 -0
  493. data/test/TestSuite/Syntax/Correct/icons/task.png +0 -0
  494. data/test/TestSuite/Syntax/Correct/icons/taskgroup.png +0 -0
  495. data/test/TestSuite/Syntax/Correct/icons/trend-down.png +0 -0
  496. data/test/TestSuite/Syntax/Correct/icons/trend-flat.png +0 -0
  497. data/test/TestSuite/Syntax/Correct/icons/trend-up.png +0 -0
  498. data/test/TestSuite/Syntax/Correct/include/dir1/file2.tji +3 -0
  499. data/test/TestSuite/Syntax/Correct/include/dir1/file5.tji +2 -0
  500. data/test/TestSuite/Syntax/Correct/include/dir3/all.tji +3 -0
  501. data/test/TestSuite/Syntax/Correct/include/dir3/file1.tji +2 -0
  502. data/test/TestSuite/Syntax/Correct/include/dir3/file2.tji +1 -0
  503. data/test/TestSuite/Syntax/Correct/scripts/wz_tooltip.js +1301 -0
  504. data/test/TestSuite/Syntax/Correct/tutorial.tjp +13 -13
  505. data/test/TestSuite/Syntax/Errors/empty.tjp +1 -1
  506. data/test/TestSuite/Syntax/Errors/include_recursion.tjp +1 -0
  507. data/test/TestSuite/Syntax/Errors/macro_stack_overflow.tjp +2 -1
  508. data/test/TestSuite/Syntax/Errors/{eof_in_istring1.tjp → no_token_match1.tjp} +2 -2
  509. data/test/TestSuite/Syntax/Errors/{eof_in_istring2.tjp → no_token_match2.tjp} +2 -2
  510. data/test/TestSuite/Syntax/Errors/{eof_in_istring3.tjp → no_token_match3.tjp} +1 -1
  511. data/test/TestSuite/Syntax/Errors/{eof_in_istring4.tjp → no_token_match4.tjp} +1 -1
  512. data/test/TestSuite/Syntax/Errors/{eof_in_istring5.tjp → no_token_match5.tjp} +1 -1
  513. data/test/TestSuite/Syntax/Errors/not_scheduled.tjp +13 -0
  514. data/test/TestSuite/Syntax/Errors/unsupported_token.tjp +1 -1
  515. data/test/TestSuite/TimeSheets/run +5 -5
  516. data/test/test_CSVFile.rb +75 -0
  517. data/test/test_Limits.rb +63 -5
  518. data/test/test_ProjectFileScanner.rb +163 -0
  519. data/test/test_ReportGenerator.rb +81 -0
  520. data/test/test_RichText.rb +21 -3
  521. data/test/test_Scheduler.rb +1 -1
  522. data/test/test_ShiftAssignments.rb +4 -4
  523. data/test/test_Syntax.rb +1 -1
  524. data/test/test_URLParameter.rb +30 -0
  525. metadata +126 -32
  526. data/test/TestSuite/Scheduler/Errors/not_scheduled.tjp +0 -8
  527. data/test/TestSuite/Syntax/Errors/bad_comment.tjp +0 -7
  528. data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/boss_2002-03-01.tji +0 -36
  529. data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/dev1_2002-03-01.tji +0 -48
  530. data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/dev2_2002-03-01.tji +0 -67
  531. data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/dev3_2002-03-01.tji +0 -67
  532. data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/doc_2002-03-01.tji +0 -48
  533. data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/resources.yml +0 -31
  534. data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/test_2002-03-01.tji +0 -36
  535. data/test/TestSuite/TimeSheets/TimeSheetTemplates/acceptable_intervals +0 -1
  536. data/test/TestSuite/TimeSheets/TimeSheets/2002-03-01/all.tji +0 -1
  537. data/test/TestSuite/TimeSheets/TimeSheets/2002-03-01/dev2_2002-03-01.tji +0 -54
  538. data/test/TestSuite/TimeSheets/TimeSheets/all.tji +0 -2
  539. data/test/TestSuite/TimeSheets/receiver.log +0 -102
  540. data/test/TestSuite/TimeSheets/sender.log +0 -794
  541. data/test/TestSuite/TimeSheets/summary.log +0 -884
  542. data/test/TestSuite/TimeSheets/timesheets.log +0 -45
  543. data/test/TestSuite/TimeSheets/tj3d.log +0 -292
  544. data/test/test_TextScanner.rb +0 -95
@@ -69,17 +69,17 @@
69
69
  <h3 class="section-header">Methods</h3>
70
70
  <ul class="link-list">
71
71
 
72
- <li><a href="#M000483">::new</a></li>
72
+ <li><a href="#method-c-new">::new</a></li>
73
73
 
74
- <li><a href="#M000488">#dateToIndex</a></li>
74
+ <li><a href="#method-i-dateToIndex">#dateToIndex</a></li>
75
75
 
76
- <li><a href="#M000486">#get</a></li>
76
+ <li><a href="#method-i-get">#get</a></li>
77
77
 
78
- <li><a href="#M000484">#register</a></li>
78
+ <li><a href="#method-i-register">#register</a></li>
79
79
 
80
- <li><a href="#M000487">#resetCaches</a></li>
80
+ <li><a href="#method-i-resetCaches">#resetCaches</a></li>
81
81
 
82
- <li><a href="#M000485">#set</a></li>
82
+ <li><a href="#method-i-set">#set</a></li>
83
83
 
84
84
  </ul>
85
85
  </div>
@@ -96,6 +96,8 @@
96
96
  <h3 class="section-header">Files</h3>
97
97
  <ul>
98
98
 
99
+ <li class="file"><a href="../CHANGELOG.html">CHANGELOG</a></li>
100
+
99
101
  <li class="file"><a href="../COPYING.html">COPYING</a></li>
100
102
 
101
103
  <li class="file"><a href="../README.html">README</a></li>
@@ -265,6 +267,8 @@
265
267
 
266
268
  <li><a href="../TaskJuggler/NikuResource.html">TaskJuggler::NikuResource</a></li>
267
269
 
270
+ <li><a href="../TaskJuggler/NodeListAttribute.html">TaskJuggler::NodeListAttribute</a></li>
271
+
268
272
  <li><a href="../TaskJuggler/OnShiftCache.html">TaskJuggler::OnShiftCache</a></li>
269
273
 
270
274
  <li><a href="../TaskJuggler/ProcessIntercom.html">TaskJuggler::ProcessIntercom</a></li>
@@ -279,6 +283,8 @@
279
283
 
280
284
  <li><a href="../TaskJuggler/ProjectFileParser.html">TaskJuggler::ProjectFileParser</a></li>
281
285
 
286
+ <li><a href="../TaskJuggler/ProjectFileScanner.html">TaskJuggler::ProjectFileScanner</a></li>
287
+
282
288
  <li><a href="../TaskJuggler/ProjectRecord.html">TaskJuggler::ProjectRecord</a></li>
283
289
 
284
290
  <li><a href="../TaskJuggler/ProjectServer.html">TaskJuggler::ProjectServer</a></li>
@@ -295,12 +301,16 @@
295
301
 
296
302
  <li><a href="../TaskJuggler/Query.html">TaskJuggler::Query</a></li>
297
303
 
304
+ <li><a href="../TaskJuggler/RTFHandlers.html">TaskJuggler::RTFHandlers</a></li>
305
+
298
306
  <li><a href="../TaskJuggler/RTFNavigator.html">TaskJuggler::RTFNavigator</a></li>
299
307
 
300
308
  <li><a href="../TaskJuggler/RTFQuery.html">TaskJuggler::RTFQuery</a></li>
301
309
 
302
310
  <li><a href="../TaskJuggler/RTFReport.html">TaskJuggler::RTFReport</a></li>
303
311
 
312
+ <li><a href="../TaskJuggler/RTFReportLink.html">TaskJuggler::RTFReportLink</a></li>
313
+
304
314
  <li><a href="../TaskJuggler/RealFormat.html">TaskJuggler::RealFormat</a></li>
305
315
 
306
316
  <li><a href="../TaskJuggler/RealFormatAttribute.html">TaskJuggler::RealFormatAttribute</a></li>
@@ -319,6 +329,8 @@
319
329
 
320
330
  <li><a href="../TaskJuggler/ReportServerRecord.html">TaskJuggler::ReportServerRecord</a></li>
321
331
 
332
+ <li><a href="../TaskJuggler/ReportServlet.html">TaskJuggler::ReportServlet</a></li>
333
+
322
334
  <li><a href="../TaskJuggler/ReportTable.html">TaskJuggler::ReportTable</a></li>
323
335
 
324
336
  <li><a href="../TaskJuggler/ReportTableCell.html">TaskJuggler::ReportTableCell</a></li>
@@ -447,6 +459,8 @@
447
459
 
448
460
  <li><a href="../TaskJuggler/TextScanner/FileStreamHandle.html">TaskJuggler::TextScanner::FileStreamHandle</a></li>
449
461
 
462
+ <li><a href="../TaskJuggler/TextScanner/MacroStackEntry.html">TaskJuggler::TextScanner::MacroStackEntry</a></li>
463
+
450
464
  <li><a href="../TaskJuggler/TextScanner/StreamHandle.html">TaskJuggler::TextScanner::StreamHandle</a></li>
451
465
 
452
466
  <li><a href="../TaskJuggler/TimeSheet.html">TaskJuggler::TimeSheet</a></li>
@@ -491,8 +505,12 @@
491
505
 
492
506
  <li><a href="../TaskJuggler/TjpSyntaxRules.html">TaskJuggler::TjpSyntaxRules</a></li>
493
507
 
508
+ <li><a href="../TaskJuggler/URLParameter.html">TaskJuggler::URLParameter</a></li>
509
+
494
510
  <li><a href="../TaskJuggler/UserManual.html">TaskJuggler::UserManual</a></li>
495
511
 
512
+ <li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
513
+
496
514
  <li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
497
515
 
498
516
  <li><a href="../TaskJuggler/WorkingHoursAttribute.html">TaskJuggler::WorkingHoursAttribute</a></li>
@@ -519,6 +537,8 @@
519
537
 
520
538
  <li><a href="../String.html">String</a></li>
521
539
 
540
+ <li><a href="../StringIO.html">StringIO</a></li>
541
+
522
542
  </ul>
523
543
  <div id="no-class-search-results" style="display: none;">No matching classes.</div>
524
544
  </div>
@@ -557,7 +577,7 @@ working hours can share the cache.
557
577
 
558
578
 
559
579
  <div id="new-method" class="method-detail ">
560
- <a name="M000483"></a>
580
+ <a name="method-c-new"></a>
561
581
 
562
582
  <div class="method-heading">
563
583
 
@@ -608,7 +628,7 @@ should be only one for the application.
608
628
 
609
629
 
610
630
  <div id="get-method" class="method-detail ">
611
- <a name="M000486"></a>
631
+ <a name="method-i-get"></a>
612
632
 
613
633
  <div class="method-heading">
614
634
 
@@ -644,7 +664,7 @@ Get the value for a given <tt>cache</tt> and <tt>date</tt>.
644
664
 
645
665
 
646
666
  <div id="register-method" class="method-detail ">
647
- <a name="M000484"></a>
667
+ <a name="method-i-register"></a>
648
668
 
649
669
  <div class="method-heading">
650
670
 
@@ -696,7 +716,7 @@ OnShiftCache::get calls.
696
716
 
697
717
 
698
718
  <div id="set-method" class="method-detail ">
699
- <a name="M000485"></a>
719
+ <a name="method-i-set"></a>
700
720
 
701
721
  <div class="method-heading">
702
722
 
@@ -738,7 +758,7 @@ Set the <tt>value</tt> for a given <tt>cache</tt> and <tt>date</tt>.
738
758
 
739
759
 
740
760
  <div id="date-o-ndex-method" class="method-detail ">
741
- <a name="M000488"></a>
761
+ <a name="method-i-dateToIndex"></a>
742
762
 
743
763
  <div class="method-heading">
744
764
 
@@ -805,7 +825,7 @@ have to correct these guessed values, we have to clear the caches.
805
825
 
806
826
 
807
827
  <div id="reset-aches-method" class="method-detail ">
808
- <a name="M000487"></a>
828
+ <a name="method-i-resetCaches"></a>
809
829
 
810
830
  <div class="method-heading">
811
831
 
@@ -62,19 +62,23 @@
62
62
  <h3 class="section-header">Methods</h3>
63
63
  <ul class="link-list">
64
64
 
65
- <li><a href="#M001573">#checkKey</a></li>
65
+ <li><a href="#method-i-checkKey">#checkKey</a></li>
66
66
 
67
- <li><a href="#M001570">#connect</a></li>
67
+ <li><a href="#method-i-connect">#connect</a></li>
68
68
 
69
- <li><a href="#M001571">#disconnect</a></li>
69
+ <li><a href="#method-i-disconnect">#disconnect</a></li>
70
70
 
71
- <li><a href="#M001572">#generateAuthKey</a></li>
71
+ <li><a href="#method-i-generateAuthKey">#generateAuthKey</a></li>
72
72
 
73
- <li><a href="#M001568">#initIntercom</a></li>
73
+ <li><a href="#method-i-initIntercom">#initIntercom</a></li>
74
74
 
75
- <li><a href="#M001574">#startTerminator</a></li>
75
+ <li><a href="#method-i-restartTimer">#restartTimer</a></li>
76
76
 
77
- <li><a href="#M001569">#terminate</a></li>
77
+ <li><a href="#method-i-startTerminator">#startTerminator</a></li>
78
+
79
+ <li><a href="#method-i-terminate">#terminate</a></li>
80
+
81
+ <li><a href="#method-i-timerExpired%3F">#timerExpired?</a></li>
78
82
 
79
83
  </ul>
80
84
  </div>
@@ -91,6 +95,8 @@
91
95
  <h3 class="section-header">Files</h3>
92
96
  <ul>
93
97
 
98
+ <li class="file"><a href="../CHANGELOG.html">CHANGELOG</a></li>
99
+
94
100
  <li class="file"><a href="../COPYING.html">COPYING</a></li>
95
101
 
96
102
  <li class="file"><a href="../README.html">README</a></li>
@@ -260,6 +266,8 @@
260
266
 
261
267
  <li><a href="../TaskJuggler/NikuResource.html">TaskJuggler::NikuResource</a></li>
262
268
 
269
+ <li><a href="../TaskJuggler/NodeListAttribute.html">TaskJuggler::NodeListAttribute</a></li>
270
+
263
271
  <li><a href="../TaskJuggler/OnShiftCache.html">TaskJuggler::OnShiftCache</a></li>
264
272
 
265
273
  <li><a href="../TaskJuggler/ProcessIntercom.html">TaskJuggler::ProcessIntercom</a></li>
@@ -274,6 +282,8 @@
274
282
 
275
283
  <li><a href="../TaskJuggler/ProjectFileParser.html">TaskJuggler::ProjectFileParser</a></li>
276
284
 
285
+ <li><a href="../TaskJuggler/ProjectFileScanner.html">TaskJuggler::ProjectFileScanner</a></li>
286
+
277
287
  <li><a href="../TaskJuggler/ProjectRecord.html">TaskJuggler::ProjectRecord</a></li>
278
288
 
279
289
  <li><a href="../TaskJuggler/ProjectServer.html">TaskJuggler::ProjectServer</a></li>
@@ -290,12 +300,16 @@
290
300
 
291
301
  <li><a href="../TaskJuggler/Query.html">TaskJuggler::Query</a></li>
292
302
 
303
+ <li><a href="../TaskJuggler/RTFHandlers.html">TaskJuggler::RTFHandlers</a></li>
304
+
293
305
  <li><a href="../TaskJuggler/RTFNavigator.html">TaskJuggler::RTFNavigator</a></li>
294
306
 
295
307
  <li><a href="../TaskJuggler/RTFQuery.html">TaskJuggler::RTFQuery</a></li>
296
308
 
297
309
  <li><a href="../TaskJuggler/RTFReport.html">TaskJuggler::RTFReport</a></li>
298
310
 
311
+ <li><a href="../TaskJuggler/RTFReportLink.html">TaskJuggler::RTFReportLink</a></li>
312
+
299
313
  <li><a href="../TaskJuggler/RealFormat.html">TaskJuggler::RealFormat</a></li>
300
314
 
301
315
  <li><a href="../TaskJuggler/RealFormatAttribute.html">TaskJuggler::RealFormatAttribute</a></li>
@@ -314,6 +328,8 @@
314
328
 
315
329
  <li><a href="../TaskJuggler/ReportServerRecord.html">TaskJuggler::ReportServerRecord</a></li>
316
330
 
331
+ <li><a href="../TaskJuggler/ReportServlet.html">TaskJuggler::ReportServlet</a></li>
332
+
317
333
  <li><a href="../TaskJuggler/ReportTable.html">TaskJuggler::ReportTable</a></li>
318
334
 
319
335
  <li><a href="../TaskJuggler/ReportTableCell.html">TaskJuggler::ReportTableCell</a></li>
@@ -442,6 +458,8 @@
442
458
 
443
459
  <li><a href="../TaskJuggler/TextScanner/FileStreamHandle.html">TaskJuggler::TextScanner::FileStreamHandle</a></li>
444
460
 
461
+ <li><a href="../TaskJuggler/TextScanner/MacroStackEntry.html">TaskJuggler::TextScanner::MacroStackEntry</a></li>
462
+
445
463
  <li><a href="../TaskJuggler/TextScanner/StreamHandle.html">TaskJuggler::TextScanner::StreamHandle</a></li>
446
464
 
447
465
  <li><a href="../TaskJuggler/TimeSheet.html">TaskJuggler::TimeSheet</a></li>
@@ -486,8 +504,12 @@
486
504
 
487
505
  <li><a href="../TaskJuggler/TjpSyntaxRules.html">TaskJuggler::TjpSyntaxRules</a></li>
488
506
 
507
+ <li><a href="../TaskJuggler/URLParameter.html">TaskJuggler::URLParameter</a></li>
508
+
489
509
  <li><a href="../TaskJuggler/UserManual.html">TaskJuggler::UserManual</a></li>
490
510
 
511
+ <li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
512
+
491
513
  <li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
492
514
 
493
515
  <li><a href="../TaskJuggler/WorkingHoursAttribute.html">TaskJuggler::WorkingHoursAttribute</a></li>
@@ -514,6 +536,8 @@
514
536
 
515
537
  <li><a href="../String.html">String</a></li>
516
538
 
539
+ <li><a href="../StringIO.html">StringIO</a></li>
540
+
517
541
  </ul>
518
542
  <div id="no-class-search-results" style="display: none;">No matching classes.</div>
519
543
  </div>
@@ -542,7 +566,7 @@
542
566
 
543
567
 
544
568
  <div id="check-ey-method" class="method-detail ">
545
- <a name="M001573"></a>
569
+ <a name="method-i-checkKey"></a>
546
570
 
547
571
  <div class="method-heading">
548
572
 
@@ -561,17 +585,17 @@
561
585
  <div class="method-source-code"
562
586
  id="check-ey-source">
563
587
  <pre>
564
- <span class="ruby-comment cmt"># File lib/daemon/ProcessIntercom.rb, line 87</span>
565
- 87: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">checkKey</span>(<span class="ruby-identifier">authKey</span>, <span class="ruby-identifier">command</span>)
566
- 88: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">authKey</span> <span class="ruby-operator">==</span> <span class="ruby-ivar">@authKey</span>
567
- 89: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;Accepted authentication key for command '#{command}'&quot;</span>)
568
- 90: <span class="ruby-keyword kw">else</span>
569
- 91: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">warning</span>(<span class="ruby-node">&quot;Rejected wrong authentication key #{authKey}&quot;</span> <span class="ruby-operator">+</span>
570
- 92: <span class="ruby-node">&quot;for command '#{command}'&quot;</span>)
571
- 93: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
572
- 94: <span class="ruby-keyword kw">end</span>
573
- 95: <span class="ruby-keyword kw">true</span>
574
- 96: <span class="ruby-keyword kw">end</span></pre>
588
+ <span class="ruby-comment cmt"># File lib/daemon/ProcessIntercom.rb, line 98</span>
589
+ 98: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">checkKey</span>(<span class="ruby-identifier">authKey</span>, <span class="ruby-identifier">command</span>)
590
+ 99: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">authKey</span> <span class="ruby-operator">==</span> <span class="ruby-ivar">@authKey</span>
591
+ 100: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;Accepted authentication key for command '#{command}'&quot;</span>)
592
+ 101: <span class="ruby-keyword kw">else</span>
593
+ 102: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">warning</span>(<span class="ruby-node">&quot;Rejected wrong authentication key #{authKey}&quot;</span> <span class="ruby-operator">+</span>
594
+ 103: <span class="ruby-node">&quot;for command '#{command}'&quot;</span>)
595
+ 104: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
596
+ 105: <span class="ruby-keyword kw">end</span>
597
+ 106: <span class="ruby-keyword kw">true</span>
598
+ 107: <span class="ruby-keyword kw">end</span></pre>
575
599
  </div>
576
600
 
577
601
  </div>
@@ -583,7 +607,7 @@
583
607
 
584
608
 
585
609
  <div id="connect-method" class="method-detail ">
586
- <a name="M001570"></a>
610
+ <a name="method-i-connect"></a>
587
611
 
588
612
  <div class="method-heading">
589
613
 
@@ -602,22 +626,24 @@
602
626
  <div class="method-source-code"
603
627
  id="connect-source">
604
628
  <pre>
605
- <span class="ruby-comment cmt"># File lib/daemon/ProcessIntercom.rb, line 57</span>
606
- 57: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">connect</span>(<span class="ruby-identifier">stdout</span>, <span class="ruby-identifier">stderr</span>, <span class="ruby-identifier">stdin</span>, <span class="ruby-identifier">silent</span>)
607
- 58: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-value str">'Rerouting ProjectServer standard IO to client'</span>)
608
- 59: <span class="ruby-comment cmt"># Make sure that all output to STDOUT and STDERR is sent to the client.</span>
609
- 60: <span class="ruby-comment cmt"># Input is read from the client STDIN. We save a copy of the old file</span>
610
- 61: <span class="ruby-comment cmt"># handles so we can restore then later again.</span>
611
- 62: <span class="ruby-ivar">@stdout</span> = <span class="ruby-identifier">$stdout</span>
612
- 63: <span class="ruby-ivar">@stderr</span> = <span class="ruby-identifier">$stderr</span>
613
- 64: <span class="ruby-ivar">@stdin</span> = <span class="ruby-identifier">$stdin</span>
614
- 65: <span class="ruby-identifier">$stdout</span> = <span class="ruby-identifier">stdout</span>
615
- 66: <span class="ruby-identifier">$stderr</span> = <span class="ruby-identifier">stderr</span>
616
- 67: <span class="ruby-identifier">$stdin</span> = <span class="ruby-identifier">stdin</span>
617
- 68: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-value str">'IO is now routed to the client'</span>)
618
- 69: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">silent</span> = <span class="ruby-identifier">silent</span>
619
- 70: <span class="ruby-keyword kw">true</span>
620
- 71: <span class="ruby-keyword kw">end</span></pre>
629
+ <span class="ruby-comment cmt"># File lib/daemon/ProcessIntercom.rb, line 64</span>
630
+ 64: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">connect</span>(<span class="ruby-identifier">stdout</span>, <span class="ruby-identifier">stderr</span>, <span class="ruby-identifier">stdin</span>, <span class="ruby-identifier">silent</span>)
631
+ 65: <span class="ruby-comment cmt"># Set the client lock.</span>
632
+ 66: <span class="ruby-ivar">@clientConnection</span>.<span class="ruby-identifier">lock</span>
633
+ 67: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-value str">'Rerouting ProjectServer standard IO to client'</span>)
634
+ 68: <span class="ruby-comment cmt"># Make sure that all output to STDOUT and STDERR is sent to the client.</span>
635
+ 69: <span class="ruby-comment cmt"># Input is read from the client STDIN. We save a copy of the old file</span>
636
+ 70: <span class="ruby-comment cmt"># handles so we can restore then later again.</span>
637
+ 71: <span class="ruby-ivar">@stdout</span> = <span class="ruby-identifier">$stdout</span>
638
+ 72: <span class="ruby-ivar">@stderr</span> = <span class="ruby-identifier">$stderr</span>
639
+ 73: <span class="ruby-ivar">@stdin</span> = <span class="ruby-identifier">$stdin</span>
640
+ 74: <span class="ruby-identifier">$stdout</span> = <span class="ruby-identifier">stdout</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">stdout</span>
641
+ 75: <span class="ruby-identifier">$stderr</span> = <span class="ruby-identifier">stderr</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">stdout</span>
642
+ 76: <span class="ruby-identifier">$stdin</span> = <span class="ruby-identifier">stdin</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">stdin</span>
643
+ 77: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-value str">'IO is now routed to the client'</span>)
644
+ 78: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">silent</span> = <span class="ruby-identifier">silent</span>
645
+ 79: <span class="ruby-keyword kw">true</span>
646
+ 80: <span class="ruby-keyword kw">end</span></pre>
621
647
  </div>
622
648
 
623
649
  </div>
@@ -629,7 +655,7 @@
629
655
 
630
656
 
631
657
  <div id="disconnect-method" class="method-detail ">
632
- <a name="M001571"></a>
658
+ <a name="method-i-disconnect"></a>
633
659
 
634
660
  <div class="method-heading">
635
661
 
@@ -648,16 +674,18 @@
648
674
  <div class="method-source-code"
649
675
  id="disconnect-source">
650
676
  <pre>
651
- <span class="ruby-comment cmt"># File lib/daemon/ProcessIntercom.rb, line 73</span>
652
- 73: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">disconnect</span>
653
- 74: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-value str">'Restoring IO'</span>)
654
- 75: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">silent</span> = <span class="ruby-keyword kw">true</span>
655
- 76: <span class="ruby-identifier">$stdout</span> = <span class="ruby-ivar">@stdout</span>
656
- 77: <span class="ruby-identifier">$stderr</span> = <span class="ruby-ivar">@stderr</span>
657
- 78: <span class="ruby-identifier">$stdin</span> = <span class="ruby-ivar">@stdin</span>
658
- 79: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-value str">'Standard IO has been restored'</span>)
659
- 80: <span class="ruby-keyword kw">true</span>
660
- 81: <span class="ruby-keyword kw">end</span></pre>
677
+ <span class="ruby-comment cmt"># File lib/daemon/ProcessIntercom.rb, line 82</span>
678
+ 82: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">disconnect</span>
679
+ 83: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-value str">'Restoring IO'</span>)
680
+ 84: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">silent</span> = <span class="ruby-keyword kw">true</span>
681
+ 85: <span class="ruby-identifier">$stdout</span> = <span class="ruby-ivar">@stdout</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@stdout</span>
682
+ 86: <span class="ruby-identifier">$stderr</span> = <span class="ruby-ivar">@stderr</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@stderr</span>
683
+ 87: <span class="ruby-identifier">$stdin</span> = <span class="ruby-ivar">@stdin</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@stdin</span>
684
+ 88: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-value str">'Standard IO has been restored'</span>)
685
+ 89: <span class="ruby-comment cmt"># Release the client lock</span>
686
+ 90: <span class="ruby-ivar">@clientConnection</span>.<span class="ruby-identifier">unlock</span>
687
+ 91: <span class="ruby-keyword kw">true</span>
688
+ 92: <span class="ruby-keyword kw">end</span></pre>
661
689
  </div>
662
690
 
663
691
  </div>
@@ -669,7 +697,7 @@
669
697
 
670
698
 
671
699
  <div id="generate-uth-ey-method" class="method-detail ">
672
- <a name="M001572"></a>
700
+ <a name="method-i-generateAuthKey"></a>
673
701
 
674
702
  <div class="method-heading">
675
703
 
@@ -688,10 +716,10 @@
688
716
  <div class="method-source-code"
689
717
  id="generate-uth-ey-source">
690
718
  <pre>
691
- <span class="ruby-comment cmt"># File lib/daemon/ProcessIntercom.rb, line 83</span>
692
- 83: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateAuthKey</span>
693
- 84: <span class="ruby-identifier">rand</span>(<span class="ruby-value">1000000000</span>).<span class="ruby-identifier">to_s</span>
694
- 85: <span class="ruby-keyword kw">end</span></pre>
719
+ <span class="ruby-comment cmt"># File lib/daemon/ProcessIntercom.rb, line 94</span>
720
+ 94: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateAuthKey</span>
721
+ 95: <span class="ruby-identifier">rand</span>(<span class="ruby-value">1000000000</span>).<span class="ruby-identifier">to_s</span>
722
+ 96: <span class="ruby-keyword kw">end</span></pre>
695
723
  </div>
696
724
 
697
725
  </div>
@@ -703,7 +731,7 @@
703
731
 
704
732
 
705
733
  <div id="init-ntercom-method" class="method-detail ">
706
- <a name="M001568"></a>
734
+ <a name="method-i-initIntercom"></a>
707
735
 
708
736
  <div class="method-heading">
709
737
 
@@ -732,7 +760,54 @@
732
760
  47: <span class="ruby-comment cmt"># This flag will be set to true by DRb method calls to terminate the</span>
733
761
  48: <span class="ruby-comment cmt"># process.</span>
734
762
  49: <span class="ruby-ivar">@terminate</span> = <span class="ruby-keyword kw">false</span>
735
- 50: <span class="ruby-keyword kw">end</span></pre>
763
+ 50:
764
+ 51: <span class="ruby-comment cmt"># This mutex is locked while a client is connected.</span>
765
+ 52: <span class="ruby-ivar">@clientConnection</span> = <span class="ruby-constant">Mutex</span>.<span class="ruby-identifier">new</span>
766
+ 53: <span class="ruby-comment cmt"># This lock protects the @timerStart</span>
767
+ 54: <span class="ruby-ivar">@timeLock</span> = <span class="ruby-constant">Monitor</span>.<span class="ruby-identifier">new</span>
768
+ 55: <span class="ruby-comment cmt"># The time stamp of the last client interaction.</span>
769
+ 56: <span class="ruby-ivar">@timerStart</span> = <span class="ruby-keyword kw">nil</span>
770
+ 57: <span class="ruby-keyword kw">end</span></pre>
771
+ </div>
772
+
773
+ </div>
774
+
775
+
776
+
777
+
778
+ </div>
779
+
780
+
781
+ <div id="restart-imer-method" class="method-detail ">
782
+ <a name="method-i-restartTimer"></a>
783
+
784
+ <div class="method-heading">
785
+
786
+ <span class="method-name">restartTimer</span><span
787
+ class="method-args">()</span>
788
+ <span class="method-click-advice">click to toggle source</span>
789
+
790
+ </div>
791
+
792
+ <div class="method-description">
793
+
794
+ <p>
795
+ This function must be called after each client interaction to restart the
796
+ client connection timer.
797
+ </p>
798
+
799
+
800
+
801
+ <div class="method-source-code"
802
+ id="restart-imer-source">
803
+ <pre>
804
+ <span class="ruby-comment cmt"># File lib/daemon/ProcessIntercom.rb, line 111</span>
805
+ 111: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">restartTimer</span>
806
+ 112: <span class="ruby-ivar">@timeLock</span>.<span class="ruby-identifier">synchronize</span> <span class="ruby-keyword kw">do</span>
807
+ 113: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-value str">'Reseting client connection timer'</span>)
808
+ 114: <span class="ruby-ivar">@timerStart</span> = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">new</span>
809
+ 115: <span class="ruby-keyword kw">end</span>
810
+ 116: <span class="ruby-keyword kw">end</span></pre>
736
811
  </div>
737
812
 
738
813
  </div>
@@ -744,7 +819,7 @@
744
819
 
745
820
 
746
821
  <div id="start-erminator-method" class="method-detail ">
747
- <a name="M001574"></a>
822
+ <a name="method-i-startTerminator"></a>
748
823
 
749
824
  <div class="method-heading">
750
825
 
@@ -756,29 +831,41 @@
756
831
 
757
832
  <div class="method-description">
758
833
 
759
-
834
+ <p>
835
+ This method starts a new thread and waits for the @terminate variable to be
836
+ true. If that happens, it waits for the @clientConnection lock or forces an
837
+ exit after the timeout has been reached. It shuts down the DRb server.
838
+ </p>
760
839
 
761
840
 
762
841
 
763
842
  <div class="method-source-code"
764
843
  id="start-erminator-source">
765
844
  <pre>
766
- <span class="ruby-comment cmt"># File lib/daemon/ProcessIntercom.rb, line 98</span>
767
- 98: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">startTerminator</span>
768
- 99: <span class="ruby-constant">Thread</span>.<span class="ruby-identifier">new</span> <span class="ruby-keyword kw">do</span>
769
- 100: <span class="ruby-identifier">loop</span> <span class="ruby-keyword kw">do</span>
770
- 101: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@terminate</span>
771
- 102: <span class="ruby-comment cmt"># Give the caller a chance to properly terminate the connection.</span>
772
- 103: <span class="ruby-identifier">sleep</span> <span class="ruby-value">1</span>
773
- 104: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-value str">'Shutting down DRb server'</span>)
774
- 105: <span class="ruby-constant">DRb</span>.<span class="ruby-identifier">stop_service</span>
775
- 106: <span class="ruby-keyword kw">break</span>
776
- 107: <span class="ruby-keyword kw">else</span>
777
- 108: <span class="ruby-identifier">sleep</span> <span class="ruby-value">1</span>
778
- 109: <span class="ruby-keyword kw">end</span>
779
- 110: <span class="ruby-keyword kw">end</span>
780
- 111: <span class="ruby-keyword kw">end</span>
781
- 112: <span class="ruby-keyword kw">end</span></pre>
845
+ <span class="ruby-comment cmt"># File lib/daemon/ProcessIntercom.rb, line 131</span>
846
+ 131: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">startTerminator</span>
847
+ 132: <span class="ruby-constant">Thread</span>.<span class="ruby-identifier">new</span> <span class="ruby-keyword kw">do</span>
848
+ 133: <span class="ruby-identifier">loop</span> <span class="ruby-keyword kw">do</span>
849
+ 134: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@terminate</span>
850
+ 135: <span class="ruby-comment cmt"># We wait for the client to propery disconnect. In case this does</span>
851
+ 136: <span class="ruby-comment cmt"># not happen, we'll wait for the timeout and exit anyway.</span>
852
+ 137: <span class="ruby-identifier">restartTimer</span>
853
+ 138: <span class="ruby-keyword kw">while</span> <span class="ruby-ivar">@clientConnection</span>.<span class="ruby-identifier">locked?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">timerExpired?</span> <span class="ruby-keyword kw">do</span>
854
+ 139: <span class="ruby-identifier">sleep</span> <span class="ruby-value">1</span>
855
+ 140: <span class="ruby-keyword kw">end</span>
856
+ 141: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">timerExpired?</span>
857
+ 142: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">warning</span>(<span class="ruby-value str">'Shutting down DRb server due to timeout'</span>)
858
+ 143: <span class="ruby-keyword kw">else</span>
859
+ 144: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-value str">'Shutting down DRb server'</span>)
860
+ 145: <span class="ruby-keyword kw">end</span>
861
+ 146: <span class="ruby-constant">DRb</span>.<span class="ruby-identifier">stop_service</span>
862
+ 147: <span class="ruby-keyword kw">break</span>
863
+ 148: <span class="ruby-keyword kw">else</span>
864
+ 149: <span class="ruby-identifier">sleep</span> <span class="ruby-value">1</span>
865
+ 150: <span class="ruby-keyword kw">end</span>
866
+ 151: <span class="ruby-keyword kw">end</span>
867
+ 152: <span class="ruby-keyword kw">end</span>
868
+ 153: <span class="ruby-keyword kw">end</span></pre>
782
869
  </div>
783
870
 
784
871
  </div>
@@ -790,7 +877,7 @@
790
877
 
791
878
 
792
879
  <div id="terminate-method" class="method-detail ">
793
- <a name="M001569"></a>
880
+ <a name="method-i-terminate"></a>
794
881
 
795
882
  <div class="method-heading">
796
883
 
@@ -809,11 +896,51 @@
809
896
  <div class="method-source-code"
810
897
  id="terminate-source">
811
898
  <pre>
812
- <span class="ruby-comment cmt"># File lib/daemon/ProcessIntercom.rb, line 52</span>
813
- 52: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">terminate</span>
814
- 53: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-value str">'Terminating on external request'</span>)
815
- 54: <span class="ruby-ivar">@terminate</span> = <span class="ruby-keyword kw">true</span>
816
- 55: <span class="ruby-keyword kw">end</span></pre>
899
+ <span class="ruby-comment cmt"># File lib/daemon/ProcessIntercom.rb, line 59</span>
900
+ 59: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">terminate</span>
901
+ 60: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-value str">'Terminating on external request'</span>)
902
+ 61: <span class="ruby-ivar">@terminate</span> = <span class="ruby-keyword kw">true</span>
903
+ 62: <span class="ruby-keyword kw">end</span></pre>
904
+ </div>
905
+
906
+ </div>
907
+
908
+
909
+
910
+
911
+ </div>
912
+
913
+
914
+ <div id="timer-xpired--method" class="method-detail ">
915
+ <a name="method-i-timerExpired%3F"></a>
916
+
917
+ <div class="method-heading">
918
+
919
+ <span class="method-name">timerExpired?</span><span
920
+ class="method-args">()</span>
921
+ <span class="method-click-advice">click to toggle source</span>
922
+
923
+ </div>
924
+
925
+ <div class="method-description">
926
+
927
+ <p>
928
+ Check if the client interaction timer has already expired.
929
+ </p>
930
+
931
+
932
+
933
+ <div class="method-source-code"
934
+ id="timer-xpired--source">
935
+ <pre>
936
+ <span class="ruby-comment cmt"># File lib/daemon/ProcessIntercom.rb, line 119</span>
937
+ 119: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">timerExpired?</span>
938
+ 120: <span class="ruby-identifier">res</span> = <span class="ruby-keyword kw">nil</span>
939
+ 121: <span class="ruby-ivar">@timeLock</span>.<span class="ruby-identifier">synchronize</span> <span class="ruby-keyword kw">do</span>
940
+ 122: <span class="ruby-identifier">res</span> = (<span class="ruby-constant">Time</span>.<span class="ruby-identifier">new</span> <span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@timerStart</span> <span class="ruby-operator">+</span> <span class="ruby-value">2</span> * <span class="ruby-value">60</span> * <span class="ruby-value">60</span>)
941
+ 123: <span class="ruby-keyword kw">end</span>
942
+ 124: <span class="ruby-identifier">res</span>
943
+ 125: <span class="ruby-keyword kw">end</span></pre>
817
944
  </div>
818
945
 
819
946
  </div>