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
@@ -112,17 +112,17 @@ generate the complete reference manual from this rule set.
112
112
 
113
113
  <div class="name-list">
114
114
 
115
- <a href="#M000787">close</a>&nbsp;&nbsp;
115
+ <a href="#M000679">close</a>&nbsp;&nbsp;
116
116
 
117
- <a href="#M000785">new</a>&nbsp;&nbsp;
117
+ <a href="#M000677">new</a>&nbsp;&nbsp;
118
118
 
119
- <a href="#M000788">nextToken</a>&nbsp;&nbsp;
119
+ <a href="#M000680">nextToken</a>&nbsp;&nbsp;
120
120
 
121
- <a href="#M000786">open</a>&nbsp;&nbsp;
121
+ <a href="#M000678">open</a>&nbsp;&nbsp;
122
122
 
123
- <a href="#M000789">returnToken</a>&nbsp;&nbsp;
123
+ <a href="#M000681">returnToken</a>&nbsp;&nbsp;
124
124
 
125
- <a href="#M000790">setGlobalMacros</a>&nbsp;&nbsp;
125
+ <a href="#M000682">setGlobalMacros</a>&nbsp;&nbsp;
126
126
 
127
127
  </div>
128
128
  </div>
@@ -153,12 +153,12 @@ generate the complete reference manual from this rule set.
153
153
  <h3 class="section-bar">Public Class methods</h3>
154
154
 
155
155
 
156
- <div id="method-M000785" class="method-detail">
157
- <a name="M000785"></a>
156
+ <div id="method-M000677" class="method-detail">
157
+ <a name="M000677"></a>
158
158
 
159
159
  <div class="method-heading">
160
160
 
161
- <a href="#M000785" class="method-signature">
161
+ <a href="#M000677" class="method-signature">
162
162
 
163
163
  <span class="method-name">new</span><span class="method-args">(messageHandler)</span>
164
164
 
@@ -174,23 +174,23 @@ that is used for error reporting.
174
174
  </p>
175
175
 
176
176
  <p><a class="source-toggle" href="#"
177
- onclick="toggleCode('M000785-source');return false;">[Source]</a></p>
178
- <div class="method-source-code" id="M000785-source">
177
+ onclick="toggleCode('M000677-source');return false;">[Source]</a></p>
178
+ <div class="method-source-code" id="M000677-source">
179
179
  <pre>
180
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 36</span>
181
- 36: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">messageHandler</span>)
182
- 37: <span class="ruby-keyword kw">super</span>()
183
- 38:
184
- 39: <span class="ruby-ivar">@messageHandler</span> = <span class="ruby-identifier">messageHandler</span>
185
- 40: <span class="ruby-comment cmt"># Define the token types that the TextScanner may return for variable</span>
186
- 41: <span class="ruby-comment cmt"># elements.</span>
187
- 42: <span class="ruby-ivar">@variables</span> = <span class="ruby-node">%w( INTEGER FLOAT DATE TIME STRING LITERAL ID ID_WITH_COLON
188
- 43: RELATIVE_ID ABSOLUTE_ID MACRO )</span>
189
- 44:
190
- 45: <span class="ruby-identifier">initRules</span>
191
- 46:
192
- 47: <span class="ruby-ivar">@project</span> = <span class="ruby-keyword kw">nil</span>
193
- 48: <span class="ruby-keyword kw">end</span>
180
+ <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 37</span>
181
+ 37: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">messageHandler</span>)
182
+ 38: <span class="ruby-keyword kw">super</span>()
183
+ 39:
184
+ 40: <span class="ruby-ivar">@messageHandler</span> = <span class="ruby-identifier">messageHandler</span>
185
+ 41: <span class="ruby-comment cmt"># Define the token types that the TextScanner may return for variable</span>
186
+ 42: <span class="ruby-comment cmt"># elements.</span>
187
+ 43: <span class="ruby-ivar">@variables</span> = <span class="ruby-node">%w( INTEGER FLOAT DATE TIME STRING LITERAL ID ID_WITH_COLON
188
+ 44: RELATIVE_ID ABSOLUTE_ID MACRO )</span>
189
+ 45:
190
+ 46: <span class="ruby-identifier">initRules</span>
191
+ 47:
192
+ 48: <span class="ruby-ivar">@project</span> = <span class="ruby-keyword kw">nil</span>
193
+ 49: <span class="ruby-keyword kw">end</span>
194
194
  </pre>
195
195
  </div>
196
196
 
@@ -201,12 +201,12 @@ that is used for error reporting.
201
201
  <h3 class="section-bar">Public Instance methods</h3>
202
202
 
203
203
 
204
- <div id="method-M000787" class="method-detail">
205
- <a name="M000787"></a>
204
+ <div id="method-M000679" class="method-detail">
205
+ <a name="M000679"></a>
206
206
 
207
207
  <div class="method-heading">
208
208
 
209
- <a href="#M000787" class="method-signature">
209
+ <a href="#M000679" class="method-signature">
210
210
 
211
211
  <span class="method-name">close</span><span class="method-args">()</span>
212
212
 
@@ -222,14 +222,14 @@ processing has been completed.
222
222
  </p>
223
223
 
224
224
  <p><a class="source-toggle" href="#"
225
- onclick="toggleCode('M000787-source');return false;">[Source]</a></p>
226
- <div class="method-source-code" id="M000787-source">
225
+ onclick="toggleCode('M000679-source');return false;">[Source]</a></p>
226
+ <div class="method-source-code" id="M000679-source">
227
227
  <pre>
228
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 72</span>
229
- 72: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">close</span>
230
- 73: <span class="ruby-identifier">res</span> = <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">close</span>
231
- 74: <span class="ruby-identifier">res</span>
232
- 75: <span class="ruby-keyword kw">end</span>
228
+ <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 73</span>
229
+ 73: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">close</span>
230
+ 74: <span class="ruby-identifier">res</span> = <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">close</span>
231
+ 75: <span class="ruby-identifier">res</span>
232
+ 76: <span class="ruby-keyword kw">end</span>
233
233
  </pre>
