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,7 +69,7 @@
69
69
  <h3 class="section-header">Methods</h3>
70
70
  <ul class="link-list">
71
71
 
72
- <li><a href="#M001175">::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>
@@ -697,7 +717,7 @@ mandatory, the summary and details sections are optional.
697
717
 
698
718
 
699
719
  <div id="new-method" class="method-detail ">
700
- <a name="M001175"></a>
720
+ <a name="method-c-new"></a>
701
721
 
702
722
  <div class="method-heading">
703
723
 
@@ -69,23 +69,23 @@
69
69
  <h3 class="section-header">Methods</h3>
70
70
  <ul class="link-list">
71
71
 
72
- <li><a href="#M001177">::new</a></li>
72
+ <li><a href="#method-c-new">::new</a></li>
73
73
 
74
- <li><a href="#M001180">#+</a></li>
74
+ <li><a href="#method-i-%3C%3C">#<<</a></li>
75
75
 
76
- <li><a href="#M001179">#<<</a></li>
76
+ <li><a href="#method-i-%5B%5D">#[]</a></li>
77
77
 
78
- <li><a href="#M001181">#[]</a></li>
78
+ <li><a href="#method-i-count">#count</a></li>
79
79
 
80
- <li><a href="#M001178">#count</a></li>
80
+ <li><a href="#method-i-each">#each</a></li>
81
81
 
82
- <li><a href="#M001182">#each</a></li>
82
+ <li><a href="#method-i-empty%3F">#empty?</a></li>
83
83
 
84
- <li><a href="#M001183">#include?</a></li>
84
+ <li><a href="#method-i-include%3F">#include?</a></li>
85
85
 
86
- <li><a href="#M001184">#last</a></li>
86
+ <li><a href="#method-i-last">#last</a></li>
87
87
 
88
- <li><a href="#M001185">#sort</a></li>
88
+ <li><a href="#method-i-sort%21">#sort!</a></li>
89
89
 
90
90
  </ul>
91
91
  </div>
@@ -102,6 +102,8 @@
102
102
  <h3 class="section-header">Files</h3>
103
103
  <ul>
104
104
 
105
+ <li class="file"><a href="../CHANGELOG.html">CHANGELOG</a></li>
106
+
105
107
  <li class="file"><a href="../COPYING.html">COPYING</a></li>
106
108
 
107
109
  <li class="file"><a href="../README.html">README</a></li>
@@ -271,6 +273,8 @@
271
273
 
272
274
  <li><a href="../TaskJuggler/NikuResource.html">TaskJuggler::NikuResource</a></li>
273
275
 
276
+ <li><a href="../TaskJuggler/NodeListAttribute.html">TaskJuggler::NodeListAttribute</a></li>
277
+
274
278
  <li><a href="../TaskJuggler/OnShiftCache.html">TaskJuggler::OnShiftCache</a></li>
275
279
 
276
280
  <li><a href="../TaskJuggler/ProcessIntercom.html">TaskJuggler::ProcessIntercom</a></li>
@@ -285,6 +289,8 @@
285
289
 
286
290
  <li><a href="../TaskJuggler/ProjectFileParser.html">TaskJuggler::ProjectFileParser</a></li>
287
291
 
292
+ <li><a href="../TaskJuggler/ProjectFileScanner.html">TaskJuggler::ProjectFileScanner</a></li>
293
+
288
294
  <li><a href="../TaskJuggler/ProjectRecord.html">TaskJuggler::ProjectRecord</a></li>
289
295
 
290
296
  <li><a href="../TaskJuggler/ProjectServer.html">TaskJuggler::ProjectServer</a></li>
@@ -301,12 +307,16 @@
301
307
 
302
308
  <li><a href="../TaskJuggler/Query.html">TaskJuggler::Query</a></li>
303
309
 
310
+ <li><a href="../TaskJuggler/RTFHandlers.html">TaskJuggler::RTFHandlers</a></li>
311
+
304
312
  <li><a href="../TaskJuggler/RTFNavigator.html">TaskJuggler::RTFNavigator</a></li>
305
313
 
