taskjuggler 0.0.2 → 0.0.3

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 (432) hide show
  1. data/Rakefile +1 -0
  2. data/benchmarks/depends.tjp +2 -1
  3. data/benchmarks/htmltaskreport.tjp +2 -1
  4. data/doc/classes/AppConfig.html +124 -120
  5. data/doc/classes/Arguments.html +10 -6
  6. data/doc/classes/Object.html +229 -0
  7. data/doc/classes/String.html +35 -31
  8. data/doc/classes/TaskJuggler/Account.html +18 -18
  9. data/doc/classes/TaskJuggler/AccountAttribute.html +261 -0
  10. data/doc/classes/TaskJuggler/AccountScenario.html +12 -12
  11. data/doc/classes/TaskJuggler/Allocation.html +34 -30
  12. data/doc/classes/TaskJuggler/AllocationAttribute.html +70 -70
  13. data/doc/classes/TaskJuggler/AttributeBase.html +131 -147
  14. data/doc/classes/TaskJuggler/AttributeDefinition.html +38 -21
  15. data/doc/classes/TaskJuggler/BatchProcessor.html +313 -0
  16. data/doc/classes/TaskJuggler/Booking.html +22 -18
  17. data/doc/classes/TaskJuggler/BookingListAttribute.html +42 -42
  18. data/doc/classes/TaskJuggler/BooleanAttribute.html +40 -40
  19. data/doc/classes/TaskJuggler/CSVFile.html +28 -24
  20. data/doc/classes/TaskJuggler/Charge.html +22 -18
  21. data/doc/classes/TaskJuggler/ChargeListAttribute.html +30 -30
  22. data/doc/classes/TaskJuggler/ChargeSet.html +41 -37
  23. data/doc/classes/TaskJuggler/ChargeSetListAttribute.html +46 -46
  24. data/doc/classes/TaskJuggler/ColumnListAttribute.html +231 -0
  25. data/doc/classes/TaskJuggler/ColumnTable.html +23 -21
  26. data/doc/classes/TaskJuggler/DateAttribute.html +20 -20
  27. data/doc/classes/TaskJuggler/DefinitionListAttribute.html +162 -0
  28. data/doc/classes/TaskJuggler/DependencyListAttribute.html +46 -46
  29. data/doc/classes/TaskJuggler/DurationAttribute.html +30 -30
  30. data/doc/classes/TaskJuggler/FixnumAttribute.html +20 -20
  31. data/doc/classes/TaskJuggler/FlagListAttribute.html +42 -42
  32. data/doc/classes/TaskJuggler/FloatAttribute.html +30 -30
  33. data/doc/classes/TaskJuggler/FormatListAttribute.html +197 -0
  34. data/doc/classes/TaskJuggler/GanttChart.html +236 -207
  35. data/doc/classes/TaskJuggler/GanttContainer.html +46 -42
  36. data/doc/classes/TaskJuggler/GanttHeader.html +16 -12
  37. data/doc/classes/TaskJuggler/GanttHeaderScaleItem.html +16 -12
  38. data/doc/classes/TaskJuggler/GanttLine.html +28 -24
  39. data/doc/classes/TaskJuggler/GanttLoadStack.html +22 -18
  40. data/doc/classes/TaskJuggler/GanttMilestone.html +46 -42
  41. data/doc/classes/TaskJuggler/GanttRouter.html +104 -98
  42. data/doc/classes/TaskJuggler/GanttTaskBar.html +46 -42
  43. data/doc/classes/TaskJuggler/HTMLDocument.html +12 -12
  44. data/doc/classes/TaskJuggler/HTMLGraphics.html +12 -12
  45. data/doc/classes/TaskJuggler/Interval.html +126 -120
  46. data/doc/classes/TaskJuggler/IntervalListAttribute.html +46 -46
  47. data/doc/classes/TaskJuggler/JobInfo.html +284 -0
  48. data/doc/classes/TaskJuggler/Journal.html +197 -0
  49. data/doc/classes/TaskJuggler/JournalEntry.html +218 -0
  50. data/doc/classes/TaskJuggler/KeywordArray.html +179 -0
  51. data/doc/classes/TaskJuggler/KeywordDocumentation.html +445 -396
  52. data/doc/classes/TaskJuggler/Limits/Limit.html +34 -30
  53. data/doc/classes/TaskJuggler/Limits.html +68 -62
  54. data/doc/classes/TaskJuggler/LimitsAttribute.html +40 -40
  55. data/doc/classes/TaskJuggler/ListAttributeBase.html +207 -0
  56. data/doc/classes/TaskJuggler/Log.html +72 -68
  57. data/doc/classes/TaskJuggler/LogicalAttribute.html +38 -34
  58. data/doc/classes/TaskJuggler/LogicalExpression.html +16 -12
  59. data/doc/classes/TaskJuggler/LogicalExpressionAttribute.html +194 -0
  60. data/doc/classes/TaskJuggler/LogicalFlag.html +32 -32
  61. data/doc/classes/TaskJuggler/LogicalFunction.html +28 -24
  62. data/doc/classes/TaskJuggler/LogicalOperation.html +17 -13
  63. data/doc/classes/TaskJuggler/Macro.html +10 -6
  64. data/doc/classes/TaskJuggler/MacroParser.html +36 -36
  65. data/doc/classes/TaskJuggler/MacroTable.html +40 -36
  66. data/doc/classes/TaskJuggler/Message.html +16 -12
  67. data/doc/classes/TaskJuggler/MessageHandler.html +16 -12
  68. data/doc/classes/TaskJuggler/Navigator.html +249 -0
  69. data/doc/classes/TaskJuggler/OnShiftCache.html +316 -0
  70. data/doc/classes/TaskJuggler/Project.html +1064 -678
  71. data/doc/classes/TaskJuggler/ProjectFileParser.html +90 -85
  72. data/doc/classes/TaskJuggler/PropertyAttribute.html +194 -0
  73. data/doc/classes/TaskJuggler/PropertyList.html +114 -113
  74. data/doc/classes/TaskJuggler/PropertySet.html +355 -312
  75. data/doc/classes/TaskJuggler/PropertyTreeNode.html +527 -474
  76. data/doc/classes/TaskJuggler/Query.html +90 -85
  77. data/doc/classes/TaskJuggler/RTPNavigator.html +292 -0
  78. data/doc/classes/TaskJuggler/RTPReport.html +301 -0
  79. data/doc/classes/TaskJuggler/RealFormat.html +114 -57
  80. data/doc/classes/TaskJuggler/RealFormatAttribute.html +162 -0
  81. data/doc/classes/TaskJuggler/ReferenceAttribute.html +87 -20
  82. data/doc/classes/TaskJuggler/Report.html +82 -291
  83. data/doc/classes/TaskJuggler/ReportBase.html +448 -0
  84. data/doc/classes/TaskJuggler/ReportContext.html +243 -0
  85. data/doc/classes/TaskJuggler/ReportTable.html +158 -129
  86. data/doc/classes/TaskJuggler/ReportTableCell.html +30 -26
  87. data/doc/classes/TaskJuggler/ReportTableColumn.html +29 -25
  88. data/doc/classes/TaskJuggler/ReportTableLegend.html +28 -24
  89. data/doc/classes/TaskJuggler/ReportTableLine.html +34 -30
  90. data/doc/classes/TaskJuggler/Resource.html +12 -12
  91. data/doc/classes/TaskJuggler/ResourceListAttribute.html +46 -46
  92. data/doc/classes/TaskJuggler/ResourceListRE.html +49 -57
  93. data/doc/classes/TaskJuggler/ResourceScenario.html +126 -126
  94. data/doc/classes/TaskJuggler/RichText.html +52 -48
  95. data/doc/classes/TaskJuggler/RichTextAttribute.html +30 -30
  96. data/doc/classes/TaskJuggler/RichTextDocument.html +41 -37
  97. data/doc/classes/TaskJuggler/RichTextElement.html +274 -264
  98. data/doc/classes/TaskJuggler/RichTextException.html +13 -13
  99. data/doc/classes/TaskJuggler/RichTextParser.html +48 -47
  100. data/doc/classes/TaskJuggler/RichTextProtocolExample.html +52 -55
  101. data/doc/classes/TaskJuggler/RichTextProtocolHandler.html +55 -10
  102. data/doc/classes/TaskJuggler/RichTextScanner.html +106 -245
  103. data/doc/classes/TaskJuggler/RichTextSnip.html +28 -24
  104. data/doc/classes/TaskJuggler/RichTextSyntaxRules.html +381 -301
  105. data/doc/classes/TaskJuggler/Scenario.html +6 -6
  106. data/doc/classes/TaskJuggler/ScenarioData.html +40 -36
  107. data/doc/classes/TaskJuggler/ScenarioListAttribute.html +229 -0
  108. data/doc/classes/TaskJuggler/Scoreboard.html +70 -66
  109. data/doc/classes/TaskJuggler/Shift.html +18 -18
  110. data/doc/classes/TaskJuggler/ShiftAssignment.html +58 -54
  111. data/doc/classes/TaskJuggler/ShiftAssignments.html +82 -78
  112. data/doc/classes/TaskJuggler/ShiftAssignmentsAttribute.html +40 -40
  113. data/doc/classes/TaskJuggler/ShiftScenario.html +24 -24
  114. data/doc/classes/TaskJuggler/SortListAttribute.html +196 -0
  115. data/doc/classes/TaskJuggler/SourceFileInfo.html +16 -12
  116. data/doc/classes/TaskJuggler/StringAttribute.html +30 -30
  117. data/doc/classes/TaskJuggler/SymbolAttribute.html +20 -20
  118. data/doc/classes/TaskJuggler/SyntaxReference.html +46 -42
  119. data/doc/classes/TaskJuggler/TOCEntry.html +16 -12
  120. data/doc/classes/TaskJuggler/TableColumnDefinition.html +48 -33
  121. data/doc/classes/TaskJuggler/TableOfContents.html +22 -18
  122. data/doc/classes/TaskJuggler/TableReport.html +1036 -0
  123. data/doc/classes/TaskJuggler/Task.html +12 -12
  124. data/doc/classes/TaskJuggler/TaskDependency.html +16 -12
  125. data/doc/classes/TaskJuggler/TaskListAttribute.html +46 -46
  126. data/doc/classes/TaskJuggler/TaskListRE.html +49 -58
  127. data/doc/classes/TaskJuggler/TaskScenario.html +1270 -1180
  128. data/doc/classes/TaskJuggler/TextParser/Pattern.html +100 -96
  129. data/doc/classes/TaskJuggler/TextParser/Rule.html +88 -84
  130. data/doc/classes/TaskJuggler/TextParser/StackElement.html +16 -12
  131. data/doc/classes/TaskJuggler/TextParser/TextParserResultArray.html +12 -12
  132. data/doc/classes/TaskJuggler/TextParser/TokenDoc.html +10 -6
  133. data/doc/classes/TaskJuggler/TextParser.html +203 -140
  134. data/doc/classes/TaskJuggler/TextReport.html +364 -0
  135. data/doc/classes/TaskJuggler/TextScanner/BufferStreamHandle.html +70 -70
  136. data/doc/classes/TaskJuggler/TextScanner/FileStreamHandle.html +50 -42
  137. data/doc/classes/TaskJuggler/TextScanner/StreamHandle.html +16 -12
  138. data/doc/classes/TaskJuggler/TextScanner.html +334 -240
  139. data/doc/classes/TaskJuggler/TjException.html +6 -6
  140. data/doc/classes/TaskJuggler/TjTime.html +547 -497
  141. data/doc/classes/TaskJuggler/TjpExample.html +29 -25
  142. data/doc/classes/TaskJuggler/TjpExportRE.html +77 -97
  143. data/doc/classes/TaskJuggler/TjpSyntaxRules.html +3911 -3886
  144. data/doc/classes/TaskJuggler/UserManual.html +54 -54
  145. data/doc/classes/TaskJuggler/WorkingHours.html +53 -49
  146. data/doc/classes/TaskJuggler/WorkingHoursAttribute.html +53 -85
  147. data/doc/classes/TaskJuggler/XMLBlob.html +21 -21
  148. data/doc/classes/TaskJuggler/XMLComment.html +21 -21
  149. data/doc/classes/TaskJuggler/XMLDocument.html +28 -24
  150. data/doc/classes/TaskJuggler/XMLElement.html +70 -58
  151. data/doc/classes/TaskJuggler/XMLNamedText.html +11 -11
  152. data/doc/classes/TaskJuggler/XMLText.html +36 -36
  153. data/doc/classes/TaskJuggler.html +266 -183
  154. data/doc/files/COPYING.html +1 -1
  155. data/doc/files/README.html +1 -1
  156. data/doc/files/lib/AccountScenario_rb.html +1 -1
  157. data/doc/files/lib/Account_rb.html +1 -1
  158. data/doc/files/lib/Allocation_rb.html +1 -1
  159. data/doc/files/lib/AppConfig_rb.html +1 -1
  160. data/doc/files/lib/AttributeBase_rb.html +11 -1
  161. data/doc/files/lib/AttributeDefinition_rb.html +1 -1
  162. data/doc/files/lib/Attributes_rb.html +1 -1
  163. data/doc/files/lib/{LogicalFlag_rb.html → BatchProcessor_rb.html} +8 -6
  164. data/doc/files/lib/Booking_rb.html +1 -1
  165. data/doc/files/lib/ChargeSet_rb.html +1 -1
  166. data/doc/files/lib/Charge_rb.html +1 -1
  167. data/doc/files/lib/HTMLDocument_rb.html +1 -1
  168. data/doc/files/lib/Interval_rb.html +1 -1
  169. data/doc/files/lib/Journal_rb.html +106 -0
  170. data/doc/files/lib/KeywordArray_rb.html +106 -0
  171. data/doc/files/lib/KeywordDocumentation_rb.html +1 -1
  172. data/doc/files/lib/Limits_rb.html +1 -1
  173. data/doc/files/lib/Log_rb.html +1 -1
  174. data/doc/files/lib/LogicalExpression_rb.html +1 -3
  175. data/doc/files/lib/LogicalFunction_rb.html +1 -1
  176. data/doc/files/lib/LogicalOperation_rb.html +1 -1
  177. data/doc/files/lib/MacroParser_rb.html +1 -1
  178. data/doc/files/lib/MacroTable_rb.html +1 -1
  179. data/doc/files/lib/MessageHandler_rb.html +1 -1
  180. data/doc/files/lib/Message_rb.html +1 -1
  181. data/doc/files/lib/ProjectFileParser_rb.html +5 -1
  182. data/doc/files/lib/Project_rb.html +5 -1
  183. data/doc/files/lib/PropertyList_rb.html +1 -1
  184. data/doc/files/lib/PropertySet_rb.html +1 -1
  185. data/doc/files/lib/PropertyTreeNode_rb.html +1 -1
  186. data/doc/files/lib/Query_rb.html +1 -1
  187. data/doc/files/lib/RTPNavigator_rb.html +120 -0
  188. data/doc/files/lib/RTPReport_rb.html +118 -0
  189. data/doc/files/lib/RealFormat_rb.html +1 -1
  190. data/doc/files/lib/ResourceScenario_rb.html +1 -1
  191. data/doc/files/lib/Resource_rb.html +1 -1
  192. data/doc/files/lib/RichTextDocument_rb.html +1 -1
  193. data/doc/files/lib/RichTextElement_rb.html +1 -1
  194. data/doc/files/lib/RichTextParser_rb.html +1 -1
  195. data/doc/files/lib/RichTextProtocolExample_rb.html +1 -1
  196. data/doc/files/lib/RichTextProtocolHandler_rb.html +1 -1
  197. data/doc/files/lib/RichTextScanner_rb.html +1 -1
  198. data/doc/files/lib/RichTextSnip_rb.html +1 -1
  199. data/doc/files/lib/RichTextSyntaxRules_rb.html +1 -1
  200. data/doc/files/lib/RichText_rb.html +1 -1
  201. data/doc/files/lib/ScenarioData_rb.html +1 -1
  202. data/doc/files/lib/Scenario_rb.html +1 -1
  203. data/doc/files/lib/Scoreboard_rb.html +1 -1
  204. data/doc/files/lib/ShiftAssignments_rb.html +1 -1
  205. data/doc/files/lib/ShiftScenario_rb.html +1 -1
  206. data/doc/files/lib/Shift_rb.html +1 -1
  207. data/doc/files/lib/SourceFileInfo_rb.html +1 -1
  208. data/doc/files/lib/SyntaxReference_rb.html +1 -1
  209. data/doc/files/lib/TOCEntry_rb.html +1 -1
  210. data/doc/files/lib/TableColumnDefinition_rb.html +1 -1
  211. data/doc/files/lib/TableOfContents_rb.html +1 -1
  212. data/doc/files/lib/TaskDependency_rb.html +1 -1
  213. data/doc/files/lib/TaskJuggler_rb.html +1 -1
  214. data/doc/files/lib/TaskScenario_rb.html +1 -1
  215. data/doc/files/lib/Task_rb.html +1 -1
  216. data/doc/files/lib/TextParser/Pattern_rb.html +1 -1
  217. data/doc/files/lib/TextParser/Rule_rb.html +1 -1
  218. data/doc/files/lib/TextParser/StackElement_rb.html +1 -1
  219. data/doc/files/lib/TextParser/TokenDoc_rb.html +1 -1
  220. data/doc/files/lib/TextParser_rb.html +1 -1
  221. data/doc/files/lib/TextScanner_rb.html +1 -1
  222. data/doc/files/lib/Tj3Config_rb.html +1 -1
  223. data/doc/files/lib/TjException_rb.html +1 -1
  224. data/doc/files/lib/TjTime_rb.html +1 -1
  225. data/doc/files/lib/TjpExample_rb.html +1 -1
  226. data/doc/files/lib/TjpSyntaxRules_rb.html +1 -1
  227. data/doc/files/lib/UTF8String_rb.html +1 -1
  228. data/doc/files/lib/UserManual_rb.html +1 -1
  229. data/doc/files/lib/WorkingHours_rb.html +1 -1
  230. data/doc/files/lib/XMLDocument_rb.html +1 -1
  231. data/doc/files/lib/XMLElement_rb.html +1 -1
  232. data/doc/files/lib/deep_copy_rb.html +106 -0
  233. data/doc/files/lib/ms_test_rb.html +90 -0
  234. data/doc/files/lib/reports/CSVFile_rb.html +1 -1
  235. data/doc/files/lib/reports/ColumnTable_rb.html +1 -1
  236. data/doc/files/lib/reports/GanttChart_rb.html +1 -1
  237. data/doc/files/lib/reports/GanttContainer_rb.html +1 -1
  238. data/doc/files/lib/reports/GanttHeaderScaleItem_rb.html +1 -1
  239. data/doc/files/lib/reports/GanttHeader_rb.html +1 -1
  240. data/doc/files/lib/reports/GanttLine_rb.html +1 -1
  241. data/doc/files/lib/reports/GanttLoadStack_rb.html +1 -1
  242. data/doc/files/lib/reports/GanttMilestone_rb.html +1 -1
  243. data/doc/files/lib/reports/GanttRouter_rb.html +1 -1
  244. data/doc/files/lib/reports/GanttTaskBar_rb.html +1 -1
  245. data/doc/files/lib/reports/HTMLGraphics_rb.html +1 -1
  246. data/doc/files/lib/reports/{ReportElement_rb.html → Navigator_rb.html} +6 -8
  247. data/doc/files/lib/reports/ReportBase_rb.html +106 -0
  248. data/doc/files/lib/reports/ReportContext_rb.html +106 -0
  249. data/doc/files/lib/reports/ReportTableCell_rb.html +1 -1
  250. data/doc/files/lib/reports/ReportTableColumn_rb.html +1 -1
  251. data/doc/files/lib/reports/ReportTableLegend_rb.html +1 -1
  252. data/doc/files/lib/reports/ReportTableLine_rb.html +1 -1
  253. data/doc/files/lib/reports/ReportTable_rb.html +1 -1
  254. data/doc/files/lib/reports/Report_rb.html +8 -2
  255. data/doc/files/lib/reports/ResourceListRE_rb.html +2 -2
  256. data/doc/files/lib/reports/{ReportTableElement_rb.html → TableReport_rb.html} +7 -5
  257. data/doc/files/lib/reports/TaskListRE_rb.html +2 -2
  258. data/doc/files/lib/reports/TextReport_rb.html +116 -0
  259. data/doc/files/lib/reports/TjpExportRE_rb.html +2 -2
  260. data/doc/files/lib/taskjuggler3_rb.html +61 -56
  261. data/doc/files/lib/tj3man_rb.html +1 -1
  262. data/doc/fr_class_index.html +41 -3
  263. data/doc/fr_file_index.html +21 -5
  264. data/doc/fr_method_index.html +1069 -959
  265. data/examples/ContactList.html +1467 -0
  266. data/examples/Deliveries.html +485 -0
  267. data/examples/Development.html +2525 -0
  268. data/examples/Overview.html +747 -0
  269. data/examples/Resource Graph.html +616 -0
  270. data/examples/tutorial.tjp +63 -67
  271. data/lib/AttributeBase.rb +27 -31
  272. data/lib/AttributeDefinition.rb +12 -7
  273. data/lib/Attributes.rb +134 -34
  274. data/lib/Interval.rb +2 -0
  275. data/lib/Journal.rb +44 -0
  276. data/lib/{LogicalFlag.rb → KeywordArray.rb} +5 -13
  277. data/lib/KeywordDocumentation.rb +84 -47
  278. data/lib/Limits.rb +7 -5
  279. data/lib/LogicalExpression.rb +1 -1
  280. data/lib/LogicalOperation.rb +33 -0
  281. data/lib/Project.rb +313 -99
  282. data/lib/ProjectFileParser.rb +88 -11
  283. data/lib/PropertyList.rb +2 -1
  284. data/lib/PropertySet.rb +13 -4
  285. data/lib/PropertyTreeNode.rb +34 -15
  286. data/lib/Query.rb +2 -1
  287. data/lib/RTPNavigator.rb +53 -0
  288. data/lib/RTPReport.rb +62 -0
  289. data/lib/RealFormat.rb +28 -10
  290. data/lib/RichTextElement.rb +18 -12
  291. data/lib/RichTextParser.rb +1 -0
  292. data/lib/RichTextProtocolExample.rb +8 -11
  293. data/lib/RichTextProtocolHandler.rb +11 -1
  294. data/lib/RichTextScanner.rb +308 -164
  295. data/lib/RichTextSyntaxRules.rb +24 -0
  296. data/lib/TableColumnDefinition.rb +5 -1
  297. data/lib/TaskJuggler.rb +3 -2
  298. data/lib/TaskScenario.rb +123 -31
  299. data/lib/TextParser.rb +14 -3
  300. data/lib/TextScanner.rb +210 -34
  301. data/lib/Tj3Config.rb +1 -1
  302. data/lib/TjTime.rb +15 -0
  303. data/lib/TjpExample.rb +1 -1
  304. data/lib/TjpSyntaxRules.rb +674 -473
  305. data/lib/WorkingHours.rb +1 -1
  306. data/lib/XMLElement.rb +11 -3
  307. data/lib/deep_copy.rb +72 -0
  308. data/lib/ms_test.rb +27 -0
  309. data/lib/reports/ColumnTable.rb +7 -5
  310. data/lib/reports/GanttChart.rb +60 -34
  311. data/lib/reports/GanttHeader.rb +1 -1
  312. data/lib/reports/GanttRouter.rb +7 -5
  313. data/lib/reports/Navigator.rb +72 -0
  314. data/lib/reports/Report.rb +58 -73
  315. data/lib/reports/ReportBase.rb +241 -0
  316. data/lib/reports/ReportContext.rb +41 -0
  317. data/lib/reports/ReportTable.rb +7 -2
  318. data/lib/reports/ReportTableCell.rb +3 -3
  319. data/lib/reports/ResourceListRE.rb +19 -26
  320. data/lib/reports/{ReportTableElement.rb → TableReport.rb} +297 -97
  321. data/lib/reports/TaskListRE.rb +16 -24
  322. data/lib/reports/TextReport.rb +87 -0
  323. data/lib/reports/TjpExportRE.rb +55 -50
  324. data/lib/taskjuggler3.rb +6 -1
  325. data/manual/Getting_Started +57 -6
  326. data/manual/How_To_Contribute +2 -4
  327. data/manual/Intro +2 -2
  328. data/manual/Reporting_Bugs +9 -2
  329. data/manual/Rich_Text_Attributes +41 -0
  330. data/manual/Tutorial +219 -173
  331. data/tasks/test.rake +3 -0
  332. data/test/TestSuite/CSV-Reports/celltext.tjp +2 -1
  333. data/test/TestSuite/CSV-Reports/resourcereport.tjp +2 -1
  334. data/test/TestSuite/CSV-Reports/resourcereport_with_tasks.tjp +2 -1
  335. data/test/TestSuite/CSV-Reports/sortByTree.tjp +2 -1
  336. data/test/TestSuite/CSV-Reports/sortBy_duration.down.tjp +2 -1
  337. data/test/TestSuite/CSV-Reports/sortBy_effort.up.tjp +2 -1
  338. data/test/TestSuite/CSV-Reports/sortBy_plan.start.down.tjp +2 -1
  339. data/test/TestSuite/CSV-Reports/taskreport.tjp +2 -1
  340. data/test/TestSuite/CSV-Reports/taskreport_with_resources.tjp +2 -1
  341. data/test/TestSuite/HTML-Reports/depArrows.tjp +72 -0
  342. data/test/TestSuite/HTML-Reports/reference-export.html +187 -0
  343. data/test/TestSuite/HTML-Reports/reference.tjp +21 -0
  344. data/test/TestSuite/Scheduler/Correct/Allocate.tjp +2 -1
  345. data/test/TestSuite/Scheduler/Correct/AutomaticMilestones.tjp +3 -3
  346. data/test/TestSuite/Scheduler/Correct/Booking.tjp +3 -3
  347. data/test/TestSuite/Scheduler/Correct/Container-2.tjp +37 -0
  348. data/test/TestSuite/Scheduler/Correct/Container.tjp +40 -0
  349. data/test/TestSuite/Scheduler/Correct/Depends.tjp +9 -14
  350. data/test/TestSuite/Scheduler/Correct/Duration.tjp +2 -1
  351. data/test/TestSuite/Scheduler/Correct/InheritStartEnd.tjp +20 -29
  352. data/test/TestSuite/Scheduler/Correct/Limits.tjp +11 -13
  353. data/test/TestSuite/Scheduler/Correct/Optimize-1.tjp +6 -5
  354. data/test/TestSuite/Scheduler/Correct/Optimize-2.tjp +10 -6
  355. data/test/TestSuite/Scheduler/Correct/Optimize-3.tjp +9 -6
  356. data/test/TestSuite/Scheduler/Correct/Optimize-4.tjp +9 -6
  357. data/test/TestSuite/Scheduler/Correct/Optimize-5.tjp +13 -10
  358. data/test/TestSuite/Scheduler/Correct/Precedes.tjp +9 -14
  359. data/test/TestSuite/Scheduler/Correct/Shift.tjp +9 -8
  360. data/test/TestSuite/Scheduler/Correct/checks.tji +4 -0
  361. data/test/TestSuite/Scheduler/Errors/weak_end_dep.tjp +16 -0
  362. data/test/TestSuite/Scheduler/Errors/weak_start_dep.tjp +16 -0
  363. data/test/TestSuite/Syntax/Correct/Account.tjp +1 -1
  364. data/test/TestSuite/Syntax/Correct/AutoID.tjp +21 -0
  365. data/test/TestSuite/Syntax/Correct/AutoMacros.tjp +2 -1
  366. data/test/TestSuite/Syntax/Correct/Caption.tjp +7 -6
  367. data/test/TestSuite/Syntax/Correct/Celltext.tjp +7 -4
  368. data/test/TestSuite/Syntax/Correct/Comments.tjp +1 -1
  369. data/test/TestSuite/Syntax/Correct/CompletedWork.tji +11 -19
  370. data/test/TestSuite/Syntax/Correct/CriticalPath.tjp +4 -3
  371. data/test/TestSuite/Syntax/Correct/Export.tjp +3 -1
  372. data/test/TestSuite/Syntax/Correct/Flags.tjp +2 -1
  373. data/test/TestSuite/Syntax/Correct/HtmlTaskReport.tjp +2 -1
  374. data/test/TestSuite/Syntax/Correct/Journal.tjp +18 -0
  375. data/test/TestSuite/Syntax/Correct/LoadUnits.tjp +2 -1
  376. data/test/TestSuite/Syntax/Correct/LogicalExpression.tjp +16 -0
  377. data/test/TestSuite/Syntax/Correct/Period.tjp +2 -1
  378. data/test/TestSuite/Syntax/Correct/RawHTML.tjp +4 -2
  379. data/test/TestSuite/Syntax/Correct/Reports.tjp +4 -2
  380. data/test/TestSuite/Syntax/Correct/ResourcePrefix.tji +2 -0
  381. data/test/TestSuite/Syntax/Correct/ResourcePrefix.tjp +23 -0
  382. data/test/TestSuite/Syntax/Correct/Responsible.tjp +1 -1
  383. data/test/TestSuite/Syntax/Correct/Simple.tjp +1 -1
  384. data/test/TestSuite/Syntax/Correct/String.tjp +1 -1
  385. data/test/TestSuite/Syntax/Correct/TaskRoot.tjp +2 -1
  386. data/test/TestSuite/Syntax/Correct/tutorial.tjp +92 -70
  387. data/test/TestSuite/Syntax/Errors/bad_comment.tjp +7 -0
  388. data/test/TestSuite/Syntax/Errors/bad_include.tjp +1 -1
  389. data/test/TestSuite/Syntax/Errors/bad_time_zone.tjp +6 -0
  390. data/test/TestSuite/Syntax/Errors/bad_timing_res.tjp +5 -0
  391. data/test/TestSuite/Syntax/Errors/chargeset_master.tjp +1 -1
  392. data/test/TestSuite/Syntax/Errors/container_attribute.tjp +1 -1
  393. data/test/TestSuite/Syntax/Errors/cost_acct_no_top.tjp +3 -2
  394. data/test/TestSuite/Syntax/Errors/cost_rev_same.tjp +1 -1
  395. data/test/TestSuite/Syntax/Errors/eof_in_istring1.tjp +5 -0
  396. data/test/TestSuite/Syntax/Errors/eof_in_istring2.tjp +5 -0
  397. data/test/TestSuite/Syntax/Errors/eof_in_istring3.tjp +6 -0
  398. data/test/TestSuite/Syntax/Errors/eof_in_istring4.tjp +6 -0
  399. data/test/TestSuite/Syntax/Errors/eof_in_istring5.tjp +6 -0
  400. data/test/TestSuite/Syntax/Errors/include_recursion.tji +1 -0
  401. data/test/TestSuite/Syntax/Errors/include_recursion.tjp +7 -0
  402. data/test/TestSuite/Syntax/Errors/junk_after_cut.tjp +6 -0
  403. data/test/TestSuite/Syntax/Errors/navigator_exists.tjp +10 -0
  404. data/test/TestSuite/Syntax/Errors/operand_unkn_flag.tjp +1 -1
  405. data/test/TestSuite/Syntax/Errors/report_end.tjp +1 -1
  406. data/test/TestSuite/Syntax/Errors/report_exists.tjp +10 -0
  407. data/test/TestSuite/Syntax/Errors/report_start.tjp +1 -1
  408. data/test/TestSuite/Syntax/Errors/rev_acct_no_top.tjp +1 -1
  409. data/test/TestSuite/Syntax/Errors/sort_direction.tjp +1 -1
  410. data/test/TestSuite/Syntax/Errors/sort_unknown_scen.tjp +1 -1
  411. data/test/TestSuite/Syntax/Errors/sorting_crit_exptd1.tjp +1 -1
  412. data/test/TestSuite/Syntax/Errors/sorting_crit_exptd2.tjp +1 -1
  413. data/test/TestSuite/Syntax/Errors/sorting_wbs.tjp +1 -1
  414. data/test/TestSuite/Syntax/Errors/too_large_timing_res.tjp +7 -0
  415. data/test/TestSuite/Syntax/Errors/unknown_scenario_idx.tjp +1 -1
  416. data/test/TestSuite/Syntax/Errors/unknown_task.tjp +1 -1
  417. data/test/all.rb +1 -16
  418. data/test/test_CSV-Reports.rb +8 -5
  419. data/test/test_Query.rb +2 -2
  420. data/test/test_RichText.rb +95 -0
  421. data/test/test_Scheduler.rb +8 -4
  422. data/test/test_Syntax.rb +8 -4
  423. data/test/test_deep_copy.rb +83 -0
  424. metadata +549 -487
  425. data/benchmarks/UTF-8-Strings.rb +0 -58
  426. data/doc/classes/TaskJuggler/ReportElement.html +0 -1070
  427. data/doc/classes/TaskJuggler/ReportTableElement.html +0 -644
  428. data/lib/reports/ReportElement.rb +0 -427
  429. data/test/TestSuite/Syntax/Correct/csvtest +0 -16
  430. data/test/TestSuite/Syntax/Errors/no_csv_suffix.tjp +0 -10
  431. data/test/TestSuite/Syntax/Errors/no_html_suffix.tjp +0 -10
  432. data/test/TestSuite/Syntax/Errors/report_redifinition.tjp +0 -10