234
234
  </div>
235
235
 
@@ -237,12 +237,12 @@ processing has been completed.
237
237
  </div>
238
238
 
239
239
 
240
- <div id="method-M000788" class="method-detail">
241
- <a name="M000788"></a>
240
+ <div id="method-M000680" class="method-detail">
241
+ <a name="M000680"></a>
242
242
 
243
243
  <div class="method-heading">
244
244
 
245
- <a href="#M000788" class="method-signature">
245
+ <a href="#M000680" class="method-signature">
246
246
 
247
247
  <span class="method-name">nextToken</span><span class="method-args">()</span>
248
248
 
@@ -259,13 +259,13 @@ text string of the token.
259
259
  </p>
260
260
 
261
261
  <p><a class="source-toggle" href="#"
262
- onclick="toggleCode('M000788-source');return false;">[Source]</a></p>
263
- <div class="method-source-code" id="M000788-source">
262
+ onclick="toggleCode('M000680-source');return false;">[Source]</a></p>
263
+ <div class="method-source-code" id="M000680-source">
264
264
  <pre>
265
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 80</span>
266
- 80: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">nextToken</span>
267
- 81: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">nextToken</span>
268
- 82: <span class="ruby-keyword kw">end</span>
265
+ <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 81</span>
266
+ 81: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">nextToken</span>
267
+ 82: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">nextToken</span>
268
+ 83: <span class="ruby-keyword kw">end</span>
269
269
  </pre>
270
270
  </div>
271
271
 
@@ -273,14 +273,14 @@ text string of the token.
273
273
  </div>
274
274
 
275
275
 
276
- <div id="method-M000786" class="method-detail">
277
- <a name="M000786"></a>
276
+ <div id="method-M000678" class="method-detail">
277
+ <a name="M000678"></a>
278
278
 
279
279
  <div class="method-heading">
280
280
 
281
- <a href="#M000786" class="method-signature">
281
+ <a href="#M000678" class="method-signature">
282
282
 
283
- <span class="method-name">open</span><span class="method-args">(file, master)</span>
283
+ <span class="method-name">open</span><span class="method-args">(file, master, fileNameIsBuffer = false)</span>
284
284
 
285
285
  </a>
286
286
 
@@ -294,27 +294,27 @@ set of TJP files.
294
294
  </p>
295
295
 
296
296
  <p><a class="source-toggle" href="#"
297
- onclick="toggleCode('M000786-source');return false;">[Source]</a></p>
298
- <div class="method-source-code" id="M000786-source">
297
+ onclick="toggleCode('M000678-source');return false;">[Source]</a></p>
298
+ <div class="method-source-code" id="M000678-source">
299
299
  <pre>
300
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 52</span>
301
- 52: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">open</span>(<span class="ruby-identifier">file</span>, <span class="ruby-identifier">master</span>)
302
- 53: <span class="ruby-keyword kw">begin</span>
303
- 54: <span class="ruby-ivar">@scanner</span> = <span class="ruby-constant">TextScanner</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">file</span>, <span class="ruby-ivar">@messageHandler</span>)
304
- 55: <span class="ruby-comment cmt"># We need the TextScanner object for error reporting.</span>
305
- 56: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">master</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">file</span> <span class="ruby-operator">!=</span> <span class="ruby-value str">'.'</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">file</span>[<span class="ruby-value">-4</span>, <span class="ruby-value">4</span>] <span class="ruby-operator">!=</span> <span class="ruby-value str">'.tjp'</span>
306
- 57: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'illegal_extension'</span>, <span class="ruby-value str">&quot;Project file name must end with &quot;</span> <span class="ruby-operator">+</span>
307
- 58: <span class="ruby-value str">'\'.tjp\' extension'</span>)
308
- 59: <span class="ruby-keyword kw">end</span>
309
- 60: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">open</span>
310
- 61: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">StandardError</span>
311
- 62: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'file_open'</span>, <span class="ruby-identifier">$!</span>.<span class="ruby-identifier">message</span>)
312
- 63: <span class="ruby-keyword kw">end</span>
313
- 64:
314
- 65: <span class="ruby-ivar">@property</span> = <span class="ruby-ivar">@report</span> = <span class="ruby-keyword kw">nil</span>
315
- 66: <span class="ruby-ivar">@scenarioIdx</span> = <span class="ruby-value">0</span>
316
- 67: <span class="ruby-identifier">initFileStack</span>
317
- 68: <span class="ruby-keyword kw">end</span>
300
+ <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 53</span>
301
+ 53: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">open</span>(<span class="ruby-identifier">file</span>, <span class="ruby-identifier">master</span>, <span class="ruby-identifier">fileNameIsBuffer</span> = <span class="ruby-keyword kw">false</span>)
302
+ 54: <span class="ruby-keyword kw">begin</span>
303
+ 55: <span class="ruby-ivar">@scanner</span> = <span class="ruby-constant">TextScanner</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">file</span>, <span class="ruby-ivar">@messageHandler</span>)
304
+ 56: <span class="ruby-comment cmt"># We need the TextScanner object for error reporting.</span>
305
+ 57: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">master</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">fileNameIsBuffer</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">file</span> <span class="ruby-operator">!=</span> <span class="ruby-value str">'.'</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">file</span>[<span class="ruby-value">-4</span>, <span class="ruby-value">4</span>] <span class="ruby-operator">!=</span> <span class="ruby-value str">'.tjp'</span>
306
+ 58: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'illegal_extension'</span>, <span class="ruby-value str">&quot;Project file name must end with &quot;</span> <span class="ruby-operator">+</span>
307
+ 59: <span class="ruby-value str">'\'.tjp\' extension'</span>)
308
+ 60: <span class="ruby-keyword kw">end</span>
309
+ 61: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">fileNameIsBuffer</span>)
310
+ 62: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">StandardError</span>
311
+ 63: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'file_open'</span>, <span class="ruby-identifier">$!</span>.<span class="ruby-identifier">message</span>)
312
+ 64: <span class="ruby-keyword kw">end</span>
313
+ 65:
314
+ 66: <span class="ruby-ivar">@property</span> = <span class="ruby-keyword kw">nil</span>
315
+ 67: <span class="ruby-ivar">@scenarioIdx</span> = <span class="ruby-value">0</span>
316
+ 68: <span class="ruby-identifier">initFileStack</span>
317
+ 69: <span class="ruby-keyword kw">end</span>
318
318
  </pre>