306
314
  <li><a href="../TaskJuggler/RTFQuery.html">TaskJuggler::RTFQuery</a></li>
307
315
 
308
316
  <li><a href="../TaskJuggler/RTFReport.html">TaskJuggler::RTFReport</a></li>
309
317
 
318
+ <li><a href="../TaskJuggler/RTFReportLink.html">TaskJuggler::RTFReportLink</a></li>
319
+
310
320
  <li><a href="../TaskJuggler/RealFormat.html">TaskJuggler::RealFormat</a></li>
311
321
 
312
322
  <li><a href="../TaskJuggler/RealFormatAttribute.html">TaskJuggler::RealFormatAttribute</a></li>
@@ -325,6 +335,8 @@
325
335
 
326
336
  <li><a href="../TaskJuggler/ReportServerRecord.html">TaskJuggler::ReportServerRecord</a></li>
327
337
 
338
+ <li><a href="../TaskJuggler/ReportServlet.html">TaskJuggler::ReportServlet</a></li>
339
+
328
340
  <li><a href="../TaskJuggler/ReportTable.html">TaskJuggler::ReportTable</a></li>
329
341
 
330
342
  <li><a href="../TaskJuggler/ReportTableCell.html">TaskJuggler::ReportTableCell</a></li>
@@ -453,6 +465,8 @@
453
465
 
454
466
  <li><a href="../TaskJuggler/TextScanner/FileStreamHandle.html">TaskJuggler::TextScanner::FileStreamHandle</a></li>
455
467
 
468
+ <li><a href="../TaskJuggler/TextScanner/MacroStackEntry.html">TaskJuggler::TextScanner::MacroStackEntry</a></li>
469
+
456
470
  <li><a href="../TaskJuggler/TextScanner/StreamHandle.html">TaskJuggler::TextScanner::StreamHandle</a></li>
457
471
 
458
472
  <li><a href="../TaskJuggler/TimeSheet.html">TaskJuggler::TimeSheet</a></li>
@@ -497,8 +511,12 @@
497
511
 
498
512
  <li><a href="../TaskJuggler/TjpSyntaxRules.html">TaskJuggler::TjpSyntaxRules</a></li>
499
513
 
514
+ <li><a href="../TaskJuggler/URLParameter.html">TaskJuggler::URLParameter</a></li>
515
+
500
516
  <li><a href="../TaskJuggler/UserManual.html">TaskJuggler::UserManual</a></li>
501
517
 
518
+ <li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
519
+
502
520
  <li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
503
521
 
504
522
  <li><a href="../TaskJuggler/WorkingHoursAttribute.html">TaskJuggler::WorkingHoursAttribute</a></li>
@@ -525,6 +543,8 @@
525
543
 
526
544
  <li><a href="../String.html">String</a></li>
527
545
 
546
+ <li><a href="../StringIO.html">StringIO</a></li>
547
+
528
548
  </ul>
529
549
  <div id="no-class-search-results" style="display: none;">No matching classes.</div>
530
550
  </div>
@@ -560,7 +580,7 @@ store a journal.
560
580
 
561
581
 
562
582
  <div id="new-method" class="method-detail ">
563
- <a name="M001177"></a>
583
+ <a name="method-c-new"></a>
564
584
 
565
585
  <div class="method-heading">
566
586
 
@@ -579,11 +599,11 @@ store a journal.
579
599
  <div class="method-source-code"
580
600
  id="new-source">
581
601
  <pre>
582
- <span class="ruby-comment cmt"># File lib/Journal.rb, line 67</span>
583
- 67: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>
584
- 68: <span class="ruby-ivar">@entries</span> = []
585
- 69: <span class="ruby-ivar">@sorted</span> = <span class="ruby-keyword kw">false</span>
586
- 70: <span class="ruby-keyword kw">end</span></pre>
602
+ <span class="ruby-comment cmt"># File lib/Journal.rb, line 68</span>
603
+ 68: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>
604
+ 69: <span class="ruby-ivar">@entries</span> = []
605
+ 70: <span class="ruby-ivar">@sorted</span> = <span class="ruby-keyword kw">false</span>
606
+ 71: <span class="ruby-keyword kw">end</span></pre>
587
607
  </div>