@@ -105,21 +105,21 @@ in the <a href="PropertyList.html">PropertyList</a> must belong to the same
105
105
 
106
106
  <div class="name-list">
107
107
 
108
- <a href="#M000500">addSortingCriteria</a>&nbsp;&nbsp;
108
+ <a href="#M000712">addSortingCriteria</a>&nbsp;&nbsp;
109
109
 
110
- <a href="#M000499">append</a>&nbsp;&nbsp;
110
+ <a href="#M000711">append</a>&nbsp;&nbsp;
111
111
 
112
- <a href="#M000503">index</a>&nbsp;&nbsp;
112
+ <a href="#M000715">index</a>&nbsp;&nbsp;
113
113
 
114
- <a href="#M000496">new</a>&nbsp;&nbsp;
114
+ <a href="#M000708">new</a>&nbsp;&nbsp;
115
115
 
116
- <a href="#M000498">resetSorting</a>&nbsp;&nbsp;
116
+ <a href="#M000710">resetSorting</a>&nbsp;&nbsp;
117
117
 
118
- <a href="#M000497">setSorting</a>&nbsp;&nbsp;
118
+ <a href="#M000709">setSorting</a>&nbsp;&nbsp;
119
119
 
120
- <a href="#M000502">sort!</a>&nbsp;&nbsp;
120
+ <a href="#M000714">sort!</a>&nbsp;&nbsp;
121
121
 