319
319
  </div>
320
320
 
@@ -322,12 +322,12 @@ set of TJP files.
322
322
  </div>
323
323
 
324
324
 
325
- <div id="method-M000789" class="method-detail">
326
- <a name="M000789"></a>
325
+ <div id="method-M000681" class="method-detail">
326
+ <a name="M000681"></a>
327
327
 
328
328
  <div class="method-heading">
329
329
 
330
- <a href="#M000789" class="method-signature">
330
+ <a href="#M000681" class="method-signature">
331
331
 
332
332
  <span class="method-name">returnToken</span><span class="method-args">(token)</span>
333
333
 
@@ -345,13 +345,13 @@ look-ahead functionality.
345
345
  </p>
346
346
 
347
347
  <p><a class="source-toggle" href="#"
348
- onclick="toggleCode('M000789-source');return false;">[Source]</a></p>
349
- <div class="method-source-code" id="M000789-source">
348
+ onclick="toggleCode('M000681-source');return false;">[Source]</a></p>
349
+ <div class="method-source-code" id="M000681-source">
350
350
  <pre>
351
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 88</span>
352
- 88: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">returnToken</span>(<span class="ruby-identifier">token</span>)
353
- 89: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">returnToken</span>(<span class="ruby-identifier">token</span>)
354
- 90: <span class="ruby-keyword kw">end</span>
351
+ <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 89</span>
352
+ 89: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">returnToken</span>(<span class="ruby-identifier">token</span>)
353
+ 90: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">returnToken</span>(<span class="ruby-identifier">token</span>)
354
+ 91: <span class="ruby-keyword kw">end</span>
355
355
  </pre>
356
356
  </div>
357
357
 
@@ -359,12 +359,12 @@ look-ahead functionality.
359
359
  </div>
360
360
 
361
361
 
362
- <div id="method-M000790" class="method-detail">
363
- <a name="M000790"></a>
362
+ <div id="method-M000682" class="method-detail">
363
+ <a name="M000682"></a>
364
364
 
365
365
  <div class="method-heading">
366
366
 
367
- <a href="#M000790" class="method-signature">
367
+ <a href="#M000682" class="method-signature">
368
368
 
369
369
  <span class="method-name">setGlobalMacros</span><span class="method-args">()</span>
370
370
 
@@ -382,18 +382,21 @@ href="TextScanner.html">TextScanner</a>.
382
382
  </p>
383
383
 
384
384
  <p><a class="source-toggle" href="#"
385
- onclick="toggleCode('M000790-source');return false;">[Source]</a></p>
386
- <div class="method-source-code" id="M000790-source">
385
+ onclick="toggleCode('M000682-source');return false;">[Source]</a></p>
386
+ <div class="method-source-code" id="M000682-source">
387
387
  <pre>
388
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 95</span>
389
- 95: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">setGlobalMacros</span>
390
- 96: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">addMacro</span>(<span class="ruby-constant">Macro</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'projectstart'</span>, <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'start'</span>].<span class="ruby-identifier">to_s</span>,
391
- 97: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">sourceFileInfo</span>))
392
- 98: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">addMacro</span>(<span class="ruby-constant">Macro</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'projectend'</span>, <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'end'</span>].<span class="ruby-identifier">to_s</span>,
393
- 99: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">sourceFileInfo</span>))
394
- 100: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">addMacro</span>(<span class="ruby-constant">Macro</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'now'</span>, <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'now'</span>].<span class="ruby-identifier">to_s</span>,
395
- 101: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">sourceFileInfo</span>))
396
- 102: <span class="ruby-keyword kw">end</span>
388
+ <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 96</span>
389
+ 96: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">setGlobalMacros</span>
390
+ 97: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">addMacro</span>(<span class="ruby-constant">Macro</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'projectstart'</span>, <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'start'</span>].<span class="ruby-identifier">to_s</span>,
391
+ 98: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">sourceFileInfo</span>))
392
+ 99: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">addMacro</span>(<span class="ruby-constant">Macro</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'projectend'</span>, <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'end'</span>].<span class="ruby-identifier">to_s</span>,
393
+ 100: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">sourceFileInfo</span>))
394
+ 101: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">addMacro</span>(<span class="ruby-constant">Macro</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'now'</span>, <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'now'</span>].<span class="ruby-identifier">to_s</span>,
395
+ 102: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">sourceFileInfo</span>))
396
+ 103: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">addMacro</span>(<span class="ruby-constant">Macro</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'today'</span>, <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'now'</span>].
397
+ 104: <span class="ruby-identifier">to_s</span>(<span class="ruby-ivar">@project</span>[<span class="ruby-value str">'timeFormat'</span>]),
398
+ 105: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">sourceFileInfo</span>))
399
+ 106: <span class="ruby-keyword kw">end</span>
397
400
  </pre>
398
401
  </div>
399
402
 
@@ -95,9 +95,9 @@
95
95
 
96
96
  <div class="name-list">
97
97
 
98
- <a href="#M000492">new</a>&nbsp;&nbsp;
98
+ <a href="#M000899">new</a>&nbsp;&nbsp;
99
99
 
100
- <a href="#M000493">tjpId</a>&nbsp;&nbsp;
100
+ <a href="#M000900">tjpId</a>&nbsp;&nbsp;
101
101
 
102
102
  </div>
103
103
  </div>
@@ -118,12 +118,12 @@
118
118
  <h3 class="section-bar">Public Class methods</h3>
119
119
 
120
120
 
121
- <div id="method-M000492" class="method-detail">
122
- <a name="M000492"></a>
121
+ <div id="method-M000899" class="method-detail">
122
+ <a name="M000899"></a>
123
123
 
124
124
  <div class="method-heading">
125
125
 