588
608
 
589
609
  </div>
@@ -601,12 +621,12 @@ store a journal.
601
621
 
602
622
 
603
623
  <div id="--method" class="method-detail ">
604
- <a name="M001180"></a>
624
+ <a name="method-i-%3C%3C"></a>
605
625
 
606
626
  <div class="method-heading">
607
627
 
608
- <span class="method-name">+</span><span
609
- class="method-args">(list)</span>
628
+ <span class="method-name">&lt;&lt;</span><span
629
+ class="method-args">(entry)</span>
610
630
  <span class="method-click-advice">click to toggle source</span>
611
631
 
612
632
  </div>
@@ -614,8 +634,8 @@ store a journal.
614
634
  <div class="method-description">
615
635
 
616
636
  <p>
617
- Add a list of <a href="JournalEntry.html">JournalEntry</a> objects to the
618
- existing list. The list will be marked unsorted.
637
+ Add a new <a href="JournalEntry.html">JournalEntry</a> to the list. The
638
+ list will be marked as unsorted.
619
639
  </p>
620
640
 
621
641
 
@@ -623,10 +643,11 @@ existing list. The list will be marked unsorted.
623
643
  <div class="method-source-code"
624
644
  id="--source">
625
645
  <pre>
626
- <span class="ruby-comment cmt"># File lib/Journal.rb, line 85</span>
627
- 85: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">+</span>(<span class="ruby-identifier">list</span>)
628
- 86: <span class="ruby-ivar">@entries</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">list</span>
629
- 87: <span class="ruby-keyword kw">end</span></pre>
646
+ <span class="ruby-comment cmt"># File lib/Journal.rb, line 79</span>
647
+ 79: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">&lt;&lt;</span>(<span class="ruby-identifier">entry</span>)
648
+ 80: <span class="ruby-ivar">@entries</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">entry</span>
649
+ 81: <span class="ruby-ivar">@sorted</span> = <span class="ruby-keyword kw">false</span>
650
+ 82: <span class="ruby-keyword kw">end</span></pre>
630
651
  </div>
631
652
 
632
653
  </div>
@@ -638,12 +659,12 @@ existing list. The list will be marked unsorted.
638
659
 
639
660
 
640
661
  <div id="--method" class="method-detail ">
641
- <a name="M001179"></a>
662
+ <a name="method-i-%5B%5D"></a>
642
663
 
643
664
  <div class="method-heading">
644
665
 
645
- <span class="method-name">&lt;&lt;</span><span
646
- class="method-args">(entry)</span>
666
+ <span class="method-name">[]</span><span
667
+ class="method-args">(index)</span>
647
668
  <span class="method-click-advice">click to toggle source</span>
648
669
 
649
670
  </div>
@@ -651,8 +672,7 @@ existing list. The list will be marked unsorted.
651
672
  <div class="method-description">
652
673
 
653
674
  <p>
654
- Add a new <a href="JournalEntry.html">JournalEntry</a> to the list. The
655
- list will be marked as unsorted.
675
+ Return the <em>index</em>-th entry.
656
676
  </p>
657
677
 
658
678
 
@@ -660,11 +680,11 @@ list will be marked as unsorted.
660
680
  <div class="method-source-code"
661
681
  id="--source">
662
682
  <pre>
663
- <span class="ruby-comment cmt"># File lib/Journal.rb, line 78</span>
664
- 78: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">&lt;&lt;</span>(<span class="ruby-identifier">entry</span>)
665
- 79: <span class="ruby-ivar">@entries</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">entry</span>
666
- 80: <span class="ruby-ivar">@sorted</span> = <span class="ruby-keyword kw">false</span>
667
- 81: <span class="ruby-keyword kw">end</span></pre>
683
+ <span class="ruby-comment cmt"># File lib/Journal.rb, line 93</span>
684
+ 93: <span class="ruby-keyword kw">def</span><span class="ruby-operator">[]</span>(<span class="ruby-identifier">index</span>)
685
+ 94: <span class="ruby-identifier">sort!</span>
686
+ 95: <span class="ruby-ivar">@entries</span>[<span class="ruby-identifier">index</span>]
687
+ 96: <span class="ruby-keyword kw">end</span></pre>
668
688
  </div>
