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,9 +69,9 @@
69
69
  <h3 class="section-header">Methods</h3>
70
70
  <ul class="link-list">
71
71
 
72
- <li><a href="#M001100">::new</a></li>
72
+ <li><a href="#method-c-new">::new</a></li>
73
73
 
74
- <li><a href="#M001101">#to_s</a></li>
74
+ <li><a href="#method-i-to_s">#to_s</a></li>
75
75
 
76
76
  </ul>
77
77
  </div>
@@ -88,6 +88,8 @@
88
88
  <h3 class="section-header">Files</h3>
89
89
  <ul>
90
90
 
91
+ <li class="file"><a href="../CHANGELOG.html">CHANGELOG</a></li>
92
+
91
93
  <li class="file"><a href="../COPYING.html">COPYING</a></li>
92
94
 
93
95
  <li class="file"><a href="../README.html">README</a></li>
@@ -257,6 +259,8 @@
257
259
 
258
260
  <li><a href="../TaskJuggler/NikuResource.html">TaskJuggler::NikuResource</a></li>
259
261
 
262
+ <li><a href="../TaskJuggler/NodeListAttribute.html">TaskJuggler::NodeListAttribute</a></li>
263
+
260
264
  <li><a href="../TaskJuggler/OnShiftCache.html">TaskJuggler::OnShiftCache</a></li>
261
265
 
262
266
  <li><a href="../TaskJuggler/ProcessIntercom.html">TaskJuggler::ProcessIntercom</a></li>
@@ -271,6 +275,8 @@
271
275
 
272
276
  <li><a href="../TaskJuggler/ProjectFileParser.html">TaskJuggler::ProjectFileParser</a></li>
273
277
 
278
+ <li><a href="../TaskJuggler/ProjectFileScanner.html">TaskJuggler::ProjectFileScanner</a></li>
279
+
274
280
  <li><a href="../TaskJuggler/ProjectRecord.html">TaskJuggler::ProjectRecord</a></li>
275
281
 
276
282
  <li><a href="../TaskJuggler/ProjectServer.html">TaskJuggler::ProjectServer</a></li>
@@ -287,12 +293,16 @@
287
293
 
288
294
  <li><a href="../TaskJuggler/Query.html">TaskJuggler::Query</a></li>
289
295
 
296
+ <li><a href="../TaskJuggler/RTFHandlers.html">TaskJuggler::RTFHandlers</a></li>
297
+
290
298
  <li><a href="../TaskJuggler/RTFNavigator.html">TaskJuggler::RTFNavigator</a></li>
291
299
 
292
300
  <li><a href="../TaskJuggler/RTFQuery.html">TaskJuggler::RTFQuery</a></li>
293
301
 
294
302
  <li><a href="../TaskJuggler/RTFReport.html">TaskJuggler::RTFReport</a></li>
295
303
 
304
+ <li><a href="../TaskJuggler/RTFReportLink.html">TaskJuggler::RTFReportLink</a></li>
305
+
296
306
  <li><a href="../TaskJuggler/RealFormat.html">TaskJuggler::RealFormat</a></li>
297
307
 
298
308
  <li><a href="../TaskJuggler/RealFormatAttribute.html">TaskJuggler::RealFormatAttribute</a></li>
@@ -311,6 +321,8 @@
311
321
 
312
322
  <li><a href="../TaskJuggler/ReportServerRecord.html">TaskJuggler::ReportServerRecord</a></li>
313
323
 
324
+ <li><a href="../TaskJuggler/ReportServlet.html">TaskJuggler::ReportServlet</a></li>
325
+
314
326
  <li><a href="../TaskJuggler/ReportTable.html">TaskJuggler::ReportTable</a></li>
315
327
 
316
328
  <li><a href="../TaskJuggler/ReportTableCell.html">TaskJuggler::ReportTableCell</a></li>
@@ -439,6 +451,8 @@
439
451
 
440
452
  <li><a href="../TaskJuggler/TextScanner/FileStreamHandle.html">TaskJuggler::TextScanner::FileStreamHandle</a></li>
441
453
 
454
+ <li><a href="../TaskJuggler/TextScanner/MacroStackEntry.html">TaskJuggler::TextScanner::MacroStackEntry</a></li>
455
+
442
456
  <li><a href="../TaskJuggler/TextScanner/StreamHandle.html">TaskJuggler::TextScanner::StreamHandle</a></li>
443
457
 
444
458
  <li><a href="../TaskJuggler/TimeSheet.html">TaskJuggler::TimeSheet</a></li>
@@ -483,8 +497,12 @@
483
497
 
484
498
  <li><a href="../TaskJuggler/TjpSyntaxRules.html">TaskJuggler::TjpSyntaxRules</a></li>
485
499
 
500
+ <li><a href="../TaskJuggler/URLParameter.html">TaskJuggler::URLParameter</a></li>
501
+
486
502
  <li><a href="../TaskJuggler/UserManual.html">TaskJuggler::UserManual</a></li>
487
503
 
504
+ <li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
505
+
488
506
  <li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
489
507
 
490
508
  <li><a href="../TaskJuggler/WorkingHoursAttribute.html">TaskJuggler::WorkingHoursAttribute</a></li>
@@ -511,6 +529,8 @@
511
529
 
512
530
  <li><a href="../String.html">String</a></li>
513
531
 
532
+ <li><a href="../StringIO.html">StringIO</a></li>
533
+
514
534
  </ul>
515
535
  <div id="no-class-search-results" style="display: none;">No matching classes.</div>
516
536
  </div>
@@ -593,7 +613,7 @@ Simple class that holds the info about a source file reference.
593
613
 
594
614
 
595
615
  <div id="new-method" class="method-detail ">
596
- <a name="M001100"></a>
616
+ <a name="method-c-new"></a>
597
617
 
598
618
  <div class="method-heading">
599
619
 
@@ -639,7 +659,7 @@ file, <em>col</em> is the column number in the line.
639
659
 
640
660
 
641
661
  <div id="to-s-method" class="method-detail ">
642
- <a name="M001101"></a>
662
+ <a name="method-i-to_s"></a>
643
663
 
644
664
  <div class="method-heading">
645
665
 
@@ -69,7 +69,7 @@
69
69
  <h3 class="section-header">Methods</h3>
70
70
  <ul class="link-list">
71
71
 