126
- <a href="#M000492" class="method-signature">
126
+ <a href="#M000899" class="method-signature">
127
127
 
128
128
  <span class="method-name">new</span><span class="method-args">(property, type)</span>
129
129
 
@@ -134,13 +134,13 @@
134
134
  <div class="method-description">
135
135
 
136
136
  <p><a class="source-toggle" href="#"
137
- onclick="toggleCode('M000492-source');return false;">[Source]</a></p>
138
- <div class="method-source-code" id="M000492-source">
137
+ onclick="toggleCode('M000899-source');return false;">[Source]</a></p>
138
+ <div class="method-source-code" id="M000899-source">
139
139
  <pre>
140
- <span class="ruby-comment cmt"># File lib/Attributes.rb, line 364</span>
141
- 364: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">property</span>, <span class="ruby-identifier">type</span>)
142
- 365: <span class="ruby-keyword kw">super</span>
143
- 366: <span class="ruby-keyword kw">end</span>
140
+ <span class="ruby-comment cmt"># File lib/Attributes.rb, line 372</span>
141
+ 372: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">property</span>, <span class="ruby-identifier">type</span>)
142
+ 373: <span class="ruby-keyword kw">super</span>
143
+ 374: <span class="ruby-keyword kw">end</span>
144
144
  </pre>
145
145
  </div>
146
146
 
@@ -148,12 +148,12 @@
148
148
  </div>
149
149
 
150
150
 
151
- <div id="method-M000493" class="method-detail">
152
- <a name="M000493"></a>
151
+ <div id="method-M000900" class="method-detail">
152
+ <a name="M000900"></a>
153
153
 
154
154
  <div class="method-heading">
155
155
 
156
- <a href="#M000493" class="method-signature">
156
+ <a href="#M000900" class="method-signature">
157
157
 
158
158
  <span class="method-name">tjpId</span><span class="method-args">()</span>
159
159
 
@@ -164,13 +164,13 @@
164
164
  <div class="method-description">
165
165
 
166
166
  <p><a class="source-toggle" href="#"
167
- onclick="toggleCode('M000493-source');return false;">[Source]</a></p>
168
- <div class="method-source-code" id="M000493-source">
167
+ onclick="toggleCode('M000900-source');return false;">[Source]</a></p>
168
+ <div class="method-source-code" id="M000900-source">
169
169
  <pre>
170
- <span class="ruby-comment cmt"># File lib/Attributes.rb, line 368</span>
171
- 368: <span class="ruby-keyword kw">def</span> <span class="ruby-constant">PropertyAttribute</span><span class="ruby-operator">::</span><span class="ruby-identifier">tjpId</span>
172
- 369: <span class="ruby-value str">'property'</span>
173
- 370: <span class="ruby-keyword kw">end</span>
170
+ <span class="ruby-comment cmt"># File lib/Attributes.rb, line 376</span>
171
+ 376: <span class="ruby-keyword kw">def</span> <span class="ruby-constant">PropertyAttribute</span><span class="ruby-operator">::</span><span class="ruby-identifier">tjpId</span>
172
+ 377: <span class="ruby-value str">'property'</span>
173
+ 378: <span class="ruby-keyword kw">end</span>
174
174
  </pre>
175
175
  </div>
176
176
 
@@ -70,7 +70,11 @@
70
70
  <td><strong>Parent:</strong></td>
71
71
  <td>
72
72
 
73
- Array
73
+ <a href="../Object.html">
74
+
75
+ Object
76
+
77
+ </a>
74
78
 
75
79
  </td>
76
80
  </tr>
@@ -105,21 +109,25 @@ in the <a href="PropertyList.html">PropertyList</a> must belong to the same
105
109
 
106
110
  <div class="name-list">
107
111
 
108
- <a href="#M000712">addSortingCriteria</a>&nbsp;&nbsp;
112
+ <a href="#M000587">addSortingCriteria</a>&nbsp;&nbsp;
113
+
114
+ <a href="#M000586">append</a>&nbsp;&nbsp;
109
115
 
110
- <a href="#M000711">append</a>&nbsp;&nbsp;
116
+ <a href="#M000590">index</a>&nbsp;&nbsp;
111
117
 
112
- <a href="#M000715">index</a>&nbsp;&nbsp;
118
+ <a href="#M000582">method_missing</a>&nbsp;&nbsp;
113
119
 
114
- <a href="#M000708">new</a>&nbsp;&nbsp;
120
+ <a href="#M000581">new</a>&nbsp;&nbsp;
115
121
 
116
- <a href="#M000710">resetSorting</a>&nbsp;&nbsp;
122
+ <a href="#M000585">resetSorting</a>&nbsp;&nbsp;
117
123
 
118
- <a href="#M000709">setSorting</a>&nbsp;&nbsp;
124
+ <a href="#M000584">setSorting</a>&nbsp;&nbsp;
119
125
 
120
- <a href="#M000714">sort!</a>&nbsp;&nbsp;
126
+ <a href="#M000589">sort!</a>&nbsp;&nbsp;
121
127
 
122
- <a href="#M000713">treeMode?</a>&nbsp;&nbsp;
128
+ <a href="#M000583">to_ary</a>&nbsp;&nbsp;
129
+
130
+ <a href="#M000588">treeMode?</a>&nbsp;&nbsp;
123
131
 
124
132
  </div>
125
133
  </div>
@@ -206,14 +214,14 @@ in the <a href="PropertyList.html">PropertyList</a> must belong to the same
206
214
  <h3 class="section-bar">Public Class methods</h3>
207
215
 
208
216
 
209
- <div id="method-M000708" class="method-detail">
210
- <a name="M000708"></a>
217
+ <div id="method-M000581" class="method-detail">
218
+ <a name="M000581"></a>
211
219
 
212
220
  <div class="method-heading">
213
221
 
214
- <a href="#M000708" class="method-signature">
222
+ <a href="#M000581" class="method-signature">
215
223
 
216
- <span class="method-name">new</span><span class="method-args">(arg)</span>
224
+ <span class="method-name">new</span><span class="method-args">(arg, copyItems = true)</span>
217
225
 