669
689
 
670
690
  </div>
@@ -675,13 +695,13 @@ list will be marked as unsorted.
675
695
  </div>
676
696
 
677
697
 
678
- <div id="--method" class="method-detail ">
679
- <a name="M001181"></a>
698
+ <div id="count-method" class="method-detail ">
699
+ <a name="method-i-count"></a>
680
700
 
681
701
  <div class="method-heading">
682
702
 
683
- <span class="method-name">[]</span><span
684
- class="method-args">(index)</span>
703
+ <span class="method-name">count</span><span
704
+ class="method-args">()</span>
685
705
  <span class="method-click-advice">click to toggle source</span>
686
706
 
687
707
  </div>
@@ -689,19 +709,18 @@ list will be marked as unsorted.
689
709
  <div class="method-description">
690
710
 
691
711
  <p>
692
- Return the <em>index</em>-th entry.
712
+ Return the number of entries.
693
713
  </p>
694
714
 
695
715
 
696
716
 
697
717
  <div class="method-source-code"
698
- id="--source">
718
+ id="count-source">
699
719
  <pre>
700
- <span class="ruby-comment cmt"># File lib/Journal.rb, line 90</span>
701
- 90: <span class="ruby-keyword kw">def</span><span class="ruby-operator">[]</span>(<span class="ruby-identifier">index</span>)
702
- 91: <span class="ruby-identifier">sort</span>
703
- 92: <span class="ruby-ivar">@entries</span>[<span class="ruby-identifier">index</span>]
704
- 93: <span class="ruby-keyword kw">end</span></pre>
720
+ <span class="ruby-comment cmt"># File lib/Journal.rb, line 74</span>
721
+ 74: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">count</span>
722
+ 75: <span class="ruby-ivar">@entries</span>.<span class="ruby-identifier">length</span>
723
+ 76: <span class="ruby-keyword kw">end</span></pre>
705
724
  </div>
706
725
 
707
726
  </div>
@@ -712,12 +731,12 @@ Return the <em>index</em>-th entry.
712
731
  </div>
713
732
 
714
733
 
715
- <div id="count-method" class="method-detail ">
716
- <a name="M001178"></a>
734
+ <div id="each-method" class="method-detail ">
735
+ <a name="method-i-each"></a>
717
736
 
718
737
  <div class="method-heading">
719
738
 
720
- <span class="method-name">count</span><span
739
+ <span class="method-name">each</span><span
721
740
  class="method-args">()</span>
722
741
  <span class="method-click-advice">click to toggle source</span>
723
742
 
@@ -726,18 +745,21 @@ Return the <em>index</em>-th entry.
726
745
  <div class="method-description">
727
746
 
728
747
  <p>
729
- Return the number of entries.
748
+ The well known iterator. The list will be sorted first.
730
749
  </p>
731
750
 
732
751
 
733
752
 
734
753
  <div class="method-source-code"
735
- id="count-source">
754
+ id="each-source">
736
755
  <pre>
737
- <span class="ruby-comment cmt"># File lib/Journal.rb, line 73</span>
738
- 73: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">count</span>
739
- 74: <span class="ruby-ivar">@entries</span>.<span class="ruby-identifier">length</span>
740
- 75: <span class="ruby-keyword kw">end</span></pre>
756
+ <span class="ruby-comment cmt"># File lib/Journal.rb, line 99</span>
757
+ 99: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">each</span>
758
+ 100: <span class="ruby-identifier">sort!</span>
759
+ 101: <span class="ruby-ivar">@entries</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>
760
+ 102: <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">entry</span>
761
+ 103: <span class="ruby-keyword kw">end</span>
762
+ 104: <span class="ruby-keyword kw">end</span></pre>
741
763
  </div>
742
764
 
743
765
  </div>
@@ -748,12 +770,12 @@ Return the number of entries.
748
770
  </div>
