taskjuggler 0.0.3 → 0.0.4

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 (495) hide show
  1. data/benchmarks/UTF-8-Strings.rb +58 -0
  2. data/data/css/tjmanual.css +52 -0
  3. data/data/css/tjreport.css +195 -0
  4. data/data/icons/details.png +0 -0
  5. data/data/icons/flag-green.png +0 -0
  6. data/data/icons/flag-red.png +0 -0
  7. data/data/icons/flag-yellow.png +0 -0
  8. data/data/icons/resource.png +0 -0
  9. data/data/icons/resourcegroup.png +0 -0
  10. data/data/icons/task.png +0 -0
  11. data/data/icons/taskgroup.png +0 -0
  12. data/data/icons/trend-down.png +0 -0
  13. data/data/icons/trend-flat.png +0 -0
  14. data/data/icons/trend-up.png +0 -0
  15. data/data/scripts/wz_tooltip.js +1301 -0
  16. data/doc/classes/AppConfig.html +298 -230
  17. data/doc/classes/Arguments.html +8 -8
  18. data/doc/classes/Object.html +7 -7
  19. data/doc/classes/String.html +89 -89
  20. data/doc/classes/TaskJuggler.html +396 -264
  21. data/doc/classes/TaskJuggler/Account.html +18 -18
  22. data/doc/classes/TaskJuggler/AccountAttribute.html +26 -26
  23. data/doc/classes/TaskJuggler/AccountScenario.html +12 -12
  24. data/doc/classes/TaskJuggler/Allocation.html +30 -30
  25. data/doc/classes/TaskJuggler/AllocationAttribute.html +26 -26
  26. data/doc/classes/TaskJuggler/AttributeBase.html +227 -115
  27. data/doc/classes/TaskJuggler/AttributeDefinition.html +6 -6
  28. data/doc/classes/TaskJuggler/BatchProcessor.html +117 -83
  29. data/doc/classes/TaskJuggler/Booking.html +18 -18
  30. data/doc/classes/TaskJuggler/BookingListAttribute.html +26 -26
  31. data/doc/classes/TaskJuggler/BooleanAttribute.html +26 -26
  32. data/doc/classes/TaskJuggler/CSVFile.html +24 -24
  33. data/doc/classes/TaskJuggler/CellSettingPattern.html +201 -0
  34. data/doc/classes/TaskJuggler/CellSettingPatternList.html +253 -0
  35. data/doc/classes/TaskJuggler/Charge.html +18 -18
  36. data/doc/classes/TaskJuggler/ChargeListAttribute.html +20 -20
  37. data/doc/classes/TaskJuggler/ChargeSet.html +37 -37
  38. data/doc/classes/TaskJuggler/ChargeSetListAttribute.html +26 -26
  39. data/doc/classes/TaskJuggler/ColumnListAttribute.html +20 -20
  40. data/doc/classes/TaskJuggler/ColumnTable.html +40 -40
  41. data/doc/classes/TaskJuggler/DateAttribute.html +54 -15
  42. data/doc/classes/TaskJuggler/DefinitionListAttribute.html +10 -10
  43. data/doc/classes/TaskJuggler/DependencyListAttribute.html +47 -47
  44. data/doc/classes/TaskJuggler/DurationAttribute.html +30 -30
  45. data/doc/classes/TaskJuggler/FixnumAttribute.html +20 -20
  46. data/doc/classes/TaskJuggler/FlagListAttribute.html +43 -43
  47. data/doc/classes/TaskJuggler/FloatAttribute.html +30 -30
  48. data/doc/classes/TaskJuggler/FormatListAttribute.html +21 -21
  49. data/doc/classes/TaskJuggler/GanttChart.html +48 -48
  50. data/doc/classes/TaskJuggler/GanttContainer.html +42 -42
  51. data/doc/classes/TaskJuggler/GanttHeader.html +12 -12
  52. data/doc/classes/TaskJuggler/GanttHeaderScaleItem.html +12 -12
  53. data/doc/classes/TaskJuggler/GanttLine.html +24 -24
  54. data/doc/classes/TaskJuggler/GanttLoadStack.html +18 -18
  55. data/doc/classes/TaskJuggler/GanttMilestone.html +42 -42
  56. data/doc/classes/TaskJuggler/GanttRouter.html +24 -24
  57. data/doc/classes/TaskJuggler/GanttTaskBar.html +42 -42
  58. data/doc/classes/TaskJuggler/HTMLDocument.html +13 -13
  59. data/doc/classes/TaskJuggler/HTMLGraphics.html +12 -12
  60. data/doc/classes/TaskJuggler/Interval.html +57 -57
  61. data/doc/classes/TaskJuggler/IntervalListAttribute.html +47 -47
  62. data/doc/classes/TaskJuggler/JobInfo.html +68 -12
  63. data/doc/classes/TaskJuggler/Journal.html +266 -20
  64. data/doc/classes/TaskJuggler/JournalEntry.html +79 -23
  65. data/doc/classes/TaskJuggler/JournalEntryList.html +454 -0
  66. data/doc/classes/TaskJuggler/KeywordArray.html +10 -10
  67. data/doc/classes/TaskJuggler/KeywordDocumentation.html +171 -170
  68. data/doc/classes/TaskJuggler/Limits.html +36 -36
  69. data/doc/classes/TaskJuggler/Limits/Limit.html +30 -30
  70. data/doc/classes/TaskJuggler/LimitsAttribute.html +40 -40
  71. data/doc/classes/TaskJuggler/ListAttributeBase.html +20 -20
  72. data/doc/classes/TaskJuggler/Log.html +145 -107
  73. data/doc/classes/TaskJuggler/LogicalAttribute.html +65 -36
  74. data/doc/classes/TaskJuggler/LogicalExpression.html +61 -24
  75. data/doc/classes/TaskJuggler/LogicalExpressionAttribute.html +20 -20
  76. data/doc/classes/TaskJuggler/LogicalFlag.html +31 -51
  77. data/doc/classes/TaskJuggler/LogicalFunction.html +64 -53
  78. data/doc/classes/TaskJuggler/LogicalOperation.html +103 -55
  79. data/doc/classes/TaskJuggler/Macro.html +6 -6
  80. data/doc/classes/TaskJuggler/MacroParser.html +36 -36
  81. data/doc/classes/TaskJuggler/MacroTable.html +37 -37
  82. data/doc/classes/TaskJuggler/Message.html +12 -12
  83. data/doc/classes/TaskJuggler/MessageHandler.html +32 -20
  84. data/doc/classes/TaskJuggler/Navigator.html +110 -46
  85. data/doc/classes/TaskJuggler/NavigatorElement.html +449 -0
  86. data/doc/classes/TaskJuggler/OnShiftCache.html +24 -24
  87. data/doc/classes/TaskJuggler/Project.html +1158 -893
  88. data/doc/classes/TaskJuggler/ProjectFileParser.html +94 -91
  89. data/doc/classes/TaskJuggler/PropertyAttribute.html +20 -20
  90. data/doc/classes/TaskJuggler/PropertyList.html +225 -155
  91. data/doc/classes/TaskJuggler/PropertySet.html +375 -332
  92. data/doc/classes/TaskJuggler/PropertyTreeNode.html +750 -510
  93. data/doc/classes/TaskJuggler/Query.html +404 -139
  94. data/doc/classes/TaskJuggler/{RTPNavigator.html → RTFNavigator.html} +57 -56
  95. data/doc/classes/TaskJuggler/RTFQuery.html +343 -0
  96. data/doc/classes/TaskJuggler/{RTPReport.html → RTFReport.html} +70 -67
  97. data/doc/classes/TaskJuggler/RealFormat.html +18 -18
  98. data/doc/classes/TaskJuggler/RealFormatAttribute.html +10 -10
  99. data/doc/classes/TaskJuggler/ReferenceAttribute.html +107 -40
  100. data/doc/classes/TaskJuggler/RemoteServiceManager.html +335 -0
  101. data/doc/classes/TaskJuggler/Report.html +66 -64
  102. data/doc/classes/TaskJuggler/ReportBase.html +112 -123
  103. data/doc/classes/TaskJuggler/ReportContext.html +43 -38
  104. data/doc/classes/TaskJuggler/ReportServer.html +320 -0
  105. data/doc/classes/TaskJuggler/ReportTable.html +42 -42
  106. data/doc/classes/TaskJuggler/ReportTableCell.html +221 -129
  107. data/doc/classes/TaskJuggler/ReportTableColumn.html +27 -27
  108. data/doc/classes/TaskJuggler/ReportTableLegend.html +24 -24
  109. data/doc/classes/TaskJuggler/ReportTableLine.html +126 -80
  110. data/doc/classes/TaskJuggler/Resource.html +12 -12
  111. data/doc/classes/TaskJuggler/ResourceListAttribute.html +82 -47
  112. data/doc/classes/TaskJuggler/ResourceListRE.html +43 -39
  113. data/doc/classes/TaskJuggler/ResourceScenario.html +413 -321
  114. data/doc/classes/TaskJuggler/RichText.html +64 -248
  115. data/doc/classes/TaskJuggler/RichTextAttribute.html +94 -30
  116. data/doc/classes/TaskJuggler/RichTextDocument.html +87 -85
  117. data/doc/classes/TaskJuggler/RichTextElement.html +456 -363
  118. data/doc/classes/TaskJuggler/RichTextException.html +13 -13
  119. data/doc/classes/TaskJuggler/{RichTextProtocolExample.html → RichTextFunctionExample.html} +64 -63
  120. data/doc/classes/TaskJuggler/{RichTextProtocolHandler.html → RichTextFunctionHandler.html} +42 -36
  121. data/doc/classes/TaskJuggler/RichTextIntermediate.html +563 -0
  122. data/doc/classes/TaskJuggler/RichTextParser.html +54 -51
  123. data/doc/classes/TaskJuggler/RichTextScanner.html +94 -92
  124. data/doc/classes/TaskJuggler/RichTextSnip.html +96 -60
  125. data/doc/classes/TaskJuggler/RichTextSyntaxRules.html +369 -227
  126. data/doc/classes/TaskJuggler/Scenario.html +6 -6
  127. data/doc/classes/TaskJuggler/ScenarioData.html +37 -37
  128. data/doc/classes/TaskJuggler/ScenarioListAttribute.html +31 -31
  129. data/doc/classes/TaskJuggler/Scoreboard.html +66 -66
  130. data/doc/classes/TaskJuggler/Shift.html +18 -18
  131. data/doc/classes/TaskJuggler/ShiftAssignment.html +54 -54
  132. data/doc/classes/TaskJuggler/ShiftAssignments.html +78 -78
  133. data/doc/classes/TaskJuggler/ShiftAssignmentsAttribute.html +40 -40
  134. data/doc/classes/TaskJuggler/ShiftScenario.html +24 -24
  135. data/doc/classes/TaskJuggler/SortListAttribute.html +22 -22
  136. data/doc/classes/TaskJuggler/SourceFileInfo.html +12 -12
  137. data/doc/classes/TaskJuggler/StringAttribute.html +30 -30
  138. data/doc/classes/TaskJuggler/SymbolAttribute.html +20 -20
  139. data/doc/classes/TaskJuggler/SyntaxReference.html +42 -42
  140. data/doc/classes/TaskJuggler/TOCEntry.html +12 -12
  141. data/doc/classes/TaskJuggler/TSResourceRecord.html +197 -0
  142. data/doc/classes/TaskJuggler/TSTaskRecord.html +215 -0
  143. data/doc/classes/TaskJuggler/TableColumnDefinition.html +64 -43
  144. data/doc/classes/TaskJuggler/TableOfContents.html +18 -18
  145. data/doc/classes/TaskJuggler/TableReport.html +447 -468
  146. data/doc/classes/TaskJuggler/Task.html +12 -12
  147. data/doc/classes/TaskJuggler/TaskDependency.html +12 -12
  148. data/doc/classes/TaskJuggler/TaskListAttribute.html +47 -47
  149. data/doc/classes/TaskJuggler/TaskListRE.html +43 -39
  150. data/doc/classes/TaskJuggler/TaskScenario.html +529 -282
  151. data/doc/classes/TaskJuggler/TextParser.html +215 -194
  152. data/doc/classes/TaskJuggler/TextParser/Pattern.html +97 -97
  153. data/doc/classes/TaskJuggler/TextParser/Rule.html +84 -84
  154. data/doc/classes/TaskJuggler/TextParser/StackElement.html +16 -15
  155. data/doc/classes/TaskJuggler/TextParser/TextParserResultArray.html +12 -12
  156. data/doc/classes/TaskJuggler/TextParser/TokenDoc.html +6 -6
  157. data/doc/classes/TaskJuggler/TextReport.html +77 -74
  158. data/doc/classes/TaskJuggler/TextScanner.html +294 -281
  159. data/doc/classes/TaskJuggler/TextScanner/BufferStreamHandle.html +70 -70
  160. data/doc/classes/TaskJuggler/TextScanner/FileStreamHandle.html +59 -60
  161. data/doc/classes/TaskJuggler/TextScanner/StreamHandle.html +12 -12
  162. data/doc/classes/TaskJuggler/TimeSheetReport.html +406 -0
  163. data/doc/classes/TaskJuggler/TjException.html +6 -6
  164. data/doc/classes/TaskJuggler/TjTime.html +522 -513
  165. data/doc/classes/TaskJuggler/TjpExample.html +25 -25
  166. data/doc/classes/TaskJuggler/TjpExportRE.html +21 -24
  167. data/doc/classes/TaskJuggler/TjpSyntaxRules.html +6177 -4318
  168. data/doc/classes/TaskJuggler/UserManual.html +212 -213
  169. data/doc/classes/TaskJuggler/WorkingHours.html +49 -49
  170. data/doc/classes/TaskJuggler/WorkingHoursAttribute.html +53 -53
  171. data/doc/classes/TaskJuggler/XMLBlob.html +21 -21
  172. data/doc/classes/TaskJuggler/XMLComment.html +21 -21
  173. data/doc/classes/TaskJuggler/XMLDocument.html +27 -26
  174. data/doc/classes/TaskJuggler/XMLElement.html +86 -50
  175. data/doc/classes/TaskJuggler/XMLNamedText.html +11 -11
  176. data/doc/classes/TaskJuggler/XMLText.html +36 -36
  177. data/doc/files/COPYING.html +1 -1
  178. data/doc/files/README.html +1 -1
  179. data/doc/files/lib/AccountScenario_rb.html +3 -2
  180. data/doc/files/lib/Account_rb.html +3 -2
  181. data/doc/files/lib/Allocation_rb.html +3 -2
  182. data/doc/files/lib/AppConfig_rb.html +5 -2
  183. data/doc/files/lib/AttributeBase_rb.html +3 -2
  184. data/doc/files/lib/AttributeDefinition_rb.html +3 -2
  185. data/doc/files/lib/Attributes_rb.html +3 -2
  186. data/doc/files/lib/BatchProcessor_rb.html +4 -3
  187. data/doc/files/lib/Booking_rb.html +3 -2
  188. data/doc/files/lib/ChargeSet_rb.html +3 -2
  189. data/doc/files/lib/Charge_rb.html +3 -2
  190. data/doc/files/lib/HTMLDocument_rb.html +3 -2
  191. data/doc/files/lib/Interval_rb.html +3 -2
  192. data/doc/files/lib/Journal_rb.html +4 -3
  193. data/doc/files/lib/KeywordArray_rb.html +3 -2
  194. data/doc/files/lib/KeywordDocumentation_rb.html +3 -2
  195. data/doc/files/lib/Limits_rb.html +3 -2
  196. data/doc/files/lib/Log_rb.html +3 -2
  197. data/doc/files/lib/LogicalExpression_rb.html +3 -2
  198. data/doc/files/lib/LogicalFunction_rb.html +3 -2
  199. data/doc/files/lib/LogicalOperation_rb.html +3 -2
  200. data/doc/files/lib/MacroParser_rb.html +3 -2
  201. data/doc/files/lib/MacroTable_rb.html +3 -2
  202. data/doc/files/lib/MessageHandler_rb.html +3 -2
  203. data/doc/files/lib/Message_rb.html +3 -2
  204. data/doc/files/lib/ProjectFileParser_rb.html +7 -4
  205. data/doc/files/lib/Project_rb.html +3 -2
  206. data/doc/files/lib/PropertyList_rb.html +3 -2
  207. data/doc/files/lib/PropertySet_rb.html +3 -2
  208. data/doc/files/lib/PropertyTreeNode_rb.html +3 -2
  209. data/doc/files/lib/Query_rb.html +3 -2
  210. data/doc/files/lib/{RTPNavigator_rb.html → RTFNavigator_rb.html} +8 -7
  211. data/doc/files/lib/RTFQuery_rb.html +121 -0
  212. data/doc/files/lib/{RTPReport_rb.html → RTFReport_rb.html} +8 -7
  213. data/doc/files/lib/RealFormat_rb.html +3 -2
  214. data/doc/files/lib/RemoteServiceManager_rb.html +117 -0
  215. data/doc/files/lib/ReportServer_rb.html +107 -0
  216. data/doc/files/lib/ResourceScenario_rb.html +3 -2
  217. data/doc/files/lib/Resource_rb.html +3 -2
  218. data/doc/files/lib/RichTextDocument_rb.html +4 -3
  219. data/doc/files/lib/RichTextElement_rb.html +3 -2
  220. data/doc/files/lib/{RichTextProtocolExample_rb.html → RichTextFunctionExample_rb.html} +8 -7
  221. data/doc/files/lib/{RichTextProtocolHandler_rb.html → RichTextFunctionHandler_rb.html} +7 -6
  222. data/doc/files/lib/RichTextParser_rb.html +3 -2
  223. data/doc/files/lib/RichTextScanner_rb.html +3 -2
  224. data/doc/files/lib/RichTextSnip_rb.html +3 -2
  225. data/doc/files/lib/RichTextSyntaxRules_rb.html +3 -2
  226. data/doc/files/lib/RichText_rb.html +3 -2
  227. data/doc/files/lib/ScenarioData_rb.html +3 -2
  228. data/doc/files/lib/Scenario_rb.html +3 -2
  229. data/doc/files/lib/Scoreboard_rb.html +3 -2
  230. data/doc/files/lib/ShiftAssignments_rb.html +3 -2
  231. data/doc/files/lib/ShiftScenario_rb.html +3 -2
  232. data/doc/files/lib/Shift_rb.html +3 -2
  233. data/doc/files/lib/SourceFileInfo_rb.html +3 -2
  234. data/doc/files/lib/SyntaxReference_rb.html +3 -2
  235. data/doc/files/lib/TOCEntry_rb.html +3 -2
  236. data/doc/files/lib/TableColumnDefinition_rb.html +3 -2
  237. data/doc/files/lib/TableOfContents_rb.html +3 -2
  238. data/doc/files/lib/TaskDependency_rb.html +3 -2
  239. data/doc/files/lib/TaskJuggler_rb.html +7 -2
  240. data/doc/files/lib/TaskScenario_rb.html +3 -2
  241. data/doc/files/lib/Task_rb.html +3 -2
  242. data/doc/files/lib/TextParser/Pattern_rb.html +4 -3
  243. data/doc/files/lib/TextParser/Rule_rb.html +4 -3
  244. data/doc/files/lib/TextParser/StackElement_rb.html +4 -3
  245. data/doc/files/lib/TextParser/TokenDoc_rb.html +4 -3
  246. data/doc/files/lib/TextParser_rb.html +3 -2
  247. data/doc/files/lib/TextScanner_rb.html +3 -2
  248. data/doc/files/lib/Tj3Config_rb.html +3 -2
  249. data/doc/files/lib/TjException_rb.html +3 -2
  250. data/doc/files/lib/TjTime_rb.html +3 -2
  251. data/doc/files/lib/TjpExample_rb.html +3 -2
  252. data/doc/files/lib/TjpSyntaxRules_rb.html +3 -2
  253. data/doc/files/lib/UTF8String_rb.html +14 -6
  254. data/doc/files/lib/UserManual_rb.html +6 -3
  255. data/doc/files/lib/WorkingHours_rb.html +3 -2
  256. data/doc/files/lib/XMLDocument_rb.html +3 -2
  257. data/doc/files/lib/XMLElement_rb.html +3 -2
  258. data/doc/files/lib/deep_copy_rb.html +3 -2
  259. data/doc/files/lib/reports/CSVFile_rb.html +3 -2
  260. data/doc/files/lib/reports/ColumnTable_rb.html +3 -2
  261. data/doc/files/lib/reports/GanttChart_rb.html +3 -2
  262. data/doc/files/lib/reports/GanttContainer_rb.html +3 -2
  263. data/doc/files/lib/reports/GanttHeaderScaleItem_rb.html +3 -2
  264. data/doc/files/lib/reports/GanttHeader_rb.html +3 -2
  265. data/doc/files/lib/reports/GanttLine_rb.html +3 -2
  266. data/doc/files/lib/reports/GanttLoadStack_rb.html +3 -2
  267. data/doc/files/lib/reports/GanttMilestone_rb.html +3 -2
  268. data/doc/files/lib/reports/GanttRouter_rb.html +3 -2
  269. data/doc/files/lib/reports/GanttTaskBar_rb.html +3 -2
  270. data/doc/files/lib/reports/HTMLGraphics_rb.html +3 -2
  271. data/doc/files/lib/reports/Navigator_rb.html +3 -2
  272. data/doc/files/lib/reports/ReportBase_rb.html +3 -2
  273. data/doc/files/lib/reports/ReportContext_rb.html +3 -2
  274. data/doc/files/lib/reports/ReportTableCell_rb.html +3 -2
  275. data/doc/files/lib/reports/ReportTableColumn_rb.html +3 -2
  276. data/doc/files/lib/reports/ReportTableLegend_rb.html +3 -2
  277. data/doc/files/lib/reports/ReportTableLine_rb.html +3 -2
  278. data/doc/files/lib/reports/ReportTable_rb.html +3 -2
  279. data/doc/files/lib/reports/Report_rb.html +7 -2
  280. data/doc/files/lib/reports/ResourceListRE_rb.html +3 -2
  281. data/doc/files/lib/reports/TableReport_rb.html +3 -2
  282. data/doc/files/lib/reports/TaskListRE_rb.html +3 -2
  283. data/doc/files/lib/reports/TextReport_rb.html +4 -3
  284. data/doc/files/lib/reports/TimeSheetReport_rb.html +117 -0
  285. data/doc/files/lib/reports/TjpExportRE_rb.html +3 -2
  286. data/doc/files/lib/taskjuggler3_rb.html +94 -77
  287. data/doc/files/lib/tj3client_rb.html +280 -0
  288. data/doc/files/lib/tj3man_rb.html +10 -9
  289. data/doc/fr_class_index.html +27 -5
  290. data/doc/fr_file_index.html +15 -7
  291. data/doc/fr_method_index.html +1312 -1020
  292. data/examples/tutorial.tjp +113 -14
  293. data/gem_spec.rb +2 -1
  294. data/lib/Account.rb +1 -1
  295. data/lib/AccountScenario.rb +1 -1
  296. data/lib/Allocation.rb +1 -1
  297. data/lib/AppConfig.rb +23 -10
  298. data/lib/AttributeBase.rb +34 -6
  299. data/lib/AttributeDefinition.rb +1 -1
  300. data/lib/Attributes.rb +51 -16
  301. data/lib/BatchProcessor.rb +204 -77
  302. data/lib/Booking.rb +1 -1
  303. data/lib/Charge.rb +1 -1
  304. data/lib/ChargeSet.rb +1 -1
  305. data/lib/HTMLDocument.rb +2 -2
  306. data/lib/Interval.rb +1 -1
  307. data/lib/Journal.rb +231 -9
  308. data/lib/KeywordArray.rb +1 -1
  309. data/lib/KeywordDocumentation.rb +6 -4
  310. data/lib/Limits.rb +1 -1
  311. data/lib/Log.rb +8 -1
  312. data/lib/LogicalExpression.rb +14 -13
  313. data/lib/LogicalFunction.rb +88 -14
  314. data/lib/LogicalOperation.rb +124 -53
  315. data/lib/MacroParser.rb +1 -1
  316. data/lib/MacroTable.rb +2 -2
  317. data/lib/Message.rb +1 -1
  318. data/lib/MessageHandler.rb +7 -3
  319. data/lib/Project.rb +93 -14
  320. data/lib/ProjectFileParser.rb +30 -15
  321. data/lib/PropertyList.rb +103 -36
  322. data/lib/PropertySet.rb +22 -10
  323. data/lib/PropertyTreeNode.rb +120 -15
  324. data/lib/Query.rb +119 -48
  325. data/lib/{RTPNavigator.rb → RTFNavigator.rb} +11 -10
  326. data/lib/RTFQuery.rb +166 -0
  327. data/lib/{RTPReport.rb → RTFReport.rb} +11 -8
  328. data/lib/RealFormat.rb +1 -1
  329. data/lib/RemoteServiceManager.rb +80 -0
  330. data/lib/ReportServer.rb +66 -0
  331. data/lib/Resource.rb +1 -1
  332. data/lib/ResourceScenario.rb +48 -19
  333. data/lib/RichText.rb +98 -41
  334. data/lib/RichTextDocument.rb +10 -8
  335. data/lib/RichTextElement.rb +72 -28
  336. data/lib/{RichTextProtocolExample.rb → RichTextFunctionExample.rb} +8 -7
  337. data/lib/{RichTextProtocolHandler.rb → RichTextFunctionHandler.rb} +12 -14
  338. data/lib/RichTextParser.rb +6 -3
  339. data/lib/RichTextScanner.rb +91 -19
  340. data/lib/RichTextSnip.rb +8 -3
  341. data/lib/RichTextSyntaxRules.rb +103 -45
  342. data/lib/Scenario.rb +1 -1
  343. data/lib/ScenarioData.rb +2 -2
  344. data/lib/Scoreboard.rb +1 -1
  345. data/lib/Shift.rb +1 -1
  346. data/lib/ShiftAssignments.rb +1 -1
  347. data/lib/ShiftScenario.rb +1 -1
  348. data/lib/SourceFileInfo.rb +1 -1
  349. data/lib/SyntaxReference.rb +2 -2
  350. data/lib/TOCEntry.rb +1 -1
  351. data/lib/TableColumnDefinition.rb +59 -16
  352. data/lib/TableOfContents.rb +1 -1
  353. data/lib/Task.rb +1 -1
  354. data/lib/TaskDependency.rb +1 -1
  355. data/lib/TaskJuggler.rb +31 -8
  356. data/lib/TaskScenario.rb +165 -16
  357. data/lib/TextParser.rb +36 -22
  358. data/lib/TextParser/Pattern.rb +3 -3
  359. data/lib/TextParser/Rule.rb +2 -2
  360. data/lib/TextParser/StackElement.rb +4 -3
  361. data/lib/TextParser/TokenDoc.rb +2 -2
  362. data/lib/TextScanner.rb +52 -37
  363. data/lib/Tj3Config.rb +6 -5
  364. data/lib/TjException.rb +1 -1
  365. data/lib/TjTime.rb +12 -3
  366. data/lib/TjpExample.rb +1 -1
  367. data/lib/TjpSyntaxRules.rb +1044 -150
  368. data/lib/UTF8String.rb +2 -1
  369. data/lib/UserManual.rb +18 -70
  370. data/lib/WorkingHours.rb +3 -3
  371. data/lib/XMLDocument.rb +3 -2
  372. data/lib/XMLElement.rb +6 -1
  373. data/lib/deep_copy.rb +1 -1
  374. data/lib/reports/CSVFile.rb +1 -1
  375. data/lib/reports/ColumnTable.rb +9 -9
  376. data/lib/reports/GanttChart.rb +1 -1
  377. data/lib/reports/GanttContainer.rb +1 -1
  378. data/lib/reports/GanttHeader.rb +1 -1
  379. data/lib/reports/GanttHeaderScaleItem.rb +1 -1
  380. data/lib/reports/GanttLine.rb +40 -40
  381. data/lib/reports/GanttLoadStack.rb +1 -1
  382. data/lib/reports/GanttMilestone.rb +1 -1
  383. data/lib/reports/GanttRouter.rb +1 -1
  384. data/lib/reports/GanttTaskBar.rb +1 -1
  385. data/lib/reports/HTMLGraphics.rb +1 -1
  386. data/lib/reports/Navigator.rb +149 -22
  387. data/lib/reports/Report.rb +115 -172
  388. data/lib/reports/ReportBase.rb +22 -27
  389. data/lib/reports/ReportContext.rb +29 -15
  390. data/lib/reports/ReportTable.rb +1 -1
  391. data/lib/reports/ReportTableCell.rb +120 -27
  392. data/lib/reports/ReportTableColumn.rb +3 -3
  393. data/lib/reports/ReportTableLegend.rb +1 -1
  394. data/lib/reports/ReportTableLine.rb +10 -2
  395. data/lib/reports/ResourceListRE.rb +5 -1
  396. data/lib/reports/TableReport.rb +237 -287
  397. data/lib/reports/TaskListRE.rb +5 -1
  398. data/lib/reports/TextReport.rb +7 -4
  399. data/lib/reports/TimeSheetReport.rb +233 -0
  400. data/lib/reports/TjpExportRE.rb +2 -2
  401. data/lib/taskjuggler3.rb +27 -11
  402. data/lib/tj3client.rb +110 -0
  403. data/lib/tj3man.rb +4 -4
  404. data/manual/Getting_Started +0 -50
  405. data/manual/How_To_Contribute +6 -13
  406. data/manual/Installation +102 -28
  407. data/manual/Intro +11 -1
  408. data/manual/Reporting_Bugs +23 -7
  409. data/manual/Rich_Text_Attributes +59 -6
  410. data/manual/TaskJuggler_2x_Migration +27 -0
  411. data/manual/The_TaskJuggler_Syntax +104 -0
  412. data/manual/Tutorial +10 -9
  413. data/prj_cfg.rb +8 -2
  414. data/tasks/csts.rake +1 -1
  415. data/tasks/manual.rake +5 -3
  416. data/test/MessageChecker.rb +1 -1
  417. data/test/TestSuite/HTML-Reports/Alerts.html +172 -0
  418. data/test/TestSuite/HTML-Reports/Alerts.tjp +77 -0
  419. data/test/TestSuite/HTML-Reports/CellText.html +758 -0
  420. data/test/TestSuite/HTML-Reports/CellText.tjp +75 -0
  421. data/test/TestSuite/HTML-Reports/ColumnPeriods.html +156 -0
  422. data/test/TestSuite/HTML-Reports/ColumnPeriods.tjp +44 -0
  423. data/test/TestSuite/HTML-Reports/IsOngoing.html +172 -0
  424. data/test/TestSuite/HTML-Reports/IsOngoing.tjp +34 -0
  425. data/test/TestSuite/HTML-Reports/LogicalFunctions.html +80 -0
  426. data/test/TestSuite/HTML-Reports/LogicalFunctions.tjp +20 -0
  427. data/test/TestSuite/HTML-Reports/Query.html +31 -0
  428. data/test/TestSuite/HTML-Reports/Query.tjp +28 -0
  429. data/test/TestSuite/HTML-Reports/Sorting.tjp +68 -0
  430. data/test/TestSuite/HTML-Reports/TimeSheet.tjp +69 -0
  431. data/test/TestSuite/HTML-Reports/UDAQuery.tjp +27 -0
  432. data/test/TestSuite/HTML-Reports/css/tjmanual.css +52 -0
  433. data/test/TestSuite/HTML-Reports/css/tjreport.css +195 -0
  434. data/test/TestSuite/HTML-Reports/depArrows.html +842 -0
  435. data/test/TestSuite/HTML-Reports/icons/details.png +0 -0
  436. data/test/TestSuite/HTML-Reports/icons/flag-green.png +0 -0
  437. data/test/TestSuite/HTML-Reports/icons/flag-red.png +0 -0
  438. data/test/TestSuite/HTML-Reports/icons/flag-yellow.png +0 -0
  439. data/test/TestSuite/HTML-Reports/icons/resource.png +0 -0
  440. data/test/TestSuite/HTML-Reports/icons/resourcegroup.png +0 -0
  441. data/test/TestSuite/HTML-Reports/icons/task.png +0 -0
  442. data/test/TestSuite/HTML-Reports/icons/taskgroup.png +0 -0
  443. data/test/TestSuite/HTML-Reports/reference.tjp +7 -8
  444. data/test/TestSuite/HTML-Reports/scripts/scripts/wz_tooltip.js +1301 -0
  445. data/test/TestSuite/HTML-Reports/scripts/wz_tooltip.js +1301 -0
  446. data/test/TestSuite/Scheduler/Correct/Mandatory.tjp +34 -0
  447. data/test/TestSuite/Syntax/Correct/Celltext.tjp +2 -1
  448. data/test/TestSuite/Syntax/Correct/Journal.tjp +2 -2
  449. data/test/TestSuite/Syntax/Correct/LogicalExpression.tjp +2 -1
  450. data/test/TestSuite/Syntax/Correct/LogicalFunction.tjp +20 -0
  451. data/test/TestSuite/Syntax/Correct/Query.tjp +18 -0
  452. data/test/TestSuite/Syntax/Correct/StatusSheet.tjp +45 -0
  453. data/test/TestSuite/Syntax/Correct/TimeSheet.tjp +49 -0
  454. data/test/TestSuite/Syntax/Correct/icons/details.png +0 -0
  455. data/test/TestSuite/Syntax/Correct/icons/flag-green.png +0 -0
  456. data/test/TestSuite/Syntax/Correct/icons/flag-red.png +0 -0
  457. data/test/TestSuite/Syntax/Correct/icons/flag-yellow.png +0 -0
  458. data/test/TestSuite/Syntax/Correct/icons/resource.png +0 -0
  459. data/test/TestSuite/Syntax/Correct/icons/resourcegroup.png +0 -0
  460. data/test/TestSuite/Syntax/Correct/icons/task.png +0 -0
  461. data/test/TestSuite/Syntax/Correct/icons/taskgroup.png +0 -0
  462. data/test/TestSuite/Syntax/Correct/scripts/wz_tooltip.js +1301 -0
  463. data/test/TestSuite/Syntax/Correct/tutorial.tjp +113 -14
  464. data/test/TestSuite/Syntax/Errors/macro_stack_overflow.tjp +28 -0
  465. data/test/TestSuite/Syntax/Errors/unsupported_token.tjp +12 -0
  466. data/test/all.rb +2 -2
  467. data/test/test_BatchProcessor.rb +42 -13
  468. data/test/test_CSV-Reports.rb +1 -1
  469. data/test/test_Journal.rb +176 -0
  470. data/test/test_Limits.rb +1 -1
  471. data/test/test_LogicalExpression.rb +14 -5
  472. data/test/test_MacroTable.rb +1 -1
  473. data/test/test_Project.rb +1 -1
  474. data/test/test_PropertySet.rb +1 -1
  475. data/test/test_Query.rb +1 -1
  476. data/test/test_RealFormat.rb +1 -1
  477. data/test/test_RichText.rb +30 -20
  478. data/test/test_Scheduler.rb +1 -1
  479. data/test/test_ShiftAssignments.rb +2 -2
  480. data/test/test_Syntax.rb +1 -1
  481. data/test/test_TextScanner.rb +1 -1
  482. data/test/test_TjTime.rb +1 -1
  483. data/test/test_TjpExample.rb +1 -1
  484. data/test/test_UTF8String.rb +1 -1
  485. data/test/test_WorkingHours.rb +1 -1
  486. data/test/test_deep_copy.rb +2 -2
  487. metadata +610 -532
  488. data/doc/files/lib/ms_test_rb.html +0 -90
  489. data/examples/ContactList.html +0 -1467
  490. data/examples/Deliveries.html +0 -485
  491. data/examples/Development.html +0 -2525
  492. data/examples/Overview.html +0 -747
  493. data/examples/Resource Graph.html +0 -616
  494. data/lib/ms_test.rb +0 -27
  495. data/test/TestSuite/HTML-Reports/reference-export.html +0 -187