122
- <a href="#M000501">treeMode?</a>&nbsp;&nbsp;
122
+ <a href="#M000713">treeMode?</a>&nbsp;&nbsp;
123
123
 
124
124
  </div>
125
125
  </div>
@@ -206,12 +206,12 @@ in the <a href="PropertyList.html">PropertyList</a> must belong to the same
206
206
  <h3 class="section-bar">Public Class methods</h3>
207
207
 
208
208
 
209
- <div id="method-M000496" class="method-detail">
210
- <a name="M000496"></a>
209
+ <div id="method-M000708" class="method-detail">
210
+ <a name="M000708"></a>
211
211
 
212
212
  <div class="method-heading">
213
213
 
214
- <a href="#M000496" class="method-signature">
214
+ <a href="#M000708" class="method-signature">
215
215
 
216
216
  <span class="method-name">new</span><span class="method-args">(arg)</span>
217
217
 
@@ -228,8 +228,8 @@ be of that set.
228
228
  </p>
229
229
 
230
230
  <p><a class="source-toggle" href="#"
231
- onclick="toggleCode('M000496-source');return false;">[Source]</a></p>
232
- <div class="method-source-code" id="M000496-source">
231
+ onclick="toggleCode('M000708-source');return false;">[Source]</a></p>
232
+ <div class="method-source-code" id="M000708-source">
233
233
  <pre>