749
771
 
750
772
 
751
- <div id="each-method" class="method-detail ">
752
- <a name="M001182"></a>
773
+ <div id="empty--method" class="method-detail ">
774
+ <a name="method-i-empty%3F"></a>
753
775
 
754
776
  <div class="method-heading">
755
777
 
756
- <span class="method-name">each</span><span
778
+ <span class="method-name">empty?</span><span
757
779
  class="method-args">()</span>
758
780
  <span class="method-click-advice">click to toggle source</span>
759
781
 
@@ -762,21 +784,18 @@ Return the number of entries.
762
784
  <div class="method-description">
763
785
 
764
786
  <p>
765
- The well known iterator. The list will be sorted first.
787
+ Like Array::empty?
766
788
  </p>
767
789
 
768
790
 
769
791
 
770
792
  <div class="method-source-code"
771
- id="each-source">
793
+ id="empty--source">
772
794
  <pre>
773
- <span class="ruby-comment cmt"># File lib/Journal.rb, line 96</span>
774
- 96: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">each</span>
775
- 97: <span class="ruby-identifier">sort</span>
776
- 98: <span class="ruby-ivar">@entries</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>
777
- 99: <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">entry</span>
778
- 100: <span class="ruby-keyword kw">end</span>
779
- 101: <span class="ruby-keyword kw">end</span></pre>
795
+ <span class="ruby-comment cmt"># File lib/Journal.rb, line 107</span>
796
+ 107: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">empty?</span>
797
+ 108: <span class="ruby-ivar">@entries</span>.<span class="ruby-identifier">empty?</span>
798
+ 109: <span class="ruby-keyword kw">end</span></pre>
780
799
  </div>
781
800
 
782
801
  </div>
@@ -788,7 +807,7 @@ The well known iterator. The list will be sorted first.
788
807
 
789
808
 
790
809
  <div id="include--method" class="method-detail ">
791
- <a name="M001183"></a>
810
+ <a name="method-i-include%3F"></a>
792
811
 
793
812
  <div class="method-heading">
794
813
 
@@ -809,10 +828,10 @@ Like Array::include?
809
828
  <div class="method-source-code"
810
829
  id="include--source">
811
830
  <pre>
812
- <span class="ruby-comment cmt"># File lib/Journal.rb, line 104</span>
813
- 104: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">include?</span>(<span class="ruby-identifier">entry</span>)
814
- 105: <span class="ruby-ivar">@entries</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">entry</span>)
815
- 106: <span class="ruby-keyword kw">end</span></pre>
831
+ <span class="ruby-comment cmt"># File lib/Journal.rb, line 112</span>
832
+ 112: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">include?</span>(<span class="ruby-identifier">entry</span>)
833
+ 113: <span class="ruby-ivar">@entries</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">entry</span>)
834
+ 114: <span class="ruby-keyword kw">end</span></pre>
816
835
  </div>
817
836
 
818
837
  </div>
@@ -824,7 +843,7 @@ Like Array::include?
824
843
 
825
844
 
826
845
  <div id="last-method" class="method-detail ">
827
- <a name="M001184"></a>
846
+ <a name="method-i-last"></a>
828
847
 
829
848
  <div class="method-heading">
830
849
 
@@ -849,24 +868,24 @@ will be empty.
849
868
  <div class="method-source-code"
850
869
  id="last-source">
851
870
  <pre>