72
- <li><a href="#M000000">::new</a></li>
72
+ <li><a href="#method-c-new">::new</a></li>
73
73
 
74
74
  </ul>
75
75
  </div>
@@ -86,6 +86,8 @@
86
86
  <h3 class="section-header">Files</h3>
87
87
  <ul>
88
88
 
89
+ <li class="file"><a href="../CHANGELOG.html">CHANGELOG</a></li>
90
+
89
91
  <li class="file"><a href="../COPYING.html">COPYING</a></li>
90
92
 
91
93
  <li class="file"><a href="../README.html">README</a></li>
@@ -255,6 +257,8 @@
255
257
 
256
258
  <li><a href="../TaskJuggler/NikuResource.html">TaskJuggler::NikuResource</a></li>
257
259
 
260
+ <li><a href="../TaskJuggler/NodeListAttribute.html">TaskJuggler::NodeListAttribute</a></li>
261
+
258
262
  <li><a href="../TaskJuggler/OnShiftCache.html">TaskJuggler::OnShiftCache</a></li>
259
263
 
260
264
  <li><a href="../TaskJuggler/ProcessIntercom.html">TaskJuggler::ProcessIntercom</a></li>
@@ -269,6 +273,8 @@
269
273
 
270
274
  <li><a href="../TaskJuggler/ProjectFileParser.html">TaskJuggler::ProjectFileParser</a></li>
271
275
 
276
+ <li><a href="../TaskJuggler/ProjectFileScanner.html">TaskJuggler::ProjectFileScanner</a></li>
277
+
272
278
  <li><a href="../TaskJuggler/ProjectRecord.html">TaskJuggler::ProjectRecord</a></li>
273
279
 
274
280
  <li><a href="../TaskJuggler/ProjectServer.html">TaskJuggler::ProjectServer</a></li>
@@ -285,12 +291,16 @@
285
291
 
286
292
  <li><a href="../TaskJuggler/Query.html">TaskJuggler::Query</a></li>
287
293
 
294
+ <li><a href="../TaskJuggler/RTFHandlers.html">TaskJuggler::RTFHandlers</a></li>
295
+
288
296
  <li><a href="../TaskJuggler/RTFNavigator.html">TaskJuggler::RTFNavigator</a></li>
289
297
 
290
298
  <li><a href="../TaskJuggler/RTFQuery.html">TaskJuggler::RTFQuery</a></li>
291
299
 
292
300
  <li><a href="../TaskJuggler/RTFReport.html">TaskJuggler::RTFReport</a></li>
293
301
 
302
+ <li><a href="../TaskJuggler/RTFReportLink.html">TaskJuggler::RTFReportLink</a></li>
303
+
294
304
  <li><a href="../TaskJuggler/RealFormat.html">TaskJuggler::RealFormat</a></li>
295
305
 
296
306
  <li><a href="../TaskJuggler/RealFormatAttribute.html">TaskJuggler::RealFormatAttribute</a></li>
@@ -309,6 +319,8 @@
309
319
 
310
320
  <li><a href="../TaskJuggler/ReportServerRecord.html">TaskJuggler::ReportServerRecord</a></li>
311
321
 
322
+ <li><a href="../TaskJuggler/ReportServlet.html">TaskJuggler::ReportServlet</a></li>
323
+
312
324
  <li><a href="../TaskJuggler/ReportTable.html">TaskJuggler::ReportTable</a></li>
313
325
 
314
326
  <li><a href="../TaskJuggler/ReportTableCell.html">TaskJuggler::ReportTableCell</a></li>
@@ -437,6 +449,8 @@
437
449
 
438
450
  <li><a href="../TaskJuggler/TextScanner/FileStreamHandle.html">TaskJuggler::TextScanner::FileStreamHandle</a></li>
439
451
 
452
+ <li><a href="../TaskJuggler/TextScanner/MacroStackEntry.html">TaskJuggler::TextScanner::MacroStackEntry</a></li>
453
+
440
454
  <li><a href="../TaskJuggler/TextScanner/StreamHandle.html">TaskJuggler::TextScanner::StreamHandle</a></li>
441
455
 
442
456
  <li><a href="../TaskJuggler/TimeSheet.html">TaskJuggler::TimeSheet</a></li>
@@ -481,8 +495,12 @@
481
495
 
482
496
  <li><a href="../TaskJuggler/TjpSyntaxRules.html">TaskJuggler::TjpSyntaxRules</a></li>
483
497
 
498
+ <li><a href="../TaskJuggler/URLParameter.html">TaskJuggler::URLParameter</a></li>
499
+
484
500
  <li><a href="../TaskJuggler/UserManual.html">TaskJuggler::UserManual</a></li>
485
501
 
502
+ <li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
503
+
486
504
  <li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
487
505
 
488
506
  <li><a href="../TaskJuggler/WorkingHoursAttribute.html">TaskJuggler::WorkingHoursAttribute</a></li>
@@ -509,6 +527,8 @@
509
527
 
510
528
  <li><a href="../String.html">String</a></li>
511
529
 
530
+ <li><a href="../StringIO.html">StringIO</a></li>
531
+
512
532
  </ul>
513
533
  <div id="no-class-search-results" style="display: none;">No matching classes.</div>
514
534
  </div>
@@ -541,7 +561,7 @@ process status sheets.
541
561
 
542
562
 
543
563
  <div id="new-method" class="method-detail ">
544
- <a name="M000000"></a>
564
+ <a name="method-c-new"></a>
545
565
 
546
566
  <div class="method-heading">
547
567
 
@@ -581,7 +601,8 @@ process status sheets.
581
601
  37: <span class="ruby-ivar">@sheetHeader</span> = <span class="ruby-regexp re">/^[ ]*statussheet\s([a-z][a-z0-9_]*)\s[0-9\-:+]*\s-\s([0-9]*-[0-9]*-[0-9]*)/</span>
582
602
  38: <span class="ruby-comment cmt"># Regular expression to extract the sheet signature (time period).</span>
583
603
  39: <span class="ruby-ivar">@signatureFilter</span> = <span class="ruby-regexp re">/^[ ]*statussheet\s[a-z][a-z0-9_]*\s([0-9:\-+]*\s-\s[0-9:\-+]*)/</span>
584
- 40: <span class="ruby-keyword kw">end</span></pre>
604
+ 40: <span class="ruby-ivar">@emailSubject</span> = <span class="ruby-value str">&quot;Status report from %s for %s&quot;</span>
605
+ 41: <span class="ruby-keyword kw">end</span></pre>
585
606
  </div>