234
234
  <span class="ruby-comment cmt"># File lib/PropertyList.rb, line 30</span>
235
235
  30: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">arg</span>)
@@ -266,12 +266,12 @@ be of that set.
266
266
  <h3 class="section-bar">Public Instance methods</h3>
267
267
 
268
268
 
269
- <div id="method-M000500" class="method-detail">
270
- <a name="M000500"></a>
269
+ <div id="method-M000712" class="method-detail">
270
+ <a name="M000712"></a>
271
271
 
272
272
  <div class="method-heading">
273
273
 
274
- <a href="#M000500" class="method-signature">
274
+ <a href="#M000712" class="method-signature">
275
275
 
276
276
  <span class="method-name">addSortingCriteria</span><span class="method-args">(criteria, up, scIdx)</span>
277
277
 
@@ -286,8 +286,8 @@ Append a new sorting level to the existing levels.
286
286
  </p>
287
287
 
288
288
  <p><a class="source-toggle" href="#"
289
- onclick="toggleCode('M000500-source');return false;">[Source]</a></p>
290
- <div class="method-source-code" id="M000500-source">
289
+ onclick="toggleCode('M000712-source');return false;">[Source]</a></p>
290
+ <div class="method-source-code" id="M000712-source">
291
291
  <pre>
292
292
  <span class="ruby-comment cmt"># File lib/PropertyList.rb, line 87</span>