@@ -87,6 +87,16 @@
87
87
 
88
88
  <div id="contextContent">
89
89
 
90
+ <div id="description">
91
+ <p>
92
+ A <a href="Journal.html">Journal</a> is a list of <a
93
+ href="JournalEntry.html">JournalEntry</a> objects. It provides methods to
94
+ add <a href="JournalEntry.html">JournalEntry</a> objects and retrieve
95
+ specific entries or other processed information.
96
+ </p>
97
+
98
+ </div>
99
+
90
100
  </div>
91
101
 
92
102
 
@@ -95,9 +105,17 @@
95
105
 
96
106
  <div class="name-list">
97
107
 
98
- <a href="#M000757">addEntry</a>&nbsp;&nbsp;
108
+ <a href="#M000507">addEntry</a>&nbsp;&nbsp;
109
+
110
+ <a href="#M000509">alertLevel</a>&nbsp;&nbsp;
111
+
112
+ <a href="#M000510">currentEntries</a>&nbsp;&nbsp;
113
+
114
+ <a href="#M000511">currentEntriesR</a>&nbsp;&nbsp;
99
115
 
100
- <a href="#M000756">new</a>&nbsp;&nbsp;
116
+ <a href="#M000508">entries</a>&nbsp;&nbsp;
117
+
118
+ <a href="#M000506">new</a>&nbsp;&nbsp;
101
119
 