586
607
 
587
608
  </div>
@@ -69,13 +69,13 @@
69
69
  <h3 class="section-header">Methods</h3>
70
70
  <ul class="link-list">
71
71
 
72
- <li><a href="#M000784">::new</a></li>
72
+ <li><a href="#method-c-new">::new</a></li>
73
73
 
74
- <li><a href="#M000785">#generateIntermediateFormat</a></li>
74
+ <li><a href="#method-i-generateIntermediateFormat">#generateIntermediateFormat</a></li>
75
75
 
76
- <li><a href="#M000787">#indentBlock</a></li>
76
+ <li><a href="#method-i-indentBlock">#indentBlock</a></li>
77
77
 
78
- <li><a href="#M000786">#to_tjp</a></li>
78
+ <li><a href="#method-i-to_tjp">#to_tjp</a></li>
79
79
 
80
80
  </ul>
81
81
  </div>
@@ -92,6 +92,8 @@
92
92
  <h3 class="section-header">Files</h3>
93
93
  <ul>
94
94
 
95
+ <li class="file"><a href="../CHANGELOG.html">CHANGELOG</a></li>
96
+
95
97
  <li class="file"><a href="../COPYING.html">COPYING</a></li>
96
98
 
97
99
  <li class="file"><a href="../README.html">README</a></li>
@@ -261,6 +263,8 @@
261
263
 
262
264
  <li><a href="../TaskJuggler/NikuResource.html">TaskJuggler::NikuResource</a></li>
263
265
 
266
+ <li><a href="../TaskJuggler/NodeListAttribute.html">TaskJuggler::NodeListAttribute</a></li>
267
+
264
268
  <li><a href="../TaskJuggler/OnShiftCache.html">TaskJuggler::OnShiftCache</a></li>
265
269
 
266
270
  <li><a href="../TaskJuggler/ProcessIntercom.html">TaskJuggler::ProcessIntercom</a></li>
@@ -275,6 +279,8 @@
275
279
 
276
280
  <li><a href="../TaskJuggler/ProjectFileParser.html">TaskJuggler::ProjectFileParser</a></li>
277
281
 
282
+ <li><a href="../TaskJuggler/ProjectFileScanner.html">TaskJuggler::ProjectFileScanner</a></li>
283
+
278
284
  <li><a href="../TaskJuggler/ProjectRecord.html">TaskJuggler::ProjectRecord</a></li>
279
285
 
280
286
  <li><a href="../TaskJuggler/ProjectServer.html">TaskJuggler::ProjectServer</a></li>
@@ -291,12 +297,16 @@
291
297
 
292
298
  <li><a href="../TaskJuggler/Query.html">TaskJuggler::Query</a></li>
293
299
 
300
+ <li><a href="../TaskJuggler/RTFHandlers.html">TaskJuggler::RTFHandlers</a></li>
301
+
294
302
  <li><a href="../TaskJuggler/RTFNavigator.html">TaskJuggler::RTFNavigator</a></li>
295
303
 
296
304
  <li><a href="../TaskJuggler/RTFQuery.html">TaskJuggler::RTFQuery</a></li>
297
305
 
298
306
  <li><a href="../TaskJuggler/RTFReport.html">TaskJuggler::RTFReport</a></li>
299
307
 
308
+ <li><a href="../TaskJuggler/RTFReportLink.html">TaskJuggler::RTFReportLink</a></li>
309
+
300
310
  <li><a href="../TaskJuggler/RealFormat.html">TaskJuggler::RealFormat</a></li>
301
311
 
302
312
  <li><a href="../TaskJuggler/RealFormatAttribute.html">TaskJuggler::RealFormatAttribute</a></li>
@@ -315,6 +325,8 @@
315
325
 
316
326
  <li><a href="../TaskJuggler/ReportServerRecord.html">TaskJuggler::ReportServerRecord</a></li>
317
327
 
328
+ <li><a href="../TaskJuggler/ReportServlet.html">TaskJuggler::ReportServlet</a></li>
329
+
318
330
  <li><a href="../TaskJuggler/ReportTable.html">TaskJuggler::ReportTable</a></li>
319
331
 
320
332
  <li><a href="../TaskJuggler/ReportTableCell.html">TaskJuggler::ReportTableCell</a></li>
@@ -443,6 +455,8 @@
443
455
 
444
456
  <li><a href="../TaskJuggler/TextScanner/FileStreamHandle.html">TaskJuggler::TextScanner::FileStreamHandle</a></li>
445
457
 
458
+ <li><a href="../TaskJuggler/TextScanner/MacroStackEntry.html">TaskJuggler::TextScanner::MacroStackEntry</a></li>
459
+
446
460
  <li><a href="../TaskJuggler/TextScanner/StreamHandle.html">TaskJuggler::TextScanner::StreamHandle</a></li>
447
461
 
448
462
  <li><a href="../TaskJuggler/TimeSheet.html">TaskJuggler::TimeSheet</a></li>
@@ -487,8 +501,12 @@
487
501
 
488
502
  <li><a href="../TaskJuggler/TjpSyntaxRules.html">TaskJuggler::TjpSyntaxRules</a></li>
489
503
 
504
+ <li><a href="../TaskJuggler/URLParameter.html">TaskJuggler::URLParameter</a></li>
505
+
490
506
  <li><a href="../TaskJuggler/UserManual.html">TaskJuggler::UserManual</a></li>
491
507
 
508
+ <li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
509
+
492
510
  <li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
493
511
 
494
512
  <li><a href="../TaskJuggler/WorkingHoursAttribute.html">TaskJuggler::WorkingHoursAttribute</a></li>
@@ -515,6 +533,8 @@
515
533
 
516
534
  <li><a href="../String.html">String</a></li>
517
535
 
536
+ <li><a href="../StringIO.html">StringIO</a></li>
537
+
518
538
  </ul>
519
539
  <div id="no-class-search-results" style="display: none;">No matching classes.</div>
520
540
  </div>
@@ -548,7 +568,7 @@ using the TJP file syntax.
548
568
 
549
569
 
550
570
  <div id="new-method" class="method-detail ">
551
- <a name="M000784"></a>
571
+ <a name="method-c-new"></a>
552
572
 
553
573
  <div class="method-heading">
554
574
 