293
293
  87: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">addSortingCriteria</span>(<span class="ruby-identifier">criteria</span>, <span class="ruby-identifier">up</span>, <span class="ruby-identifier">scIdx</span>)
@@ -297,18 +297,19 @@ Append a new sorting level to the existing levels.
297
297
  91: <span class="ruby-keyword kw">end</span>
298
298
  92: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">scIdx</span> <span class="ruby-operator">==</span> <span class="ruby-value">-1</span>
299
299
  93: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@propertySet</span>.<span class="ruby-identifier">scenarioSpecific?</span>(<span class="ruby-identifier">criteria</span>)
300
- 94: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>, <span class="ruby-node">&quot;Attribute #{criteria} is scenario specific&quot;</span>
301
- 95: <span class="ruby-keyword kw">end</span>
302
- 96: <span class="ruby-keyword kw">else</span>
303
- 97: <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@propertySet</span>.<span class="ruby-identifier">scenarioSpecific?</span>(<span class="ruby-identifier">criteria</span>)
304
- 98: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>, <span class="ruby-node">&quot;Attribute #{criteria} is not scenario specific&quot;</span>
305
- 99: <span class="ruby-keyword kw">end</span>
306
- 100: <span class="ruby-keyword kw">end</span>
307
- 101: <span class="ruby-ivar">@sortingCriteria</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">criteria</span>)
308
- 102: <span class="ruby-ivar">@sortingUp</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">up</span>)
309
- 103: <span class="ruby-ivar">@scenarioIdx</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">scIdx</span>)
310
- 104: <span class="ruby-ivar">@sortingLevels</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
311
- 105: <span class="ruby-keyword kw">end</span>
300
+ 94: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>, <span class="ruby-node">&quot;Attribute #{criteria} is scenario specific.&quot;</span> <span class="ruby-operator">+</span>
301
+ 95: <span class="ruby-value str">&quot;You must specify a scenario id.&quot;</span>
302
+ 96: <span class="ruby-keyword kw">end</span>
303
+ 97: <span class="ruby-keyword kw">else</span>
304
+ 98: <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@propertySet</span>.<span class="ruby-identifier">scenarioSpecific?</span>(<span class="ruby-identifier">criteria</span>)
305
+ 99: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>, <span class="ruby-node">&quot;Attribute #{criteria} is not scenario specific&quot;</span>
306
+ 100: <span class="ruby-keyword kw">end</span>
307
+ 101: <span class="ruby-keyword kw">end</span>
308
+ 102: <span class="ruby-ivar">@sortingCriteria</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">criteria</span>)
309
+ 103: <span class="ruby-ivar">@sortingUp</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">up</span>)
310
+ 104: <span class="ruby-ivar">@scenarioIdx</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">scIdx</span>)
311
+ 105: <span class="ruby-ivar">@sortingLevels</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
312
+ 106: <span class="ruby-keyword kw">end</span>
312
313
  </pre>
