taskjuggler 0.0.11 → 0.1.0

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 (697) hide show
  1. data/CHANGELOG +6 -1550
  2. data/benchmarks/UTF-8-Strings.rb +58 -0
  3. data/benchmarks/profile.clt +36082 -0
  4. data/benchmarks/profile.html +58182 -0
  5. data/benchmarks/runbench.rb +2 -2
  6. data/data/css/tjmanual.css +0 -1
  7. data/doc/AppConfig.html +1491 -0
  8. data/doc/CHANGELOG.html +557 -0
  9. data/doc/COPYING.html +899 -0
  10. data/doc/Diff.html +1193 -0
  11. data/doc/Diff/Hunk.html +1026 -0
  12. data/doc/Diffable.html +684 -0
  13. data/doc/DiffableString.html +684 -0
  14. data/doc/Object.html +720 -0
  15. data/doc/README_rdoc.html +742 -0
  16. data/doc/RuntimeConfig.html +856 -0
  17. data/doc/String.html +1005 -0
  18. data/doc/TaskJuggler.html +2639 -0
  19. data/doc/TaskJuggler/Account.html +753 -0
  20. data/doc/TaskJuggler/AccountAttribute.html +769 -0
  21. data/doc/TaskJuggler/AccountScenario.html +712 -0
  22. data/doc/TaskJuggler/Allocation.html +963 -0
  23. data/doc/TaskJuggler/AllocationAttribute.html +799 -0
  24. data/doc/TaskJuggler/AttributeBase.html +1328 -0
  25. data/doc/TaskJuggler/AttributeDefinition.html +815 -0
  26. data/doc/TaskJuggler/AttributeOverwrite.html +606 -0
  27. data/doc/TaskJuggler/BatchProcessor.html +1178 -0
  28. data/doc/TaskJuggler/Booking.html +859 -0
  29. data/doc/TaskJuggler/BookingListAttribute.html +769 -0
  30. data/doc/TaskJuggler/BooleanAttribute.html +769 -0
  31. data/doc/TaskJuggler/CSVFile.html +1128 -0
  32. data/doc/TaskJuggler/CellSettingPattern.html +700 -0
  33. data/doc/TaskJuggler/CellSettingPatternList.html +749 -0
  34. data/doc/TaskJuggler/Charge.html +777 -0
  35. data/doc/TaskJuggler/ChargeListAttribute.html +733 -0
  36. data/doc/TaskJuggler/ChargeSet.html +949 -0
  37. data/doc/TaskJuggler/ChargeSetListAttribute.html +778 -0
  38. data/doc/TaskJuggler/CollisionDetector.html +1089 -0
  39. data/doc/TaskJuggler/ColumnListAttribute.html +733 -0
  40. data/doc/TaskJuggler/ColumnTable.html +763 -0
  41. data/doc/TaskJuggler/Daemon.html +819 -0
  42. data/doc/TaskJuggler/DataCache.html +1025 -0
  43. data/doc/TaskJuggler/DataCacheEntry.html +737 -0
  44. data/doc/TaskJuggler/DateAttribute.html +737 -0
  45. data/doc/TaskJuggler/DefinitionListAttribute.html +655 -0
  46. data/doc/TaskJuggler/DependencyListAttribute.html +773 -0
  47. data/doc/TaskJuggler/DurationAttribute.html +770 -0
  48. data/doc/TaskJuggler/FileList.html +793 -0
  49. data/doc/TaskJuggler/FileRecord.html +702 -0
  50. data/doc/TaskJuggler/FixnumAttribute.html +691 -0
  51. data/doc/TaskJuggler/FlagListAttribute.html +769 -0
  52. data/doc/TaskJuggler/FloatAttribute.html +733 -0
  53. data/doc/TaskJuggler/FormatListAttribute.html +697 -0
  54. data/doc/TaskJuggler/GanttChart.html +1487 -0
  55. data/doc/TaskJuggler/GanttContainer.html +945 -0
  56. data/doc/TaskJuggler/GanttHeader.html +948 -0
  57. data/doc/TaskJuggler/GanttHeaderScaleItem.html +762 -0
  58. data/doc/TaskJuggler/GanttLine.html +1325 -0
  59. data/doc/TaskJuggler/GanttLoadStack.html +828 -0
  60. data/doc/TaskJuggler/GanttMilestone.html +926 -0
  61. data/doc/TaskJuggler/GanttRouter.html +1136 -0
  62. data/doc/TaskJuggler/GanttTaskBar.html +948 -0
  63. data/doc/TaskJuggler/HTMLDocument.html +754 -0
  64. data/doc/TaskJuggler/HTMLElements.html +599 -0
  65. data/doc/TaskJuggler/HTMLGraphics.html +837 -0
  66. data/doc/TaskJuggler/Interval.html +1076 -0
  67. data/doc/TaskJuggler/IntervalList.html +797 -0
  68. data/doc/TaskJuggler/IntervalListAttribute.html +773 -0
  69. data/doc/TaskJuggler/JobInfo.html +943 -0
  70. data/doc/TaskJuggler/Journal.html +1248 -0
  71. data/doc/TaskJuggler/JournalEntry.html +860 -0
  72. data/doc/TaskJuggler/JournalEntryList.html +1229 -0
  73. data/doc/TaskJuggler/KeywordArray.html +696 -0
  74. data/doc/TaskJuggler/KeywordDocumentation.html +2250 -0
  75. data/doc/TaskJuggler/Limits.html +1036 -0
  76. data/doc/TaskJuggler/Limits/Limit.html +947 -0
  77. data/doc/TaskJuggler/LimitsAttribute.html +734 -0
  78. data/doc/TaskJuggler/ListAttributeBase.html +703 -0
  79. data/doc/TaskJuggler/Log.html +1163 -0
  80. data/doc/TaskJuggler/LogFile.html +980 -0
  81. data/doc/TaskJuggler/LogicalAttribute.html +760 -0
  82. data/doc/TaskJuggler/LogicalExpression.html +801 -0
  83. data/doc/TaskJuggler/LogicalExpressionAttribute.html +691 -0
  84. data/doc/TaskJuggler/LogicalExpressionListAttribute.html +691 -0
  85. data/doc/TaskJuggler/LogicalFlag.html +753 -0
  86. data/doc/TaskJuggler/LogicalFunction.html +1409 -0
  87. data/doc/TaskJuggler/LogicalOperation.html +1144 -0
  88. data/doc/TaskJuggler/ManagerResponsibilities.html +736 -0
  89. data/doc/TaskJuggler/ManagerStatusRecord.html +740 -0
  90. data/doc/TaskJuggler/Message.html +837 -0
  91. data/doc/TaskJuggler/MessageHandler.html +1056 -0
  92. data/doc/TaskJuggler/Navigator.html +943 -0
  93. data/doc/TaskJuggler/NavigatorElement.html +994 -0
  94. data/doc/TaskJuggler/NikuProject.html +724 -0
  95. data/doc/TaskJuggler/NikuReport.html +1470 -0
  96. data/doc/TaskJuggler/NikuResource.html +694 -0
  97. data/doc/TaskJuggler/NodeListAttribute.html +655 -0
  98. data/doc/TaskJuggler/PlaceHolderCell.html +748 -0
  99. data/doc/TaskJuggler/ProcessIntercom.html +1017 -0
  100. data/doc/TaskJuggler/ProcessIntercomIface.html +773 -0
  101. data/doc/TaskJuggler/Project.html +3478 -0
  102. data/doc/TaskJuggler/ProjectBroker.html +1676 -0
  103. data/doc/TaskJuggler/ProjectBrokerIface.html +851 -0
  104. data/doc/TaskJuggler/ProjectFileParser.html +2102 -0
  105. data/doc/TaskJuggler/ProjectFileScanner.html +1896 -0
  106. data/doc/TaskJuggler/ProjectRecord.html +978 -0
  107. data/doc/TaskJuggler/ProjectServer.html +1249 -0
  108. data/doc/TaskJuggler/ProjectServerIface.html +868 -0
  109. data/doc/TaskJuggler/PropertyAttribute.html +691 -0
  110. data/doc/TaskJuggler/PropertyList.html +1399 -0
  111. data/doc/TaskJuggler/PropertySet.html +1796 -0
  112. data/doc/TaskJuggler/PropertyTreeNode.html +2851 -0
  113. data/doc/TaskJuggler/Query.html +1756 -0
  114. data/doc/TaskJuggler/RTFHandlers.html +664 -0
  115. data/doc/TaskJuggler/RTFNavigator.html +792 -0
  116. data/doc/TaskJuggler/RTFQuery.html +1083 -0
  117. data/doc/TaskJuggler/RTFReport.html +820 -0
  118. data/doc/TaskJuggler/RTFReportLink.html +812 -0
  119. data/doc/TaskJuggler/RTFWithQuerySupport.html +702 -0
  120. data/doc/TaskJuggler/RealFormat.html +805 -0
  121. data/doc/TaskJuggler/RealFormatAttribute.html +655 -0
  122. data/doc/TaskJuggler/ReferenceAttribute.html +880 -0
  123. data/doc/TaskJuggler/Report.html +1501 -0
  124. data/doc/TaskJuggler/ReportBase.html +1266 -0
  125. data/doc/TaskJuggler/ReportContext.html +837 -0
  126. data/doc/TaskJuggler/ReportServer.html +1068 -0
  127. data/doc/TaskJuggler/ReportServerIface.html +902 -0
  128. data/doc/TaskJuggler/ReportServerRecord.html +781 -0
  129. data/doc/TaskJuggler/ReportServlet.html +1029 -0
  130. data/doc/TaskJuggler/ReportTable.html +1179 -0
  131. data/doc/TaskJuggler/ReportTableCell.html +1666 -0
  132. data/doc/TaskJuggler/ReportTableColumn.html +890 -0
  133. data/doc/TaskJuggler/ReportTableLegend.html +1060 -0
  134. data/doc/TaskJuggler/ReportTableLine.html +1067 -0
  135. data/doc/TaskJuggler/Resource.html +1004 -0
  136. data/doc/TaskJuggler/ResourceListAttribute.html +829 -0
  137. data/doc/TaskJuggler/ResourceListRE.html +737 -0
  138. data/doc/TaskJuggler/ResourceScenario.html +2549 -0
  139. data/doc/TaskJuggler/RichText.html +879 -0
  140. data/doc/TaskJuggler/RichTextAttribute.html +811 -0
  141. data/doc/TaskJuggler/RichTextDocument.html +1038 -0
  142. data/doc/TaskJuggler/RichTextElement.html +1780 -0
  143. data/doc/TaskJuggler/RichTextFunctionExample.html +799 -0
  144. data/doc/TaskJuggler/RichTextFunctionHandler.html +750 -0
  145. data/doc/TaskJuggler/RichTextImage.html +712 -0
  146. data/doc/TaskJuggler/RichTextIntermediate.html +1285 -0
  147. data/doc/TaskJuggler/RichTextParser.html +868 -0
  148. data/doc/TaskJuggler/RichTextScanner.html +1565 -0
  149. data/doc/TaskJuggler/RichTextSnip.html +1000 -0
  150. data/doc/TaskJuggler/RichTextSyntaxRules.html +2052 -0
  151. data/doc/TaskJuggler/Scenario.html +656 -0
  152. data/doc/TaskJuggler/ScenarioData.html +838 -0
  153. data/doc/TaskJuggler/ScenarioListAttribute.html +733 -0
  154. data/doc/TaskJuggler/Scoreboard.html +1201 -0
  155. data/doc/TaskJuggler/SheetHandlerBase.html +1297 -0
  156. data/doc/TaskJuggler/SheetReceiver.html +1398 -0
  157. data/doc/TaskJuggler/SheetSender.html +1168 -0
  158. data/doc/TaskJuggler/Shift.html +751 -0
  159. data/doc/TaskJuggler/ShiftAssignment.html +1008 -0
  160. data/doc/TaskJuggler/ShiftAssignments.html +1413 -0
  161. data/doc/TaskJuggler/ShiftAssignmentsAttribute.html +734 -0
  162. data/doc/TaskJuggler/ShiftScenario.html +782 -0
  163. data/doc/TaskJuggler/SimpleQueryExpander.html +732 -0
  164. data/doc/TaskJuggler/SortListAttribute.html +691 -0
  165. data/doc/TaskJuggler/StatusSheetReceiver.html +678 -0
  166. data/doc/TaskJuggler/StatusSheetReport.html +935 -0
  167. data/doc/TaskJuggler/StatusSheetSender.html +808 -0
  168. data/doc/TaskJuggler/StdIoWrapper.html +696 -0
  169. data/doc/TaskJuggler/StringAttribute.html +733 -0
  170. data/doc/TaskJuggler/SymbolAttribute.html +691 -0
  171. data/doc/TaskJuggler/SyntaxReference.html +1240 -0
  172. data/doc/TaskJuggler/TOCEntry.html +836 -0
  173. data/doc/TaskJuggler/TSResourceRecord.html +732 -0
  174. data/doc/TaskJuggler/TSTaskRecord.html +744 -0
  175. data/doc/TaskJuggler/TableColumnDefinition.html +949 -0
  176. data/doc/TaskJuggler/TableOfContents.html +790 -0
  177. data/doc/TaskJuggler/TableReport.html +2555 -0
  178. data/doc/TaskJuggler/Task.html +890 -0
  179. data/doc/TaskJuggler/TaskDepListAttribute.html +773 -0
  180. data/doc/TaskJuggler/TaskDependency.html +832 -0
  181. data/doc/TaskJuggler/TaskListAttribute.html +773 -0
  182. data/doc/TaskJuggler/TaskListRE.html +736 -0
  183. data/doc/TaskJuggler/TaskScenario.html +5180 -0
  184. data/doc/TaskJuggler/TernarySearchTree.html +1341 -0
  185. data/doc/TaskJuggler/TextFormatter.html +973 -0
  186. data/doc/TaskJuggler/TextParser.html +1862 -0
  187. data/doc/TaskJuggler/TextParser/Macro.html +708 -0
  188. data/doc/TaskJuggler/TextParser/MacroTable.html +832 -0
  189. data/doc/TaskJuggler/TextParser/Pattern.html +1743 -0
  190. data/doc/TaskJuggler/TextParser/Rule.html +1419 -0
  191. data/doc/TaskJuggler/TextParser/Scanner.html +1516 -0
  192. data/doc/TaskJuggler/TextParser/Scanner/BufferStreamHandle.html +661 -0
  193. data/doc/TaskJuggler/TextParser/Scanner/FileStreamHandle.html +727 -0
  194. data/doc/TaskJuggler/TextParser/Scanner/MacroStackEntry.html +724 -0
  195. data/doc/TaskJuggler/TextParser/Scanner/StreamHandle.html +1095 -0
  196. data/doc/TaskJuggler/TextParser/SourceFileInfo.html +760 -0
  197. data/doc/TaskJuggler/TextParser/StackElement.html +940 -0
  198. data/doc/TaskJuggler/TextParser/State.html +1015 -0
  199. data/doc/TaskJuggler/TextParser/StateTransition.html +808 -0
  200. data/doc/TaskJuggler/TextParser/TextParserResultArray.html +711 -0
  201. data/doc/TaskJuggler/TextParser/TokenDoc.html +742 -0
  202. data/doc/TaskJuggler/TextReport.html +921 -0
  203. data/doc/TaskJuggler/TimeSheet.html +1264 -0
  204. data/doc/TaskJuggler/TimeSheetReceiver.html +675 -0
  205. data/doc/TaskJuggler/TimeSheetRecord.html +1415 -0
  206. data/doc/TaskJuggler/TimeSheetReport.html +1013 -0
  207. data/doc/TaskJuggler/TimeSheetSender.html +700 -0
  208. data/doc/TaskJuggler/TimeSheetSummary.html +959 -0
  209. data/doc/TaskJuggler/TimeSheets.html +736 -0
  210. data/doc/TaskJuggler/Tj3.html +857 -0
  211. data/doc/TaskJuggler/Tj3AppBase.html +942 -0
  212. data/doc/TaskJuggler/Tj3Client.html +1510 -0
  213. data/doc/TaskJuggler/Tj3Daemon.html +870 -0
  214. data/doc/TaskJuggler/Tj3Man.html +768 -0
  215. data/doc/TaskJuggler/Tj3SheetAppBase.html +758 -0
  216. data/doc/TaskJuggler/Tj3SsReceiver.html +747 -0
  217. data/doc/TaskJuggler/Tj3SsSender.html +780 -0
  218. data/doc/TaskJuggler/Tj3TsReceiver.html +747 -0
  219. data/doc/TaskJuggler/Tj3TsSender.html +767 -0
  220. data/doc/TaskJuggler/Tj3TsSummary.html +775 -0
  221. data/doc/TaskJuggler/TjException.html +692 -0
  222. data/doc/TaskJuggler/TjRuntimeError.html +606 -0
  223. data/doc/TaskJuggler/TjTime.html +3117 -0
  224. data/doc/TaskJuggler/TjpExample.html +897 -0
  225. data/doc/TaskJuggler/TjpExportRE.html +1772 -0
  226. data/doc/TaskJuggler/TjpSyntaxRules.html +14329 -0
  227. data/doc/TaskJuggler/URLParameter.html +691 -0
  228. data/doc/TaskJuggler/UserManual.html +1224 -0
  229. data/doc/TaskJuggler/VimSyntax.html +1064 -0
  230. data/doc/TaskJuggler/WebServer.html +757 -0
  231. data/doc/TaskJuggler/WelcomePage.html +789 -0
  232. data/doc/TaskJuggler/WorkingHours.html +1218 -0
  233. data/doc/TaskJuggler/WorkingHoursAttribute.html +756 -0
  234. data/doc/TaskJuggler/XMLBlob.html +707 -0
  235. data/doc/TaskJuggler/XMLComment.html +702 -0
  236. data/doc/TaskJuggler/XMLDocument.html +803 -0
  237. data/doc/TaskJuggler/XMLElement.html +990 -0
  238. data/doc/TaskJuggler/XMLNamedText.html +663 -0
  239. data/doc/TaskJuggler/XMLText.html +717 -0
  240. data/doc/index.html +4518 -0
  241. data/doc/lib/taskjuggler/AccountScenario_rb.html +69 -0
  242. data/doc/lib/taskjuggler/Account_rb.html +71 -0
  243. data/doc/lib/taskjuggler/AlgorithmDiff_rb.html +67 -0
  244. data/doc/lib/taskjuggler/Allocation_rb.html +71 -0
  245. data/doc/lib/taskjuggler/AppConfig_rb.html +69 -0
  246. data/doc/lib/taskjuggler/AttributeBase_rb.html +69 -0
  247. data/doc/lib/taskjuggler/AttributeDefinition_rb.html +67 -0
  248. data/doc/lib/taskjuggler/Attributes_rb.html +83 -0
  249. data/doc/lib/taskjuggler/BatchProcessor_rb.html +71 -0
  250. data/doc/lib/taskjuggler/Booking_rb.html +67 -0
  251. data/doc/lib/taskjuggler/ChargeSet_rb.html +69 -0
  252. data/doc/lib/taskjuggler/Charge_rb.html +69 -0
  253. data/doc/lib/taskjuggler/DataCache_rb.html +71 -0
  254. data/doc/lib/taskjuggler/FileList_rb.html +67 -0
  255. data/doc/lib/taskjuggler/HTMLDocument_rb.html +71 -0
  256. data/doc/lib/taskjuggler/HTMLElements_rb.html +69 -0
  257. data/doc/lib/taskjuggler/IntervalList_rb.html +69 -0
  258. data/doc/lib/taskjuggler/Interval_rb.html +69 -0
  259. data/doc/lib/taskjuggler/Journal_rb.html +67 -0
  260. data/doc/lib/taskjuggler/KeywordArray_rb.html +67 -0
  261. data/doc/lib/taskjuggler/KeywordDocumentation_rb.html +77 -0
  262. data/doc/lib/taskjuggler/Limits_rb.html +69 -0
  263. data/doc/lib/taskjuggler/LogFile_rb.html +69 -0
  264. data/doc/lib/taskjuggler/Log_rb.html +71 -0
  265. data/doc/lib/taskjuggler/LogicalExpression_rb.html +73 -0
  266. data/doc/lib/taskjuggler/LogicalFunction_rb.html +69 -0
  267. data/doc/lib/taskjuggler/LogicalOperation_rb.html +69 -0
  268. data/doc/lib/taskjuggler/MessageHandler_rb.html +69 -0
  269. data/doc/lib/taskjuggler/ProjectFileParser_rb.html +77 -0
  270. data/doc/lib/taskjuggler/ProjectFileScanner_rb.html +69 -0
  271. data/doc/lib/taskjuggler/Project_rb.html +113 -0
  272. data/doc/lib/taskjuggler/PropertyList_rb.html +67 -0
  273. data/doc/lib/taskjuggler/PropertySet_rb.html +71 -0
  274. data/doc/lib/taskjuggler/PropertyTreeNode_rb.html +67 -0
  275. data/doc/lib/taskjuggler/Query_rb.html +69 -0
  276. data/doc/lib/taskjuggler/RealFormat_rb.html +67 -0
  277. data/doc/lib/taskjuggler/ResourceScenario_rb.html +69 -0
  278. data/doc/lib/taskjuggler/Resource_rb.html +71 -0
  279. data/doc/lib/taskjuggler/RichText/Document_rb.html +73 -0
  280. data/doc/lib/taskjuggler/RichText/Element_rb.html +75 -0
  281. data/doc/lib/taskjuggler/RichText/FunctionExample_rb.html +73 -0
  282. data/doc/lib/taskjuggler/RichText/FunctionHandler_rb.html +67 -0
  283. data/doc/lib/taskjuggler/RichText/Parser_rb.html +75 -0
  284. data/doc/lib/taskjuggler/RichText/RTFHandlers_rb.html +75 -0
  285. data/doc/lib/taskjuggler/RichText/RTFNavigator_rb.html +73 -0
  286. data/doc/lib/taskjuggler/RichText/RTFQuery_rb.html +73 -0
  287. data/doc/lib/taskjuggler/RichText/RTFReportLink_rb.html +75 -0
  288. data/doc/lib/taskjuggler/RichText/RTFReport_rb.html +71 -0
  289. data/doc/lib/taskjuggler/RichText/RTFWithQuerySupport_rb.html +69 -0
  290. data/doc/lib/taskjuggler/RichText/Scanner_rb.html +71 -0
  291. data/doc/lib/taskjuggler/RichText/Snip_rb.html +71 -0
  292. data/doc/lib/taskjuggler/RichText/SyntaxRules_rb.html +67 -0
  293. data/doc/lib/taskjuggler/RichText/TOCEntry_rb.html +71 -0
  294. data/doc/lib/taskjuggler/RichText/TableOfContents_rb.html +71 -0
  295. data/doc/lib/taskjuggler/RichText_rb.html +73 -0
  296. data/doc/lib/taskjuggler/RuntimeConfig_rb.html +69 -0
  297. data/doc/lib/taskjuggler/ScenarioData_rb.html +71 -0
  298. data/doc/lib/taskjuggler/Scenario_rb.html +69 -0
  299. data/doc/lib/taskjuggler/Scoreboard_rb.html +69 -0
  300. data/doc/lib/taskjuggler/SheetHandlerBase_rb.html +75 -0
  301. data/doc/lib/taskjuggler/SheetReceiver_rb.html +81 -0
  302. data/doc/lib/taskjuggler/SheetSender_rb.html +79 -0
  303. data/doc/lib/taskjuggler/ShiftAssignments_rb.html +71 -0
  304. data/doc/lib/taskjuggler/ShiftScenario_rb.html +69 -0
  305. data/doc/lib/taskjuggler/Shift_rb.html +71 -0
  306. data/doc/lib/taskjuggler/SimpleQueryExpander_rb.html +69 -0
  307. data/doc/lib/taskjuggler/StatusSheetReceiver_rb.html +69 -0
  308. data/doc/lib/taskjuggler/StatusSheetSender_rb.html +69 -0
  309. data/doc/lib/taskjuggler/StdIoWrapper_rb.html +67 -0
  310. data/doc/lib/taskjuggler/SyntaxReference_rb.html +75 -0
  311. data/doc/lib/taskjuggler/TableColumnDefinition_rb.html +67 -0
  312. data/doc/lib/taskjuggler/TaskDependency_rb.html +67 -0
  313. data/doc/lib/taskjuggler/TaskJuggler_rb.html +75 -0
  314. data/doc/lib/taskjuggler/TaskScenario_rb.html +71 -0
  315. data/doc/lib/taskjuggler/Task_rb.html +71 -0
  316. data/doc/lib/taskjuggler/TernarySearchTree_rb.html +69 -0
  317. data/doc/lib/taskjuggler/TextFormatter_rb.html +69 -0
  318. data/doc/lib/taskjuggler/TextParser/MacroTable_rb.html +67 -0
  319. data/doc/lib/taskjuggler/TextParser/Pattern_rb.html +71 -0
  320. data/doc/lib/taskjuggler/TextParser/Rule_rb.html +69 -0
  321. data/doc/lib/taskjuggler/TextParser/Scanner_rb.html +77 -0
  322. data/doc/lib/taskjuggler/TextParser/SourceFileInfo_rb.html +67 -0
  323. data/doc/lib/taskjuggler/TextParser/StackElement_rb.html +67 -0
  324. data/doc/lib/taskjuggler/TextParser/State_rb.html +67 -0
  325. data/doc/lib/taskjuggler/TextParser/TokenDoc_rb.html +67 -0
  326. data/doc/lib/taskjuggler/TextParser_rb.html +79 -0
  327. data/doc/lib/taskjuggler/TimeSheetReceiver_rb.html +69 -0
  328. data/doc/lib/taskjuggler/TimeSheetSender_rb.html +69 -0
  329. data/doc/lib/taskjuggler/TimeSheetSummary_rb.html +69 -0
  330. data/doc/lib/taskjuggler/TimeSheets_rb.html +67 -0
  331. data/doc/lib/taskjuggler/Tj3AppBase_rb.html +79 -0
  332. data/doc/lib/taskjuggler/Tj3Config_rb.html +71 -0
  333. data/doc/lib/taskjuggler/Tj3SheetAppBase_rb.html +69 -0
  334. data/doc/lib/taskjuggler/TjException_rb.html +67 -0
  335. data/doc/lib/taskjuggler/TjTime_rb.html +71 -0
  336. data/doc/lib/taskjuggler/TjpExample_rb.html +69 -0
  337. data/doc/lib/taskjuggler/TjpSyntaxRules_rb.html +67 -0
  338. data/doc/lib/taskjuggler/URLParameter_rb.html +69 -0
  339. data/doc/lib/taskjuggler/UTF8String_rb.html +69 -0
  340. data/doc/lib/taskjuggler/UserManual_rb.html +81 -0
  341. data/doc/lib/taskjuggler/VimSyntax_rb.html +69 -0
  342. data/doc/lib/taskjuggler/WorkingHours_rb.html +71 -0
  343. data/doc/lib/taskjuggler/XMLDocument_rb.html +69 -0
  344. data/doc/lib/taskjuggler/XMLElement_rb.html +69 -0
  345. data/doc/lib/taskjuggler/apps/Tj3Client_rb.html +75 -0
  346. data/doc/lib/taskjuggler/apps/Tj3Daemon_rb.html +75 -0
  347. data/doc/lib/taskjuggler/apps/Tj3Man_rb.html +75 -0
  348. data/doc/lib/taskjuggler/apps/Tj3SsReceiver_rb.html +71 -0
  349. data/doc/lib/taskjuggler/apps/Tj3SsSender_rb.html +71 -0
  350. data/doc/lib/taskjuggler/apps/Tj3TsReceiver_rb.html +71 -0
  351. data/doc/lib/taskjuggler/apps/Tj3TsSender_rb.html +71 -0
  352. data/doc/lib/taskjuggler/apps/Tj3TsSummary_rb.html +71 -0
  353. data/doc/lib/taskjuggler/apps/Tj3_rb.html +71 -0
  354. data/doc/lib/taskjuggler/daemon/Daemon_rb.html +69 -0
  355. data/doc/lib/taskjuggler/daemon/ProcessIntercom_rb.html +71 -0
  356. data/doc/lib/taskjuggler/daemon/ProjectBroker_rb.html +83 -0
  357. data/doc/lib/taskjuggler/daemon/ProjectServer_rb.html +85 -0
  358. data/doc/lib/taskjuggler/daemon/ReportServer_rb.html +73 -0
  359. data/doc/lib/taskjuggler/daemon/ReportServlet_rb.html +69 -0
  360. data/doc/lib/taskjuggler/daemon/WebServer_rb.html +81 -0
  361. data/doc/lib/taskjuggler/daemon/WelcomePage_rb.html +71 -0
  362. data/doc/lib/taskjuggler/deep_copy_rb.html +67 -0
  363. data/doc/lib/taskjuggler/reports/CSVFile_rb.html +69 -0
  364. data/doc/lib/taskjuggler/reports/CollisionDetector_rb.html +69 -0
  365. data/doc/lib/taskjuggler/reports/ColumnTable_rb.html +69 -0
  366. data/doc/lib/taskjuggler/reports/GanttChart_rb.html +75 -0
  367. data/doc/lib/taskjuggler/reports/GanttContainer_rb.html +69 -0
  368. data/doc/lib/taskjuggler/reports/GanttHeaderScaleItem_rb.html +67 -0
  369. data/doc/lib/taskjuggler/reports/GanttHeader_rb.html +69 -0
  370. data/doc/lib/taskjuggler/reports/GanttLine_rb.html +79 -0
  371. data/doc/lib/taskjuggler/reports/GanttLoadStack_rb.html +69 -0
  372. data/doc/lib/taskjuggler/reports/GanttMilestone_rb.html +69 -0
  373. data/doc/lib/taskjuggler/reports/GanttRouter_rb.html +69 -0
  374. data/doc/lib/taskjuggler/reports/GanttTaskBar_rb.html +69 -0
  375. data/doc/lib/taskjuggler/reports/HTMLGraphics_rb.html +67 -0
  376. data/doc/lib/taskjuggler/reports/Navigator_rb.html +69 -0
  377. data/doc/lib/taskjuggler/reports/NikuReport_rb.html +71 -0
  378. data/doc/lib/taskjuggler/reports/ReportBase_rb.html +67 -0
  379. data/doc/lib/taskjuggler/reports/ReportContext_rb.html +67 -0
  380. data/doc/lib/taskjuggler/reports/ReportTableCell_rb.html +67 -0
  381. data/doc/lib/taskjuggler/reports/ReportTableColumn_rb.html +67 -0
  382. data/doc/lib/taskjuggler/reports/ReportTableLegend_rb.html +67 -0
  383. data/doc/lib/taskjuggler/reports/ReportTableLine_rb.html +69 -0
  384. data/doc/lib/taskjuggler/reports/ReportTable_rb.html +71 -0
  385. data/doc/lib/taskjuggler/reports/Report_rb.html +93 -0
  386. data/doc/lib/taskjuggler/reports/ResourceListRE_rb.html +75 -0
  387. data/doc/lib/taskjuggler/reports/StatusSheetReport_rb.html +69 -0
  388. data/doc/lib/taskjuggler/reports/TableReport_rb.html +77 -0
  389. data/doc/lib/taskjuggler/reports/TaskListRE_rb.html +75 -0
  390. data/doc/lib/taskjuggler/reports/TextReport_rb.html +69 -0
  391. data/doc/lib/taskjuggler/reports/TimeSheetReport_rb.html +69 -0
  392. data/doc/lib/taskjuggler/reports/TjpExportRE_rb.html +69 -0
  393. data/doc/lib/tj3_rb.html +69 -0
  394. data/doc/lib/tj3client_rb.html +69 -0
  395. data/doc/lib/tj3d_rb.html +69 -0
  396. data/doc/lib/tj3man_rb.html +69 -0
  397. data/doc/lib/tj3ss_receiver_rb.html +69 -0
  398. data/doc/lib/tj3ss_sender_rb.html +69 -0
  399. data/doc/lib/tj3ts_receiver_rb.html +69 -0
  400. data/doc/lib/tj3ts_sender_rb.html +69 -0
  401. data/doc/lib/tj3ts_summary_rb.html +69 -0
  402. data/doc/rdoc.css +706 -0
  403. data/examples/tutorial.tjp +2 -1
  404. data/lib/taskjuggler/Attributes.rb +33 -12
  405. data/lib/taskjuggler/DataCache.rb +17 -0
  406. data/lib/taskjuggler/FileList.rb +9 -0
  407. data/lib/taskjuggler/HTMLDocument.rb +19 -21
  408. data/lib/taskjuggler/HTMLElements.rb +46 -0
  409. data/lib/taskjuggler/Journal.rb +95 -46
  410. data/lib/taskjuggler/KeywordDocumentation.rb +248 -185
  411. data/lib/taskjuggler/LogicalExpression.rb +2 -2
  412. data/lib/taskjuggler/LogicalFunction.rb +22 -1
  413. data/lib/taskjuggler/LogicalOperation.rb +15 -5
  414. data/lib/taskjuggler/Project.rb +73 -16
  415. data/lib/taskjuggler/ProjectFileParser.rb +1 -1
  416. data/lib/taskjuggler/ProjectFileScanner.rb +27 -0
  417. data/lib/taskjuggler/PropertySet.rb +22 -45
  418. data/lib/taskjuggler/PropertyTreeNode.rb +99 -128
  419. data/lib/taskjuggler/Query.rb +39 -8
  420. data/lib/taskjuggler/Resource.rb +15 -6
  421. data/lib/taskjuggler/RichText/Document.rb +3 -3
  422. data/lib/taskjuggler/RichText/RTFQuery.rb +4 -4
  423. data/lib/taskjuggler/SheetHandlerBase.rb +14 -12
  424. data/lib/taskjuggler/SheetReceiver.rb +17 -15
  425. data/lib/taskjuggler/SheetSender.rb +16 -10
  426. data/{spec/support → lib/taskjuggler}/StdIoWrapper.rb +17 -0
  427. data/lib/taskjuggler/SyntaxReference.rb +2 -2
  428. data/lib/taskjuggler/TableColumnDefinition.rb +4 -3
  429. data/lib/taskjuggler/Task.rb +7 -2
  430. data/lib/taskjuggler/TaskJuggler.rb +74 -0
  431. data/lib/taskjuggler/TaskScenario.rb +62 -83
  432. data/lib/taskjuggler/TextParser.rb +20 -13
  433. data/lib/taskjuggler/TextParser/Scanner.rb +17 -1
  434. data/lib/taskjuggler/TimeSheetSummary.rb +9 -5
  435. data/lib/taskjuggler/TimeSheets.rb +6 -1
  436. data/lib/taskjuggler/Tj3AppBase.rb +41 -18
  437. data/lib/taskjuggler/Tj3Config.rb +1 -1
  438. data/lib/taskjuggler/TjTime.rb +6 -1
  439. data/lib/taskjuggler/TjpSyntaxRules.rb +408 -227
  440. data/lib/taskjuggler/UTF8String.rb +10 -0
  441. data/lib/taskjuggler/UserManual.rb +89 -81
  442. data/lib/taskjuggler/WorkingHours.rb +2 -3
  443. data/lib/taskjuggler/XMLDocument.rb +13 -4
  444. data/lib/taskjuggler/XMLElement.rb +31 -3
  445. data/lib/taskjuggler/apps/Tj3.rb +53 -21
  446. data/lib/taskjuggler/apps/Tj3Client.rb +19 -17
  447. data/lib/taskjuggler/apps/Tj3Daemon.rb +24 -21
  448. data/lib/taskjuggler/{Tj3Man.rb → apps/Tj3Man.rb} +2 -2
  449. data/lib/taskjuggler/apps/Tj3SsReceiver.rb +14 -11
  450. data/lib/taskjuggler/apps/Tj3SsSender.rb +17 -14
  451. data/lib/taskjuggler/apps/Tj3TsReceiver.rb +14 -11
  452. data/lib/taskjuggler/apps/Tj3TsSender.rb +16 -13
  453. data/lib/taskjuggler/apps/Tj3TsSummary.rb +16 -13
  454. data/lib/taskjuggler/reports/GanttChart.rb +1 -1
  455. data/lib/taskjuggler/reports/GanttRouter.rb +0 -2
  456. data/lib/taskjuggler/reports/GanttTaskBar.rb +2 -1
  457. data/lib/taskjuggler/reports/Navigator.rb +2 -1
  458. data/lib/taskjuggler/reports/NikuReport.rb +11 -7
  459. data/lib/taskjuggler/reports/ReportContext.rb +1 -0
  460. data/lib/taskjuggler/reports/StatusSheetReport.rb +7 -2
  461. data/lib/taskjuggler/reports/TableReport.rb +6 -4
  462. data/lib/taskjuggler/reports/TimeSheetReport.rb +3 -0
  463. data/lib/taskjuggler/reports/TjpExportRE.rb +4 -4
  464. data/lib/tj3man.rb +1 -1
  465. data/manual/Day_To_Day_Juggling +134 -137
  466. data/manual/TaskJuggler_2x_Migration +39 -32
  467. data/manual/The_TaskJuggler_Syntax +6 -0
  468. data/prj_cfg.rb +2 -3
  469. data/spec/StatusSheets_spec.rb +314 -0
  470. data/spec/TimeSheets_spec.rb +237 -16
  471. data/spec/Tj3_spec.rb +1 -1
  472. data/spec/support/DaemonControl.rb +1 -1
  473. data/tasks/changelog.rake +13 -3
  474. data/tasks/manual.rake +1 -1
  475. data/test/TestSuite/CSV-Reports/refs/celltext.csv +1 -1
  476. data/test/TestSuite/CSV-Reports/refs/resourcereport.csv +1 -1
  477. data/test/TestSuite/CSV-Reports/refs/resourcereport_with_tasks.csv +1 -1
  478. data/test/TestSuite/CSV-Reports/refs/sortByTree.csv +1 -1
  479. data/test/TestSuite/CSV-Reports/refs/sortBy_effort.up.csv +1 -1
  480. data/test/TestSuite/CSV-Reports/refs/sortBy_plan.start.down.csv +1 -1
  481. data/test/TestSuite/CSV-Reports/refs/taskreport.csv +1 -1
  482. data/test/TestSuite/CSV-Reports/refs/taskreport_with_resources.csv +1 -1
  483. data/test/TestSuite/CSV-Reports/sortByTree.tjp +3 -1
  484. data/test/TestSuite/CSV-Reports/sortBy_duration.down.tjp +4 -1
  485. data/test/TestSuite/CSV-Reports/sortBy_effort.up.tjp +1 -1
  486. data/test/TestSuite/CSV-Reports/sortBy_plan.start.down.tjp +4 -1
  487. data/test/TestSuite/CSV-Reports/taskreport.tjp +3 -1
  488. data/test/TestSuite/CSV-Reports/taskreport_with_resources.tjp +3 -1
  489. data/test/TestSuite/CSV-Reports/weekly.tjp +1 -0
  490. data/test/TestSuite/Export-Reports/refs/Account.tjp +25 -30
  491. data/test/TestSuite/Export-Reports/refs/AdoptedTasks.tjp +1 -0
  492. data/test/TestSuite/Export-Reports/refs/Allocate-1.tjp +43 -72
  493. data/test/TestSuite/Export-Reports/refs/Alternative.tjp +17 -22
  494. data/test/TestSuite/Export-Reports/refs/AutoID.tjp +11 -10
  495. data/test/TestSuite/Export-Reports/refs/AutoMacros.tjp +1 -0
  496. data/test/TestSuite/Export-Reports/refs/Booking.tjp +16 -23
  497. data/test/TestSuite/Export-Reports/refs/Caption.tjp +13 -16
  498. data/test/TestSuite/Export-Reports/refs/Celltext.tjp +12 -16
  499. data/test/TestSuite/Export-Reports/refs/Comments.tjp +15 -19
  500. data/test/TestSuite/Export-Reports/refs/Complete.tjp +17 -26
  501. data/test/TestSuite/Export-Reports/refs/CompletedWork.tji.tjp +40 -0
  502. data/test/TestSuite/Export-Reports/refs/Currencyformat.tjp +1 -0
  503. data/test/TestSuite/Export-Reports/refs/CustomAttributes.tjp +1 -0
  504. data/test/TestSuite/Export-Reports/refs/Depends1.tjp +5 -4
  505. data/test/TestSuite/Export-Reports/refs/Durations.tjp +18 -27
  506. data/test/TestSuite/Export-Reports/refs/Efficiency.tjp +21 -20
  507. data/test/TestSuite/Export-Reports/refs/EnvVar.tjp +21 -0
  508. data/test/TestSuite/Export-Reports/refs/Flags.tjp +6 -5
  509. data/test/TestSuite/Export-Reports/refs/Gap.tjp +2 -1
  510. data/test/TestSuite/Export-Reports/refs/HtmlTaskReport.tjp +15 -19
  511. data/test/TestSuite/Export-Reports/refs/Include.tjp +21 -20
  512. data/test/TestSuite/Export-Reports/refs/Journal.tjp +6 -5
  513. data/test/TestSuite/Export-Reports/refs/Limits-1.tjp +92 -140
  514. data/test/TestSuite/Export-Reports/refs/LoadUnits.tjp +293 -566
  515. data/test/TestSuite/Export-Reports/refs/LogicalExpression.tjp +1 -0
  516. data/test/TestSuite/Export-Reports/refs/LogicalFunction.tjp +17 -22
  517. data/test/TestSuite/Export-Reports/refs/Macro-1.tjp +32 -53
  518. data/test/TestSuite/Export-Reports/refs/Macro-2.tjp +1 -0
  519. data/test/TestSuite/Export-Reports/refs/Macro-3.tjp +1 -0
  520. data/test/TestSuite/Export-Reports/refs/Manager.tjp +51 -50
  521. data/test/TestSuite/Export-Reports/refs/Mandatory.tjp +22 -31
  522. data/test/TestSuite/Export-Reports/refs/Milestone.tjp +1 -0
  523. data/test/TestSuite/Export-Reports/refs/MinMax.tjp +2 -1
  524. data/test/TestSuite/Export-Reports/refs/Niku.tjp +80 -139
  525. data/test/TestSuite/Export-Reports/refs/Numberformat.tjp +1 -0
  526. data/test/TestSuite/Export-Reports/refs/Period.tjp +1 -0
  527. data/test/TestSuite/Export-Reports/refs/Persistent.tjp +17 -21
  528. data/test/TestSuite/Export-Reports/refs/Precedes1.tjp +1 -0
  529. data/test/TestSuite/Export-Reports/refs/Priority.tjp +121 -107
  530. data/test/TestSuite/Export-Reports/refs/Project.tjp +1 -0
  531. data/test/TestSuite/Export-Reports/refs/ProjectIDs.tjp +1 -0
  532. data/test/TestSuite/Export-Reports/refs/Query.tjp +17 -26
  533. data/test/TestSuite/Export-Reports/refs/Reports.tjp +42 -61
  534. data/test/TestSuite/Export-Reports/refs/Resource.tjp +21 -20
  535. data/test/TestSuite/Export-Reports/refs/ResourcePrefix.tjp +16 -20
  536. data/test/TestSuite/Export-Reports/refs/ResourceRoot.tjp +36 -35
  537. data/test/TestSuite/Export-Reports/refs/Responsible.tjp +17 -21
  538. data/test/TestSuite/Export-Reports/refs/RollupResource.tjp +36 -35
  539. data/test/TestSuite/Export-Reports/refs/Scenario.tjp +3 -1
  540. data/test/TestSuite/Export-Reports/refs/Scheduling.tjp +1 -0
  541. data/test/TestSuite/Export-Reports/refs/Select.tjp +29 -43
  542. data/test/TestSuite/Export-Reports/refs/Shift.tjp +12 -11
  543. data/test/TestSuite/Export-Reports/refs/Simple.tjp +15 -19
  544. data/test/TestSuite/Export-Reports/refs/StatusSheet.tjp +33 -47
  545. data/test/TestSuite/Export-Reports/refs/String.tjp +9 -10
  546. data/test/TestSuite/Export-Reports/refs/Supplement.tjp +7 -8
  547. data/test/TestSuite/Export-Reports/refs/TaskPrefix.tjp +10 -11
  548. data/test/TestSuite/Export-Reports/refs/TaskRoot.tjp +10 -9
  549. data/test/TestSuite/Export-Reports/refs/TimeFrame.tjp +9 -9
  550. data/test/TestSuite/Export-Reports/refs/TimeSheet1.tjp +25 -37
  551. data/test/TestSuite/Export-Reports/refs/Timezone.tjp +1 -0
  552. data/test/TestSuite/Export-Reports/refs/Vacation.tjp +26 -25
  553. data/test/TestSuite/Export-Reports/refs/tutorial.tjp +453 -821
  554. data/test/TestSuite/HTML-Reports/Alerts.html +160 -412
  555. data/test/TestSuite/HTML-Reports/CellText.html +758 -0
  556. data/test/TestSuite/HTML-Reports/ColumnPeriods.html +156 -0
  557. data/test/TestSuite/HTML-Reports/IsOngoing.html +172 -0
  558. data/test/TestSuite/HTML-Reports/LogicalFunctions.html +245 -0
  559. data/test/TestSuite/HTML-Reports/Query.html +31 -0
  560. data/test/TestSuite/HTML-Reports/css/tjmanual.css +0 -20
  561. data/test/TestSuite/HTML-Reports/css/tjreport.css +6 -7
  562. data/test/TestSuite/HTML-Reports/depArrows.html +851 -0
  563. data/test/TestSuite/HTML-Reports/profile.html +37581 -0
  564. data/test/TestSuite/{ReportGenerator/Correct → HTML-Reports/scripts}/scripts/wz_tooltip.js +20 -20
  565. data/test/TestSuite/ReportGenerator/Correct/Journal.tjp +27 -3
  566. data/test/TestSuite/ReportGenerator/Correct/LogicalFunctions3.tjp +20 -0
  567. data/test/TestSuite/ReportGenerator/Correct/LogicalFunctions4.tjp +16 -0
  568. data/test/TestSuite/ReportGenerator/Correct/refs/DependencyList-1.csv +4 -0
  569. data/test/TestSuite/ReportGenerator/Correct/refs/Journal-1.csv +2 -0
  570. data/test/TestSuite/ReportGenerator/Correct/refs/Journal-2.csv +8 -0
  571. data/test/TestSuite/ReportGenerator/Correct/refs/LogicalFunctions3-1.csv +4 -0
  572. data/test/TestSuite/ReportGenerator/Correct/refs/LogicalFunctions4-1.csv +2 -0
  573. data/test/TestSuite/Scheduler/Correct/Allocate.tjp +3 -1
  574. data/test/TestSuite/Scheduler/Correct/Booking.tjp +8 -7
  575. data/test/TestSuite/Scheduler/Correct/Booking2.tjp +16 -9
  576. data/test/TestSuite/Scheduler/Correct/Booking3.tjp +28 -0
  577. data/test/TestSuite/Scheduler/Correct/Container.tjp +2 -2
  578. data/test/TestSuite/Scheduler/Correct/Depends.tjp +3 -3
  579. data/test/TestSuite/Scheduler/Correct/InheritStartEnd.tjp +4 -4
  580. data/test/TestSuite/Scheduler/Correct/Limits.tjp +3 -1
  581. data/test/TestSuite/Scheduler/Correct/Mandatory.tjp +2 -2
  582. data/test/TestSuite/Scheduler/Correct/MultipleMandatories.tjp +2 -2
  583. data/test/TestSuite/Scheduler/Correct/Optimize-1.tjp +2 -2
  584. data/test/TestSuite/Scheduler/Correct/Optimize-2.tjp +3 -3
  585. data/test/TestSuite/Scheduler/Correct/Optimize-3.tjp +3 -3
  586. data/test/TestSuite/Scheduler/Correct/Optimize-4.tjp +3 -3
  587. data/test/TestSuite/Scheduler/Correct/Optimize-5.tjp +7 -7
  588. data/test/TestSuite/Scheduler/Correct/Scenarios.tjp +2 -2
  589. data/test/TestSuite/Scheduler/Correct/Shift.tjp +7 -5
  590. data/test/TestSuite/Scheduler/Correct/Shift2.tjp +1 -1
  591. data/test/TestSuite/Scheduler/Correct/TimeSheet2.tjp +5 -2
  592. data/test/TestSuite/Scheduler/Errors/booking_no_duty.tjp +1 -1
  593. data/test/TestSuite/Scheduler/Errors/ts_alert1_more_details.tjp +4 -2
  594. data/test/TestSuite/Scheduler/Errors/ts_alert2_more_details.tjp +4 -2
  595. data/test/TestSuite/Scheduler/Errors/ts_no_expected_end.tjp +4 -2
  596. data/test/TestSuite/Scheduler/Errors/ts_no_headline1.tjp +4 -2
  597. data/test/TestSuite/Scheduler/Errors/ts_no_rem_or_end.tjp +4 -2
  598. data/test/TestSuite/Scheduler/Errors/ts_no_remaining.tjp +4 -2
  599. data/test/TestSuite/Scheduler/Errors/ts_no_status_work.tjp +4 -2
  600. data/test/TestSuite/Scheduler/Errors/ts_no_work.tjp +4 -2
  601. data/test/TestSuite/Scheduler/Errors/ts_res_new_task.tjp +5 -2
  602. data/test/TestSuite/Scheduler/Errors/ts_work_too_high.tjp +4 -2
  603. data/test/TestSuite/Scheduler/Errors/ts_work_too_low.tjp +4 -2
  604. data/test/TestSuite/StatusSheets/dev2.tji +22 -0
  605. data/test/TestSuite/StatusSheets/run +1 -1
  606. data/test/TestSuite/Syntax/Correct/Booking.tjp +0 -5
  607. data/test/TestSuite/Syntax/Correct/CompletedWork.tji.tjp +38 -0
  608. data/test/TestSuite/Syntax/Correct/EnvVar.tjp +12 -0
  609. data/test/TestSuite/Syntax/Correct/Freeze.tjp +1 -3
  610. data/test/TestSuite/Syntax/Correct/Limits-1.tjp +9 -5
  611. data/test/TestSuite/Syntax/Correct/Priority.tjp +22 -11
  612. data/test/TestSuite/Syntax/Correct/Scenario.tjp +1 -1
  613. data/test/TestSuite/Syntax/Correct/StatusSheet.tjp +2 -0
  614. data/test/TestSuite/Syntax/Correct/TimeSheet1.tjp +4 -4
  615. data/test/TestSuite/Syntax/Correct/css/tjmanual.css +20 -0
  616. data/test/TestSuite/Syntax/Correct/css/tjreport.css +7 -6
  617. data/test/TestSuite/Syntax/Correct/tutorial.tjp +2 -1
  618. data/test/TestSuite/Syntax/Errors/no_own_resource_booking.tjp +16 -0
  619. data/test/TestSuite/Syntax/Errors/no_own_task_booking.tjp +16 -0
  620. data/test/TestSuite/Syntax/Errors/resourceroot_leaf.tjp +10 -0
  621. data/test/TestSuite/Syntax/Errors/runaway_token.tjp +8 -0
  622. data/test/TestSuite/Syntax/Errors/sorting_bsi.tjp +11 -0
  623. data/test/TestSuite/Syntax/Errors/ss_no_tracking_scenario.tjp +14 -0
  624. data/test/TestSuite/Syntax/Errors/taskroot_leaf.tjp +8 -0
  625. data/test/TestSuite/Syntax/Errors/ts_bad_priority.tjp +4 -2
  626. data/test/TestSuite/Syntax/Errors/ts_default_details.tjp +4 -2
  627. data/test/TestSuite/Syntax/Errors/ts_default_summary.tjp +4 -2
  628. data/test/TestSuite/Syntax/Errors/ts_duplicate_task.tjp +4 -2
  629. data/test/TestSuite/Syntax/Errors/ts_end_too_early.tjp +4 -2
  630. data/test/TestSuite/Syntax/Errors/ts_headline_too_long.tjp +4 -2
  631. data/test/TestSuite/Syntax/Errors/ts_no_headline2.tjp +4 -2
  632. data/test/TestSuite/Syntax/Errors/ts_no_tracking_scenario.tjp +14 -0
  633. data/test/TestSuite/Syntax/Errors/ts_summary_too_long.tjp +4 -2
  634. data/test/TestSuite/Syntax/Errors/unknown_env_var.tjp +7 -0
  635. data/test/TestSuite/TimeSheets/resrep.tji +7 -0
  636. data/test/TestSuite/TimeSheets/ts.tji +351 -0
  637. data/test/TestSuite/TimeSheets/tsdef.tji +2 -0
  638. data/test/test_Export-Reports.rb +3 -0
  639. data/test/test_Journal.rb +4 -4
  640. data/test/test_PropertySet.rb +5 -5
  641. data/test/test_Syntax.rb +3 -0
  642. data/test/test_WorkingHours.rb +11 -18
  643. metadata +1012 -649
  644. data/lib/exchangebug.rb +0 -42
  645. data/lib/ruby-signal-bug.rb +0 -55
  646. data/spec/tj3client.log +0 -23
  647. data/test/TestSuite/CSV-Reports/alert.tjp +0 -9
  648. data/test/TestSuite/CSV-Reports/refs/alert.csv +0 -15
  649. data/test/TestSuite/Export-Reports/refs/CriticalPath.tjp +0 -41
  650. data/test/TestSuite/Export-Reports/refs/DST.tjp +0 -89
  651. data/test/TestSuite/Export-Reports/refs/ReleasePlan.tjp +0 -79
  652. data/test/TestSuite/HTML-Reports/TimeSheet.html +0 -79
  653. data/test/TestSuite/HTML-Reports/reference.html +0 -51
  654. data/test/TestSuite/ReportGenerator/Correct/Alerts-1.csv +0 -1
  655. data/test/TestSuite/ReportGenerator/Correct/Alerts-1.html +0 -78
  656. data/test/TestSuite/ReportGenerator/Correct/Journal-1.csv +0 -6
  657. data/test/TestSuite/ReportGenerator/Correct/LogicalFunctions2.csv +0 -3
  658. data/test/TestSuite/ReportGenerator/Correct/css/tjmanual.css +0 -66
  659. data/test/TestSuite/ReportGenerator/Correct/css/tjreport.css +0 -413
  660. data/test/TestSuite/ReportGenerator/Correct/icons/details.png +0 -0
  661. data/test/TestSuite/ReportGenerator/Correct/icons/flag-green.png +0 -0
  662. data/test/TestSuite/ReportGenerator/Correct/icons/flag-red.png +0 -0
  663. data/test/TestSuite/ReportGenerator/Correct/icons/flag-yellow.png +0 -0
  664. data/test/TestSuite/ReportGenerator/Correct/icons/resource.png +0 -0
  665. data/test/TestSuite/ReportGenerator/Correct/icons/resourcegroup.png +0 -0
  666. data/test/TestSuite/ReportGenerator/Correct/icons/task.png +0 -0
  667. data/test/TestSuite/ReportGenerator/Correct/icons/taskgroup.png +0 -0
  668. data/test/TestSuite/ReportGenerator/Correct/icons/trend-down.png +0 -0
  669. data/test/TestSuite/ReportGenerator/Correct/icons/trend-flat.png +0 -0
  670. data/test/TestSuite/ReportGenerator/Correct/icons/trend-up.png +0 -0
  671. data/test/TestSuite/ReportGenerator/Correct/opennodes-1.csv +0 -2
  672. data/test/TestSuite/ReportGenerator/Correct/opennodes.csv +0 -2
  673. data/test/TestSuite/ReportGenerator/Correct/opennodes.tjp +0 -26
  674. data/test/TestSuite/ReportGenerator/Correct/refs/opennodes-1.csv +0 -2
  675. data/test/TestSuite/Scheduler/Correct/css/tjmanual.css +0 -86
  676. data/test/TestSuite/Scheduler/Correct/css/tjreport.css +0 -413
  677. data/test/TestSuite/Scheduler/Correct/icons/details.png +0 -0
  678. data/test/TestSuite/Scheduler/Correct/icons/flag-green.png +0 -0
  679. data/test/TestSuite/Scheduler/Correct/icons/flag-red.png +0 -0
  680. data/test/TestSuite/Scheduler/Correct/icons/flag-yellow.png +0 -0
  681. data/test/TestSuite/Scheduler/Correct/icons/resource.png +0 -0
  682. data/test/TestSuite/Scheduler/Correct/icons/resourcegroup.png +0 -0
  683. data/test/TestSuite/Scheduler/Correct/icons/task.png +0 -0
  684. data/test/TestSuite/Scheduler/Correct/icons/taskgroup.png +0 -0
  685. data/test/TestSuite/Scheduler/Correct/icons/trend-down.png +0 -0
  686. data/test/TestSuite/Scheduler/Correct/icons/trend-flat.png +0 -0
  687. data/test/TestSuite/Scheduler/Correct/icons/trend-up.png +0 -0
  688. data/test/TestSuite/Scheduler/Correct/scripts/wz_tooltip.js +0 -1301
  689. data/test/TestSuite/StatusSheetTemplates/project.tji +0 -35
  690. data/test/TestSuite/StatusSheetTemplates/project.tjp +0 -56
  691. data/test/TestSuite/StatusSheets/TimeSheets/2002-03-01/resource1_2002-03-01.tji +0 -0
  692. data/test/TestSuite/Syntax/Correct/CriticalPath.tjp +0 -33
  693. data/test/TestSuite/Syntax/Correct/DST.tjp +0 -11
  694. data/test/TestSuite/Syntax/Correct/ReleasePlan.tjp +0 -32
  695. data/test/TestSuite/Syntax/Correct/niku.xml +0 -30
  696. data/test/TestSuite/Syntax/Errors/sorting_wbs.tjp +0 -11
  697. data/test/TestSuite/TimeSheets/uu.txt +0 -29