@@ -593,7 +613,7 @@ Create a new object and set some default values.
593
613
 
594
614
 
595
615
  <div id="generate-ntermediate-ormat-method" class="method-detail ">
596
- <a name="M000785"></a>
616
+ <a name="method-i-generateIntermediateFormat"></a>
597
617
 
598
618
  <div class="method-heading">
599
619
 
@@ -624,68 +644,63 @@ generate an abstract version of the status sheet first.
624
644
  74: <span class="ruby-identifier">resourceList</span>.<span class="ruby-identifier">setSorting</span>(<span class="ruby-ivar">@report</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value str">'sortResources'</span>))
625
645
  75: <span class="ruby-identifier">resourceList</span> = <span class="ruby-identifier">filterResourceList</span>(<span class="ruby-identifier">resourceList</span>, <span class="ruby-keyword kw">nil</span>,
626
646
  76: <span class="ruby-ivar">@report</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value str">'hideResource'</span>),
627
- 77: <span class="ruby-ivar">@report</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value str">'rollupResource'</span>))
628
- 78: <span class="ruby-comment cmt"># Prepare a template for the Query we will use to get all the data.</span>
629
- 79: <span class="ruby-identifier">scenarioIdx</span> = <span class="ruby-identifier">a</span>(<span class="ruby-value str">'scenarios'</span>)[<span class="ruby-value">0</span>]
630
- 80: <span class="ruby-identifier">queryAttrs</span> = { <span class="ruby-value str">'project'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@project</span>,
631
- 81: <span class="ruby-value str">'scopeProperty'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">nil</span>,
632
- 82: <span class="ruby-value str">'scenarioIdx'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">scenarioIdx</span>,
633
- 83: <span class="ruby-value str">'loadUnit'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'loadUnit'</span>),
634
- 84: <span class="ruby-value str">'numberFormat'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'numberFormat'</span>),
635
- 85: <span class="ruby-value str">'timeFormat'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'timeFormat'</span>),
636
- 86: <span class="ruby-value str">'currencyFormat'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'currencyFormat'</span>),
637
- 87: <span class="ruby-value str">'start'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'start'</span>), <span class="ruby-value str">'end'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'end'</span>),
638
- 88: <span class="ruby-value str">'costAccount'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'costAccount'</span>),
639
- 89: <span class="ruby-value str">'revenueAccount'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'revenueAccount'</span>) }
640
- 90: <span class="ruby-identifier">resourceList</span>.<span class="ruby-identifier">query</span> = <span class="ruby-constant">Query</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">queryAttrs</span>)
641
- 91: <span class="ruby-identifier">resourceList</span>.<span class="ruby-identifier">sort!</span>
642
- 92:
643
- 93: <span class="ruby-comment cmt"># Prepare the task list.</span>
644
- 94: <span class="ruby-identifier">taskList</span> = <span class="ruby-constant">PropertyList</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@project</span>.<span class="ruby-identifier">tasks</span>)
645
- 95: <span class="ruby-identifier">taskList</span>.<span class="ruby-identifier">setSorting</span>(<span class="ruby-ivar">@report</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value str">'sortTasks'</span>))
646
- 96: <span class="ruby-identifier">taskList</span> = <span class="ruby-identifier">filterTaskList</span>(<span class="ruby-identifier">taskList</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-ivar">@report</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value str">'hideTask'</span>),
647
- 97: <span class="ruby-ivar">@report</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value str">'rollupTask'</span>))
648
- 98: <span class="ruby-identifier">taskList</span>.<span class="ruby-identifier">sort!</span>
649
- 99:
650
- 100: <span class="ruby-identifier">resourceList</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">resource</span><span class="ruby-operator">|</span>
651
- 101: <span class="ruby-comment cmt"># Status sheets only make sense for leaf resources.</span>
652
- 102: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">resource</span>.<span class="ruby-identifier">leaf?</span>
653
- 103:
654
- 104: <span class="ruby-comment cmt"># Collect a list of tasks that the Resource is responsible for and</span>
655
- 105: <span class="ruby-comment cmt"># don't have a parent task that the Resource is responsible for.</span>
656
- 106: <span class="ruby-identifier">topLevelTasks</span> = []
657
- 107: <span class="ruby-identifier">taskList</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">task</span><span class="ruby-operator">|</span>
658
- 108: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">task</span>[<span class="ruby-value str">'responsible'</span>, <span class="ruby-identifier">scenarioIdx</span>].<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">resource</span>) <span class="ruby-operator">&amp;&amp;</span>
659
- 109: (<span class="ruby-identifier">task</span>.<span class="ruby-identifier">parent</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span>
660
- 110: <span class="ruby-operator">!</span><span class="ruby-identifier">task</span>.<span class="ruby-identifier">parent</span>[<span class="ruby-value str">'responsible'</span>, <span class="ruby-identifier">scenarioIdx</span>].<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">resource</span>))
661
- 111: <span class="ruby-identifier">topLevelTasks</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">task</span>
662
- 112: <span class="ruby-keyword kw">end</span>
663
- 113: <span class="ruby-keyword kw">end</span>
664
- 114:
665
- 115: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">topLevelTasks</span>.<span class="ruby-identifier">empty?</span>
666
- 116:
667
- 117: <span class="ruby-comment cmt"># Store the list of top-level responsibilities.</span>
668
- 118: <span class="ruby-ivar">@managers</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">manager</span> = <span class="ruby-constant">ManagerStatusRecord</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">resource</span>))
669
- 119:
670
- 120: <span class="ruby-identifier">topLevelTasks</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">task</span><span class="ruby-operator">|</span>
671
- 121: <span class="ruby-identifier">entries</span> = <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'journal'</span>].<span class="ruby-identifier">entries</span>(<span class="ruby-identifier">a</span>(<span class="ruby-value str">'start'</span>), <span class="ruby-identifier">a</span>(<span class="ruby-value str">'end'</span>), <span class="ruby-identifier">task</span>)
672
- 122: <span class="ruby-comment cmt"># Get a list of all current Entries of this task. This list may not</span>
673
- 123: <span class="ruby-comment cmt"># contain all entries of the previous list, but it will for sure</span>
674
- 124: <span class="ruby-comment cmt"># contain older entries with higher alert levels.</span>
675
- 125: <span class="ruby-identifier">oldEntries</span> = <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'journal'</span>].<span class="ruby-identifier">currentEntries</span>(<span class="ruby-identifier">a</span>(<span class="ruby-value str">'end'</span>), <span class="ruby-identifier">task</span>,
676
- 126: <span class="ruby-value">0</span>, <span class="ruby-identifier">a</span>(<span class="ruby-value str">'start'</span>))
677
- 127: <span class="ruby-comment cmt"># Remove entries that are in both lists.</span>
678
- 128: <span class="ruby-identifier">oldEntries</span>.<span class="ruby-identifier">delete_if</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">e</span><span class="ruby-operator">|</span> <span class="ruby-identifier">entries</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">e</span>) }
679
- 129: <span class="ruby-comment cmt"># Combine the list with oldEntries going first.</span>
680
- 130: <span class="ruby-identifier">entries</span> = <span class="ruby-identifier">oldEntries</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">entries</span>
681
- 131: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">entries</span>.<span class="ruby-identifier">empty?</span>
682
- 132:
683
- 133: <span class="ruby-identifier">manager</span>.<span class="ruby-identifier">responsibilities</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">ManagerResponsibilities</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">task</span>, <span class="ruby-identifier">entries</span>)
684
- 134: <span class="ruby-keyword kw">end</span>
685
- 135: <span class="ruby-comment cmt"># Sort the responsibilities list according to the original taskList.</span>
686
- 136: <span class="ruby-identifier">manager</span>.<span class="ruby-identifier">sort!</span>(<span class="ruby-identifier">taskList</span>)
687
- 137: <span class="ruby-keyword kw">end</span>
688
- 138: <span class="ruby-keyword kw">end</span></pre>
647
+ 77: <span class="ruby-ivar">@report</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value str">'rollupResource'</span>),
648
+ 78: <span class="ruby-ivar">@report</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value str">'openNodes'</span>))
649
+ 79: <span class="ruby-comment cmt"># Prepare a template for the Query we will use to get all the data.</span>
650
+ 80: <span class="ruby-identifier">scenarioIdx</span> = <span class="ruby-identifier">a</span>(<span class="ruby-value str">'scenarios'</span>)[<span class="ruby-value">0</span>]
651
+ 81: <span class="ruby-identifier">queryAttrs</span> = { <span class="ruby-value str">'project'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@project</span>,
652
+ 82: <span class="ruby-value str">'scopeProperty'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">nil</span>,
653
+ 83: <span class="ruby-value str">'scenarioIdx'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">scenarioIdx</span>,
654
+ 84: <span class="ruby-value str">'loadUnit'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'loadUnit'</span>),
655
+ 85: <span class="ruby-value str">'numberFormat'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'numberFormat'</span>),
656
+ 86: <span class="ruby-value str">'timeFormat'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'timeFormat'</span>),
657
+ 87: <span class="ruby-value str">'currencyFormat'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'currencyFormat'</span>),
658
+ 88: <span class="ruby-value str">'start'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'start'</span>), <span class="ruby-value str">'end'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'end'</span>),
659
+ 89: <span class="ruby-value str">'costAccount'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'costAccount'</span>),
660
+ 90: <span class="ruby-value str">'revenueAccount'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'revenueAccount'</span>) }
661
+ 91: <span class="ruby-identifier">resourceList</span>.<span class="ruby-identifier">query</span> = <span class="ruby-constant">Query</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">queryAttrs</span>)
662
+ 92: <span class="ruby-identifier">resourceList</span>.<span class="ruby-identifier">sort!</span>
663
+ 93:
664
+ 94: <span class="ruby-comment cmt"># Prepare the task list.</span>
665
+ 95: <span class="ruby-identifier">taskList</span> = <span class="ruby-constant">PropertyList</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@project</span>.<span class="ruby-identifier">tasks</span>)
666
+ 96: <span class="ruby-identifier">taskList</span>.<span class="ruby-identifier">setSorting</span>(<span class="ruby-ivar">@report</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value str">'sortTasks'</span>))
667
+ 97: <span class="ruby-identifier">taskList</span> = <span class="ruby-identifier">filterTaskList</span>(<span class="ruby-identifier">taskList</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-ivar">@report</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value str">'hideTask'</span>),
668
+ 98: <span class="ruby-ivar">@report</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value str">'rollupTask'</span>), <span class="ruby-ivar">@report</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value str">'openNodes'</span>))
669
+ 99: <span class="ruby-identifier">taskList</span>.<span class="ruby-identifier">sort!</span>
670
+ 100:
671
+ 101: <span class="ruby-identifier">resourceList</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">resource</span><span class="ruby-operator">|</span>
672
+ 102: <span class="ruby-comment cmt"># Status sheets only make sense for leaf resources.</span>
673
+ 103: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">resource</span>.<span class="ruby-identifier">leaf?</span>
674
+ 104:
675
+ 105: <span class="ruby-comment cmt"># Collect a list of tasks that the Resource is responsible for and</span>
676
+ 106: <span class="ruby-comment cmt"># don't have a parent task that the Resource is responsible for.</span>
677
+ 107: <span class="ruby-identifier">topLevelTasks</span> = []
678
+ 108: <span class="ruby-identifier">taskList</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">task</span><span class="ruby-operator">|</span>
679
+ 109: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">task</span>[<span class="ruby-value str">'responsible'</span>, <span class="ruby-identifier">scenarioIdx</span>].<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">resource</span>) <span class="ruby-operator">&amp;&amp;</span>
680
+ 110: (<span class="ruby-identifier">task</span>.<span class="ruby-identifier">parent</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span>
681
+ 111: <span class="ruby-operator">!</span><span class="ruby-identifier">task</span>.<span class="ruby-identifier">parent</span>[<span class="ruby-value str">'responsible'</span>, <span class="ruby-identifier">scenarioIdx</span>].<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">resource</span>))
682
+ 112: <span class="ruby-identifier">topLevelTasks</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">task</span>
683
+ 113: <span class="ruby-keyword kw">end</span>
684
+ 114: <span class="ruby-keyword kw">end</span>
685
+ 115:
686
+ 116: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">topLevelTasks</span>.<span class="ruby-identifier">empty?</span>
687
+ 117:
688
+ 118: <span class="ruby-comment cmt"># Store the list of top-level responsibilities.</span>
689
+ 119: <span class="ruby-ivar">@managers</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">manager</span> = <span class="ruby-constant">ManagerStatusRecord</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">resource</span>))
690
+ 120:
691
+ 121: <span class="ruby-identifier">topLevelTasks</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">task</span><span class="ruby-operator">|</span>
692
+ 122: <span class="ruby-comment cmt"># Get a list of all the current Journal entries for this task and</span>
693
+ 123: <span class="ruby-comment cmt"># all it's sub tasks.</span>
694
+ 124: <span class="ruby-identifier">entries</span> = <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'journal'</span>].<span class="ruby-identifier">currentEntriesR</span>(<span class="ruby-identifier">a</span>(<span class="ruby-value str">'end'</span>), <span class="ruby-identifier">task</span>,
695
+ 125: <span class="ruby-value">0</span>, <span class="ruby-identifier">a</span>(<span class="ruby-value str">'start'</span>) <span class="ruby-operator">+</span> <span class="ruby-value">1</span>)
696
+ 126: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">entries</span>.<span class="ruby-identifier">empty?</span>
697
+ 127:
698
+ 128: <span class="ruby-identifier">manager</span>.<span class="ruby-identifier">responsibilities</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">ManagerResponsibilities</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">task</span>, <span class="ruby-identifier">entries</span>)
699
+ 129: <span class="ruby-keyword kw">end</span>
700
+ 130: <span class="ruby-comment cmt"># Sort the responsibilities list according to the original taskList.</span>
701
+ 131: <span class="ruby-identifier">manager</span>.<span class="ruby-identifier">sort!</span>(<span class="ruby-identifier">taskList</span>)
702
+ 132: <span class="ruby-keyword kw">end</span>
703
+ 133: <span class="ruby-keyword kw">end</span></pre>
689
704
  </div>