313
314
  </div>
314
315
 
@@ -316,12 +317,12 @@ Append a new sorting level to the existing levels.
316
317
  </div>
317
318
 
318
319
 
319
- <div id="method-M000499" class="method-detail">
320
- <a name="M000499"></a>
320
+ <div id="method-M000711" class="method-detail">
321
+ <a name="M000711"></a>
321
322
 
322
323
  <div class="method-heading">
323
324
 
324
- <a href="#M000499" class="method-signature">
325
+ <a href="#M000711" class="method-signature">
325
326
 
326
327
  <span class="method-name">append</span><span class="method-args">(list)</span>
327
328
 
@@ -338,8 +339,8 @@ again.
338
339
  </p>
339
340
 
340
341
  <p><a class="source-toggle" href="#"
341
- onclick="toggleCode('M000499-source');return false;">[Source]</a></p>
342
- <div class="method-source-code" id="M000499-source">
342
+ onclick="toggleCode('M000711-source');return false;">[Source]</a></p>
343
+ <div class="method-source-code" id="M000711-source">
343
344
  <pre>
344
345
  <span class="ruby-comment cmt"># File lib/PropertyList.rb, line 73</span>
345
346
  73: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">append</span>(<span class="ruby-identifier">list</span>)
@@ -361,12 +362,12 @@ again.
361
362
  </div>
362
363
 
363
364
 
364
- <div id="method-M000503" class="method-detail">
365
- <a name="M000503"></a>
365
+ <div id="method-M000715" class="method-detail">
366
+ <a name="M000715"></a>
366
367
 
367
368
  <div class="method-heading">
368
369
 
369
- <a href="#M000503" class="method-signature">
370
+ <a href="#M000715" class="method-signature">
370
371
 
371
372
  <span class="method-name">index</span><span class="method-args">()</span>
372
373
 
@@ -382,16 +383,16 @@ The index starts with 0 and increases for each property.
382
383
  </p>
383
384
 
384
385
  <p><a class="source-toggle" href="#"
385
- onclick="toggleCode('M000503-source');return false;">[Source]</a></p>
386
- <div class="method-source-code" id="M000503-source">
386
+ onclick="toggleCode('M000715-source');return false;">[Source]</a></p>
387
+ <div class="method-source-code" id="M000715-source">
387
388
  <pre>
388
- <span class="ruby-comment cmt"># File lib/PropertyList.rb, line 159</span>
389
- 159: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">index</span>
390
- 160: <span class="ruby-identifier">i</span> = <span class="ruby-value">0</span>
391
- 161: <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>
392
- 162: <span class="ruby-identifier">p</span>.<span class="ruby-identifier">set</span>(<span class="ruby-value str">'index'</span>, <span class="ruby-identifier">i</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>)
393
- 163: <span class="ruby-keyword kw">end</span>
394
- 164: <span class="ruby-keyword kw">end</span>
389
+ <span class="ruby-comment cmt"># File lib/PropertyList.rb, line 160</span>
390
+ 160: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">index</span>
391
+ 161: <span class="ruby-identifier">i</span> = <span class="ruby-value">0</span>
392
+ 162: <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>
393
+ 163: <span class="ruby-identifier">p</span>.<span class="ruby-identifier">set</span>(<span class="ruby-value str">'index'</span>, <span class="ruby-identifier">i</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>)
394
+ 164: <span class="ruby-keyword kw">end</span>
395
+ 165: <span class="ruby-keyword kw">end</span>
395
396
  </pre>