218
226
  </a>
219
227
 
@@ -228,12 +236,12 @@ be of that set.
228
236
  </p>
229
237
 
230
238
  <p><a class="source-toggle" href="#"
231
- onclick="toggleCode('M000708-source');return false;">[Source]</a></p>
232
- <div class="method-source-code" id="M000708-source">
239
+ onclick="toggleCode('M000581-source');return false;">[Source]</a></p>
240
+ <div class="method-source-code" id="M000581-source">
233
241
  <pre>
234
242
  <span class="ruby-comment cmt"># File lib/PropertyList.rb, line 30</span>
235
- 30: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">arg</span>)
236
- 31: <span class="ruby-keyword kw">super</span>(<span class="ruby-identifier">arg</span>.<span class="ruby-identifier">to_ary</span>)
243
+ 30: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">arg</span>, <span class="ruby-identifier">copyItems</span> = <span class="ruby-keyword kw">true</span>)
244
+ 31: <span class="ruby-ivar">@items</span> = <span class="ruby-identifier">copyItems</span> <span class="ruby-value">? </span><span class="ruby-identifier">arg</span>.<span class="ruby-identifier">to_ary</span> <span class="ruby-operator">:</span> []
237
245
  32: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">PropertySet</span>)
238
246
  33: <span class="ruby-comment cmt"># Create a PropertyList from the given PropertySet.</span>
239
247
  34: <span class="ruby-ivar">@propertySet</span> = <span class="ruby-identifier">arg</span>
@@ -245,7 +253,7 @@ be of that set.
245
253
  40: <span class="ruby-ivar">@query</span> = <span class="ruby-keyword kw">nil</span>
246
254
  41: <span class="ruby-identifier">resetSorting</span>
247
255
  42: <span class="ruby-identifier">addSortingCriteria</span>(<span class="ruby-value str">'seqno'</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-value">-1</span>)
248
- 43: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">sort!</span>
256
+ 43: <span class="ruby-identifier">sort!</span>
249
257
  44: <span class="ruby-keyword kw">else</span>
250
258
  45: <span class="ruby-comment cmt"># Create a PropertyList from a given other PropertyList.</span>
251
259
  46: <span class="ruby-ivar">@propertySet</span> = <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">propertySet</span>
@@ -266,12 +274,12 @@ be of that set.
266
274
  <h3 class="section-bar">Public Instance methods</h3>
267
275
 
268
276
 
269
- <div id="method-M000712" class="method-detail">
270
- <a name="M000712"></a>
277
+ <div id="method-M000587" class="method-detail">
278
+ <a name="M000587"></a>
271
279
 
272
280
  <div class="method-heading">
273
281
 
274
- <a href="#M000712" class="method-signature">
282
+ <a href="#M000587" class="method-signature">
275
283
 
276
284
  <span class="method-name">addSortingCriteria</span><span class="method-args">(criteria, up, scIdx)</span>
277
285
 
@@ -286,30 +294,34 @@ Append a new sorting level to the existing levels.
286
294
  </p>
287
295
 
288
296
  <p><a class="source-toggle" href="#"
289
- onclick="toggleCode('M000712-source');return false;">[Source]</a></p>
290
- <div class="method-source-code" id="M000712-source">
297
+ onclick="toggleCode('M000587-source');return false;">[Source]</a></p>
298
+ <div class="method-source-code" id="M000587-source">
291
299
  <pre>
292
- <span class="ruby-comment cmt"># File lib/PropertyList.rb, line 87</span>
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>)
294
- 88: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@propertySet</span>.<span class="ruby-identifier">knownAttribute?</span>(<span class="ruby-identifier">criteria</span>)
295
- 89: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>, <span class="ruby-node">&quot;Unknown attribute #{criteria} used for &quot;</span> <span class="ruby-operator">+</span>
296
- 90: <span class="ruby-value str">'sorting criterium'</span>
297
- 91: <span class="ruby-keyword kw">end</span>
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
- 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> <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>
300
+ <span class="ruby-comment cmt"># File lib/PropertyList.rb, line 98</span>
301
+ 98: <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>)
302
+ 99: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@propertySet</span>.<span class="ruby-identifier">knownAttribute?</span>(<span class="ruby-identifier">criteria</span>) <span class="ruby-operator">||</span>
303
+ 100: <span class="ruby-ivar">@propertySet</span>.<span class="ruby-identifier">hasQuery?</span>(<span class="ruby-identifier">criteria</span>, <span class="ruby-identifier">scIdx</span>)
304
+ 101: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>, <span class="ruby-node">&quot;Unknown attribute #{criteria} used for &quot;</span> <span class="ruby-operator">+</span>
305
+ 102: <span class="ruby-value str">'sorting criterium'</span>
306
+ 103: <span class="ruby-keyword kw">end</span>
307
+ 104: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">scIdx</span> <span class="ruby-operator">==</span> <span class="ruby-value">-1</span>
308
+ 105: <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>)
309
+ 106: <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>
310
+ 107: <span class="ruby-value str">&quot;You must specify a scenario id.&quot;</span>
311
+ 108: <span class="ruby-keyword kw">end</span>
312
+ 109: <span class="ruby-keyword kw">else</span>
313
+ 110: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@propertySet</span>.<span class="ruby-identifier">project</span>.<span class="ruby-identifier">scenario</span>(<span class="ruby-identifier">scIdx</span>).<span class="ruby-identifier">nil?</span>
314
+ 111: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>, <span class="ruby-node">&quot;Unknown scenario index #{scIdx} used.&quot;</span>
315
+ 112: <span class="ruby-keyword kw">end</span>
316
+ 113: <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>)
317
+ 114: <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>
318
+ 115: <span class="ruby-keyword kw">end</span>
319
+ 116: <span class="ruby-keyword kw">end</span>
320
+ 117: <span class="ruby-ivar">@sortingCriteria</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">criteria</span>)
321
+ 118: <span class="ruby-ivar">@sortingUp</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">up</span>)
322
+ 119: <span class="ruby-ivar">@scenarioIdx</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">scIdx</span>)
323
+ 120: <span class="ruby-ivar">@sortingLevels</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
324
+ 121: <span class="ruby-keyword kw">end</span>
313
325
  </pre>