690
705
 
691
706
  </div>
@@ -697,7 +712,7 @@ generate an abstract version of the status sheet first.
697
712
 
698
713
 
699
714
  <div id="to-tjp-method" class="method-detail ">
700
- <a name="M000786"></a>
715
+ <a name="method-i-to_tjp"></a>
701
716
 
702
717
  <div class="method-heading">
703
718
 
@@ -718,74 +733,74 @@ Generate a time sheet in TJP syntax format.
718
733
  <div class="method-source-code"
719
734
  id="to-tjp-source">
720
735
  <pre>
721
- <span class="ruby-comment cmt"># File lib/reports/StatusSheetReport.rb, line 141</span>
722
- 141: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_tjp</span>
723
- 142:
724
- 143: <span class="ruby-comment cmt"># This String will hold the result.</span>
725
- 144: <span class="ruby-ivar">@file</span> = <span class="ruby-value str">''</span>
726
- 145:
727
- 146: <span class="ruby-comment cmt"># Iterate over all the ManagerStatusRecord objects.</span>
728
- 147: <span class="ruby-ivar">@managers</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">manager</span><span class="ruby-operator">|</span>
729
- 148: <span class="ruby-identifier">resource</span> = <span class="ruby-identifier">manager</span>.<span class="ruby-identifier">resource</span>
730
- 149: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;# --------8&lt;--------8&lt;--------\n&quot;</span>
731
- 150: <span class="ruby-comment cmt"># Generate the time sheet header</span>
732
- 151: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;statussheet #{resource.fullId} &quot;</span> <span class="ruby-operator">+</span>
733
- 152: <span class="ruby-node">&quot;#{a('start')} - #{a('end')} {\n\n&quot;</span>
734
- 153:
735
- 154: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">manager</span>.<span class="ruby-identifier">responsibilities</span>.<span class="ruby-identifier">empty?</span>
736
- 155: <span class="ruby-comment cmt"># If there were no assignments, just write a comment.</span>
737
- 156: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot; # This resource is not responsible for any task.\n\n&quot;</span>
738
- 157: <span class="ruby-keyword kw">else</span>
739
- 158: <span class="ruby-identifier">manager</span>.<span class="ruby-identifier">responsibilities</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">responsibility</span><span class="ruby-operator">|</span>
740
- 159: <span class="ruby-identifier">task</span> = <span class="ruby-identifier">responsibility</span>.<span class="ruby-identifier">task</span>
741
- 160: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot; # Task: #{task.name}\n&quot;</span>
742
- 161:
743
- 162: <span class="ruby-identifier">responsibility</span>.<span class="ruby-identifier">journalEntries</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">entry</span><span class="ruby-operator">|</span>
744
- 163: <span class="ruby-identifier">task</span> = <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">property</span>
745
- 164: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot; task #{task.fullId} {\n&quot;</span>
746
- 165: <span class="ruby-identifier">alertLevel</span> = <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'alertLevels'</span>][<span class="ruby-identifier">entry</span>.<span class="ruby-identifier">alertLevel</span>][<span class="ruby-value">0</span>]
747
- 166: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot; # status #{alertLevel} \&quot;#{entry.headline}\&quot; {\n&quot;</span>
748
- 167: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot; # # Date: #{entry.date}\n&quot;</span>
749
- 168: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">tsRecord</span> = <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">timeSheetRecord</span>)
750
- 169: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot; # # &quot;</span>
751
- 170: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;Work: #{tsRecord.actualWorkPercent.to_i}% &quot;</span>
752
- 171: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">tsRecord</span>.<span class="ruby-identifier">actualWorkPercent</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">tsRecord</span>.<span class="ruby-identifier">planWorkPercent</span>
753
- 172: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;(#{tsRecord.planWorkPercent.to_i}%) &quot;</span>
754
- 173: <span class="ruby-keyword kw">end</span>
755
- 174: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">tsRecord</span>.<span class="ruby-identifier">remaining</span>
756
- 175: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot; Remaining: #{tsRecord.actualRemaining}d &quot;</span>
757
- 176: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">tsRecord</span>.<span class="ruby-identifier">actualRemaining</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">tsRecord</span>.<span class="ruby-identifier">planRemaining</span>
758
- 177: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;(#{tsRecord.planRemaining}d) &quot;</span>
759
- 178: <span class="ruby-keyword kw">end</span>
760
- 179: <span class="ruby-keyword kw">else</span>
761
- 180: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot; End: &quot;</span> <span class="ruby-operator">+</span>
762
- 181: <span class="ruby-node">&quot;#{tsRecord.actualEnd.to_s(a('timeFormat'))} &quot;</span>
763
- 182: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">tsRecord</span>.<span class="ruby-identifier">actualEnd</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">tsRecord</span>.<span class="ruby-identifier">planEnd</span>
764
- 183: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;(#{tsRecord.planEnd.to_s(a('timeFormat'))}) &quot;</span>
765
- 184: <span class="ruby-keyword kw">end</span>
766
- 185: <span class="ruby-keyword kw">end</span>
767
- 186: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;\n&quot;</span>
768
- 187: <span class="ruby-keyword kw">end</span>
769
- 188: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot; # author #{entry.author.fullId}\n&quot;</span>
770
- 189: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">summary</span>
771
- 190: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot; # summary -8&lt;-\n&quot;</span> <span class="ruby-operator">+</span>
772
- 191: <span class="ruby-identifier">indentBlock</span>(<span class="ruby-value">4</span>, <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">summary</span>.<span class="ruby-identifier">richText</span>.<span class="ruby-identifier">inputText</span>) <span class="ruby-operator">+</span>
736
+ <span class="ruby-comment cmt"># File lib/reports/StatusSheetReport.rb, line 136</span>
737
+ 136: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_tjp</span>
738
+ 137:
739
+ 138: <span class="ruby-comment cmt"># This String will hold the result.</span>
740
+ 139: <span class="ruby-ivar">@file</span> = <span class="ruby-value str">''</span>
741
+ 140:
742
+ 141: <span class="ruby-comment cmt"># Iterate over all the ManagerStatusRecord objects.</span>
743
+ 142: <span class="ruby-ivar">@managers</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">manager</span><span class="ruby-operator">|</span>
744
+ 143: <span class="ruby-identifier">resource</span> = <span class="ruby-identifier">manager</span>.<span class="ruby-identifier">resource</span>
745
+ 144: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;# --------8&lt;--------8&lt;--------\n&quot;</span>
746
+ 145: <span class="ruby-comment cmt"># Generate the time sheet header</span>
747
+ 146: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;statussheet #{resource.fullId} &quot;</span> <span class="ruby-operator">+</span>
748
+ 147: <span class="ruby-node">&quot;#{a('start')} - #{a('end')} {\n\n&quot;</span>
749
+ 148:
750
+ 149: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">manager</span>.<span class="ruby-identifier">responsibilities</span>.<span class="ruby-identifier">empty?</span>
751
+ 150: <span class="ruby-comment cmt"># If there were no assignments, just write a comment.</span>
752
+ 151: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot; # This resource is not responsible for any task.\n\n&quot;</span>
753
+ 152: <span class="ruby-keyword kw">else</span>
754
+ 153: <span class="ruby-identifier">manager</span>.<span class="ruby-identifier">responsibilities</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">responsibility</span><span class="ruby-operator">|</span>
755
+ 154: <span class="ruby-identifier">task</span> = <span class="ruby-identifier">responsibility</span>.<span class="ruby-identifier">task</span>
756
+ 155: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot; # Task: #{task.name}\n&quot;</span>
757
+ 156:
758
+ 157: <span class="ruby-identifier">responsibility</span>.<span class="ruby-identifier">journalEntries</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">entry</span><span class="ruby-operator">|</span>
759
+ 158: <span class="ruby-identifier">task</span> = <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">property</span>
760
+ 159: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot; task #{task.fullId} {\n&quot;</span>
761
+ 160: <span class="ruby-identifier">alertLevel</span> = <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'alertLevels'</span>][<span class="ruby-identifier">entry</span>.<span class="ruby-identifier">alertLevel</span>][<span class="ruby-value">0</span>]
762
+ 161: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot; # status #{alertLevel} \&quot;#{entry.headline}\&quot; {\n&quot;</span>
763
+ 162: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot; # # Date: #{entry.date}\n&quot;</span>
764
+ 163: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">tsRecord</span> = <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">timeSheetRecord</span>)
765
+ 164: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot; # # &quot;</span>
766
+ 165: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;Work: #{tsRecord.actualWorkPercent.to_i}% &quot;</span>
767
+ 166: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">tsRecord</span>.<span class="ruby-identifier">actualWorkPercent</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">tsRecord</span>.<span class="ruby-identifier">planWorkPercent</span>
768
+ 167: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;(#{tsRecord.planWorkPercent.to_i}%) &quot;</span>
769
+ 168: <span class="ruby-keyword kw">end</span>
770
+ 169: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">tsRecord</span>.<span class="ruby-identifier">remaining</span>
771
+ 170: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot; Remaining: #{tsRecord.actualRemaining}d &quot;</span>
772
+ 171: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">tsRecord</span>.<span class="ruby-identifier">actualRemaining</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">tsRecord</span>.<span class="ruby-identifier">planRemaining</span>
773
+ 172: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;(#{tsRecord.planRemaining}d) &quot;</span>
774
+ 173: <span class="ruby-keyword kw">end</span>
775
+ 174: <span class="ruby-keyword kw">else</span>
776
+ 175: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot; End: &quot;</span> <span class="ruby-operator">+</span>
777
+ 176: <span class="ruby-node">&quot;#{tsRecord.actualEnd.to_s(a('timeFormat'))} &quot;</span>
778
+ 177: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">tsRecord</span>.<span class="ruby-identifier">actualEnd</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">tsRecord</span>.<span class="ruby-identifier">planEnd</span>
779
+ 178: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;(#{tsRecord.planEnd.to_s(a('timeFormat'))}) &quot;</span>
780
+ 179: <span class="ruby-keyword kw">end</span>
781
+ 180: <span class="ruby-keyword kw">end</span>
782
+ 181: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;\n&quot;</span>
783
+ 182: <span class="ruby-keyword kw">end</span>
784
+ 183: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot; # author #{entry.author.fullId}\n&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">author</span>
785
+ 184: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">summary</span>
786
+ 185: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot; # summary -8&lt;-\n&quot;</span> <span class="ruby-operator">+</span>
787
+ 186: <span class="ruby-identifier">indentBlock</span>(<span class="ruby-value">4</span>, <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">summary</span>.<span class="ruby-identifier">richText</span>.<span class="ruby-identifier">inputText</span>) <span class="ruby-operator">+</span>
788
+ 187: <span class="ruby-node">&quot; # -&gt;8-\n&quot;</span>
789
+ 188: <span class="ruby-keyword kw">end</span>
790
+ 189: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">details</span>
791
+ 190: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot; # details -8&lt;-\n&quot;</span> <span class="ruby-operator">+</span>
792
+ 191: <span class="ruby-identifier">indentBlock</span>(<span class="ruby-value">4</span>, <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">details</span>.<span class="ruby-identifier">richText</span>.<span class="ruby-identifier">inputText</span>) <span class="ruby-operator">+</span>
773
793
  192: <span class="ruby-node">&quot; # -&gt;8-\n&quot;</span>
774
794
  193: <span class="ruby-keyword kw">end</span>
775
- 194: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">details</span>
776
- 195: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot; # details -8&lt;-\n&quot;</span> <span class="ruby-operator">+</span>
777
- 196: <span class="ruby-identifier">indentBlock</span>(<span class="ruby-value">4</span>, <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">details</span>.<span class="ruby-identifier">richText</span>.<span class="ruby-identifier">inputText</span>) <span class="ruby-operator">+</span>
778
- 197: <span class="ruby-node">&quot; # -&gt;8-\n&quot;</span>
779
- 198: <span class="ruby-keyword kw">end</span>
780
- 199: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot; # }\n }\n\n&quot;</span>
781
- 200:
782
- 201: <span class="ruby-keyword kw">end</span>
783
- 202: <span class="ruby-keyword kw">end</span>
784
- 203: <span class="ruby-keyword kw">end</span>
785
- 204: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;}\n# --------&gt;8--------&gt;8--------\n\n&quot;</span>
786
- 205: <span class="ruby-keyword kw">end</span>
787
- 206: <span class="ruby-ivar">@file</span>
788
- 207: <span class="ruby-keyword kw">end</span></pre>
795
+ 194: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot; # }\n }\n\n&quot;</span>
796
+ 195:
797
+ 196: <span class="ruby-keyword kw">end</span>
798
+ 197: <span class="ruby-keyword kw">end</span>
799
+ 198: <span class="ruby-keyword kw">end</span>
800
+ 199: <span class="ruby-ivar">@file</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;}\n# --------&gt;8--------&gt;8--------\n\n&quot;</span>
801
+ 200: <span class="ruby-keyword kw">end</span>
802
+ 201: <span class="ruby-ivar">@file</span>
803
+ 202: <span class="ruby-keyword kw">end</span></pre>
789
804
  </div>
790
805
 
791
806
  </div>
@@ -803,7 +818,7 @@ Generate a time sheet in TJP syntax format.
803
818
 
804
819
 
805
820
  <div id="indent-lock-method" class="method-detail ">
806
- <a name="M000787"></a>
821
+ <a name="method-i-indentBlock"></a>
807
822
 
808
823
  <div class="method-heading">
809
824
 
@@ -822,23 +837,23 @@ Generate a time sheet in TJP syntax format.
822
837
  <div class="method-source-code"
823
838
  id="indent-lock-source">
824
839
  <pre>
825
- <span class="ruby-comment cmt"># File lib/reports/StatusSheetReport.rb, line 211</span>
826
- 211: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">indentBlock</span>(<span class="ruby-identifier">indent</span>, <span class="ruby-identifier">text</span>)
827
- 212: <span class="ruby-identifier">indentation</span> = <span class="ruby-value str">' '</span> * <span class="ruby-identifier">indent</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'# '</span>
828
- 213: <span class="ruby-identifier">buffer</span> = <span class="ruby-identifier">indentation</span>
829
- 214: <span class="ruby-identifier">out</span> = <span class="ruby-value str">''</span>
830
- 215: <span class="ruby-identifier">text</span>.<span class="ruby-identifier">each_utf8_char</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">c</span><span class="ruby-operator">|</span>
831
- 216: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">buffer</span>.<span class="ruby-identifier">empty?</span>
832
- 217: <span class="ruby-identifier">out</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">buffer</span>
833
- 218: <span class="ruby-identifier">buffer</span> = <span class="ruby-value str">''</span>
834
- 219: <span class="ruby-keyword kw">end</span>
835
- 220: <span class="ruby-identifier">out</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">c</span>
836
- 221: <span class="ruby-identifier">buffer</span> = <span class="ruby-identifier">indentation</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">c</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;\n&quot;</span>
837
- 222: <span class="ruby-keyword kw">end</span>
838
- 223: <span class="ruby-comment cmt"># Make sure we always have a trailing line break</span>
839
- 224: <span class="ruby-identifier">out</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">&quot;\n&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">out</span>[<span class="ruby-value">1</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;\n&quot;</span>
840
- 225: <span class="ruby-identifier">out</span>
841
- 226: <span class="ruby-keyword kw">end</span></pre>
840
+ <span class="ruby-comment cmt"># File lib/reports/StatusSheetReport.rb, line 206</span>
841
+ 206: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">indentBlock</span>(<span class="ruby-identifier">indent</span>, <span class="ruby-identifier">text</span>)
842
+ 207: <span class="ruby-identifier">indentation</span> = <span class="ruby-value str">' '</span> * <span class="ruby-identifier">indent</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'# '</span>
843
+ 208: <span class="ruby-identifier">buffer</span> = <span class="ruby-identifier">indentation</span>
844
+ 209: <span class="ruby-identifier">out</span> = <span class="ruby-value str">''</span>
845
+ 210: <span class="ruby-identifier">text</span>.<span class="ruby-identifier">each_utf8_char</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">c</span><span class="ruby-operator">|</span>
846
+ 211: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">buffer</span>.<span class="ruby-identifier">empty?</span>
847
+ 212: <span class="ruby-identifier">out</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">buffer</span>
848
+ 213: <span class="ruby-identifier">buffer</span> = <span class="ruby-value str">''</span>
849
+ 214: <span class="ruby-keyword kw">end</span>
850
+ 215: <span class="ruby-identifier">out</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">c</span>
851
+ 216: <span class="ruby-identifier">buffer</span> = <span class="ruby-identifier">indentation</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">c</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;\n&quot;</span>
852
+ 217: <span class="ruby-keyword kw">end</span>
853
+ 218: <span class="ruby-comment cmt"># Make sure we always have a trailing line break</span>
854
+ 219: <span class="ruby-identifier">out</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">&quot;\n&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">out</span>[<span class="ruby-value">1</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;\n&quot;</span>
855
+ 220: <span class="ruby-identifier">out</span>
856
+ 221: <span class="ruby-keyword kw">end</span></pre>
842
857
  </div>
843
858
 
844
859
  </div>