396
397
  </div>
397
398
 
@@ -399,12 +400,12 @@ The index starts with 0 and increases for each property.
399
400
  </div>
400
401
 
401
402
 
402
- <div id="method-M000498" class="method-detail">
403
- <a name="M000498"></a>
403
+ <div id="method-M000710" class="method-detail">
404
+ <a name="M000710"></a>
404
405
 
405
406
  <div class="method-heading">
406
407
 
407
- <a href="#M000498" class="method-signature">
408
+ <a href="#M000710" class="method-signature">
408
409
 
409
410
  <span class="method-name">resetSorting</span><span class="method-args">()</span>
410
411
 
@@ -419,8 +420,8 @@ Clear all sorting levels.
419
420
  </p>
420
421
 
421
422
  <p><a class="source-toggle" href="#"
422
- onclick="toggleCode('M000498-source');return false;">[Source]</a></p>
423
- <div class="method-source-code" id="M000498-source">
423
+ onclick="toggleCode('M000710-source');return false;">[Source]</a></p>
424
+ <div class="method-source-code" id="M000710-source">
424
425
  <pre>
425
426
  <span class="ruby-comment cmt"># File lib/PropertyList.rb, line 64</span>
426
427
  64: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">resetSorting</span>
@@ -436,12 +437,12 @@ Clear all sorting levels.
436
437
  </div>
437
438
 
438
439
 
439
- <div id="method-M000497" class="method-detail">
440
- <a name="M000497"></a>
440
+ <div id="method-M000709" class="method-detail">
441
+ <a name="M000709"></a>
441
442
 
442
443
  <div class="method-heading">
443
444
 
444
- <a href="#M000497" class="method-signature">
445
+ <a href="#M000709" class="method-signature">
445
446
 
446
447
  <span class="method-name">setSorting</span><span class="method-args">(modes)</span>
447
448
 
@@ -456,8 +457,8 @@ Set all sorting levels as Array of triplets.
456
457
  </p>
457
458
 
458
459
  <p><a class="source-toggle" href="#"
459
- onclick="toggleCode('M000497-source');return false;">[Source]</a></p>
460
- <div class="method-source-code" id="M000497-source">
460
+ onclick="toggleCode('M000709-source');return false;">[Source]</a></p>
461
+ <div class="method-source-code" id="M000709-source">
461
462
  <pre>
462
463
  <span class="ruby-comment cmt"># File lib/PropertyList.rb, line 56</span>
463
464
  56: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">setSorting</span>(<span class="ruby-identifier">modes</span>)
@@ -473,12 +474,12 @@ Set all sorting levels as Array of triplets.
473
474
  </div>
474
475
 
475
476
 
476
- <div id="method-M000502" class="method-detail">
477
- <a name="M000502"></a>
477
+ <div id="method-M000714" class="method-detail">
478
+ <a name="M000714"></a>
478
479
 
479
480
  <div class="method-heading">
480
481
 
481
- <a href="#M000502" class="method-signature">
482
+ <a href="#M000714" class="method-signature">
482
483
 
483
484
  <span class="method-name">sort!</span><span class="method-args">()</span>
484
485
 
@@ -493,51 +494,51 @@ Sort the properties according to the currently defined sorting criteria.
493
494
  </p>
494
495
 
495
496
  <p><a class="source-toggle" href="#"
496
- onclick="toggleCode('M000502-source');return false;">[Source]</a></p>
497
- <div class="method-source-code" id="M000502-source">
497
+ onclick="toggleCode('M000714-source');return false;">[Source]</a></p>
498
+ <div class="method-source-code" id="M000714-source">
498
499
  <pre>