102
120
  </div>
103
121
  </div>
@@ -118,12 +136,12 @@
118
136
  <h3 class="section-bar">Public Class methods</h3>
119
137
 
120
138
 
121
- <div id="method-M000756" class="method-detail">
122
- <a name="M000756"></a>
139
+ <div id="method-M000506" class="method-detail">
140
+ <a name="M000506"></a>
123
141
 
124
142
  <div class="method-heading">
125
143
 
126
- <a href="#M000756" class="method-signature">
144
+ <a href="#M000506" class="method-signature">
127
145
 
128
146
  <span class="method-name">new</span><span class="method-args">()</span>
129
147
 
@@ -133,14 +151,21 @@
133
151
 
134
152
  <div class="method-description">
135
153
 
154
+ <p>
155
+ Create a new <a href="Journal.html">Journal</a> object.
156
+ </p>
157
+
136
158
  <p><a class="source-toggle" href="#"
137
- onclick="toggleCode('M000756-source');return false;">[Source]</a></p>
138
- <div class="method-source-code" id="M000756-source">
159
+ onclick="toggleCode('M000506-source');return false;">[Source]</a></p>
160
+ <div class="method-source-code" id="M000506-source">
139
161
  <pre>
140
- <span class="ruby-comment cmt"># File lib/Journal.rb, line 34</span>
141
- 34: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>
142
- 35: <span class="ruby-ivar">@entries</span> = []
143
- 36: <span class="ruby-keyword kw">end</span>
162
+ <span class="ruby-comment cmt"># File lib/Journal.rb, line 152</span>
163
+ 152: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>
164
+ 153: <span class="ruby-comment cmt"># This list holds all entries.</span>
165
+ 154: <span class="ruby-ivar">@entries</span> = <span class="ruby-constant">JournalEntryList</span>.<span class="ruby-identifier">new</span>
166
+ 155: <span class="ruby-comment cmt"># This hash holds a list of entries for each property.</span>
167
+ 156: <span class="ruby-ivar">@propertyToEntries</span> = {}
168
+ 157: <span class="ruby-keyword kw">end</span>
144
169
  </pre>