852
- <span class="ruby-comment cmt"># File lib/Journal.rb, line 113</span>
853
- 113: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">last</span>(<span class="ruby-identifier">date</span> = <span class="ruby-keyword kw">nil</span>)
854
- 114: <span class="ruby-identifier">result</span> = []
855
- 115: <span class="ruby-identifier">sort</span>
856
- 116: <span class="ruby-comment cmt"># If we have no date, return the latest entry.</span>
857
- 117: <span class="ruby-keyword kw">return</span> [ <span class="ruby-ivar">@entries</span>.<span class="ruby-identifier">last</span> ] <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">date</span>
858
- 118:
859
- 119: <span class="ruby-ivar">@entries</span>.<span class="ruby-identifier">reverse_each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">e</span><span class="ruby-operator">|</span>
860
- 120: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">result</span>.<span class="ruby-identifier">empty?</span>
861
- 121: <span class="ruby-identifier">result</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">e</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">e</span>.<span class="ruby-identifier">date</span> <span class="ruby-operator">&lt;=</span> <span class="ruby-identifier">date</span>
862
- 122: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">result</span>.<span class="ruby-identifier">first</span>.<span class="ruby-identifier">date</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">e</span>.<span class="ruby-identifier">date</span>
863
- 123: <span class="ruby-identifier">result</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">e</span>
864
- 124: <span class="ruby-keyword kw">else</span>
865
- 125: <span class="ruby-keyword kw">break</span>
866
- 126: <span class="ruby-keyword kw">end</span>
867
- 127: <span class="ruby-keyword kw">end</span>
868
- 128: <span class="ruby-identifier">result</span>
869
- 129: <span class="ruby-keyword kw">end</span></pre>
871
+ <span class="ruby-comment cmt"># File lib/Journal.rb, line 121</span>
872
+ 121: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">last</span>(<span class="ruby-identifier">date</span> = <span class="ruby-keyword kw">nil</span>)
873
+ 122: <span class="ruby-identifier">result</span> = []
874
+ 123: <span class="ruby-identifier">sort!</span>
875
+ 124: <span class="ruby-comment cmt"># If we have no date, return the latest entry.</span>
876
+ 125: <span class="ruby-keyword kw">return</span> [ <span class="ruby-ivar">@entries</span>.<span class="ruby-identifier">last</span> ] <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">date</span>
877
+ 126:
878
+ 127: <span class="ruby-ivar">@entries</span>.<span class="ruby-identifier">reverse_each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">e</span><span class="ruby-operator">|</span>
879
+ 128: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">result</span>.<span class="ruby-identifier">empty?</span>
880
+ 129: <span class="ruby-identifier">result</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">e</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">e</span>.<span class="ruby-identifier">date</span> <span class="ruby-operator">&lt;=</span> <span class="ruby-identifier">date</span>
881
+ 130: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">result</span>.<span class="ruby-identifier">first</span>.<span class="ruby-identifier">date</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">e</span>.<span class="ruby-identifier">date</span>
882
+ 131: <span class="ruby-identifier">result</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">e</span>
883
+ 132: <span class="ruby-keyword kw">else</span>
884
+ 133: <span class="ruby-keyword kw">break</span>
885
+ 134: <span class="ruby-keyword kw">end</span>
886
+ 135: <span class="ruby-keyword kw">end</span>
887
+ 136: <span class="ruby-identifier">result</span>
888
+ 137: <span class="ruby-keyword kw">end</span></pre>
870
889
  </div>
871
890
 
872
891
  </div>
@@ -877,18 +896,12 @@ will be empty.
877
896
  </div>
878
897
 
879
898
 
880
- </div>
881
-
882
- <div id="private-instance-method-details" class="method-section section">
883
- <h3 class="section-header">Private Instance Methods</h3>
884
-
885
-
886
- <div id="sort-method" class="method-detail ">
887
- <a name="M001185"></a>
899
+ <div id="sort--method" class="method-detail ">
900
+ <a name="method-i-sort%21"></a>
888
901
 
889
902
  <div class="method-heading">
890
903
 
891
- <span class="method-name">sort</span><span
904
+ <span class="method-name">sort!</span><span
892
905
  class="method-args">()</span>
893
906
  <span class="method-click-advice">click to toggle source</span>
894
907
 
@@ -905,20 +918,24 @@ sequence number.
905
918
 
906
919
 
907
920
  <div class="method-source-code"
908
- id="sort-source">
921
+ id="sort--source">
909
922
  <pre>