@@ -0,0 +1,1341 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
3
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5
+ <head>
6
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
7
+
8
+ <title>Class: TaskJuggler::TernarySearchTree</title>
9
+
10
+ <link rel="stylesheet" href="../rdoc.css" type="text/css" media="screen" />
11
+
12
+ <script src="../js/jquery.js" type="text/javascript"
13
+ charset="utf-8"></script>
14
+ <script src="../js/thickbox-compressed.js" type="text/javascript"
15
+ charset="utf-8"></script>
16
+ <script src="../js/quicksearch.js" type="text/javascript"
17
+ charset="utf-8"></script>
18
+ <script src="../js/darkfish.js" type="text/javascript"
19
+ charset="utf-8"></script>
20
+
21
+ </head>
22
+ <body class="class">
23
+
24
+ <div id="metadata">
25
+ <div id="home-metadata">
26
+ <div id="home-section" class="section">
27
+ <h3 class="section-header">
28
+ <a href="../index.html">Home</a>
29
+ <a href="../index.html#classes">Classes</a>
30
+ <a href="../index.html#methods">Methods</a>
31
+ </h3>
32
+ </div>
33
+ </div>
34
+
35
+ <div id="file-metadata">
36
+ <div id="file-list-section" class="section">
37
+ <h3 class="section-header">In Files</h3>
38
+ <div class="section-body">
39
+ <ul>
40
+
41
+ <li><a href="../lib/taskjuggler/TernarySearchTree_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
42
+ class="thickbox" title="lib/taskjuggler/TernarySearchTree.rb">lib/taskjuggler/TernarySearchTree.rb</a></li>
43
+
44
+ </ul>
45
+ </div>
46
+ </div>
47
+
48
+
49
+ </div>
50
+
51
+ <div id="class-metadata">
52
+
53
+ <!-- Parent Class -->
54
+
55
+ <div id="parent-class-section" class="section">
56
+ <h3 class="section-header">Parent</h3>
57
+
58
+ <p class="link"><a href="../Object.html">Object</a></p>
59
+
60
+ </div>
61
+
62
+
63
+ <!-- Namespace Contents -->
64
+
65
+
66
+ <!-- Method Quickref -->
67
+
68
+ <div id="method-list-section" class="section">
69
+ <h3 class="section-header">Methods</h3>
70
+ <ul class="link-list">
71
+
72
+ <li><a href="#method-c-new">::new</a></li>
73
+
74
+ <li><a href="#method-i-%3C%3C">#<<</a></li>
75
+
76
+ <li><a href="#method-i-%5B%5D">#[]</a></li>
77
+
78
+ <li><a href="#method-i-balance%21">#balance!</a></li>
79
+
80
+ <li><a href="#method-i-balanced">#balanced</a></li>
81
+
82
+ <li><a href="#method-i-clear">#clear</a></li>
83
+
84
+ <li><a href="#method-i-collect">#collect</a></li>
85
+
86
+ <li><a href="#method-i-find">#find</a></li>
87
+
88
+ <li><a href="#method-i-insert">#insert</a></li>
89
+
90
+ <li><a href="#method-i-insertList">#insertList</a></li>
91
+
92
+ <li><a href="#method-i-inspect">#inspect</a></li>
93
+
94
+ <li><a href="#method-i-length">#length</a></li>
95
+
96
+ <li><a href="#method-i-maxDepth">#maxDepth</a></li>
97
+
98
+ <li><a href="#method-i-sortForBalancedTree">#sortForBalancedTree</a></li>
99
+
100
+ <li><a href="#method-i-split">#split</a></li>
101
+
102
+ <li><a href="#method-i-to_a">#to_a</a></li>
103
+
104
+ </ul>
105
+ </div>
106
+
107
+
108
+ <!-- Included Modules -->
109
+
110
+ </div>
111
+
112
+ <div id="project-metadata">
113
+
114
+
115
+ <div id="fileindex-section" class="section project-section">
116
+ <h3 class="section-header">Files</h3>
117
+ <ul>
118
+
119
+ <li class="file"><a href="../CHANGELOG.html">CHANGELOG</a></li>
120
+
121
+ <li class="file"><a href="../COPYING.html">COPYING</a></li>
122
+
123
+ <li class="file"><a href="../README_rdoc.html">README.rdoc</a></li>
124
+
125
+ </ul>
126
+ </div>
127
+
128
+
129
+ <div id="classindex-section" class="section project-section">
130
+ <h3 class="section-header">Class Index
131
+ <span class="search-toggle"><img src="../images/find.png"
132
+ height="16" width="16" alt="[+]"
133
+ title="show/hide quicksearch" /></span></h3>
134
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
135
+ <fieldset>
136
+ <legend>Quicksearch</legend>
137
+ <input type="text" name="quicksearch" value=""
138
+ class="quicksearch-field" />
139
+ </fieldset>
140
+ </form>
141
+
142
+ <ul class="link-list">
143
+
144
+ <li><a href="../TaskJuggler.html">TaskJuggler</a></li>
145
+
146
+ <li><a href="../TaskJuggler/Account.html">TaskJuggler::Account</a></li>
147
+
148
+ <li><a href="../TaskJuggler/AccountAttribute.html">TaskJuggler::AccountAttribute</a></li>
149
+
150
+ <li><a href="../TaskJuggler/AccountScenario.html">TaskJuggler::AccountScenario</a></li>
151
+
152
+ <li><a href="../TaskJuggler/Allocation.html">TaskJuggler::Allocation</a></li>
153
+
154
+ <li><a href="../TaskJuggler/AllocationAttribute.html">TaskJuggler::AllocationAttribute</a></li>
155
+
156
+ <li><a href="../TaskJuggler/AttributeBase.html">TaskJuggler::AttributeBase</a></li>
157
+
158
+ <li><a href="../TaskJuggler/AttributeDefinition.html">TaskJuggler::AttributeDefinition</a></li>
159
+
160
+ <li><a href="../TaskJuggler/AttributeOverwrite.html">TaskJuggler::AttributeOverwrite</a></li>
161
+
162
+ <li><a href="../TaskJuggler/BatchProcessor.html">TaskJuggler::BatchProcessor</a></li>
163
+
164
+ <li><a href="../TaskJuggler/Booking.html">TaskJuggler::Booking</a></li>
165
+
166
+ <li><a href="../TaskJuggler/BookingListAttribute.html">TaskJuggler::BookingListAttribute</a></li>
167
+
168
+ <li><a href="../TaskJuggler/BooleanAttribute.html">TaskJuggler::BooleanAttribute</a></li>
169
+
170
+ <li><a href="../TaskJuggler/CSVFile.html">TaskJuggler::CSVFile</a></li>
171
+
172
+ <li><a href="../TaskJuggler/CellSettingPattern.html">TaskJuggler::CellSettingPattern</a></li>
173
+
174
+ <li><a href="../TaskJuggler/CellSettingPatternList.html">TaskJuggler::CellSettingPatternList</a></li>
175
+
176
+ <li><a href="../TaskJuggler/Charge.html">TaskJuggler::Charge</a></li>
177
+
178
+ <li><a href="../TaskJuggler/ChargeListAttribute.html">TaskJuggler::ChargeListAttribute</a></li>
179
+
180
+ <li><a href="../TaskJuggler/ChargeSet.html">TaskJuggler::ChargeSet</a></li>
181
+
182
+ <li><a href="../TaskJuggler/ChargeSetListAttribute.html">TaskJuggler::ChargeSetListAttribute</a></li>
183
+
184
+ <li><a href="../TaskJuggler/CollisionDetector.html">TaskJuggler::CollisionDetector</a></li>
185
+
186
+ <li><a href="../TaskJuggler/ColumnListAttribute.html">TaskJuggler::ColumnListAttribute</a></li>
187
+
188
+ <li><a href="../TaskJuggler/ColumnTable.html">TaskJuggler::ColumnTable</a></li>
189
+
190
+ <li><a href="../TaskJuggler/Daemon.html">TaskJuggler::Daemon</a></li>
191
+
192
+ <li><a href="../TaskJuggler/DataCache.html">TaskJuggler::DataCache</a></li>
193
+
194
+ <li><a href="../TaskJuggler/DataCacheEntry.html">TaskJuggler::DataCacheEntry</a></li>
195
+
196
+ <li><a href="../TaskJuggler/DateAttribute.html">TaskJuggler::DateAttribute</a></li>
197
+
198
+ <li><a href="../TaskJuggler/DefinitionListAttribute.html">TaskJuggler::DefinitionListAttribute</a></li>
199
+
200
+ <li><a href="../TaskJuggler/DependencyListAttribute.html">TaskJuggler::DependencyListAttribute</a></li>
201
+
202
+ <li><a href="../TaskJuggler/DurationAttribute.html">TaskJuggler::DurationAttribute</a></li>
203
+
204
+ <li><a href="../TaskJuggler/FileList.html">TaskJuggler::FileList</a></li>
205
+
206
+ <li><a href="../TaskJuggler/FileRecord.html">TaskJuggler::FileRecord</a></li>
207
+
208
+ <li><a href="../TaskJuggler/FixnumAttribute.html">TaskJuggler::FixnumAttribute</a></li>
209
+
210
+ <li><a href="../TaskJuggler/FlagListAttribute.html">TaskJuggler::FlagListAttribute</a></li>
211
+
212
+ <li><a href="../TaskJuggler/FloatAttribute.html">TaskJuggler::FloatAttribute</a></li>
213
+
214
+ <li><a href="../TaskJuggler/FormatListAttribute.html">TaskJuggler::FormatListAttribute</a></li>
215
+
216
+ <li><a href="../TaskJuggler/GanttChart.html">TaskJuggler::GanttChart</a></li>
217
+
218
+ <li><a href="../TaskJuggler/GanttContainer.html">TaskJuggler::GanttContainer</a></li>
219
+
220
+ <li><a href="../TaskJuggler/GanttHeader.html">TaskJuggler::GanttHeader</a></li>
221
+
222
+ <li><a href="../TaskJuggler/GanttHeaderScaleItem.html">TaskJuggler::GanttHeaderScaleItem</a></li>
223
+
224
+ <li><a href="../TaskJuggler/GanttLine.html">TaskJuggler::GanttLine</a></li>
225
+
226
+ <li><a href="../TaskJuggler/GanttLoadStack.html">TaskJuggler::GanttLoadStack</a></li>
227
+
228
+ <li><a href="../TaskJuggler/GanttMilestone.html">TaskJuggler::GanttMilestone</a></li>
229
+
230
+ <li><a href="../TaskJuggler/GanttRouter.html">TaskJuggler::GanttRouter</a></li>
231
+
232
+ <li><a href="../TaskJuggler/GanttTaskBar.html">TaskJuggler::GanttTaskBar</a></li>
233
+
234
+ <li><a href="../TaskJuggler/HTMLDocument.html">TaskJuggler::HTMLDocument</a></li>
235
+
236
+ <li><a href="../TaskJuggler/HTMLElements.html">TaskJuggler::HTMLElements</a></li>
237
+
238
+ <li><a href="../TaskJuggler/HTMLGraphics.html">TaskJuggler::HTMLGraphics</a></li>
239
+
240
+ <li><a href="../TaskJuggler/Interval.html">TaskJuggler::Interval</a></li>
241
+
242
+ <li><a href="../TaskJuggler/IntervalList.html">TaskJuggler::IntervalList</a></li>
243
+
244
+ <li><a href="../TaskJuggler/IntervalListAttribute.html">TaskJuggler::IntervalListAttribute</a></li>
245
+
246
+ <li><a href="../TaskJuggler/JobInfo.html">TaskJuggler::JobInfo</a></li>
247
+
248
+ <li><a href="../TaskJuggler/Journal.html">TaskJuggler::Journal</a></li>
249
+
250
+ <li><a href="../TaskJuggler/JournalEntry.html">TaskJuggler::JournalEntry</a></li>
251
+
252
+ <li><a href="../TaskJuggler/JournalEntryList.html">TaskJuggler::JournalEntryList</a></li>
253
+
254
+ <li><a href="../TaskJuggler/KeywordArray.html">TaskJuggler::KeywordArray</a></li>
255
+
256
+ <li><a href="../TaskJuggler/KeywordDocumentation.html">TaskJuggler::KeywordDocumentation</a></li>
257
+
258
+ <li><a href="../TaskJuggler/Limits.html">TaskJuggler::Limits</a></li>
259
+
260
+ <li><a href="../TaskJuggler/Limits/Limit.html">TaskJuggler::Limits::Limit</a></li>
261
+
262
+ <li><a href="../TaskJuggler/LimitsAttribute.html">TaskJuggler::LimitsAttribute</a></li>
263
+
264
+ <li><a href="../TaskJuggler/ListAttributeBase.html">TaskJuggler::ListAttributeBase</a></li>
265
+
266
+ <li><a href="../TaskJuggler/Log.html">TaskJuggler::Log</a></li>
267
+
268
+ <li><a href="../TaskJuggler/LogFile.html">TaskJuggler::LogFile</a></li>
269
+
270
+ <li><a href="../TaskJuggler/LogicalAttribute.html">TaskJuggler::LogicalAttribute</a></li>
271
+
272
+ <li><a href="../TaskJuggler/LogicalExpression.html">TaskJuggler::LogicalExpression</a></li>
273
+
274
+ <li><a href="../TaskJuggler/LogicalExpressionAttribute.html">TaskJuggler::LogicalExpressionAttribute</a></li>
275
+
276
+ <li><a href="../TaskJuggler/LogicalExpressionListAttribute.html">TaskJuggler::LogicalExpressionListAttribute</a></li>
277
+
278
+ <li><a href="../TaskJuggler/LogicalFlag.html">TaskJuggler::LogicalFlag</a></li>
279
+
280
+ <li><a href="../TaskJuggler/LogicalFunction.html">TaskJuggler::LogicalFunction</a></li>
281
+
282
+ <li><a href="../TaskJuggler/LogicalOperation.html">TaskJuggler::LogicalOperation</a></li>
283
+
284
+ <li><a href="../TaskJuggler/ManagerResponsibilities.html">TaskJuggler::ManagerResponsibilities</a></li>
285
+
286
+ <li><a href="../TaskJuggler/ManagerStatusRecord.html">TaskJuggler::ManagerStatusRecord</a></li>
287
+
288
+ <li><a href="../TaskJuggler/Message.html">TaskJuggler::Message</a></li>
289
+
290
+ <li><a href="../TaskJuggler/MessageHandler.html">TaskJuggler::MessageHandler</a></li>
291
+
292
+ <li><a href="../TaskJuggler/Navigator.html">TaskJuggler::Navigator</a></li>
293
+
294
+ <li><a href="../TaskJuggler/NavigatorElement.html">TaskJuggler::NavigatorElement</a></li>
295
+
296
+ <li><a href="../TaskJuggler/NikuProject.html">TaskJuggler::NikuProject</a></li>
297
+
298
+ <li><a href="../TaskJuggler/NikuReport.html">TaskJuggler::NikuReport</a></li>
299
+
300
+ <li><a href="../TaskJuggler/NikuResource.html">TaskJuggler::NikuResource</a></li>
301
+
302
+ <li><a href="../TaskJuggler/NodeListAttribute.html">TaskJuggler::NodeListAttribute</a></li>
303
+
304
+ <li><a href="../TaskJuggler/PlaceHolderCell.html">TaskJuggler::PlaceHolderCell</a></li>
305
+
306
+ <li><a href="../TaskJuggler/ProcessIntercom.html">TaskJuggler::ProcessIntercom</a></li>
307
+
308
+ <li><a href="../TaskJuggler/ProcessIntercomIface.html">TaskJuggler::ProcessIntercomIface</a></li>
309
+
310
+ <li><a href="../TaskJuggler/Project.html">TaskJuggler::Project</a></li>
311
+
312
+ <li><a href="../TaskJuggler/ProjectBroker.html">TaskJuggler::ProjectBroker</a></li>
313
+
314
+ <li><a href="../TaskJuggler/ProjectBrokerIface.html">TaskJuggler::ProjectBrokerIface</a></li>
315
+
316
+ <li><a href="../TaskJuggler/ProjectFileParser.html">TaskJuggler::ProjectFileParser</a></li>
317
+
318
+ <li><a href="../TaskJuggler/ProjectFileScanner.html">TaskJuggler::ProjectFileScanner</a></li>
319
+
320
+ <li><a href="../TaskJuggler/ProjectRecord.html">TaskJuggler::ProjectRecord</a></li>
321
+
322
+ <li><a href="../TaskJuggler/ProjectServer.html">TaskJuggler::ProjectServer</a></li>
323
+
324
+ <li><a href="../TaskJuggler/ProjectServerIface.html">TaskJuggler::ProjectServerIface</a></li>
325
+
326
+ <li><a href="../TaskJuggler/PropertyAttribute.html">TaskJuggler::PropertyAttribute</a></li>
327
+
328
+ <li><a href="../TaskJuggler/PropertyList.html">TaskJuggler::PropertyList</a></li>
329
+
330
+ <li><a href="../TaskJuggler/PropertySet.html">TaskJuggler::PropertySet</a></li>
331
+
332
+ <li><a href="../TaskJuggler/PropertyTreeNode.html">TaskJuggler::PropertyTreeNode</a></li>
333
+
334
+ <li><a href="../TaskJuggler/Query.html">TaskJuggler::Query</a></li>
335
+
336
+ <li><a href="../TaskJuggler/RTFHandlers.html">TaskJuggler::RTFHandlers</a></li>
337
+
338
+ <li><a href="../TaskJuggler/RTFNavigator.html">TaskJuggler::RTFNavigator</a></li>
339
+
340
+ <li><a href="../TaskJuggler/RTFQuery.html">TaskJuggler::RTFQuery</a></li>
341
+
342
+ <li><a href="../TaskJuggler/RTFReport.html">TaskJuggler::RTFReport</a></li>
343
+
344
+ <li><a href="../TaskJuggler/RTFReportLink.html">TaskJuggler::RTFReportLink</a></li>
345
+
346
+ <li><a href="../TaskJuggler/RTFWithQuerySupport.html">TaskJuggler::RTFWithQuerySupport</a></li>
347
+
348
+ <li><a href="../TaskJuggler/RealFormat.html">TaskJuggler::RealFormat</a></li>
349
+
350
+ <li><a href="../TaskJuggler/RealFormatAttribute.html">TaskJuggler::RealFormatAttribute</a></li>
351
+
352
+ <li><a href="../TaskJuggler/ReferenceAttribute.html">TaskJuggler::ReferenceAttribute</a></li>
353
+
354
+ <li><a href="../TaskJuggler/Report.html">TaskJuggler::Report</a></li>
355
+
356
+ <li><a href="../TaskJuggler/ReportBase.html">TaskJuggler::ReportBase</a></li>
357
+
358
+ <li><a href="../TaskJuggler/ReportContext.html">TaskJuggler::ReportContext</a></li>
359
+
360
+ <li><a href="../TaskJuggler/ReportServer.html">TaskJuggler::ReportServer</a></li>
361
+
362
+ <li><a href="../TaskJuggler/ReportServerIface.html">TaskJuggler::ReportServerIface</a></li>
363
+
364
+ <li><a href="../TaskJuggler/ReportServerRecord.html">TaskJuggler::ReportServerRecord</a></li>
365
+
366
+ <li><a href="../TaskJuggler/ReportServlet.html">TaskJuggler::ReportServlet</a></li>
367
+
368
+ <li><a href="../TaskJuggler/ReportTable.html">TaskJuggler::ReportTable</a></li>
369
+
370
+ <li><a href="../TaskJuggler/ReportTableCell.html">TaskJuggler::ReportTableCell</a></li>
371
+
372
+ <li><a href="../TaskJuggler/ReportTableColumn.html">TaskJuggler::ReportTableColumn</a></li>
373
+
374
+ <li><a href="../TaskJuggler/ReportTableLegend.html">TaskJuggler::ReportTableLegend</a></li>
375
+
376
+ <li><a href="../TaskJuggler/ReportTableLine.html">TaskJuggler::ReportTableLine</a></li>
377
+
378
+ <li><a href="../TaskJuggler/Resource.html">TaskJuggler::Resource</a></li>
379
+
380
+ <li><a href="../TaskJuggler/ResourceListAttribute.html">TaskJuggler::ResourceListAttribute</a></li>
381
+
382
+ <li><a href="../TaskJuggler/ResourceListRE.html">TaskJuggler::ResourceListRE</a></li>
383
+
384
+ <li><a href="../TaskJuggler/ResourceScenario.html">TaskJuggler::ResourceScenario</a></li>
385
+
386
+ <li><a href="../TaskJuggler/RichText.html">TaskJuggler::RichText</a></li>
387
+
388
+ <li><a href="../TaskJuggler/RichTextAttribute.html">TaskJuggler::RichTextAttribute</a></li>
389
+
390
+ <li><a href="../TaskJuggler/RichTextDocument.html">TaskJuggler::RichTextDocument</a></li>
391
+
392
+ <li><a href="../TaskJuggler/RichTextElement.html">TaskJuggler::RichTextElement</a></li>
393
+
394
+ <li><a href="../TaskJuggler/RichTextFunctionExample.html">TaskJuggler::RichTextFunctionExample</a></li>
395
+
396
+ <li><a href="../TaskJuggler/RichTextFunctionHandler.html">TaskJuggler::RichTextFunctionHandler</a></li>
397
+
398
+ <li><a href="../TaskJuggler/RichTextImage.html">TaskJuggler::RichTextImage</a></li>
399
+
400
+ <li><a href="../TaskJuggler/RichTextIntermediate.html">TaskJuggler::RichTextIntermediate</a></li>
401
+
402
+ <li><a href="../TaskJuggler/RichTextParser.html">TaskJuggler::RichTextParser</a></li>
403
+
404
+ <li><a href="../TaskJuggler/RichTextScanner.html">TaskJuggler::RichTextScanner</a></li>
405
+
406
+ <li><a href="../TaskJuggler/RichTextSnip.html">TaskJuggler::RichTextSnip</a></li>
407
+
408
+ <li><a href="../TaskJuggler/RichTextSyntaxRules.html">TaskJuggler::RichTextSyntaxRules</a></li>
409
+
410
+ <li><a href="../TaskJuggler/Scenario.html">TaskJuggler::Scenario</a></li>
411
+
412
+ <li><a href="../TaskJuggler/ScenarioData.html">TaskJuggler::ScenarioData</a></li>
413
+
414
+ <li><a href="../TaskJuggler/ScenarioListAttribute.html">TaskJuggler::ScenarioListAttribute</a></li>
415
+
416
+ <li><a href="../TaskJuggler/Scoreboard.html">TaskJuggler::Scoreboard</a></li>
417
+
418
+ <li><a href="../TaskJuggler/SheetHandlerBase.html">TaskJuggler::SheetHandlerBase</a></li>
419
+
420
+ <li><a href="../TaskJuggler/SheetReceiver.html">TaskJuggler::SheetReceiver</a></li>
421
+
422
+ <li><a href="../TaskJuggler/SheetSender.html">TaskJuggler::SheetSender</a></li>
423
+
424
+ <li><a href="../TaskJuggler/Shift.html">TaskJuggler::Shift</a></li>
425
+
426
+ <li><a href="../TaskJuggler/ShiftAssignment.html">TaskJuggler::ShiftAssignment</a></li>
427
+
428
+ <li><a href="../TaskJuggler/ShiftAssignments.html">TaskJuggler::ShiftAssignments</a></li>
429
+
430
+ <li><a href="../TaskJuggler/ShiftAssignmentsAttribute.html">TaskJuggler::ShiftAssignmentsAttribute</a></li>
431
+
432
+ <li><a href="../TaskJuggler/ShiftScenario.html">TaskJuggler::ShiftScenario</a></li>
433
+
434
+ <li><a href="../TaskJuggler/SimpleQueryExpander.html">TaskJuggler::SimpleQueryExpander</a></li>
435
+
436
+ <li><a href="../TaskJuggler/SortListAttribute.html">TaskJuggler::SortListAttribute</a></li>
437
+
438
+ <li><a href="../TaskJuggler/StatusSheetReceiver.html">TaskJuggler::StatusSheetReceiver</a></li>
439
+
440
+ <li><a href="../TaskJuggler/StatusSheetReport.html">TaskJuggler::StatusSheetReport</a></li>
441
+
442
+ <li><a href="../TaskJuggler/StatusSheetSender.html">TaskJuggler::StatusSheetSender</a></li>
443
+
444
+ <li><a href="../TaskJuggler/StdIoWrapper.html">TaskJuggler::StdIoWrapper</a></li>
445
+
446
+ <li><a href="../TaskJuggler/StringAttribute.html">TaskJuggler::StringAttribute</a></li>
447
+
448
+ <li><a href="../TaskJuggler/SymbolAttribute.html">TaskJuggler::SymbolAttribute</a></li>
449
+
450
+ <li><a href="../TaskJuggler/SyntaxReference.html">TaskJuggler::SyntaxReference</a></li>
451
+
452
+ <li><a href="../TaskJuggler/TOCEntry.html">TaskJuggler::TOCEntry</a></li>
453
+
454
+ <li><a href="../TaskJuggler/TSResourceRecord.html">TaskJuggler::TSResourceRecord</a></li>
455
+
456
+ <li><a href="../TaskJuggler/TSTaskRecord.html">TaskJuggler::TSTaskRecord</a></li>
457
+
458
+ <li><a href="../TaskJuggler/TableColumnDefinition.html">TaskJuggler::TableColumnDefinition</a></li>
459
+
460
+ <li><a href="../TaskJuggler/TableOfContents.html">TaskJuggler::TableOfContents</a></li>
461
+
462
+ <li><a href="../TaskJuggler/TableReport.html">TaskJuggler::TableReport</a></li>
463
+
464
+ <li><a href="../TaskJuggler/Task.html">TaskJuggler::Task</a></li>
465
+
466
+ <li><a href="../TaskJuggler/TaskDepListAttribute.html">TaskJuggler::TaskDepListAttribute</a></li>
467
+
468
+ <li><a href="../TaskJuggler/TaskDependency.html">TaskJuggler::TaskDependency</a></li>
469
+
470
+ <li><a href="../TaskJuggler/TaskListAttribute.html">TaskJuggler::TaskListAttribute</a></li>
471
+
472
+ <li><a href="../TaskJuggler/TaskListRE.html">TaskJuggler::TaskListRE</a></li>
473
+
474
+ <li><a href="../TaskJuggler/TaskScenario.html">TaskJuggler::TaskScenario</a></li>
475
+
476
+ <li><a href="../TaskJuggler/TernarySearchTree.html">TaskJuggler::TernarySearchTree</a></li>
477
+
478
+ <li><a href="../TaskJuggler/TextFormatter.html">TaskJuggler::TextFormatter</a></li>
479
+
480
+ <li><a href="../TaskJuggler/TextParser.html">TaskJuggler::TextParser</a></li>
481
+
482
+ <li><a href="../TaskJuggler/TextParser/Macro.html">TaskJuggler::TextParser::Macro</a></li>
483
+
484
+ <li><a href="../TaskJuggler/TextParser/MacroTable.html">TaskJuggler::TextParser::MacroTable</a></li>
485
+
486
+ <li><a href="../TaskJuggler/TextParser/Pattern.html">TaskJuggler::TextParser::Pattern</a></li>
487
+
488
+ <li><a href="../TaskJuggler/TextParser/Rule.html">TaskJuggler::TextParser::Rule</a></li>
489
+
490
+ <li><a href="../TaskJuggler/TextParser/Scanner.html">TaskJuggler::TextParser::Scanner</a></li>
491
+
492
+ <li><a href="../TaskJuggler/TextParser/Scanner/BufferStreamHandle.html">TaskJuggler::TextParser::Scanner::BufferStreamHandle</a></li>
493
+
494
+ <li><a href="../TaskJuggler/TextParser/Scanner/FileStreamHandle.html">TaskJuggler::TextParser::Scanner::FileStreamHandle</a></li>
495
+
496
+ <li><a href="../TaskJuggler/TextParser/Scanner/MacroStackEntry.html">TaskJuggler::TextParser::Scanner::MacroStackEntry</a></li>
497
+
498
+ <li><a href="../TaskJuggler/TextParser/Scanner/StreamHandle.html">TaskJuggler::TextParser::Scanner::StreamHandle</a></li>
499
+
500
+ <li><a href="../TaskJuggler/TextParser/SourceFileInfo.html">TaskJuggler::TextParser::SourceFileInfo</a></li>
501
+
502
+ <li><a href="../TaskJuggler/TextParser/StackElement.html">TaskJuggler::TextParser::StackElement</a></li>
503
+
504
+ <li><a href="../TaskJuggler/TextParser/State.html">TaskJuggler::TextParser::State</a></li>
505
+
506
+ <li><a href="../TaskJuggler/TextParser/StateTransition.html">TaskJuggler::TextParser::StateTransition</a></li>
507
+
508
+ <li><a href="../TaskJuggler/TextParser/TextParserResultArray.html">TaskJuggler::TextParser::TextParserResultArray</a></li>
509
+
510
+ <li><a href="../TaskJuggler/TextParser/TokenDoc.html">TaskJuggler::TextParser::TokenDoc</a></li>
511
+
512
+ <li><a href="../TaskJuggler/TextReport.html">TaskJuggler::TextReport</a></li>
513
+
514
+ <li><a href="../TaskJuggler/TimeSheet.html">TaskJuggler::TimeSheet</a></li>
515
+
516
+ <li><a href="../TaskJuggler/TimeSheetReceiver.html">TaskJuggler::TimeSheetReceiver</a></li>
517
+
518
+ <li><a href="../TaskJuggler/TimeSheetRecord.html">TaskJuggler::TimeSheetRecord</a></li>
519
+
520
+ <li><a href="../TaskJuggler/TimeSheetReport.html">TaskJuggler::TimeSheetReport</a></li>
521
+
522
+ <li><a href="../TaskJuggler/TimeSheetSender.html">TaskJuggler::TimeSheetSender</a></li>
523
+
524
+ <li><a href="../TaskJuggler/TimeSheetSummary.html">TaskJuggler::TimeSheetSummary</a></li>
525
+
526
+ <li><a href="../TaskJuggler/TimeSheets.html">TaskJuggler::TimeSheets</a></li>
527
+
528
+ <li><a href="../TaskJuggler/Tj3.html">TaskJuggler::Tj3</a></li>
529
+
530
+ <li><a href="../TaskJuggler/Tj3AppBase.html">TaskJuggler::Tj3AppBase</a></li>
531
+
532
+ <li><a href="../TaskJuggler/Tj3Client.html">TaskJuggler::Tj3Client</a></li>
533
+
534
+ <li><a href="../TaskJuggler/Tj3Daemon.html">TaskJuggler::Tj3Daemon</a></li>
535
+
536
+ <li><a href="../TaskJuggler/Tj3Man.html">TaskJuggler::Tj3Man</a></li>
537
+
538
+ <li><a href="../TaskJuggler/Tj3SheetAppBase.html">TaskJuggler::Tj3SheetAppBase</a></li>
539
+
540
+ <li><a href="../TaskJuggler/Tj3SsReceiver.html">TaskJuggler::Tj3SsReceiver</a></li>
541
+
542
+ <li><a href="../TaskJuggler/Tj3SsSender.html">TaskJuggler::Tj3SsSender</a></li>
543
+
544
+ <li><a href="../TaskJuggler/Tj3TsReceiver.html">TaskJuggler::Tj3TsReceiver</a></li>
545
+
546
+ <li><a href="../TaskJuggler/Tj3TsSender.html">TaskJuggler::Tj3TsSender</a></li>
547
+
548
+ <li><a href="../TaskJuggler/Tj3TsSummary.html">TaskJuggler::Tj3TsSummary</a></li>
549
+
550
+ <li><a href="../TaskJuggler/TjException.html">TaskJuggler::TjException</a></li>
551
+
552
+ <li><a href="../TaskJuggler/TjRuntimeError.html">TaskJuggler::TjRuntimeError</a></li>
553
+
554
+ <li><a href="../TaskJuggler/TjTime.html">TaskJuggler::TjTime</a></li>
555
+
556
+ <li><a href="../TaskJuggler/TjpExample.html">TaskJuggler::TjpExample</a></li>
557
+
558
+ <li><a href="../TaskJuggler/TjpExportRE.html">TaskJuggler::TjpExportRE</a></li>
559
+
560
+ <li><a href="../TaskJuggler/TjpSyntaxRules.html">TaskJuggler::TjpSyntaxRules</a></li>
561
+
562
+ <li><a href="../TaskJuggler/URLParameter.html">TaskJuggler::URLParameter</a></li>
563
+
564
+ <li><a href="../TaskJuggler/UserManual.html">TaskJuggler::UserManual</a></li>
565
+
566
+ <li><a href="../TaskJuggler/VimSyntax.html">TaskJuggler::VimSyntax</a></li>
567
+
568
+ <li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
569
+
570
+ <li><a href="../TaskJuggler/WelcomePage.html">TaskJuggler::WelcomePage</a></li>
571
+
572
+ <li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
573
+
574
+ <li><a href="../TaskJuggler/WorkingHoursAttribute.html">TaskJuggler::WorkingHoursAttribute</a></li>
575
+
576
+ <li><a href="../TaskJuggler/XMLBlob.html">TaskJuggler::XMLBlob</a></li>
577
+
578
+ <li><a href="../TaskJuggler/XMLComment.html">TaskJuggler::XMLComment</a></li>
579
+
580
+ <li><a href="../TaskJuggler/XMLDocument.html">TaskJuggler::XMLDocument</a></li>
581
+
582
+ <li><a href="../TaskJuggler/XMLElement.html">TaskJuggler::XMLElement</a></li>
583
+
584
+ <li><a href="../TaskJuggler/XMLNamedText.html">TaskJuggler::XMLNamedText</a></li>
585
+
586
+ <li><a href="../TaskJuggler/XMLText.html">TaskJuggler::XMLText</a></li>
587
+
588
+ <li><a href="../Diff.html">Diff</a></li>
589
+
590
+ <li><a href="../Diff/Hunk.html">Diff::Hunk</a></li>
591
+
592
+ <li><a href="../AppConfig.html">AppConfig</a></li>
593
+
594
+ <li><a href="../Diffable.html">Diffable</a></li>
595
+
596
+ <li><a href="../DiffableString.html">DiffableString</a></li>
597
+
598
+ <li><a href="../Object.html">Object</a></li>
599
+
600
+ <li><a href="../RuntimeConfig.html">RuntimeConfig</a></li>
601
+
602
+ <li><a href="../String.html">String</a></li>
603
+
604
+ </ul>
605
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
606
+ </div>
607
+
608
+
609
+ </div>
610
+ </div>
611
+
612
+ <div id="documentation">
613
+ <h1 class="class">TaskJuggler::TernarySearchTree</h1>
614
+
615
+ <div id="description">
616
+ <p>
617
+ Classical ternary search tree implementation. It can store any list objects
618
+ who&#8217;s elements are comparable. These are usually <a
619
+ href="../String.html">String</a> or Array objects. Common elements (by
620
+ value and index) are only stored once which makes it fairly efficient for
621
+ large lists that have similar start sequences. It also provides a fast find
622
+ method.
623
+ </p>
624
+
625
+ </div>
626
+
627
+ <!-- Constants -->
628
+
629
+
630
+ <!-- Attributes -->
631
+
632
+
633
+ <!-- Methods -->
634
+
635
+ <div id="public-class-method-details" class="method-section section">
636
+ <h3 class="section-header">Public Class Methods</h3>
637
+
638
+
639
+ <div id="new-method" class="method-detail ">
640
+ <a name="method-c-new"></a>
641
+
642
+ <div class="method-heading">
643
+
644
+ <span class="method-name">new</span><span
645
+ class="method-args">(arg = nil)</span>
646
+ <span class="method-click-advice">click to toggle source</span>
647
+
648
+ </div>
649
+
650
+ <div class="method-description">
651
+
652
+ <p>
653
+ Create a new <a href="TernarySearchTree.html">TernarySearchTree</a> object.
654
+ The optional <em>arg</em> can be an element to store in the new tree or a
655
+ list of elements to store.
656
+ </p>
657
+
658
+
659
+
660
+ <div class="method-source-code"
661
+ id="new-source">
662
+ <pre>
663
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TernarySearchTree.rb, line 27</span>
664
+ 27: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">arg</span> = <span class="ruby-keyword kw">nil</span>)
665
+ 28: <span class="ruby-identifier">clear</span>
666
+ 29:
667
+ 30: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">nil?</span>
668
+ 31: <span class="ruby-keyword kw">return</span>
669
+ 32: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Array</span>)
670
+ 33: <span class="ruby-identifier">sortForBalancedTree</span>(<span class="ruby-identifier">arg</span>).<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">elem</span><span class="ruby-operator">|</span> <span class="ruby-identifier">insert</span>(<span class="ruby-identifier">elem</span>) }
671
+ 34: <span class="ruby-keyword kw">else</span>
672
+ 35: <span class="ruby-identifier">insert</span>(<span class="ruby-identifier">arg</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">arg</span>
673
+ 36: <span class="ruby-keyword kw">end</span>
674
+ 37: <span class="ruby-keyword kw">end</span></pre>
675
+ </div>
676
+
677
+ </div>
678
+
679
+
680
+
681
+
682
+ </div>
683
+
684
+
685
+ </div>
686
+
687
+ <div id="public-instance-method-details" class="method-section section">
688
+ <h3 class="section-header">Public Instance Methods</h3>
689
+
690
+
691
+ <div id="--method" class="method-detail method-alias">
692
+ <a name="method-i-%3C%3C"></a>
693
+
694
+ <div class="method-heading">
695
+
696
+ <span class="method-name">&lt;&lt;</span><span
697
+ class="method-args">(str, index = 0)</span>
698
+ <span class="method-click-advice">click to toggle source</span>
699
+
700
+ </div>
701
+
702
+ <div class="method-description">
703
+
704
+
705
+
706
+
707
+
708
+ </div>
709
+
710
+
711
+
712
+
713
+ <div class="aliases">
714
+ Alias for: <a href="TernarySearchTree.html#method-i-insert">insert</a>
715
+ </div>
716
+
717
+ </div>
718
+
719
+
720
+ <div id="--method" class="method-detail method-alias">
721
+ <a name="method-i-%5B%5D"></a>
722
+
723
+ <div class="method-heading">
724
+
725
+ <span class="method-name">[]</span><span
726
+ class="method-args">(str, partialMatch = false, index = 0)</span>
727
+ <span class="method-click-advice">click to toggle source</span>
728
+
729
+ </div>
730
+
731
+ <div class="method-description">
732
+
733
+
734
+
735
+
736
+
737
+ </div>
738
+
739
+
740
+
741
+
742
+ <div class="aliases">
743
+ Alias for: <a href="TernarySearchTree.html#method-i-find">find</a>
744
+ </div>
745
+
746
+ </div>
747
+
748
+
749
+ <div id="balance--method" class="method-detail ">
750
+ <a name="method-i-balance%21"></a>
751
+
752
+ <div class="method-heading">
753
+
754
+ <span class="method-name">balance!</span><span
755
+ class="method-args">()</span>
756
+ <span class="method-click-advice">click to toggle source</span>
757
+
758
+ </div>
759
+
760
+ <div class="method-description">
761
+
762
+ <p>
763
+ Balance the tree for more effective data retrieval.
764
+ </p>
765
+
766
+
767
+
768
+ <div class="method-source-code"
769
+ id="balance--source">
770
+ <pre>
771
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TernarySearchTree.rb, line 144</span>
772
+ 144: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">balance!</span>
773
+ 145: <span class="ruby-identifier">list</span> = <span class="ruby-identifier">sortForBalancedTree</span>(<span class="ruby-identifier">to_a</span>)
774
+ 146: <span class="ruby-identifier">clear</span>
775
+ 147: <span class="ruby-identifier">list</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">x</span><span class="ruby-operator">|</span> <span class="ruby-identifier">insert</span>(<span class="ruby-identifier">x</span>) }
776
+ 148: <span class="ruby-keyword kw">end</span></pre>
777
+ </div>
778
+
779
+ </div>
780
+
781
+
782
+
783
+
784
+ </div>
785
+
786
+
787
+ <div id="balanced-method" class="method-detail ">
788
+ <a name="method-i-balanced"></a>
789
+
790
+ <div class="method-heading">
791
+
792
+ <span class="method-name">balanced</span><span
793
+ class="method-args">()</span>
794
+ <span class="method-click-advice">click to toggle source</span>
795
+
796
+ </div>
797
+
798
+ <div class="method-description">
799
+
800
+ <p>
801
+ Return a balanced version of the tree.
802
+ </p>
803
+
804
+
805
+
806
+ <div class="method-source-code"
807
+ id="balanced-source">
808
+ <pre>
809
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TernarySearchTree.rb, line 151</span>
810
+ 151: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">balanced</span>
811
+ 152: <span class="ruby-constant">TernarySearchTree</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">to_a</span>)
812
+ 153: <span class="ruby-keyword kw">end</span></pre>
813
+ </div>
814
+
815
+ </div>
816
+
817
+
818
+
819
+
820
+ </div>
821
+
822
+
823
+ <div id="collect-method" class="method-detail ">
824
+ <a name="method-i-collect"></a>
825
+
826
+ <div class="method-heading">
827
+
828
+ <span class="method-name">collect</span><span
829
+ class="method-args">(str = nil, &block)</span>
830
+ <span class="method-click-advice">click to toggle source</span>
831
+
832
+ </div>
833
+
834
+ <div class="method-description">
835
+
836
+ <p>
837
+ Invokes <em>block</em> for each element and returns the results as an
838
+ Array.
839
+ </p>
840
+
841
+
842
+
843
+ <div class="method-source-code"
844
+ id="collect-source">
845
+ <pre>
846
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TernarySearchTree.rb, line 126</span>
847
+ 126: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">collect</span>(<span class="ruby-identifier">str</span> = <span class="ruby-keyword kw">nil</span>, &amp;<span class="ruby-identifier">block</span>)
848
+ 127: <span class="ruby-identifier">result</span> = []
849
+ 128:
850
+ 129: <span class="ruby-identifier">result</span> <span class="ruby-operator">+=</span> <span class="ruby-ivar">@smaller</span>.<span class="ruby-identifier">collect</span>(<span class="ruby-identifier">str</span>, &amp;<span class="ruby-identifier">block</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@smaller</span>
851
+ 130: <span class="ruby-identifier">newStr</span> = <span class="ruby-identifier">str</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@value</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">str</span> <span class="ruby-operator">+</span> <span class="ruby-ivar">@value</span>
852
+ 131: <span class="ruby-identifier">result</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-keyword kw">yield</span>(<span class="ruby-identifier">newStr</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@last</span>
853
+ 132: <span class="ruby-identifier">result</span> <span class="ruby-operator">+=</span> <span class="ruby-ivar">@equal</span>.<span class="ruby-identifier">collect</span>(<span class="ruby-identifier">newStr</span>, &amp;<span class="ruby-identifier">block</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@equal</span>
854
+ 133: <span class="ruby-identifier">result</span> <span class="ruby-operator">+=</span> <span class="ruby-ivar">@larger</span>.<span class="ruby-identifier">collect</span>(<span class="ruby-identifier">str</span>, &amp;<span class="ruby-identifier">block</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@larger</span>
855
+ 134:
856
+ 135: <span class="ruby-identifier">result</span>
857
+ 136: <span class="ruby-keyword kw">end</span></pre>
858
+ </div>
859
+
860
+ </div>
861
+
862
+
863
+
864
+
865
+ </div>
866
+
867
+
868
+ <div id="find-method" class="method-detail ">
869
+ <a name="method-i-find"></a>
870
+
871
+ <div class="method-heading">
872
+
873
+ <span class="method-name">find</span><span
874
+ class="method-args">(str, partialMatch = false, index = 0)</span>
875
+ <span class="method-click-advice">click to toggle source</span>
876
+
877
+ </div>
878
+
879
+ <div class="method-description">
880
+
881
+ <p>
882
+ if <em>str</em> is stored in the tree it returns <em>str</em>. If
883
+ <em>partialMatch</em> is true, it returns all items that start with
884
+ <em>str</em>. <em>index</em> is for internal use only. If nothing is found
885
+ it returns either nil or an empty list.
886
+ </p>
887
+
888
+
889
+
890
+ <div class="method-source-code"
891
+ id="find-source">
892
+ <pre>
893
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TernarySearchTree.rb, line 77</span>
894
+ 77: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">find</span>(<span class="ruby-identifier">str</span>, <span class="ruby-identifier">partialMatch</span> = <span class="ruby-keyword kw">false</span>, <span class="ruby-identifier">index</span> = <span class="ruby-value">0</span>)
895
+ 78: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">str</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">index</span> <span class="ruby-operator">&gt;</span> (<span class="ruby-identifier">maxIdx</span> = <span class="ruby-identifier">str</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>)
896
+ 79:
897
+ 80: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">str</span>[<span class="ruby-identifier">index</span>] <span class="ruby-operator">&lt;</span> <span class="ruby-ivar">@value</span>
898
+ 81: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@smaller</span>.<span class="ruby-identifier">find</span>(<span class="ruby-identifier">str</span>, <span class="ruby-identifier">partialMatch</span>, <span class="ruby-identifier">index</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@smaller</span>
899
+ 82: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">str</span>[<span class="ruby-identifier">index</span>] <span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@value</span>
900
+ 83: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@larger</span>.<span class="ruby-identifier">find</span>(<span class="ruby-identifier">str</span>, <span class="ruby-identifier">partialMatch</span>, <span class="ruby-identifier">index</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@larger</span>
901
+ 84: <span class="ruby-keyword kw">else</span>
902
+ 85: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">index</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">maxIdx</span>
903
+ 86: <span class="ruby-comment cmt"># We've reached the end of the search pattern.</span>
904
+ 87: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">partialMatch</span>
905
+ 88: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">collect</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-identifier">str</span>[<span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-value">2</span>] <span class="ruby-operator">+</span> <span class="ruby-identifier">v</span> }
906
+ 89: <span class="ruby-keyword kw">else</span>
907
+ 90: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">str</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@last</span>
908
+ 91: <span class="ruby-keyword kw">end</span>
909
+ 92: <span class="ruby-keyword kw">end</span>
910
+ 93:
911
+ 94: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@equal</span>.<span class="ruby-identifier">find</span>(<span class="ruby-identifier">str</span>, <span class="ruby-identifier">partialMatch</span>, <span class="ruby-identifier">index</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@equal</span>
912
+ 95: <span class="ruby-keyword kw">end</span>
913
+ 96: <span class="ruby-keyword kw">nil</span>
914
+ 97: <span class="ruby-keyword kw">end</span></pre>
915
+ </div>
916
+
917
+ </div>
918
+
919
+
920
+ <div class="aliases">
921
+ Also aliased as: <a href="TernarySearchTree.html#method-i-%5B%5D">[]</a>
922
+ </div>
923
+
924
+
925
+
926
+ </div>
927
+
928
+
929
+ <div id="insert-method" class="method-detail ">
930
+ <a name="method-i-insert"></a>
931
+
932
+ <div class="method-heading">
933
+
934
+ <span class="method-name">insert</span><span
935
+ class="method-args">(str, index = 0)</span>
936
+ <span class="method-click-advice">click to toggle source</span>
937
+
938
+ </div>
939
+
940
+ <div class="method-description">
941
+
942
+ <p>
943
+ Stores <em>str</em> in the tree. <em>index</em> is for internal use only.
944
+ </p>
945
+
946
+
947
+
948
+ <div class="method-source-code"
949
+ id="insert-source">
950
+ <pre>
951
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TernarySearchTree.rb, line 40</span>
952
+ 40: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">insert</span>(<span class="ruby-identifier">str</span>, <span class="ruby-identifier">index</span> = <span class="ruby-value">0</span>)
953
+ 41: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">str</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">str</span>.<span class="ruby-identifier">empty?</span>
954
+ 42: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-value str">&quot;Cannot insert nil or empty lists&quot;</span>
955
+ 43: <span class="ruby-keyword kw">end</span>
956
+ 44: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">index</span> <span class="ruby-operator">&gt;</span> (<span class="ruby-identifier">maxIdx</span> = <span class="ruby-identifier">str</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>) <span class="ruby-operator">||</span> <span class="ruby-identifier">index</span> <span class="ruby-operator">&lt;</span> <span class="ruby-value">0</span>
957
+ 45: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">&quot;index out of range [0..#{maxIdx}]&quot;</span>
958
+ 46: <span class="ruby-keyword kw">end</span>
959
+ 47:
960
+ 48: <span class="ruby-ivar">@value</span> = <span class="ruby-identifier">str</span>[<span class="ruby-identifier">index</span>] <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@value</span>
961
+ 49:
962
+ 50: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">str</span>[<span class="ruby-identifier">index</span>] <span class="ruby-operator">&lt;</span> <span class="ruby-ivar">@value</span>
963
+ 51: <span class="ruby-ivar">@smaller</span> = <span class="ruby-constant">TernarySearchTree</span>.<span class="ruby-identifier">new</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@smaller</span>
964
+ 52: <span class="ruby-ivar">@smaller</span>.<span class="ruby-identifier">insert</span>(<span class="ruby-identifier">str</span>, <span class="ruby-identifier">index</span>)
965
+ 53: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">str</span>[<span class="ruby-identifier">index</span>] <span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@value</span>
966
+ 54: <span class="ruby-ivar">@larger</span> = <span class="ruby-constant">TernarySearchTree</span>.<span class="ruby-identifier">new</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@larger</span>
967
+ 55: <span class="ruby-ivar">@larger</span>.<span class="ruby-identifier">insert</span>(<span class="ruby-identifier">str</span>, <span class="ruby-identifier">index</span>)
968
+ 56: <span class="ruby-keyword kw">else</span>
969
+ 57: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">index</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">maxIdx</span>
970
+ 58: <span class="ruby-ivar">@last</span> = <span class="ruby-keyword kw">true</span>
971
+ 59: <span class="ruby-keyword kw">else</span>
972
+ 60: <span class="ruby-ivar">@equal</span> = <span class="ruby-constant">TernarySearchTree</span>.<span class="ruby-identifier">new</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@equal</span>
973
+ 61: <span class="ruby-ivar">@equal</span>.<span class="ruby-identifier">insert</span>(<span class="ruby-identifier">str</span>, <span class="ruby-identifier">index</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>)
974
+ 62: <span class="ruby-keyword kw">end</span>
975
+ 63: <span class="ruby-keyword kw">end</span>
976
+ 64: <span class="ruby-keyword kw">end</span></pre>
977
+ </div>
978
+
979
+ </div>
980
+
981
+
982
+ <div class="aliases">
983
+ Also aliased as: <a href="TernarySearchTree.html#method-i-%3C%3C">&lt;&lt;</a>
984
+ </div>
985
+
986
+
987
+
988
+ </div>
989
+
990
+
991
+ <div id="insert-ist-method" class="method-detail ">
992
+ <a name="method-i-insertList"></a>
993
+
994
+ <div class="method-heading">
995
+
996
+ <span class="method-name">insertList</span><span
997
+ class="method-args">(list)</span>
998
+ <span class="method-click-advice">click to toggle source</span>
999
+
1000
+ </div>
1001
+
1002
+ <div class="method-description">
1003
+
1004
+ <p>
1005
+ Insert the elements of <em>list</em> into the tree.
1006
+ </p>
1007
+
1008
+
1009
+
1010
+ <div class="method-source-code"
1011
+ id="insert-ist-source">
1012
+ <pre>
1013
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TernarySearchTree.rb, line 69</span>
1014
+ 69: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">insertList</span>(<span class="ruby-identifier">list</span>)
1015
+ 70: <span class="ruby-identifier">list</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">val</span><span class="ruby-operator">|</span> <span class="ruby-identifier">insert</span>(<span class="ruby-identifier">val</span>) }
1016
+ 71: <span class="ruby-keyword kw">end</span></pre>
1017
+ </div>
1018
+
1019
+ </div>
1020
+
1021
+
1022
+
1023
+
1024
+ </div>
1025
+
1026
+
1027
+ <div id="inspect-method" class="method-detail ">
1028
+ <a name="method-i-inspect"></a>
1029
+
1030
+ <div class="method-heading">
1031
+
1032
+ <span class="method-name">inspect</span><span
1033
+ class="method-args">(prefix = ' ', indent = 0)</span>
1034
+ <span class="method-click-advice">click to toggle source</span>
1035
+
1036
+ </div>
1037
+
1038
+ <div class="method-description">
1039
+
1040
+
1041
+
1042
+
1043
+
1044
+ <div class="method-source-code"
1045
+ id="inspect-source">
1046
+ <pre>
1047
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TernarySearchTree.rb, line 155</span>
1048
+ 155: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">inspect</span>(<span class="ruby-identifier">prefix</span> = <span class="ruby-value str">' '</span>, <span class="ruby-identifier">indent</span> = <span class="ruby-value">0</span>)
1049
+ 156: <span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;#{' ' * indent}#{prefix} #{@value} #{@last ? '!' : ''}&quot;</span>
1050
+ 157: <span class="ruby-ivar">@smaller</span>.<span class="ruby-identifier">inspect</span>(<span class="ruby-value str">'&lt;'</span>, <span class="ruby-identifier">indent</span> <span class="ruby-operator">+</span> <span class="ruby-value">2</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@smaller</span>
1051
+ 158: <span class="ruby-ivar">@equal</span>.<span class="ruby-identifier">inspect</span>(<span class="ruby-value str">'='</span>, <span class="ruby-identifier">indent</span> <span class="ruby-operator">+</span> <span class="ruby-value">2</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@equal</span>
1052
+ 159: <span class="ruby-ivar">@larger</span>.<span class="ruby-identifier">inspect</span>(<span class="ruby-value str">'&gt;'</span>, <span class="ruby-identifier">indent</span> <span class="ruby-operator">+</span> <span class="ruby-value">2</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@larger</span>
1053
+ 160: <span class="ruby-keyword kw">end</span></pre>
1054
+ </div>
1055
+
1056
+ </div>
1057
+
1058
+
1059
+
1060
+
1061
+ </div>
1062
+
1063
+
1064
+ <div id="length-method" class="method-detail ">
1065
+ <a name="method-i-length"></a>
1066
+
1067
+ <div class="method-heading">
1068
+
1069
+ <span class="method-name">length</span><span
1070
+ class="method-args">()</span>
1071
+ <span class="method-click-advice">click to toggle source</span>
1072
+
1073
+ </div>
1074
+
1075
+ <div class="method-description">
1076
+
1077
+ <p>
1078
+ Returns the number of elements in the tree.
1079
+ </p>
1080
+
1081
+
1082
+
1083
+ <div class="method-source-code"
1084
+ id="length-source">
1085
+ <pre>
1086
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TernarySearchTree.rb, line 102</span>
1087
+ 102: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">length</span>
1088
+ 103: <span class="ruby-identifier">result</span> = <span class="ruby-value">0</span>
1089
+ 104:
1090
+ 105: <span class="ruby-identifier">result</span> <span class="ruby-operator">+=</span> <span class="ruby-ivar">@smaller</span>.<span class="ruby-identifier">length</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@smaller</span>
1091
+ 106: <span class="ruby-identifier">result</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@last</span>
1092
+ 107: <span class="ruby-identifier">result</span> <span class="ruby-operator">+=</span> <span class="ruby-ivar">@equal</span>.<span class="ruby-identifier">length</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@equal</span>
1093
+ 108: <span class="ruby-identifier">result</span> <span class="ruby-operator">+=</span> <span class="ruby-ivar">@larger</span>.<span class="ruby-identifier">length</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@larger</span>
1094
+ 109:
1095
+ 110: <span class="ruby-identifier">result</span>
1096
+ 111: <span class="ruby-keyword kw">end</span></pre>
1097
+ </div>
1098
+
1099
+ </div>
1100
+
1101
+
1102
+
1103
+
1104
+ </div>
1105
+
1106
+
1107
+ <div id="max-epth-method" class="method-detail ">
1108
+ <a name="method-i-maxDepth"></a>
1109
+
1110
+ <div class="method-heading">
1111
+
1112
+ <span class="method-name">maxDepth</span><span
1113
+ class="method-args">(depth = 0)</span>
1114
+ <span class="method-click-advice">click to toggle source</span>
1115
+
1116
+ </div>
1117
+
1118
+ <div class="method-description">
1119
+
1120
+ <p>
1121
+ Return the maximum depth of the tree.
1122
+ </p>
1123
+
1124
+
1125
+
1126
+ <div class="method-source-code"
1127
+ id="max-epth-source">
1128
+ <pre>
1129
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TernarySearchTree.rb, line 114</span>
1130
+ 114: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">maxDepth</span>(<span class="ruby-identifier">depth</span> = <span class="ruby-value">0</span>)
1131
+ 115: <span class="ruby-identifier">depth</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
1132
+ 116: <span class="ruby-identifier">depths</span> = []
1133
+ 117: <span class="ruby-identifier">depths</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-ivar">@smaller</span>.<span class="ruby-identifier">maxDepth</span>(<span class="ruby-identifier">depth</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@smaller</span>
1134
+ 118: <span class="ruby-identifier">depths</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-ivar">@equal</span>.<span class="ruby-identifier">maxDepth</span>(<span class="ruby-identifier">depth</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@equal</span>
1135
+ 119: <span class="ruby-identifier">depths</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-ivar">@larger</span>.<span class="ruby-identifier">maxDepth</span>(<span class="ruby-identifier">depth</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@larger</span>
1136
+ 120: <span class="ruby-identifier">depths</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">depth</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@last</span>
1137
+ 121:
1138
+ 122: <span class="ruby-identifier">depths</span>.<span class="ruby-identifier">max</span>
1139
+ 123: <span class="ruby-keyword kw">end</span></pre>
1140
+ </div>
1141
+
1142
+ </div>
1143
+
1144
+
1145
+
1146
+
1147
+ </div>
1148
+
1149
+
1150
+ <div id="to-a-method" class="method-detail ">
1151
+ <a name="method-i-to_a"></a>
1152
+
1153
+ <div class="method-heading">
1154
+
1155
+ <span class="method-name">to_a</span><span
1156
+ class="method-args">()</span>
1157
+ <span class="method-click-advice">click to toggle source</span>
1158
+
1159
+ </div>
1160
+
1161
+ <div class="method-description">
1162
+
1163
+ <p>
1164
+ Return an Array with all the elements stored in the tree.
1165
+ </p>
1166
+
1167
+
1168
+
1169
+ <div class="method-source-code"
1170
+ id="to-a-source">
1171
+ <pre>
1172
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TernarySearchTree.rb, line 139</span>
1173
+ 139: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_a</span>
1174
+ 140: <span class="ruby-identifier">collect</span>{ <span class="ruby-operator">|</span><span class="ruby-identifier">x</span><span class="ruby-operator">|</span> <span class="ruby-identifier">x</span>}
1175
+ 141: <span class="ruby-keyword kw">end</span></pre>
1176
+ </div>
1177
+
1178
+ </div>
1179
+
1180
+
1181
+
1182
+
1183
+ </div>
1184
+
1185
+
1186
+ </div>
1187
+
1188
+ <div id="private-instance-method-details" class="method-section section">
1189
+ <h3 class="section-header">Private Instance Methods</h3>
1190
+
1191
+
1192
+ <div id="clear-method" class="method-detail ">
1193
+ <a name="method-i-clear"></a>
1194
+
1195
+ <div class="method-heading">
1196
+
1197
+ <span class="method-name">clear</span><span
1198
+ class="method-args">()</span>
1199
+ <span class="method-click-advice">click to toggle source</span>
1200
+
1201
+ </div>
1202
+
1203
+ <div class="method-description">
1204
+
1205
+ <p>
1206
+ Reset the node to an empty tree.
1207
+ </p>
1208
+
1209
+
1210
+
1211
+ <div class="method-source-code"
1212
+ id="clear-source">
1213
+ <pre>
1214
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TernarySearchTree.rb, line 165</span>
1215
+ 165: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">clear</span>
1216
+ 166: <span class="ruby-ivar">@smaller</span> = <span class="ruby-ivar">@equal</span> = <span class="ruby-ivar">@larger</span> = <span class="ruby-ivar">@value</span> = <span class="ruby-keyword kw">nil</span>
1217
+ 167: <span class="ruby-ivar">@last</span> = <span class="ruby-keyword kw">false</span>
1218
+ 168: <span class="ruby-keyword kw">end</span></pre>
1219
+ </div>
1220
+
1221
+ </div>
1222
+
1223
+
1224
+
1225
+
1226
+ </div>
1227
+
1228
+
1229
+ <div id="sort-or-alanced-ree-method" class="method-detail ">
1230
+ <a name="method-i-sortForBalancedTree"></a>
1231
+
1232
+ <div class="method-heading">
1233
+
1234
+ <span class="method-name">sortForBalancedTree</span><span
1235
+ class="method-args">(list)</span>
1236
+ <span class="method-click-advice">click to toggle source</span>
1237
+
1238
+ </div>
1239
+
1240
+ <div class="method-description">
1241
+
1242
+ <p>
1243
+ Reorder the list elements so that we get a fully balanced tree when
1244
+ inserting the elements from front to back.
1245
+ </p>
1246
+
1247
+
1248
+
1249
+ <div class="method-source-code"
1250
+ id="sort-or-alanced-ree-source">
1251
+ <pre>
1252
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TernarySearchTree.rb, line 181</span>
1253
+ 181: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sortForBalancedTree</span>(<span class="ruby-identifier">list</span>)
1254
+ 182: <span class="ruby-identifier">lists</span> = [ <span class="ruby-identifier">list</span>.<span class="ruby-identifier">sort</span> ]
1255
+ 183: <span class="ruby-identifier">result</span> = []
1256
+ 184: <span class="ruby-keyword kw">while</span> <span class="ruby-operator">!</span><span class="ruby-identifier">lists</span>.<span class="ruby-identifier">empty?</span>
1257
+ 185: <span class="ruby-identifier">newLists</span> = []
1258
+ 186: <span class="ruby-identifier">lists</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">l</span><span class="ruby-operator">|</span>
1259
+ 187: <span class="ruby-comment cmt"># Split the list in half and add the center element to the result</span>
1260
+ 188: <span class="ruby-comment cmt"># list.</span>
1261
+ 189: <span class="ruby-identifier">pivot</span> = <span class="ruby-identifier">l</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">/</span> <span class="ruby-value">2</span>
1262
+ 190: <span class="ruby-identifier">result</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">l</span>[<span class="ruby-identifier">pivot</span>]
1263
+ 191: <span class="ruby-comment cmt"># Add the two remaining sub lists to the newLists Array.</span>
1264
+ 192: <span class="ruby-identifier">newLists</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">l</span>[<span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-identifier">pivot</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">pivot</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
1265
+ 193: <span class="ruby-identifier">newLists</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">l</span>[<span class="ruby-identifier">pivot</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">1</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">pivot</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">l</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>
1266
+ 194: <span class="ruby-keyword kw">end</span>
1267
+ 195: <span class="ruby-identifier">lists</span> = <span class="ruby-identifier">newLists</span>
1268
+ 196: <span class="ruby-keyword kw">end</span>
1269
+ 197: <span class="ruby-identifier">result</span>
1270
+ 198: <span class="ruby-keyword kw">end</span></pre>
1271
+ </div>
1272
+
1273
+ </div>
1274
+
1275
+
1276
+
1277
+
1278
+ </div>
1279
+
1280
+
1281
+ <div id="split-method" class="method-detail ">
1282
+ <a name="method-i-split"></a>
1283
+
1284
+ <div class="method-heading">
1285
+
1286
+ <span class="method-name">split</span><span
1287
+ class="method-args">(str)</span>
1288
+ <span class="method-click-advice">click to toggle source</span>
1289
+
1290
+ </div>
1291
+
1292
+ <div class="method-description">
1293
+
1294
+ <p>
1295
+ Split the list into the first element and the remaining ones.
1296
+ </p>
1297
+
1298
+
1299
+
1300
+ <div class="method-source-code"
1301
+ id="split-source">
1302
+ <pre>
1303
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TernarySearchTree.rb, line 171</span>
1304
+ 171: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">split</span>(<span class="ruby-identifier">str</span>)
1305
+ 172: <span class="ruby-comment cmt"># The list may not be nil or empty. This would be a bug.</span>
1306
+ 173: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">str</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">str</span>.<span class="ruby-identifier">empty?</span>
1307
+ 174:
1308
+ 175: <span class="ruby-comment cmt"># The second element of the result may be nil.</span>
1309
+ 176: [ <span class="ruby-identifier">str</span>[<span class="ruby-value">0</span>], <span class="ruby-identifier">str</span>[<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">1</span>] ]
1310
+ 177: <span class="ruby-keyword kw">end</span></pre>
1311
+ </div>
1312
+
1313
+ </div>
1314
+
1315
+
1316
+
1317
+
1318
+ </div>
1319
+
1320
+
1321
+ </div>
1322
+
1323
+
1324
+ </div>
1325
+
1326
+
1327
+ <div id="rdoc-debugging-section-dump" class="debugging-section">
1328
+
1329
+ <p>Disabled; run with --debug to generate this.</p>
1330
+
1331
+ </div>
1332
+
1333
+ <div id="validator-badges">
1334
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
1335
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
1336
+ Rdoc Generator</a> 1.1.6</small>.</p>
1337
+ </div>
1338
+
1339
+ </body>
1340
+ </html>
1341
+