314
326
  </div>
315
327
 
@@ -317,12 +329,12 @@ Append a new sorting level to the existing levels.
317
329
  </div>
318
330
 
319
331
 
320
- <div id="method-M000711" class="method-detail">
321
- <a name="M000711"></a>
332
+ <div id="method-M000586" class="method-detail">
333
+ <a name="M000586"></a>
322
334
 
323
335
  <div class="method-heading">
324
336
 
325
- <a href="#M000711" class="method-signature">
337
+ <a href="#M000586" class="method-signature">
326
338
 
327
339
  <span class="method-name">append</span><span class="method-args">(list)</span>
328
340
 
@@ -333,28 +345,28 @@ Append a new sorting level to the existing levels.
333
345
  <div class="method-description">
334
346
 
335
347
  <p>
336
- Append another Array of Tasks or a <a
348
+ Append another Array of PropertyTreeNodes or a <a
337
349
  href="PropertyList.html">PropertyList</a> to this. The list will be sorted
338
350
  again.
339
351
  </p>
340
352
 
341
353
  <p><a class="source-toggle" href="#"
342
- onclick="toggleCode('M000711-source');return false;">[Source]</a></p>
343
- <div class="method-source-code" id="M000711-source">
354
+ onclick="toggleCode('M000586-source');return false;">[Source]</a></p>
355
+ <div class="method-source-code" id="M000586-source">
344
356
  <pre>
345
- <span class="ruby-comment cmt"># File lib/PropertyList.rb, line 73</span>
346
- 73: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">append</span>(<span class="ruby-identifier">list</span>)
347
- 74: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$DEBUG</span>
348
- 75: <span class="ruby-identifier">list</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">node</span><span class="ruby-operator">|</span>
349
- 76: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">node</span>.<span class="ruby-identifier">propertySet</span> <span class="ruby-operator">==</span> <span class="ruby-ivar">@propertySet</span>
350
- 77: <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;Fatal Error: All nodes must belong to the same PropertySet.&quot;</span>
351
- 78: <span class="ruby-keyword kw">end</span>
352
- 79: <span class="ruby-keyword kw">end</span>
353
- 80: <span class="ruby-keyword kw">end</span>
354
- 81:
355
- 82: <span class="ruby-identifier">concat</span>(<span class="ruby-identifier">list</span>)
356
- 83: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">sort!</span>
357
- 84: <span class="ruby-keyword kw">end</span>
357
+ <span class="ruby-comment cmt"># File lib/PropertyList.rb, line 84</span>
358
+ 84: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">append</span>(<span class="ruby-identifier">list</span>)
359
+ 85: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$DEBUG</span>
360
+ 86: <span class="ruby-identifier">list</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">node</span><span class="ruby-operator">|</span>
361
+ 87: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">node</span>.<span class="ruby-identifier">propertySet</span> <span class="ruby-operator">==</span> <span class="ruby-ivar">@propertySet</span>
362
+ 88: <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;Fatal Error: All nodes must belong to the same PropertySet.&quot;</span>
363
+ 89: <span class="ruby-keyword kw">end</span>
364
+ 90: <span class="ruby-keyword kw">end</span>
365
+ 91: <span class="ruby-keyword kw">end</span>
366
+ 92:
367
+ 93: <span class="ruby-ivar">@items</span>.<span class="ruby-identifier">concat</span>(<span class="ruby-identifier">list</span>)
368
+ 94: <span class="ruby-identifier">sort!</span>
369
+ 95: <span class="ruby-keyword kw">end</span>
358
370
  </pre>
359
371
  </div>
360
372
 
@@ -362,12 +374,12 @@ again.
362
374
  </div>
363
375
 
364
376
 
365
- <div id="method-M000715" class="method-detail">
366
- <a name="M000715"></a>
377
+ <div id="method-M000590" class="method-detail">
378
+ <a name="M000590"></a>
367
379
 
368
380
  <div class="method-heading">
369
381
 
370
- <a href="#M000715" class="method-signature">
382
+ <a href="#M000590" class="method-signature">
371
383
 
372
384
  <span class="method-name">index</span><span class="method-args">()</span>
373
385
 
@@ -383,16 +395,16 @@ The index starts with 0 and increases for each property.
383
395
  </p>
384
396
 
385
397
  <p><a class="source-toggle" href="#"
386
- onclick="toggleCode('M000715-source');return false;">[Source]</a></p>
387
- <div class="method-source-code" id="M000715-source">
398
+ onclick="toggleCode('M000590-source');return false;">[Source]</a></p>
399
+ <div class="method-source-code" id="M000590-source">
388
400
  <pre>
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>
401
+ <span class="ruby-comment cmt"># File lib/PropertyList.rb, line 167</span>
402
+ 167: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">index</span>
403
+ 168: <span class="ruby-identifier">i</span> = <span class="ruby-value">0</span>
404
+ 169: <span class="ruby-ivar">@items</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>
405
+ 170: <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>)
406
+ 171: <span class="ruby-keyword kw">end</span>
407
+ 172: <span class="ruby-keyword kw">end</span>
396
408
  </pre>
397
409
  </div>
398
410
 
@@ -400,12 +412,48 @@ The index starts with 0 and increases for each property.
400
412
  </div>
401
413
 
402
414
 
403
- <div id="method-M000710" class="method-detail">
404
- <a name="M000710"></a>
415
+ <div id="method-M000582" class="method-detail">
416
+ <a name="M000582"></a>
405
417
 
406
418
  <div class="method-heading">
407
419
 