499
- <span class="ruby-comment cmt"># File lib/PropertyList.rb, line 115</span>
500
- 115: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sort!</span>
501
- 116: <span class="ruby-keyword kw">super</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">a</span>, <span class="ruby-identifier">b</span><span class="ruby-operator">|</span>
502
- 117: <span class="ruby-identifier">res</span> = <span class="ruby-value">0</span>
503
- 118: <span class="ruby-ivar">@sortingLevels</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
504
- 119: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@query</span>
505
- 120: <span class="ruby-comment cmt"># In case we have a Query reference, we get the two values with this</span>
506
- 121: <span class="ruby-comment cmt"># query.</span>
507
- 122: <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">scenarioIdx</span> = <span class="ruby-ivar">@scenarioIdx</span>[<span class="ruby-identifier">i</span>] <span class="ruby-operator">&lt;</span> <span class="ruby-value">0</span> <span class="ruby-operator">?</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-operator">:</span> <span class="ruby-ivar">@scenarioIdx</span>[<span class="ruby-identifier">i</span>]
508
- 123: <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">attributeId</span> = <span class="ruby-ivar">@sortingCriteria</span>[<span class="ruby-identifier">i</span>]
509
- 124:
510
- 125: <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">property</span> = <span class="ruby-identifier">a</span>
511
- 126: <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">process</span>
512
- 127: <span class="ruby-identifier">aVal</span> = <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">sortableResult</span>
513
- 128:
514
- 129: <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">property</span> = <span class="ruby-identifier">b</span>
515
- 130: <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">process</span>
516
- 131: <span class="ruby-identifier">bVal</span> = <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">sortableResult</span>
517
- 132: <span class="ruby-keyword kw">else</span>
518
- 133: <span class="ruby-comment cmt"># In case we don't have a query, we use the static mechanism.</span>
519
- 134: <span class="ruby-comment cmt"># If the scenario index is negative we have a non-scenario-specific</span>
520
- 135: <span class="ruby-comment cmt"># attribute.</span>
521
- 136: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@scenarioIdx</span>[<span class="ruby-identifier">i</span>] <span class="ruby-operator">&lt;</span> <span class="ruby-value">0</span>
522
- 137: <span class="ruby-identifier">aVal</span> = <span class="ruby-identifier">a</span>.<span class="ruby-identifier">get</span>(<span class="ruby-ivar">@sortingCriteria</span>[<span class="ruby-identifier">i</span>])
523
- 138: <span class="ruby-identifier">bVal</span> = <span class="ruby-identifier">b</span>.<span class="ruby-identifier">get</span>(<span class="ruby-ivar">@sortingCriteria</span>[<span class="ruby-identifier">i</span>])
524
- 139: <span class="ruby-keyword kw">else</span>
525
- 140: <span class="ruby-identifier">aVal</span> = <span class="ruby-identifier">a</span>[<span class="ruby-ivar">@sortingCriteria</span>[<span class="ruby-identifier">i</span>], <span class="ruby-ivar">@scenarioIdx</span>[<span class="ruby-identifier">i</span>]]
526
- 141: <span class="ruby-identifier">bVal</span> = <span class="ruby-identifier">b</span>[<span class="ruby-ivar">@sortingCriteria</span>[<span class="ruby-identifier">i</span>], <span class="ruby-ivar">@scenarioIdx</span>[<span class="ruby-identifier">i</span>]]
527
- 142: <span class="ruby-keyword kw">end</span>
528
- 143: <span class="ruby-keyword kw">end</span>
529
- 144: <span class="ruby-identifier">res</span> = <span class="ruby-identifier">aVal</span> <span class="ruby-operator">&lt;=&gt;</span> <span class="ruby-identifier">bVal</span>
530
- 145: <span class="ruby-comment cmt"># Invert the result if we have to sort in decreasing order.</span>
531
- 146: <span class="ruby-identifier">res</span> = <span class="ruby-operator">-</span><span class="ruby-identifier">res</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@sortingUp</span>[<span class="ruby-identifier">i</span>]
532
- 147: <span class="ruby-comment cmt"># If the two elements are equal on this compare level we try the next</span>
533
- 148: <span class="ruby-comment cmt"># level.</span>
534
- 149: <span class="ruby-keyword kw">break</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">res</span> <span class="ruby-operator">!=</span> <span class="ruby-value">0</span>
535
- 150: <span class="ruby-keyword kw">end</span>
536
- 151: <span class="ruby-identifier">res</span>
537
- 152: <span class="ruby-keyword kw">end</span>
538
- 153: <span class="ruby-comment cmt"># Update indexes.</span>
539
- 154: <span class="ruby-identifier">index</span>
540
- 155: <span class="ruby-keyword kw">end</span>
500
+ <span class="ruby-comment cmt"># File lib/PropertyList.rb, line 116</span>
501
+ 116: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sort!</span>
502
+ 117: <span class="ruby-keyword kw">super</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">a</span>, <span class="ruby-identifier">b</span><span class="ruby-operator">|</span>
503
+ 118: <span class="ruby-identifier">res</span> = <span class="ruby-value">0</span>
504
+ 119: <span class="ruby-ivar">@sortingLevels</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
505
+ 120: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@query</span>
506
+ 121: <span class="ruby-comment cmt"># In case we have a Query reference, we get the two values with this</span>
507
+ 122: <span class="ruby-comment cmt"># query.</span>
508
+ 123: <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">scenarioIdx</span> = <span class="ruby-ivar">@scenarioIdx</span>[<span class="ruby-identifier">i</span>] <span class="ruby-operator">&lt;</span> <span class="ruby-value">0</span> <span class="ruby-operator">?</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-operator">:</span> <span class="ruby-ivar">@scenarioIdx</span>[<span class="ruby-identifier">i</span>]
509
+ 124: <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">attributeId</span> = <span class="ruby-ivar">@sortingCriteria</span>[<span class="ruby-identifier">i</span>]
510
+ 125:
511
+ 126: <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">property</span> = <span class="ruby-identifier">a</span>
512
+ 127: <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">process</span>
513
+ 128: <span class="ruby-identifier">aVal</span> = <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">sortableResult</span>
514
+ 129:
515
+ 130: <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">property</span> = <span class="ruby-identifier">b</span>
516
+ 131: <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">process</span>
517
+ 132: <span class="ruby-identifier">bVal</span> = <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">sortableResult</span>
518
+ 133: <span class="ruby-keyword kw">else</span>
519
+ 134: <span class="ruby-comment cmt"># In case we don't have a query, we use the static mechanism.</span>
520
+ 135: <span class="ruby-comment cmt"># If the scenario index is negative we have a non-scenario-specific</span>
521
+ 136: <span class="ruby-comment cmt"># attribute.</span>
522
+ 137: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@scenarioIdx</span>[<span class="ruby-identifier">i</span>] <span class="ruby-operator">&lt;</span> <span class="ruby-value">0</span>
523
+ 138: <span class="ruby-identifier">aVal</span> = <span class="ruby-identifier">a</span>.<span class="ruby-identifier">get</span>(<span class="ruby-ivar">@sortingCriteria</span>[<span class="ruby-identifier">i</span>])
524
+ 139: <span class="ruby-identifier">bVal</span> = <span class="ruby-identifier">b</span>.<span class="ruby-identifier">get</span>(<span class="ruby-ivar">@sortingCriteria</span>[<span class="ruby-identifier">i</span>])
525
+ 140: <span class="ruby-keyword kw">else</span>
526
+ 141: <span class="ruby-identifier">aVal</span> = <span class="ruby-identifier">a</span>[<span class="ruby-ivar">@sortingCriteria</span>[<span class="ruby-identifier">i</span>], <span class="ruby-ivar">@scenarioIdx</span>[<span class="ruby-identifier">i</span>]]
527
+ 142: <span class="ruby-identifier">bVal</span> = <span class="ruby-identifier">b</span>[<span class="ruby-ivar">@sortingCriteria</span>[<span class="ruby-identifier">i</span>], <span class="ruby-ivar">@scenarioIdx</span>[<span class="ruby-identifier">i</span>]]
528
+ 143: <span class="ruby-keyword kw">end</span>
529
+ 144: <span class="ruby-keyword kw">end</span>
530
+ 145: <span class="ruby-identifier">res</span> = <span class="ruby-identifier">aVal</span> <span class="ruby-operator">&lt;=&gt;</span> <span class="ruby-identifier">bVal</span>
531
+ 146: <span class="ruby-comment cmt"># Invert the result if we have to sort in decreasing order.</span>
532
+ 147: <span class="ruby-identifier">res</span> = <span class="ruby-operator">-</span><span class="ruby-identifier">res</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@sortingUp</span>[<span class="ruby-identifier">i</span>]
533
+ 148: <span class="ruby-comment cmt"># If the two elements are equal on this compare level we try the next</span>
534
+ 149: <span class="ruby-comment cmt"># level.</span>
535
+ 150: <span class="ruby-keyword kw">break</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">res</span> <span class="ruby-operator">!=</span> <span class="ruby-value">0</span>
536
+ 151: <span class="ruby-keyword kw">end</span>
537
+ 152: <span class="ruby-identifier">res</span>
538
+ 153: <span class="ruby-keyword kw">end</span>
539
+ 154: <span class="ruby-comment cmt"># Update indexes.</span>
540
+ 155: <span class="ruby-identifier">index</span>
541
+ 156: <span class="ruby-keyword kw">end</span>
541
542
  </pre>
542
543
  </div>
543
544
 
@@ -545,12 +546,12 @@ Sort the properties according to the currently defined sorting criteria.
545
546
  </div>
546
547
 
547
548
 
548
- <div id="method-M000501" class="method-detail">
549
- <a name="M000501"></a>
549
+ <div id="method-M000713" class="method-detail">
550
+ <a name="M000713"></a>
550
551
 
551
552
  <div class="method-heading">
552
553
 
553
- <a href="#M000501" class="method-signature">
554
+ <a href="#M000713" class="method-signature">
554
555
 
555
556
  <span class="method-name">treeMode?</span><span class="method-args">()</span>
556
557
 
@@ -567,13 +568,13 @@ returns true if the mode is set.
567
568
  </p>
568
569
 
569
570
  <p><a class="source-toggle" href="#"
570
- onclick="toggleCode('M000501-source');return false;">[Source]</a></p>
571
- <div class="method-source-code" id="M000501-source">
571
+ onclick="toggleCode('M000713-source');return false;">[Source]</a></p>
572
+ <div class="method-source-code" id="M000713-source">
572
573
  <pre>
573
- <span class="ruby-comment cmt"># File lib/PropertyList.rb, line 110</span>
574
- 110: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">treeMode?</span>
575
- 111: <span class="ruby-ivar">@sortingLevels</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@sortingCriteria</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">'tree'</span>
576
- 112: <span class="ruby-keyword kw">end</span>
574
+ <span class="ruby-comment cmt"># File lib/PropertyList.rb, line 111</span>
575
+ 111: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">treeMode?</span>
576
+ 112: <span class="ruby-ivar">@sortingLevels</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@sortingCriteria</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">'tree'</span>
577
+ 113: <span class="ruby-keyword kw">end</span>
577
578
  </pre>
578
579
  </div>
579
580