910
- <span class="ruby-comment cmt"># File lib/Journal.rb, line 135</span>
911
- 135: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sort</span>
912
- 136: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@sorted</span>
913
- 137:
914
- 138: <span class="ruby-ivar">@entries</span>.<span class="ruby-identifier">sort!</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">a</span>, <span class="ruby-identifier">b</span><span class="ruby-operator">|</span> <span class="ruby-identifier">a</span>.<span class="ruby-identifier">date</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">b</span>.<span class="ruby-identifier">date</span> <span class="ruby-operator">?</span>
915
- 139: <span class="ruby-identifier">a</span>.<span class="ruby-identifier">date</span> <span class="ruby-operator">&lt;=&gt;</span> <span class="ruby-identifier">b</span>.<span class="ruby-identifier">date</span> <span class="ruby-operator">:</span>
916
- 140: (<span class="ruby-identifier">a</span>.<span class="ruby-identifier">alertLevel</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">b</span>.<span class="ruby-identifier">alertLevel</span> <span class="ruby-operator">?</span>
917
- 141: <span class="ruby-identifier">a</span>.<span class="ruby-identifier">alertLevel</span> <span class="ruby-operator">&lt;=&gt;</span> <span class="ruby-identifier">b</span>.<span class="ruby-identifier">alertLevel</span> <span class="ruby-operator">:</span>
918
- 142: <span class="ruby-identifier">a</span>.<span class="ruby-identifier">property</span>.<span class="ruby-identifier">sequenceNo</span> <span class="ruby-operator">&lt;=&gt;</span>
919
- 143: <span class="ruby-identifier">b</span>.<span class="ruby-identifier">property</span>.<span class="ruby-identifier">sequenceNo</span>) }
920
- 144: <span class="ruby-ivar">@sorted</span> = <span class="ruby-keyword kw">true</span>
921
- 145: <span class="ruby-keyword kw">end</span></pre>
923
+ <span class="ruby-comment cmt"># File lib/Journal.rb, line 141</span>
924
+ 141: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sort!</span>
925
+ 142: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>
926
+ 143: <span class="ruby-ivar">@entries</span>.<span class="ruby-identifier">sort!</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">a</span>, <span class="ruby-identifier">b</span><span class="ruby-operator">|</span> <span class="ruby-keyword kw">yield</span>(<span class="ruby-identifier">a</span>, <span class="ruby-identifier">b</span>) }
927
+ 144: <span class="ruby-keyword kw">else</span>
928
+ 145: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@sorted</span>
929
+ 146:
930
+ 147: <span class="ruby-ivar">@entries</span>.<span class="ruby-identifier">sort!</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">a</span>, <span class="ruby-identifier">b</span><span class="ruby-operator">|</span> <span class="ruby-identifier">a</span>.<span class="ruby-identifier">date</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">b</span>.<span class="ruby-identifier">date</span> <span class="ruby-operator">?</span>
931
+ 148: <span class="ruby-identifier">a</span>.<span class="ruby-identifier">date</span> <span class="ruby-operator">&lt;=&gt;</span> <span class="ruby-identifier">b</span>.<span class="ruby-identifier">date</span> <span class="ruby-operator">:</span>
932
+ 149: (<span class="ruby-identifier">a</span>.<span class="ruby-identifier">alertLevel</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">b</span>.<span class="ruby-identifier">alertLevel</span> <span class="ruby-operator">?</span>
933
+ 150: <span class="ruby-identifier">a</span>.<span class="ruby-identifier">alertLevel</span> <span class="ruby-operator">&lt;=&gt;</span> <span class="ruby-identifier">b</span>.<span class="ruby-identifier">alertLevel</span> <span class="ruby-operator">:</span>
934
+ 151: <span class="ruby-identifier">a</span>.<span class="ruby-identifier">property</span>.<span class="ruby-identifier">sequenceNo</span> <span class="ruby-operator">&lt;=&gt;</span>
935
+ 152: <span class="ruby-identifier">b</span>.<span class="ruby-identifier">property</span>.<span class="ruby-identifier">sequenceNo</span>) }
936
+ 153: <span class="ruby-keyword kw">end</span>
937
+ 154: <span class="ruby-ivar">@sorted</span> = <span class="ruby-keyword kw">true</span>
938
+ 155: <span class="ruby-keyword kw">end</span></pre>
922
939
  </div>
923
940
 
924
941
  </div>