408
- <a href="#M000710" class="method-signature">
420
+ <a href="#M000582" class="method-signature">
421
+
422
+ <span class="method-name">method_missing</span><span class="method-args">(func, *args, &amp;block)</span>
423
+
424
+ </a>
425
+
426
+ </div>
427
+
428
+ <div class="method-description">
429
+
430
+ <p>
431
+ This class should be a derived class of Array. But since it re-defines
432
+ sort!() and still needs to call Array::sort!() I took a different route.
433
+ All missing methods will be propagated to the @items Array.
434
+ </p>
435
+
436
+ <p><a class="source-toggle" href="#"
437
+ onclick="toggleCode('M000582-source');return false;">[Source]</a></p>
438
+ <div class="method-source-code" id="M000582-source">
439
+ <pre>
440
+ <span class="ruby-comment cmt"># File lib/PropertyList.rb, line 58</span>
441
+ 58: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">method_missing</span>(<span class="ruby-identifier">func</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">args</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)
442
+ 59: <span class="ruby-ivar">@items</span>.<span class="ruby-identifier">method</span>(<span class="ruby-identifier">func</span>).<span class="ruby-identifier">call</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)
443
+ 60: <span class="ruby-keyword kw">end</span>
444
+ </pre>
445
+ </div>
446
+
447
+ </div>
448
+ </div>
449
+
450
+
451
+ <div id="method-M000585" class="method-detail">
452
+ <a name="M000585"></a>
453
+
454
+ <div class="method-heading">
455
+
456
+ <a href="#M000585" class="method-signature">
409
457
 
410
458
  <span class="method-name">resetSorting</span><span class="method-args">()</span>
411
459
 
@@ -420,16 +468,16 @@ Clear all sorting levels.
420
468
  </p>
421
469
 
422
470
  <p><a class="source-toggle" href="#"
423
- onclick="toggleCode('M000710-source');return false;">[Source]</a></p>
424
- <div class="method-source-code" id="M000710-source">
471
+ onclick="toggleCode('M000585-source');return false;">[Source]</a></p>
472
+ <div class="method-source-code" id="M000585-source">
425
473
  <pre>
426
- <span class="ruby-comment cmt"># File lib/PropertyList.rb, line 64</span>
427
- 64: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">resetSorting</span>
428
- 65: <span class="ruby-ivar">@sortingLevels</span> = <span class="ruby-value">0</span>
429
- 66: <span class="ruby-ivar">@sortingCriteria</span> = []
430
- 67: <span class="ruby-ivar">@sortingUp</span> = []
431
- 68: <span class="ruby-ivar">@scenarioIdx</span> = []
432
- 69: <span class="ruby-keyword kw">end</span>
474
+ <span class="ruby-comment cmt"># File lib/PropertyList.rb, line 75</span>
475
+ 75: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">resetSorting</span>
476
+ 76: <span class="ruby-ivar">@sortingLevels</span> = <span class="ruby-value">0</span>
477
+ 77: <span class="ruby-ivar">@sortingCriteria</span> = []
478
+ 78: <span class="ruby-ivar">@sortingUp</span> = []
479
+ 79: <span class="ruby-ivar">@scenarioIdx</span> = []
480
+ 80: <span class="ruby-keyword kw">end</span>
433
481
  </pre>
434
482
  </div>
435
483
 
@@ -437,12 +485,12 @@ Clear all sorting levels.
437
485
  </div>
438
486
 
439
487
 
440
- <div id="method-M000709" class="method-detail">
441
- <a name="M000709"></a>
488
+ <div id="method-M000584" class="method-detail">
489
+ <a name="M000584"></a>
442
490
 
443
491
  <div class="method-heading">
444
492
 
445
- <a href="#M000709" class="method-signature">
493
+ <a href="#M000584" class="method-signature">
446
494
 
447
495
  <span class="method-name">setSorting</span><span class="method-args">(modes)</span>
448
496
 
@@ -457,16 +505,16 @@ Set all sorting levels as Array of triplets.
457
505
  </p>
458
506
 
459
507
  <p><a class="source-toggle" href="#"
460
- onclick="toggleCode('M000709-source');return false;">[Source]</a></p>
461
- <div class="method-source-code" id="M000709-source">
508
+ onclick="toggleCode('M000584-source');return false;">[Source]</a></p>
509
+ <div class="method-source-code" id="M000584-source">
462
510
  <pre>
463
- <span class="ruby-comment cmt"># File lib/PropertyList.rb, line 56</span>
464
- 56: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">setSorting</span>(<span class="ruby-identifier">modes</span>)
465
- 57: <span class="ruby-identifier">resetSorting</span>
466
- 58: <span class="ruby-identifier">modes</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">mode</span><span class="ruby-operator">|</span>
467
- 59: <span class="ruby-identifier">addSortingCriteria</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">mode</span>)
468
- 60: <span class="ruby-keyword kw">end</span>
469
- 61: <span class="ruby-keyword kw">end</span>
511
+ <span class="ruby-comment cmt"># File lib/PropertyList.rb, line 67</span>
512
+ 67: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">setSorting</span>(<span class="ruby-identifier">modes</span>)
513
+ 68: <span class="ruby-identifier">resetSorting</span>
514
+ 69: <span class="ruby-identifier">modes</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">mode</span><span class="ruby-operator">|</span>
515
+ 70: <span class="ruby-identifier">addSortingCriteria</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">mode</span>)
516
+ 71: <span class="ruby-keyword kw">end</span>
517
+ 72: <span class="ruby-keyword kw">end</span>
470
518
  </pre>
471
519
  </div>
472
520
 
@@ -474,12 +522,12 @@ Set all sorting levels as Array of triplets.
474
522
  </div>
475
523
 
476
524
 
477
- <div id="method-M000714" class="method-detail">
478
- <a name="M000714"></a>
525
+ <div id="method-M000589" class="method-detail">
526
+ <a name="M000589"></a>
479
527
 
480
528
  <div class="method-heading">
481
529
 
482
- <a href="#M000714" class="method-signature">
530
+ <a href="#M000589" class="method-signature">
483
531
 
484
532
  <span class="method-name">sort!</span><span class="method-args">()</span>
485
533
 
@@ -494,51 +542,73 @@ Sort the properties according to the currently defined sorting criteria.
494
542
  </p>
495
543
 
496
544
  <p><a class="source-toggle" href="#"