145
170
  </div>
146
171
 
@@ -151,12 +176,12 @@
151
176
  <h3 class="section-bar">Public Instance methods</h3>
152
177
 
153
178
 
154
- <div id="method-M000757" class="method-detail">
155
- <a name="M000757"></a>
179
+ <div id="method-M000507" class="method-detail">
180
+ <a name="M000507"></a>
156
181
 
157
182
  <div class="method-heading">
158
183
 
159
- <a href="#M000757" class="method-signature">
184
+ <a href="#M000507" class="method-signature">
160
185
 
161
186
  <span class="method-name">addEntry</span><span class="method-args">(entry)</span>
162
187
 
@@ -164,16 +189,237 @@
164
189
 
165
190
  </div>
166
191
 
192
+ <div class="method-description">
193
+
194
+ <p>
195
+ Add a new <a href="JournalEntry.html">JournalEntry</a> to the <a
196
+ href="Journal.html">Journal</a>.
197
+ </p>
198
+
199
+ <p><a class="source-toggle" href="#"
200
+ onclick="toggleCode('M000507-source');return false;">[Source]</a></p>
201
+ <div class="method-source-code" id="M000507-source">
202
+ <pre>
203
+ <span class="ruby-comment cmt"># File lib/Journal.rb, line 160</span>
204
+ 160: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">addEntry</span>(<span class="ruby-identifier">entry</span>)
205
+ 161: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@entries</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">entry</span>)
206
+ 162: <span class="ruby-ivar">@entries</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">entry</span>
207
+ 163:
208
+ 164: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">property</span>.<span class="ruby-identifier">nil?</span>
209
+ 165:
210
+ 166: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@propertyToEntries</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">entry</span>.<span class="ruby-identifier">property</span>)
211
+ 167: <span class="ruby-ivar">@propertyToEntries</span>[<span class="ruby-identifier">entry</span>.<span class="ruby-identifier">property</span>] = <span class="ruby-constant">JournalEntryList</span>.<span class="ruby-identifier">new</span>
212
+ 168: <span class="ruby-keyword kw">end</span>
213
+ 169: <span class="ruby-ivar">@propertyToEntries</span>[<span class="ruby-identifier">entry</span>.<span class="ruby-identifier">property</span>] <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">entry</span>
214
+ 170: <span class="ruby-keyword kw">end</span>
215
+ </pre>
216
+ </div>
217
+
218
+ </div>
219
+ </div>
220
+
221
+
222
+ <div id="method-M000509" class="method-detail">
223
+ <a name="M000509"></a>
224
+
225
+ <div class="method-heading">
226
+
227
+ <a href="#M000509" class="method-signature">
228
+
229
+ <span class="method-name">alertLevel</span><span class="method-args">(date, property)</span>
230
+
231
+ </a>
232
+
233
+ </div>
234
+
235
+ <div class="method-description">
236
+
237
+ <p>
238
+ Determine the alert level for the given <em>property</em> at the given
239
+ <em>date</em>. If the property does not have any <a
240
+ href="JournalEntry.html">JournalEntry</a> objects or they are out of date
241
+ compared to the child properties, the level is computed based on the
242
+ highest level of the children.
243
+ </p>
244
+
245
+ <p><a class="source-toggle" href="#"
246
+ onclick="toggleCode('M000509-source');return false;">[Source]</a></p>
247
+ <div class="method-source-code" id="M000509-source">
248
+ <pre>
249
+ <span class="ruby-comment cmt"># File lib/Journal.rb, line 191</span>
250
+ 191: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">alertLevel</span>(<span class="ruby-identifier">date</span>, <span class="ruby-identifier">property</span>)
251
+ 192: <span class="ruby-identifier">maxLevel</span> = <span class="ruby-value">0</span>
252
+ 193: <span class="ruby-comment cmt"># Gather all the current (as of the specified _date_) JournalEntry</span>
253
+ 194: <span class="ruby-comment cmt"># objects for the property and than find the highest level.</span>
254
+ 195: <span class="ruby-identifier">currentEntriesR</span>(<span class="ruby-identifier">date</span>, <span class="ruby-identifier">property</span>).<span class="ruby-identifier">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>
255
+ 196: <span class="ruby-identifier">maxLevel</span> = <span class="ruby-identifier">e</span>.<span class="ruby-identifier">alertLevel</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">maxLevel</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">e</span>.<span class="ruby-identifier">alertLevel</span>
256
+ 197: <span class="ruby-keyword kw">end</span>
257
+ 198: <span class="ruby-identifier">maxLevel</span>
258
+ 199: <span class="ruby-keyword kw">end</span>
259
+ </pre>
260
+ </div>
261
+
262
+ </div>
263
+ </div>
264
+
265
+
266
+ <div id="method-M000510" class="method-detail">
267
+ <a name="M000510"></a>
268
+
269
+ <div class="method-heading">
270
+
271
+ <a href="#M000510" class="method-signature">
272
+
273
+ <span class="method-name">currentEntries</span><span class="method-args">(date, property, minLevel, minDate)</span>
274
+
275
+ </a>
276
+
277
+ </div>
278
+
279
+ <div class="method-description">
280
+
281
+ <p>
282
+ This function returns a list of entries that have all the exact same date
283
+ and are the last entries before the deadline <em>date</em>. Only messages
284
+ with at least the required alert level <em>minLevel</em> are returned.
285
+ Messages with alert level <em>minLevel</em> must not be older than
286
+ <em>minDate</em>.
287
+ </p>
288
+
289
+ <p><a class="source-toggle" href="#"
290
+ onclick="toggleCode('M000510-source');return false;">[Source]</a></p>
291
+ <div class="method-source-code" id="M000510-source">
292
+ <pre>
293
+ <span class="ruby-comment cmt"># File lib/Journal.rb, line 205</span>
294
+ 205: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">currentEntries</span>(<span class="ruby-identifier">date</span>, <span class="ruby-identifier">property</span>, <span class="ruby-identifier">minLevel</span>, <span class="ruby-identifier">minDate</span>)
295
+ 206: <span class="ruby-identifier">pEntries</span> = <span class="ruby-ivar">@propertyToEntries</span>[<span class="ruby-identifier">property</span>] <span class="ruby-operator">?</span>
296
+ 207: <span class="ruby-ivar">@propertyToEntries</span>[<span class="ruby-identifier">property</span>].<span class="ruby-identifier">last</span>(<span class="ruby-identifier">date</span>) <span class="ruby-operator">:</span> []
297
+ 208: <span class="ruby-comment cmt"># Remove entries below the minium alert level or before the timeout</span>
298
+ 209: <span class="ruby-comment cmt"># date.</span>
299
+ 210: <span class="ruby-identifier">pEntries</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">e</span>.<span class="ruby-identifier">alertLevel</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">minLevel</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">e</span>.<span class="ruby-identifier">headline</span>.<span class="ruby-identifier">empty?</span> <span class="ruby-operator">||</span>
300
+ 211: (<span class="ruby-identifier">e</span>.<span class="ruby-identifier">alertLevel</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">minLevel</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">e</span>.<span class="ruby-identifier">date</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">minDate</span>) }
301
+ 212:
302
+ 213: <span class="ruby-keyword kw">return</span> [] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">pEntries</span>.<span class="ruby-identifier">empty?</span>
303
+ 214:
304
+ 215: <span class="ruby-comment cmt"># Check parents for a more important or more up-to-date message.</span>
305
+ 216: <span class="ruby-identifier">p</span> = <span class="ruby-identifier">property</span>.<span class="ruby-identifier">parent</span>
306
+ 217: <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">p</span> <span class="ruby-keyword kw">do</span>
307
+ 218: <span class="ruby-identifier">ppEntries</span> = <span class="ruby-ivar">@propertyToEntries</span>[<span class="ruby-identifier">p</span>] <span class="ruby-operator">?</span>
308
+ 219: <span class="ruby-ivar">@propertyToEntries</span>[<span class="ruby-identifier">p</span>].<span class="ruby-identifier">last</span>(<span class="ruby-identifier">date</span>) <span class="ruby-operator">:</span> []
309
+ 220:
310
+ 221: <span class="ruby-comment cmt"># A parent has a more up-to-date message.</span>
311
+ 222: <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">ppEntries</span>.<span class="ruby-identifier">empty?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">ppEntries</span>.<span class="ruby-identifier">first</span>.<span class="ruby-identifier">date</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-identifier">pEntries</span>.<span class="ruby-identifier">first</span>.<span class="ruby-identifier">date</span>
312
+ 223: <span class="ruby-keyword kw">return</span> []
313
+ 224: <span class="ruby-keyword kw">end</span>
314
+ 225:
315
+ 226: <span class="ruby-identifier">p</span> = <span class="ruby-identifier">p</span>.<span class="ruby-identifier">parent</span>
316
+ 227: <span class="ruby-keyword kw">end</span>
317
+ 228:
318
+ 229: <span class="ruby-identifier">pEntries</span>
319
+ 230: <span class="ruby-keyword kw">end</span>
320
+ </pre>
321
+ </div>
322
+
323
+ </div>
324
+ </div>
325
+
326
+
327
+ <div id="method-M000511" class="method-detail">
328
+ <a name="M000511"></a>
329
+
330
+ <div class="method-heading">
331
+
332
+ <a href="#M000511" class="method-signature">
333
+
334
+ <span class="method-name">currentEntriesR</span><span class="method-args">(date, property)</span>
335
+
336
+ </a>
337
+
338
+ </div>
339
+
340
+ <div class="method-description">
341
+
342
+ <p>
343
+ This function recursively traverses a tree of <a
344
+ href="PropertyTreeNode.html">PropertyTreeNode</a> objects from bottom to
345
+ top. It returns the last entries before <em>date</em> for each property
346
+ unless there is a property in the sub-tree specified by the root
347
+ <em>property</em> with more up-to-date entries. The result is a <a
348
+ href="JournalEntryList.html">JournalEntryList</a>.
349
+ </p>
350
+
351
+ <p><a class="source-toggle" href="#"
352
+ onclick="toggleCode('M000511-source');return false;">[Source]</a></p>
353
+ <div class="method-source-code" id="M000511-source">
354
+ <pre>
355
+ <span class="ruby-comment cmt"># File lib/Journal.rb, line 237</span>
356
+ 237: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">currentEntriesR</span>(<span class="ruby-identifier">date</span>, <span class="ruby-identifier">property</span>)
357
+ 238: <span class="ruby-comment cmt"># See if this property has any current JournalEntry objects.</span>
358
+ 239: <span class="ruby-identifier">pEntries</span> = <span class="ruby-ivar">@propertyToEntries</span>[<span class="ruby-identifier">property</span>] <span class="ruby-operator">?</span>
359
+ 240: <span class="ruby-ivar">@propertyToEntries</span>[<span class="ruby-identifier">property</span>].<span class="ruby-identifier">last</span>(<span class="ruby-identifier">date</span>) <span class="ruby-operator">:</span> []
360
+ 241:
361
+ 242: <span class="ruby-identifier">entries</span> = <span class="ruby-constant">JournalEntryList</span>.<span class="ruby-identifier">new</span>
362
+ 243: <span class="ruby-identifier">latestDate</span> = <span class="ruby-keyword kw">nil</span>
363
+ 244: <span class="ruby-comment cmt"># Now gather all current entries of the child properties and find the</span>
364
+ 245: <span class="ruby-comment cmt"># date that is closest to and right before the given _date_.</span>
365
+ 246: <span class="ruby-identifier">property</span>.<span class="ruby-identifier">children</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">p</span><span class="ruby-operator">|</span>
366
+ 247: <span class="ruby-identifier">currentEntriesR</span>(<span class="ruby-identifier">date</span>, <span class="ruby-identifier">p</span>).<span class="ruby-identifier">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>
367
+ 248: <span class="ruby-identifier">latestDate</span> = <span class="ruby-identifier">e</span>.<span class="ruby-identifier">date</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">latestDate</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">e</span>.<span class="ruby-identifier">date</span> <span class="ruby-operator">&gt;</span> <span class="ruby-identifier">latestDate</span>
368
+ 249: <span class="ruby-identifier">entries</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">e</span>
369
+ 250: <span class="ruby-keyword kw">end</span>
370
+ 251: <span class="ruby-keyword kw">end</span>
371
+ 252: <span class="ruby-comment cmt"># If no child property has a more current JournalEntry than this</span>
372
+ 253: <span class="ruby-comment cmt"># property and this property has JournalEntry objects, than those are</span>
373
+ 254: <span class="ruby-comment cmt"># taken.</span>
374
+ 255: <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">pEntries</span>.<span class="ruby-identifier">empty?</span> <span class="ruby-operator">&amp;&amp;</span> (<span class="ruby-identifier">latestDate</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span>
375
+ 256: <span class="ruby-identifier">pEntries</span>.<span class="ruby-identifier">first</span>.<span class="ruby-identifier">date</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-identifier">latestDate</span>)
376
+ 257: <span class="ruby-identifier">entries</span> = <span class="ruby-constant">JournalEntryList</span>.<span class="ruby-identifier">new</span>
377
+ 258: <span class="ruby-identifier">entries</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">pEntries</span>
378
+ 259: <span class="ruby-keyword kw">end</span>
379
+ 260: <span class="ruby-comment cmt"># Otherwise return the list provided by the childen.</span>
380
+ 261: <span class="ruby-identifier">entries</span>
381
+ 262: <span class="ruby-keyword kw">end</span>
382
+ </pre>
383
+ </div>
384
+
385
+ </div>
386
+ </div>
387
+
388
+
389
+ <div id="method-M000508" class="method-detail">
390
+ <a name="M000508"></a>
391
+
392
+ <div class="method-heading">
393
+
394
+ <a href="#M000508" class="method-signature">
395
+
396
+ <span class="method-name">entries</span><span class="method-args">(startDate = nil, endDate = nil, property = nil, alertLevel = nil)</span>
397
+
398
+ </a>
399
+
400
+ </div>
401
+
167
402
  <div class="method-description">
168
403
 
169
404
  <p><a class="source-toggle" href="#"
170
- onclick="toggleCode('M000757-source');return false;">[Source]</a></p>
171
- <div class="method-source-code" id="M000757-source">
405
+ onclick="toggleCode('M000508-source');return false;">[Source]</a></p>
406
+ <div class="method-source-code" id="M000508-source">
172
407
  <pre>
173
- <span class="ruby-comment cmt"># File lib/Journal.rb, line 38</span>
174
- 38: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">addEntry</span>(<span class="ruby-identifier">entry</span>)
175
- 39: <span class="ruby-ivar">@entries</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">entry</span>
176
- 40: <span class="ruby-keyword kw">end</span>
408
+ <span class="ruby-comment cmt"># File lib/Journal.rb, line 172</span>
409
+ 172: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">entries</span>(<span class="ruby-identifier">startDate</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">endDate</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">property</span> = <span class="ruby-keyword kw">nil</span>,
410
+ 173: <span class="ruby-identifier">alertLevel</span> = <span class="ruby-keyword kw">nil</span>)
411
+ 174: <span class="ruby-identifier">list</span> = []
412
+ 175: <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>
413
+ 176: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">startDate</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">startDate</span> <span class="ruby-operator">&lt;=</span> <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">date</span>) <span class="ruby-operator">&amp;&amp;</span>
414
+ 177: (<span class="ruby-identifier">endDate</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">endDate</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">date</span>) <span class="ruby-operator">&amp;&amp;</span>
415
+ 178: (<span class="ruby-identifier">property</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">property</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">property</span> <span class="ruby-operator">||</span>
416
+ 179: <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">property</span>.<span class="ruby-identifier">isChildOf?</span>(<span class="ruby-identifier">property</span>)) <span class="ruby-operator">||</span>
417
+ 180: (<span class="ruby-identifier">alertLevel</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">alertLevel</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">alertLevel</span>)
418
+ 181: <span class="ruby-identifier">list</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">entry</span>
419
+ 182: <span class="ruby-keyword kw">end</span>
420
+ 183: <span class="ruby-keyword kw">end</span>
421
+ 184: <span class="ruby-identifier">list</span>
422
+ 185: <span class="ruby-keyword kw">end</span>
177
423
  </pre>
178
424
  </div>
179
425
 
@@ -87,6 +87,19 @@
87
87
 
88
88
  <div id="contextContent">
89
89
 
90
+ <div id="description">
91
+ <p>
92
+ A <a href="JournalEntry.html">JournalEntry</a> stores some <a
93
+ href="RichText.html">RichText</a> strings to describe a status or a
94
+ property of the project at a certain point in time. Additionally, the entry
95
+ can contain a reference to a <a href="Resource.html">Resource</a> as author
96
+ and an alert level. The text is structured in 3 different elements, a
97
+ headline, a short summary and a longer text segment. The headline is
98
+ mandatory, the summary and details sections are optional.
99
+ </p>
100
+
101
+ </div>
102
+
90
103
  </div>
91
104
 
92
105
 
@@ -95,7 +108,7 @@
95
108
 
96
109
  <div class="name-list">
97
110
 
98
- <a href="#M000755">new</a>&nbsp;&nbsp;
111
+ <a href="#M000497">new</a>&nbsp;&nbsp;
99
112
 
100
113
  </div>
101
114
  </div>
@@ -115,15 +128,23 @@
115
128
  <table>
116
129
 
117
130
  <tr class="top-aligned-row context-row">
118
- <td class="context-item-name">date</td>
131
+ <td class="context-item-name">alertLevel</td>
119
132
 
120
- <td class="context-item-value">&nbsp;[R]&nbsp;</td>
133
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
121
134
 
122
135
  <td class="context-item-desc"></td>
123
136
  </tr>
124
137
 
125
138
  <tr class="top-aligned-row context-row">
126
- <td class="context-item-name">headline</td>
139
+ <td class="context-item-name">author</td>
140
+
141
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
142
+
143
+ <td class="context-item-desc"></td>
144
+ </tr>
145
+
146
+ <tr class="top-aligned-row context-row">
147
+ <td class="context-item-name">date</td>
127
148
 
128
149
  <td class="context-item-value">&nbsp;[R]&nbsp;</td>
129
150
 
@@ -131,7 +152,7 @@
131
152
  </tr>
132
153
 
133
154
  <tr class="top-aligned-row context-row">
134
- <td class="context-item-name">intro</td>
155
+ <td class="context-item-name">details</td>
135
156
 
136
157
  <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
137
158
 
@@ -139,9 +160,9 @@
139
160
  </tr>
140
161
 
141
162
  <tr class="top-aligned-row context-row">
142
- <td class="context-item-name">more</td>
163
+ <td class="context-item-name">headline</td>
143
164
 
144
- <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
165
+ <td class="context-item-value">&nbsp;[R]&nbsp;</td>
145
166
 
146
167
  <td class="context-item-desc"></td>
147
168
  </tr>
@@ -154,6 +175,22 @@
154
175
  <td class="context-item-desc"></td>
155
176
  </tr>
156
177
 
178
+ <tr class="top-aligned-row context-row">
179
+ <td class="context-item-name">sourceFileInfo</td>
180
+
181
+ <td class="context-item-value">&nbsp;[R]&nbsp;</td>
182
+
183
+ <td class="context-item-desc"></td>
184
+ </tr>
185
+
186
+ <tr class="top-aligned-row context-row">
187
+ <td class="context-item-name">summary</td>
188
+
189
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
190
+
191
+ <td class="context-item-desc"></td>
192
+ </tr>
193
+
157
194
  </table>
158
195
  </div>
159
196
  </div>
@@ -166,14 +203,14 @@
166
203
  <h3 class="section-bar">Public Class methods</h3>
167
204
 
168
205
 
169
- <div id="method-M000755" class="method-detail">
170
- <a name="M000755"></a>
206
+ <div id="method-M000497" class="method-detail">
207
+ <a name="M000497"></a>
171
208
 
172
209
  <div class="method-heading">
173
210
 
174
- <a href="#M000755" class="method-signature">
211
+ <a href="#M000497" class="method-signature">
175
212
 
176
- <span class="method-name">new</span><span class="method-args">(journal, date, headline, property)</span>
213
+ <span class="method-name">new</span><span class="method-args">(journal, date, headline, property, sourceFileInfo = nil)</span>
177
214
 
178
215
  </a>
179
216
 
@@ -181,20 +218,39 @@
181
218
 
182
219
  <div class="method-description">
183
220
 
221
+ <p>
222
+ Create a new <a href="JournalEntry.html">JournalEntry</a> object.
223
+ </p>
224
+
184
225
  <p><a class="source-toggle" href="#"
185
- onclick="toggleCode('M000755-source');return false;">[Source]</a></p>
186
- <div class="method-source-code" id="M000755-source">
226
+ onclick="toggleCode('M000497-source');return false;">[Source]</a></p>
227
+ <div class="method-source-code" id="M000497-source">
187
228
  <pre>
188
- <span class="ruby-comment cmt"># File lib/Journal.rb, line 20</span>
189
- 20: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">journal</span>, <span class="ruby-identifier">date</span>, <span class="ruby-identifier">headline</span>, <span class="ruby-identifier">property</span>)
190
- 21: <span class="ruby-ivar">@journal</span> = <span class="ruby-identifier">journal</span>
191
- 22: <span class="ruby-ivar">@journal</span>.<span class="ruby-identifier">addEntry</span>(<span class="ruby-keyword kw">self</span>)
192
- 23: <span class="ruby-ivar">@date</span> = <span class="ruby-identifier">date</span>
193
- 24: <span class="ruby-ivar">@headline</span> = <span class="ruby-identifier">headline</span>
194
- 25: <span class="ruby-ivar">@property</span> = <span class="ruby-identifier">property</span>
195
- 26: <span class="ruby-ivar">@intro</span> = <span class="ruby-keyword kw">nil</span>
196
- 27: <span class="ruby-ivar">@more</span> = <span class="ruby-keyword kw">nil</span>
197
- 28: <span class="ruby-keyword kw">end</span>
229
+ <span class="ruby-comment cmt"># File lib/Journal.rb, line 27</span>
230
+ 27: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">journal</span>, <span class="ruby-identifier">date</span>, <span class="ruby-identifier">headline</span>, <span class="ruby-identifier">property</span>, <span class="ruby-identifier">sourceFileInfo</span> = <span class="ruby-keyword kw">nil</span>)
231
+ 28: <span class="ruby-comment cmt"># A reference to the Journal object this entry belongs to.</span>
232
+ 29: <span class="ruby-ivar">@journal</span> = <span class="ruby-identifier">journal</span>
233
+ 30: <span class="ruby-comment cmt"># The date of the entry.</span>
234
+ 31: <span class="ruby-ivar">@date</span> = <span class="ruby-identifier">date</span>
235
+ 32: <span class="ruby-comment cmt"># A very short description. Should not be longer than about 40</span>
236
+ 33: <span class="ruby-comment cmt"># characters.</span>
237
+ 34: <span class="ruby-ivar">@headline</span> = <span class="ruby-identifier">headline</span>
238
+ 35: <span class="ruby-comment cmt"># A reference to a PropertyTreeNode object.</span>
239
+ 36: <span class="ruby-ivar">@property</span> = <span class="ruby-identifier">property</span>
240
+ 37: <span class="ruby-comment cmt"># Source file location of this entry of type SourceFileInfo</span>
241
+ 38: <span class="ruby-ivar">@sourceFileInfo</span> = <span class="ruby-identifier">sourceFileInfo</span>
242
+ 39: <span class="ruby-comment cmt"># A reference to a Resource.</span>
243
+ 40: <span class="ruby-ivar">@author</span> = <span class="ruby-keyword kw">nil</span>
244
+ 41: <span class="ruby-comment cmt"># An introductory or summarizing RichText paragraph.</span>
245
+ 42: <span class="ruby-ivar">@summary</span> = <span class="ruby-keyword kw">nil</span>
246
+ 43: <span class="ruby-comment cmt"># A RichText of arbitrary length.</span>
247
+ 44: <span class="ruby-ivar">@details</span> = <span class="ruby-keyword kw">nil</span>
248
+ 45: <span class="ruby-comment cmt"># The alert level.</span>
249
+ 46: <span class="ruby-ivar">@alertLevel</span> = <span class="ruby-value">0</span>
250
+ 47:
251
+ 48: <span class="ruby-comment cmt"># Add the new entry to the journal.</span>
252
+ 49: <span class="ruby-ivar">@journal</span>.<span class="ruby-identifier">addEntry</span>(<span class="ruby-keyword kw">self</span>)
253
+ 50: <span class="ruby-keyword kw">end</span>
198
254
  </pre>
199
255
  </div>
200
256