taskjuggler 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
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