497
- onclick="toggleCode('M000714-source');return false;">[Source]</a></p>
498
- <div class="method-source-code" id="M000714-source">
545
+ onclick="toggleCode('M000589-source');return false;">[Source]</a></p>
546
+ <div class="method-source-code" id="M000589-source">
547
+ <pre>
548
+ <span class="ruby-comment cmt"># File lib/PropertyList.rb, line 131</span>
549
+ 131: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sort!</span>
550
+ 132: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">treeMode?</span>
551
+ 133: <span class="ruby-comment cmt"># Tree sorting is somewhat complex. It will be based on the 'tree'</span>
552
+ 134: <span class="ruby-comment cmt"># attribute of the PropertyTreeNodes but we have to update them first</span>
553
+ 135: <span class="ruby-comment cmt"># based on the other sorting criteria.</span>
554
+ 136:
555
+ 137: <span class="ruby-comment cmt"># Remove the tree sorting mode first.</span>
556
+ 138: <span class="ruby-identifier">sc</span> = <span class="ruby-ivar">@sortingCriteria</span>.<span class="ruby-identifier">delete_at</span>(<span class="ruby-value">0</span>)
557
+ 139: <span class="ruby-identifier">su</span> = <span class="ruby-ivar">@sortingUp</span>.<span class="ruby-identifier">delete_at</span>(<span class="ruby-value">0</span>)
558
+ 140: <span class="ruby-identifier">si</span> = <span class="ruby-ivar">@scenarioIdx</span>.<span class="ruby-identifier">delete_at</span>(<span class="ruby-value">0</span>)
559
+ 141: <span class="ruby-ivar">@sortingLevels</span> <span class="ruby-operator">-=</span> <span class="ruby-value">1</span>
560
+ 142:
561
+ 143: <span class="ruby-comment cmt"># Sort the list based on the rest of the modes.</span>
562
+ 144: <span class="ruby-identifier">sortInternal</span>
563
+ 145: <span class="ruby-comment cmt"># The update the 'index' attributes of the PropertyTreeNodes.</span>
564
+ 146: <span class="ruby-identifier">index</span>
565
+ 147: <span class="ruby-comment cmt"># An then the 'tree' attributes.</span>
566
+ 148: <span class="ruby-identifier">indexTree</span>
567
+ 149:
568
+ 150: <span class="ruby-comment cmt"># Restore the 'tree' sorting mode again.</span>
569
+ 151: <span class="ruby-ivar">@sortingCriteria</span>.<span class="ruby-identifier">insert</span>(<span class="ruby-value">0</span>, <span class="ruby-identifier">sc</span>)
570
+ 152: <span class="ruby-ivar">@sortingUp</span>.<span class="ruby-identifier">insert</span>(<span class="ruby-value">0</span>, <span class="ruby-identifier">su</span>)
571
+ 153: <span class="ruby-ivar">@scenarioIdx</span>.<span class="ruby-identifier">insert</span>(<span class="ruby-value">0</span>, <span class="ruby-identifier">si</span>)
572
+ 154: <span class="ruby-ivar">@sortingLevels</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
573
+ 155:
574
+ 156: <span class="ruby-comment cmt"># Sort again, now based on the updated 'tree' attributes.</span>
575
+ 157: <span class="ruby-identifier">sortInternal</span>
576
+ 158: <span class="ruby-keyword kw">else</span>
577
+ 159: <span class="ruby-identifier">sortInternal</span>
578
+ 160: <span class="ruby-keyword kw">end</span>
579
+ 161: <span class="ruby-comment cmt"># Update indexes.</span>
580
+ 162: <span class="ruby-identifier">index</span>
581
+ 163: <span class="ruby-keyword kw">end</span>
582
+ </pre>
583
+ </div>
584
+
585
+ </div>
586
+ </div>
587
+
588
+
589
+ <div id="method-M000583" class="method-detail">
590
+ <a name="M000583"></a>
591
+
592
+ <div class="method-heading">
593
+
594
+ <a href="#M000583" class="method-signature">
595
+
596
+ <span class="method-name">to_ary</span><span class="method-args">()</span>
597
+
598
+ </a>
599
+
600
+ </div>
601
+
602
+ <div class="method-description">
603
+
604
+ <p><a class="source-toggle" href="#"
605
+ onclick="toggleCode('M000583-source');return false;">[Source]</a></p>
606
+ <div class="method-source-code" id="M000583-source">
499
607
  <pre>
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>
608
+ <span class="ruby-comment cmt"># File lib/PropertyList.rb, line 62</span>
609
+ 62: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_ary</span>
610
+ 63: <span class="ruby-ivar">@items</span>.<span class="ruby-identifier">dup</span>
611
+ 64: <span class="ruby-keyword kw">end</span>
542
612
  </pre>
543
613
  </div>
544
614
 
@@ -546,12 +616,12 @@ Sort the properties according to the currently defined sorting criteria.
546
616
  </div>
547
617
 
548
618
 
549
- <div id="method-M000713" class="method-detail">
550
- <a name="M000713"></a>
619
+ <div id="method-M000588" class="method-detail">
620
+ <a name="M000588"></a>
551
621
 
552
622
  <div class="method-heading">
553
623
 
554
- <a href="#M000713" class="method-signature">
624
+ <a href="#M000588" class="method-signature">
555
625
 
556
626
  <span class="method-name">treeMode?</span><span class="method-args">()</span>
557
627
 
@@ -568,13 +638,13 @@ returns true if the mode is set.
568
638
  </p>
569
639
 
570
640
  <p><a class="source-toggle" href="#"
571
- onclick="toggleCode('M000713-source');return false;">[Source]</a></p>
572
- <div class="method-source-code" id="M000713-source">
641
+ onclick="toggleCode('M000588-source');return false;">[Source]</a></p>
642
+ <div class="method-source-code" id="M000588-source">
573
643
  <pre>
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>
644
+ <span class="ruby-comment cmt"># File lib/PropertyList.rb, line 126</span>
645
+ 126: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">treeMode?</span>
646
+ 127: <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>
647
+ 128: <span class="ruby-keyword kw">end</span>
578
648
  </pre>
579
649
  </div>
580
650