taskjuggler 0.0.2
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.
- data/COPYING +280 -0
- data/README +31 -0
- data/Rakefile +20 -0
- data/benchmarks/UTF-8-Strings.rb +58 -0
- data/benchmarks/allocate.tjp +30 -0
- data/benchmarks/booking.tjp +62 -0
- data/benchmarks/depends.tjp +112 -0
- data/benchmarks/htmltaskreport.tjp +45 -0
- data/benchmarks/runbench.rb +24 -0
- data/bin/tj3 +3 -0
- data/bin/tj3man +3 -0
- data/doc/classes/AppConfig.html +808 -0
- data/doc/classes/Arguments.html +226 -0
- data/doc/classes/String.html +395 -0
- data/doc/classes/TaskJuggler.html +1358 -0
- data/doc/classes/TaskJuggler/Account.html +257 -0
- data/doc/classes/TaskJuggler/AccountScenario.html +218 -0
- data/doc/classes/TaskJuggler/Allocation.html +419 -0
- data/doc/classes/TaskJuggler/AllocationAttribute.html +291 -0
- data/doc/classes/TaskJuggler/AttributeBase.html +608 -0
- data/doc/classes/TaskJuggler/AttributeDefinition.html +259 -0
- data/doc/classes/TaskJuggler/Booking.html +307 -0
- data/doc/classes/TaskJuggler/BookingListAttribute.html +263 -0
- data/doc/classes/TaskJuggler/BooleanAttribute.html +261 -0
- data/doc/classes/TaskJuggler/CSVFile.html +325 -0
- data/doc/classes/TaskJuggler/Charge.html +279 -0
- data/doc/classes/TaskJuggler/ChargeListAttribute.html +229 -0
- data/doc/classes/TaskJuggler/ChargeSet.html +440 -0
- data/doc/classes/TaskJuggler/ChargeSetListAttribute.html +276 -0
- data/doc/classes/TaskJuggler/ColumnTable.html +260 -0
- data/doc/classes/TaskJuggler/DateAttribute.html +194 -0
- data/doc/classes/TaskJuggler/DependencyListAttribute.html +267 -0
- data/doc/classes/TaskJuggler/DurationAttribute.html +229 -0
- data/doc/classes/TaskJuggler/FixnumAttribute.html +194 -0
- data/doc/classes/TaskJuggler/FlagListAttribute.html +263 -0
- data/doc/classes/TaskJuggler/FloatAttribute.html +229 -0
- data/doc/classes/TaskJuggler/GanttChart.html +667 -0
- data/doc/classes/TaskJuggler/GanttContainer.html +441 -0
- data/doc/classes/TaskJuggler/GanttHeader.html +280 -0
- data/doc/classes/TaskJuggler/GanttHeaderScaleItem.html +245 -0
- data/doc/classes/TaskJuggler/GanttLine.html +398 -0
- data/doc/classes/TaskJuggler/GanttLoadStack.html +327 -0
- data/doc/classes/TaskJuggler/GanttMilestone.html +415 -0
- data/doc/classes/TaskJuggler/GanttRouter.html +425 -0
- data/doc/classes/TaskJuggler/GanttTaskBar.html +429 -0
- data/doc/classes/TaskJuggler/HTMLDocument.html +240 -0
- data/doc/classes/TaskJuggler/HTMLGraphics.html +231 -0
- data/doc/classes/TaskJuggler/Interval.html +552 -0
- data/doc/classes/TaskJuggler/IntervalListAttribute.html +267 -0
- data/doc/classes/TaskJuggler/KeywordDocumentation.html +796 -0
- data/doc/classes/TaskJuggler/Limits.html +416 -0
- data/doc/classes/TaskJuggler/Limits/Limit.html +381 -0
- data/doc/classes/TaskJuggler/LimitsAttribute.html +261 -0
- data/doc/classes/TaskJuggler/Log.html +613 -0
- data/doc/classes/TaskJuggler/LogicalAttribute.html +226 -0
- data/doc/classes/TaskJuggler/LogicalExpression.html +251 -0
- data/doc/classes/TaskJuggler/LogicalFlag.html +229 -0
- data/doc/classes/TaskJuggler/LogicalFunction.html +324 -0
- data/doc/classes/TaskJuggler/LogicalOperation.html +299 -0
- data/doc/classes/TaskJuggler/Macro.html +194 -0
- data/doc/classes/TaskJuggler/MacroParser.html +360 -0
- data/doc/classes/TaskJuggler/MacroTable.html +366 -0
- data/doc/classes/TaskJuggler/Message.html +281 -0
- data/doc/classes/TaskJuggler/MessageHandler.html +215 -0
- data/doc/classes/TaskJuggler/Project.html +1606 -0
- data/doc/classes/TaskJuggler/ProjectFileParser.html +412 -0
- data/doc/classes/TaskJuggler/PropertyList.html +597 -0
- data/doc/classes/TaskJuggler/PropertySet.html +1200 -0
- data/doc/classes/TaskJuggler/PropertyTreeNode.html +1449 -0
- data/doc/classes/TaskJuggler/Query.html +600 -0
- data/doc/classes/TaskJuggler/RealFormat.html +252 -0
- data/doc/classes/TaskJuggler/ReferenceAttribute.html +194 -0
- data/doc/classes/TaskJuggler/Report.html +528 -0
- data/doc/classes/TaskJuggler/ReportElement.html +1070 -0
- data/doc/classes/TaskJuggler/ReportTable.html +497 -0
- data/doc/classes/TaskJuggler/ReportTableCell.html +518 -0
- data/doc/classes/TaskJuggler/ReportTableColumn.html +364 -0
- data/doc/classes/TaskJuggler/ReportTableElement.html +644 -0
- data/doc/classes/TaskJuggler/ReportTableLegend.html +343 -0
- data/doc/classes/TaskJuggler/ReportTableLine.html +431 -0
- data/doc/classes/TaskJuggler/Resource.html +211 -0
- data/doc/classes/TaskJuggler/ResourceListAttribute.html +267 -0
- data/doc/classes/TaskJuggler/ResourceListRE.html +249 -0
- data/doc/classes/TaskJuggler/ResourceScenario.html +1137 -0
- data/doc/classes/TaskJuggler/RichText.html +537 -0
- data/doc/classes/TaskJuggler/RichTextAttribute.html +229 -0
- data/doc/classes/TaskJuggler/RichTextDocument.html +418 -0
- data/doc/classes/TaskJuggler/RichTextElement.html +829 -0
- data/doc/classes/TaskJuggler/RichTextException.html +212 -0
- data/doc/classes/TaskJuggler/RichTextParser.html +317 -0
- data/doc/classes/TaskJuggler/RichTextProtocolExample.html +303 -0
- data/doc/classes/TaskJuggler/RichTextProtocolHandler.html +194 -0
- data/doc/classes/TaskJuggler/RichTextScanner.html +561 -0
- data/doc/classes/TaskJuggler/RichTextSnip.html +364 -0
- data/doc/classes/TaskJuggler/RichTextSyntaxRules.html +883 -0
- data/doc/classes/TaskJuggler/Scenario.html +163 -0
- data/doc/classes/TaskJuggler/ScenarioData.html +354 -0
- data/doc/classes/TaskJuggler/Scoreboard.html +638 -0
- data/doc/classes/TaskJuggler/Shift.html +255 -0
- data/doc/classes/TaskJuggler/ShiftAssignment.html +488 -0
- data/doc/classes/TaskJuggler/ShiftAssignments.html +715 -0
- data/doc/classes/TaskJuggler/ShiftAssignmentsAttribute.html +261 -0
- data/doc/classes/TaskJuggler/ShiftScenario.html +282 -0
- data/doc/classes/TaskJuggler/SourceFileInfo.html +247 -0
- data/doc/classes/TaskJuggler/StringAttribute.html +229 -0
- data/doc/classes/TaskJuggler/SymbolAttribute.html +194 -0
- data/doc/classes/TaskJuggler/SyntaxReference.html +516 -0
- data/doc/classes/TaskJuggler/TOCEntry.html +242 -0
- data/doc/classes/TaskJuggler/TableColumnDefinition.html +273 -0
- data/doc/classes/TaskJuggler/TableOfContents.html +256 -0
- data/doc/classes/TaskJuggler/Task.html +203 -0
- data/doc/classes/TaskJuggler/TaskDependency.html +251 -0
- data/doc/classes/TaskJuggler/TaskListAttribute.html +267 -0
- data/doc/classes/TaskJuggler/TaskListRE.html +250 -0
- data/doc/classes/TaskJuggler/TaskScenario.html +2206 -0
- data/doc/classes/TaskJuggler/TextParser.html +670 -0
- data/doc/classes/TaskJuggler/TextParser/Pattern.html +923 -0
- data/doc/classes/TaskJuggler/TextParser/Rule.html +779 -0
- data/doc/classes/TaskJuggler/TextParser/StackElement.html +267 -0
- data/doc/classes/TaskJuggler/TextParser/TextParserResultArray.html +212 -0
- data/doc/classes/TaskJuggler/TextParser/TokenDoc.html +221 -0
- data/doc/classes/TaskJuggler/TextScanner.html +708 -0
- data/doc/classes/TaskJuggler/TextScanner/BufferStreamHandle.html +355 -0
- data/doc/classes/TaskJuggler/TextScanner/FileStreamHandle.html +341 -0
- data/doc/classes/TaskJuggler/TextScanner/StreamHandle.html +260 -0
- data/doc/classes/TaskJuggler/TjException.html +185 -0
- data/doc/classes/TaskJuggler/TjTime.html +1845 -0
- data/doc/classes/TaskJuggler/TjpExample.html +310 -0
- data/doc/classes/TaskJuggler/TjpExportRE.html +329 -0
- data/doc/classes/TaskJuggler/TjpSyntaxRules.html +8928 -0
- data/doc/classes/TaskJuggler/UserManual.html +606 -0
- data/doc/classes/TaskJuggler/WorkingHours.html +582 -0
- data/doc/classes/TaskJuggler/WorkingHoursAttribute.html +284 -0
- data/doc/classes/TaskJuggler/XMLBlob.html +207 -0
- data/doc/classes/TaskJuggler/XMLComment.html +206 -0
- data/doc/classes/TaskJuggler/XMLDocument.html +293 -0
- data/doc/classes/TaskJuggler/XMLElement.html +341 -0
- data/doc/classes/TaskJuggler/XMLNamedText.html +174 -0
- data/doc/classes/TaskJuggler/XMLText.html +221 -0
- data/doc/files/COPYING.html +448 -0
- data/doc/files/README.html +134 -0
- data/doc/files/lib/AccountScenario_rb.html +116 -0
- data/doc/files/lib/Account_rb.html +118 -0
- data/doc/files/lib/Allocation_rb.html +118 -0
- data/doc/files/lib/AppConfig_rb.html +116 -0
- data/doc/files/lib/AttributeBase_rb.html +106 -0
- data/doc/files/lib/AttributeDefinition_rb.html +106 -0
- data/doc/files/lib/Attributes_rb.html +130 -0
- data/doc/files/lib/Booking_rb.html +106 -0
- data/doc/files/lib/ChargeSet_rb.html +116 -0
- data/doc/files/lib/Charge_rb.html +116 -0
- data/doc/files/lib/HTMLDocument_rb.html +116 -0
- data/doc/files/lib/Interval_rb.html +116 -0
- data/doc/files/lib/KeywordDocumentation_rb.html +122 -0
- data/doc/files/lib/Limits_rb.html +116 -0
- data/doc/files/lib/Log_rb.html +116 -0
- data/doc/files/lib/LogicalExpression_rb.html +122 -0
- data/doc/files/lib/LogicalFlag_rb.html +116 -0
- data/doc/files/lib/LogicalFunction_rb.html +116 -0
- data/doc/files/lib/LogicalOperation_rb.html +116 -0
- data/doc/files/lib/MacroParser_rb.html +118 -0
- data/doc/files/lib/MacroTable_rb.html +122 -0
- data/doc/files/lib/MessageHandler_rb.html +106 -0
- data/doc/files/lib/Message_rb.html +116 -0
- data/doc/files/lib/ProjectFileParser_rb.html +122 -0
- data/doc/files/lib/Project_rb.html +148 -0
- data/doc/files/lib/PropertyList_rb.html +106 -0
- data/doc/files/lib/PropertySet_rb.html +118 -0
- data/doc/files/lib/PropertyTreeNode_rb.html +106 -0
- data/doc/files/lib/Query_rb.html +116 -0
- data/doc/files/lib/RealFormat_rb.html +106 -0
- data/doc/files/lib/ResourceScenario_rb.html +116 -0
- data/doc/files/lib/Resource_rb.html +118 -0
- data/doc/files/lib/RichTextDocument_rb.html +120 -0
- data/doc/files/lib/RichTextElement_rb.html +120 -0
- data/doc/files/lib/RichTextParser_rb.html +120 -0
- data/doc/files/lib/RichTextProtocolExample_rb.html +120 -0
- data/doc/files/lib/RichTextProtocolHandler_rb.html +106 -0
- data/doc/files/lib/RichTextScanner_rb.html +116 -0
- data/doc/files/lib/RichTextSnip_rb.html +118 -0
- data/doc/files/lib/RichTextSyntaxRules_rb.html +106 -0
- data/doc/files/lib/RichText_rb.html +118 -0
- data/doc/files/lib/ScenarioData_rb.html +118 -0
- data/doc/files/lib/Scenario_rb.html +116 -0
- data/doc/files/lib/Scoreboard_rb.html +106 -0
- data/doc/files/lib/ShiftAssignments_rb.html +116 -0
- data/doc/files/lib/ShiftScenario_rb.html +116 -0
- data/doc/files/lib/Shift_rb.html +118 -0
- data/doc/files/lib/SourceFileInfo_rb.html +106 -0
- data/doc/files/lib/SyntaxReference_rb.html +122 -0
- data/doc/files/lib/TOCEntry_rb.html +118 -0
- data/doc/files/lib/TableColumnDefinition_rb.html +106 -0
- data/doc/files/lib/TableOfContents_rb.html +118 -0
- data/doc/files/lib/TaskDependency_rb.html +106 -0
- data/doc/files/lib/TaskJuggler_rb.html +120 -0
- data/doc/files/lib/TaskScenario_rb.html +116 -0
- data/doc/files/lib/Task_rb.html +118 -0
- data/doc/files/lib/TextParser/Pattern_rb.html +116 -0
- data/doc/files/lib/TextParser/Rule_rb.html +106 -0
- data/doc/files/lib/TextParser/StackElement_rb.html +106 -0
- data/doc/files/lib/TextParser/TokenDoc_rb.html +106 -0
- data/doc/files/lib/TextParser_rb.html +124 -0
- data/doc/files/lib/TextScanner_rb.html +128 -0
- data/doc/files/lib/Tj3Config_rb.html +118 -0
- data/doc/files/lib/TjException_rb.html +106 -0
- data/doc/files/lib/TjTime_rb.html +118 -0
- data/doc/files/lib/TjpExample_rb.html +116 -0
- data/doc/files/lib/TjpSyntaxRules_rb.html +106 -0
- data/doc/files/lib/UTF8String_rb.html +132 -0
- data/doc/files/lib/UserManual_rb.html +124 -0
- data/doc/files/lib/WorkingHours_rb.html +116 -0
- data/doc/files/lib/XMLDocument_rb.html +116 -0
- data/doc/files/lib/XMLElement_rb.html +116 -0
- data/doc/files/lib/reports/CSVFile_rb.html +116 -0
- data/doc/files/lib/reports/ColumnTable_rb.html +116 -0
- data/doc/files/lib/reports/GanttChart_rb.html +122 -0
- data/doc/files/lib/reports/GanttContainer_rb.html +116 -0
- data/doc/files/lib/reports/GanttHeaderScaleItem_rb.html +106 -0
- data/doc/files/lib/reports/GanttHeader_rb.html +116 -0
- data/doc/files/lib/reports/GanttLine_rb.html +126 -0
- data/doc/files/lib/reports/GanttLoadStack_rb.html +116 -0
- data/doc/files/lib/reports/GanttMilestone_rb.html +116 -0
- data/doc/files/lib/reports/GanttRouter_rb.html +106 -0
- data/doc/files/lib/reports/GanttTaskBar_rb.html +116 -0
- data/doc/files/lib/reports/HTMLGraphics_rb.html +106 -0
- data/doc/files/lib/reports/ReportElement_rb.html +118 -0
- data/doc/files/lib/reports/ReportTableCell_rb.html +106 -0
- data/doc/files/lib/reports/ReportTableColumn_rb.html +106 -0
- data/doc/files/lib/reports/ReportTableElement_rb.html +122 -0
- data/doc/files/lib/reports/ReportTableLegend_rb.html +106 -0
- data/doc/files/lib/reports/ReportTableLine_rb.html +116 -0
- data/doc/files/lib/reports/ReportTable_rb.html +118 -0
- data/doc/files/lib/reports/Report_rb.html +126 -0
- data/doc/files/lib/reports/ResourceListRE_rb.html +122 -0
- data/doc/files/lib/reports/TaskListRE_rb.html +122 -0
- data/doc/files/lib/reports/TjpExportRE_rb.html +116 -0
- data/doc/files/lib/taskjuggler3_rb.html +276 -0
- data/doc/files/lib/tj3man_rb.html +189 -0
- data/doc/fr_class_index.html +285 -0
- data/doc/fr_file_index.html +223 -0
- data/doc/fr_method_index.html +1953 -0
- data/doc/index.html +21 -0
- data/doc/rdoc-style.css +299 -0
- data/examples/tutorial.tjp +361 -0
- data/gem_spec.rb +30 -0
- data/lib/Account.rb +50 -0
- data/lib/AccountScenario.rb +39 -0
- data/lib/Allocation.rb +102 -0
- data/lib/AppConfig.rb +134 -0
- data/lib/AttributeBase.rb +131 -0
- data/lib/AttributeDefinition.rb +47 -0
- data/lib/Attributes.rb +478 -0
- data/lib/BatchProcessor.rb +209 -0
- data/lib/Booking.rb +59 -0
- data/lib/Charge.rb +71 -0
- data/lib/ChargeSet.rb +126 -0
- data/lib/HTMLDocument.rb +59 -0
- data/lib/Interval.rb +127 -0
- data/lib/KeywordDocumentation.rb +560 -0
- data/lib/Limits.rb +219 -0
- data/lib/Log.rb +160 -0
- data/lib/LogicalExpression.rb +71 -0
- data/lib/LogicalFlag.rb +34 -0
- data/lib/LogicalFunction.rb +102 -0
- data/lib/LogicalOperation.rb +118 -0
- data/lib/MacroParser.rb +77 -0
- data/lib/MacroTable.rb +84 -0
- data/lib/Message.rb +56 -0
- data/lib/MessageHandler.rb +34 -0
- data/lib/Project.rb +662 -0
- data/lib/ProjectFileParser.rb +333 -0
- data/lib/PropertyList.rb +181 -0
- data/lib/PropertySet.rb +304 -0
- data/lib/PropertyTreeNode.rb +461 -0
- data/lib/Query.rb +227 -0
- data/lib/RealFormat.rb +73 -0
- data/lib/Resource.rb +42 -0
- data/lib/ResourceScenario.rb +511 -0
- data/lib/RichText.rb +147 -0
- data/lib/RichTextDocument.rb +139 -0
- data/lib/RichTextElement.rb +391 -0
- data/lib/RichTextParser.rb +66 -0
- data/lib/RichTextProtocolExample.rb +65 -0
- data/lib/RichTextProtocolHandler.rb +35 -0
- data/lib/RichTextScanner.rb +390 -0
- data/lib/RichTextSnip.rb +104 -0
- data/lib/RichTextSyntaxRules.rb +265 -0
- data/lib/Scenario.rb +27 -0
- data/lib/ScenarioData.rb +65 -0
- data/lib/Scoreboard.rb +141 -0
- data/lib/Shift.rb +48 -0
- data/lib/ShiftAssignments.rb +291 -0
- data/lib/ShiftScenario.rb +46 -0
- data/lib/SourceFileInfo.rb +37 -0
- data/lib/SyntaxReference.rb +284 -0
- data/lib/TOCEntry.rb +76 -0
- data/lib/TableColumnDefinition.rb +54 -0
- data/lib/TableOfContents.rb +46 -0
- data/lib/Task.rb +37 -0
- data/lib/TaskDependency.rb +39 -0
- data/lib/TaskJuggler.rb +84 -0
- data/lib/TaskScenario.rb +1622 -0
- data/lib/TextParser.rb +416 -0
- data/lib/TextParser/Pattern.rb +263 -0
- data/lib/TextParser/Rule.rb +171 -0
- data/lib/TextParser/StackElement.rb +45 -0
- data/lib/TextParser/TokenDoc.rb +38 -0
- data/lib/TextScanner.rb +682 -0
- data/lib/Tj3Config.rb +27 -0
- data/lib/TjException.rb +27 -0
- data/lib/TjTime.rb +395 -0
- data/lib/TjpExample.rb +119 -0
- data/lib/TjpSyntaxRules.rb +4022 -0
- data/lib/UTF8String.rb +100 -0
- data/lib/UserManual.rb +282 -0
- data/lib/WorkingHours.rb +323 -0
- data/lib/XMLDocument.rb +54 -0
- data/lib/XMLElement.rb +175 -0
- data/lib/reports/CSVFile.rb +146 -0
- data/lib/reports/ColumnTable.rb +66 -0
- data/lib/reports/GanttChart.rb +308 -0
- data/lib/reports/GanttContainer.rb +107 -0
- data/lib/reports/GanttHeader.rb +141 -0
- data/lib/reports/GanttHeaderScaleItem.rb +42 -0
- data/lib/reports/GanttLine.rb +329 -0
- data/lib/reports/GanttLoadStack.rb +113 -0
- data/lib/reports/GanttMilestone.rb +80 -0
- data/lib/reports/GanttRouter.rb +375 -0
- data/lib/reports/GanttTaskBar.rb +95 -0
- data/lib/reports/HTMLGraphics.rb +65 -0
- data/lib/reports/Report.rb +344 -0
- data/lib/reports/ReportElement.rb +427 -0
- data/lib/reports/ReportTable.rb +144 -0
- data/lib/reports/ReportTableCell.rb +142 -0
- data/lib/reports/ReportTableColumn.rb +82 -0
- data/lib/reports/ReportTableElement.rb +852 -0
- data/lib/reports/ReportTableLegend.rb +167 -0
- data/lib/reports/ReportTableLine.rb +87 -0
- data/lib/reports/ResourceListRE.rb +72 -0
- data/lib/reports/TaskListRE.rb +73 -0
- data/lib/reports/TjpExportRE.rb +394 -0
- data/lib/taskjuggler3.rb +106 -0
- data/lib/tj3man.rb +88 -0
- data/manual/Day_To_Day_Juggling +168 -0
- data/manual/Getting_Started +61 -0
- data/manual/How_To_Contribute +185 -0
- data/manual/Installation +68 -0
- data/manual/Intro +102 -0
- data/manual/Reporting_Bugs +26 -0
- data/manual/Rich_Text_Attributes +90 -0
- data/manual/TaskJuggler_2x_Migration +40 -0
- data/manual/Tutorial +579 -0
- data/manual/fdl +450 -0
- data/prj_cfg.rb +43 -0
- data/setup.rb +1585 -0
- data/tasks/csts.rake +72 -0
- data/tasks/gem.rake +14 -0
- data/tasks/manual.rake +10 -0
- data/tasks/missing.rake +21 -0
- data/tasks/rcov.rake +14 -0
- data/tasks/rdoc.rake +17 -0
- data/tasks/rexml_fix.rb +16 -0
- data/tasks/rexml_fix_19.rb +49 -0
- data/tasks/show.rake +21 -0
- data/tasks/stats.rake +25 -0
- data/tasks/test.rake +11 -0
- data/test/MessageChecker.rb +53 -0
- data/test/TestSuite/CSV-Reports/celltext-Reference.csv +14 -0
- data/test/TestSuite/CSV-Reports/celltext.tjp +7 -0
- data/test/TestSuite/CSV-Reports/genrefs +6 -0
- data/test/TestSuite/CSV-Reports/project-1.tji +57 -0
- data/test/TestSuite/CSV-Reports/resourcereport-Reference.csv +4 -0
- data/test/TestSuite/CSV-Reports/resourcereport.tjp +10 -0
- data/test/TestSuite/CSV-Reports/resourcereport_with_tasks-Reference.csv +22 -0
- data/test/TestSuite/CSV-Reports/resourcereport_with_tasks.tjp +11 -0
- data/test/TestSuite/CSV-Reports/sortByTree-Reference.csv +14 -0
- data/test/TestSuite/CSV-Reports/sortByTree.tjp +8 -0
- data/test/TestSuite/CSV-Reports/sortBy_duration.down-Reference.csv +14 -0
- data/test/TestSuite/CSV-Reports/sortBy_duration.down.tjp +10 -0
- data/test/TestSuite/CSV-Reports/sortBy_effort.up-Reference.csv +14 -0
- data/test/TestSuite/CSV-Reports/sortBy_effort.up.tjp +10 -0
- data/test/TestSuite/CSV-Reports/sortBy_plan.start.down-Reference.csv +14 -0
- data/test/TestSuite/CSV-Reports/sortBy_plan.start.down.tjp +10 -0
- data/test/TestSuite/CSV-Reports/taskreport-Reference.csv +14 -0
- data/test/TestSuite/CSV-Reports/taskreport.tjp +10 -0
- data/test/TestSuite/CSV-Reports/taskreport_with_resources-Reference.csv +24 -0
- data/test/TestSuite/CSV-Reports/taskreport_with_resources.tjp +11 -0
- data/test/TestSuite/Scheduler/Correct/Allocate.tjp +86 -0
- data/test/TestSuite/Scheduler/Correct/AutomaticMilestones.tjp +63 -0
- data/test/TestSuite/Scheduler/Correct/Booking.tjp +161 -0
- data/test/TestSuite/Scheduler/Correct/Depends.tjp +50 -0
- data/test/TestSuite/Scheduler/Correct/Duration.tjp +34 -0
- data/test/TestSuite/Scheduler/Correct/InheritStartEnd.tjp +129 -0
- data/test/TestSuite/Scheduler/Correct/Limits.tjp +81 -0
- data/test/TestSuite/Scheduler/Correct/MultipleMandatories.tjp +43 -0
- data/test/TestSuite/Scheduler/Correct/Optimize-1.tjp +28 -0
- data/test/TestSuite/Scheduler/Correct/Optimize-2.tjp +33 -0
- data/test/TestSuite/Scheduler/Correct/Optimize-3.tjp +33 -0
- data/test/TestSuite/Scheduler/Correct/Optimize-4.tjp +34 -0
- data/test/TestSuite/Scheduler/Correct/Optimize-5.tjp +62 -0
- data/test/TestSuite/Scheduler/Correct/Precedes.tjp +50 -0
- data/test/TestSuite/Scheduler/Correct/Shift.tjp +102 -0
- data/test/TestSuite/Scheduler/Errors/account_no_leaf.tjp +13 -0
- data/test/TestSuite/Scheduler/Errors/booking_conflict.tjp +10 -0
- data/test/TestSuite/Scheduler/Errors/booking_no_duty.tjp +9 -0
- data/test/TestSuite/Scheduler/Errors/booking_on_vacation.tjp +9 -0
- data/test/TestSuite/Scheduler/Errors/container_booking.tjp +14 -0
- data/test/TestSuite/Scheduler/Errors/container_duration.tjp +11 -0
- data/test/TestSuite/Scheduler/Errors/effort_no_allocations.tjp +7 -0
- data/test/TestSuite/Scheduler/Errors/loop_detected_1.tjp +19 -0
- data/test/TestSuite/Scheduler/Errors/loop_detected_10.tjp +36 -0
- data/test/TestSuite/Scheduler/Errors/loop_detected_11.tjp +27 -0
- data/test/TestSuite/Scheduler/Errors/loop_detected_12.tjp +20 -0
- data/test/TestSuite/Scheduler/Errors/loop_detected_13.tjp +27 -0
- data/test/TestSuite/Scheduler/Errors/loop_detected_14.tjp +26 -0
- data/test/TestSuite/Scheduler/Errors/loop_detected_2.tjp +24 -0
- data/test/TestSuite/Scheduler/Errors/loop_detected_3.tjp +18 -0
- data/test/TestSuite/Scheduler/Errors/loop_detected_4.tjp +36 -0
- data/test/TestSuite/Scheduler/Errors/loop_detected_5.tjp +37 -0
- data/test/TestSuite/Scheduler/Errors/loop_detected_6.tjp +35 -0
- data/test/TestSuite/Scheduler/Errors/loop_detected_7.tjp +46 -0
- data/test/TestSuite/Scheduler/Errors/loop_detected_8.tjp +51 -0
- data/test/TestSuite/Scheduler/Errors/loop_detected_9.tjp +20 -0
- data/test/TestSuite/Scheduler/Errors/maxend.tjp +8 -0
- data/test/TestSuite/Scheduler/Errors/maxstart.tjp +8 -0
- data/test/TestSuite/Scheduler/Errors/milestone_booking.tjp +10 -0
- data/test/TestSuite/Scheduler/Errors/milestone_duration.tjp +8 -0
- data/test/TestSuite/Scheduler/Errors/milestone_start_end.tjp +8 -0
- data/test/TestSuite/Scheduler/Errors/minend.tjp +8 -0
- data/test/TestSuite/Scheduler/Errors/minstart.tjp +8 -0
- data/test/TestSuite/Scheduler/Errors/multiple_durations.tjp +11 -0
- data/test/TestSuite/Scheduler/Errors/no_tasks.tjp +6 -0
- data/test/TestSuite/Scheduler/Errors/not_scheduled.tjp +8 -0
- data/test/TestSuite/Scheduler/Errors/task_depend_child.tjp +10 -0
- data/test/TestSuite/Scheduler/Errors/task_depend_multi.tjp +13 -0
- data/test/TestSuite/Scheduler/Errors/task_depend_parent.tjp +11 -0
- data/test/TestSuite/Scheduler/Errors/task_depend_self.tjp +10 -0
- data/test/TestSuite/Scheduler/Errors/task_depend_unknown.tjp +10 -0
- data/test/TestSuite/Scheduler/Errors/task_overspecified_1.tjp +9 -0
- data/test/TestSuite/Scheduler/Errors/task_overspecified_2.tjp +14 -0
- data/test/TestSuite/Scheduler/Errors/task_overspecified_3.tjp +14 -0
- data/test/TestSuite/Scheduler/Errors/task_underspecified_1.tjp +8 -0
- data/test/TestSuite/Scheduler/Errors/task_underspecified_2.tjp +8 -0
- data/test/TestSuite/Scheduler/Errors/task_underspecified_3.tjp +9 -0
- data/test/TestSuite/Syntax/Correct/Account.tjp +53 -0
- data/test/TestSuite/Syntax/Correct/Allocate-1.tjp +24 -0
- data/test/TestSuite/Syntax/Correct/Alternative.tjp +13 -0
- data/test/TestSuite/Syntax/Correct/AutoMacros.tjp +14 -0
- data/test/TestSuite/Syntax/Correct/Booking.tjp +26 -0
- data/test/TestSuite/Syntax/Correct/Caption.tjp +33 -0
- data/test/TestSuite/Syntax/Correct/Celltext.tjp +28 -0
- data/test/TestSuite/Syntax/Correct/Comments.tjp +29 -0
- data/test/TestSuite/Syntax/Correct/Complete.tjp +16 -0
- data/test/TestSuite/Syntax/Correct/CompletedWork.tji +20 -0
- data/test/TestSuite/Syntax/Correct/CriticalPath.tjp +31 -0
- data/test/TestSuite/Syntax/Correct/Currencyformat.tjp +12 -0
- data/test/TestSuite/Syntax/Correct/CustomAttributes.tjp +14 -0
- data/test/TestSuite/Syntax/Correct/Depends1.tjp +22 -0
- data/test/TestSuite/Syntax/Correct/Durations.tjp +29 -0
- data/test/TestSuite/Syntax/Correct/Efficiency.tjp +19 -0
- data/test/TestSuite/Syntax/Correct/Export.tjp +40 -0
- data/test/TestSuite/Syntax/Correct/Flags.tjp +32 -0
- data/test/TestSuite/Syntax/Correct/Freeze.tjp +28 -0
- data/test/TestSuite/Syntax/Correct/Gap.tjp +15 -0
- data/test/TestSuite/Syntax/Correct/HtmlTaskReport.tjp +33 -0
- data/test/TestSuite/Syntax/Correct/Limits-1.tjp +71 -0
- data/test/TestSuite/Syntax/Correct/LoadUnits.tjp +31 -0
- data/test/TestSuite/Syntax/Correct/Macro-1.tjp +19 -0
- data/test/TestSuite/Syntax/Correct/Mandatory.tjp +17 -0
- data/test/TestSuite/Syntax/Correct/Milestone.tjp +12 -0
- data/test/TestSuite/Syntax/Correct/MinMax.tjp +17 -0
- data/test/TestSuite/Syntax/Correct/Numberformat.tjp +12 -0
- data/test/TestSuite/Syntax/Correct/Period.tjp +16 -0
- data/test/TestSuite/Syntax/Correct/Persistent.tjp +11 -0
- data/test/TestSuite/Syntax/Correct/Precedes1.tjp +17 -0
- data/test/TestSuite/Syntax/Correct/Priority.tjp +30 -0
- data/test/TestSuite/Syntax/Correct/Project.tjp +21 -0
- data/test/TestSuite/Syntax/Correct/ProjectIDs.tjp +23 -0
- data/test/TestSuite/Syntax/Correct/RawHTML.tjp +29 -0
- data/test/TestSuite/Syntax/Correct/Reports.tjp +54 -0
- data/test/TestSuite/Syntax/Correct/Resource.tjp +20 -0
- data/test/TestSuite/Syntax/Correct/Responsible.tjp +16 -0
- data/test/TestSuite/Syntax/Correct/Scenario.tjp +15 -0
- data/test/TestSuite/Syntax/Correct/Scheduling.tjp +26 -0
- data/test/TestSuite/Syntax/Correct/Select.tjp +27 -0
- data/test/TestSuite/Syntax/Correct/Shift.tjp +55 -0
- data/test/TestSuite/Syntax/Correct/Simple.tjp +25 -0
- data/test/TestSuite/Syntax/Correct/String.tjp +12 -0
- data/test/TestSuite/Syntax/Correct/Supplement.tjp +24 -0
- data/test/TestSuite/Syntax/Correct/TaskRoot.tjp +34 -0
- data/test/TestSuite/Syntax/Correct/TimeFrame.tjp +19 -0
- data/test/TestSuite/Syntax/Correct/Timezone.tjp +8 -0
- data/test/TestSuite/Syntax/Correct/Vacation.tjp +33 -0
- data/test/TestSuite/Syntax/Correct/csvtest +16 -0
- data/test/TestSuite/Syntax/Correct/manual2example.rb +24 -0
- data/test/TestSuite/Syntax/Correct/tutorial.tjp +485 -0
- data/test/TestSuite/Syntax/Errors/bad_include.tjp +11 -0
- data/test/TestSuite/Syntax/Errors/booking_group.tjp +14 -0
- data/test/TestSuite/Syntax/Errors/booking_milestone.tjp +13 -0
- data/test/TestSuite/Syntax/Errors/booking_no_leaf.tjp +13 -0
- data/test/TestSuite/Syntax/Errors/chargeset.tjp +14 -0
- data/test/TestSuite/Syntax/Errors/chargeset_master.tjp +15 -0
- data/test/TestSuite/Syntax/Errors/container_attribute.tjp +13 -0
- data/test/TestSuite/Syntax/Errors/cost_acct_no_top.tjp +24 -0
- data/test/TestSuite/Syntax/Errors/cost_rev_same.tjp +24 -0
- data/test/TestSuite/Syntax/Errors/date_in_range.tjp +7 -0
- data/test/TestSuite/Syntax/Errors/effort_zero.tjp +8 -0
- data/test/TestSuite/Syntax/Errors/empty.tjp +1 -0
- data/test/TestSuite/Syntax/Errors/export_bad_extn.tjp +9 -0
- data/test/TestSuite/Syntax/Errors/extend_id_cap.tjp +7 -0
- data/test/TestSuite/Syntax/Errors/interval_end_in_range.tjp +7 -0
- data/test/TestSuite/Syntax/Errors/interval_start_in_range.tjp +7 -0
- data/test/TestSuite/Syntax/Errors/leaf_resource_id_expected.tjp +12 -0
- data/test/TestSuite/Syntax/Errors/misaligned_date.tjp +7 -0
- data/test/TestSuite/Syntax/Errors/no_csv_suffix.tjp +10 -0
- data/test/TestSuite/Syntax/Errors/no_html_suffix.tjp +10 -0
- data/test/TestSuite/Syntax/Errors/operand_attribute.tjp +11 -0
- data/test/TestSuite/Syntax/Errors/operand_unkn_flag.tjp +11 -0
- data/test/TestSuite/Syntax/Errors/operand_unkn_scen.tjp +11 -0
- data/test/TestSuite/Syntax/Errors/overtime_range.tjp +13 -0
- data/test/TestSuite/Syntax/Errors/purge_no_list.tjp +8 -0
- data/test/TestSuite/Syntax/Errors/purge_unknown_id.tjp +8 -0
- data/test/TestSuite/Syntax/Errors/report_end.tjp +10 -0
- data/test/TestSuite/Syntax/Errors/report_redifinition.tjp +10 -0
- data/test/TestSuite/Syntax/Errors/report_start.tjp +10 -0
- data/test/TestSuite/Syntax/Errors/resource_exists.tjp +7 -0
- data/test/TestSuite/Syntax/Errors/resource_id_expected.tjp +8 -0
- data/test/TestSuite/Syntax/Errors/rev_acct_no_top.tjp +24 -0
- data/test/TestSuite/Syntax/Errors/scenario_exists.tjp +7 -0
- data/test/TestSuite/Syntax/Errors/shift_assignment_overlap.tjp +15 -0
- data/test/TestSuite/Syntax/Errors/shift_exists.tjp +7 -0
- data/test/TestSuite/Syntax/Errors/shift_id_expected.tjp +7 -0
- data/test/TestSuite/Syntax/Errors/sloppy_range.tjp +13 -0
- data/test/TestSuite/Syntax/Errors/sort_direction.tjp +11 -0
- data/test/TestSuite/Syntax/Errors/sort_unknown_scen.tjp +11 -0
- data/test/TestSuite/Syntax/Errors/sorting_crit_exptd1.tjp +11 -0
- data/test/TestSuite/Syntax/Errors/sorting_crit_exptd2.tjp +11 -0
- data/test/TestSuite/Syntax/Errors/sorting_wbs.tjp +11 -0
- data/test/TestSuite/Syntax/Errors/start_before_end1.tjp +7 -0
- data/test/TestSuite/Syntax/Errors/start_before_end2.tjp +6 -0
- data/test/TestSuite/Syntax/Errors/task_complete.tjp +8 -0
- data/test/TestSuite/Syntax/Errors/task_exists.tjp +7 -0
- data/test/TestSuite/Syntax/Errors/task_priority.tjp +8 -0
- data/test/TestSuite/Syntax/Errors/task_without_chargeset.tjp +9 -0
- data/test/TestSuite/Syntax/Errors/time_interval.tjp +12 -0
- data/test/TestSuite/Syntax/Errors/too_many_bangs.tjp +10 -0
- data/test/TestSuite/Syntax/Errors/undecl_flag.tjp +6 -0
- data/test/TestSuite/Syntax/Errors/unknown_projectid.tjp +7 -0
- data/test/TestSuite/Syntax/Errors/unknown_scenario_id.tjp +6 -0
- data/test/TestSuite/Syntax/Errors/unknown_scenario_idx.tjp +11 -0
- data/test/TestSuite/Syntax/Errors/unknown_task.tjp +10 -0
- data/test/all.rb +31 -0
- data/test/test_BatchProcessor.rb +54 -0
- data/test/test_CSV-Reports.rb +101 -0
- data/test/test_Limits.rb +104 -0
- data/test/test_LogicalExpression.rb +110 -0
- data/test/test_MacroTable.rb +51 -0
- data/test/test_Project.rb +57 -0
- data/test/test_PropertySet.rb +71 -0
- data/test/test_Query.rb +83 -0
- data/test/test_RealFormat.rb +83 -0
- data/test/test_RichText.rb +869 -0
- data/test/test_Scheduler.rb +42 -0
- data/test/test_ShiftAssignments.rb +77 -0
- data/test/test_Syntax.rb +41 -0
- data/test/test_TextScanner.rb +95 -0
- data/test/test_TjTime.rb +114 -0
- data/test/test_TjpExample.rb +169 -0
- data/test/test_UTF8String.rb +84 -0
- data/test/test_WorkingHours.rb +56 -0
- metadata +649 -0
|
@@ -0,0 +1,412 @@
|
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
|
4
|
+
<head>
|
|
5
|
+
<title>Class: TaskJuggler::ProjectFileParser [TaskJuggler III API documentation]</title>
|
|
6
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
7
|
+
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
|
8
|
+
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
|
9
|
+
<script type="text/javascript">
|
|
10
|
+
// <![CDATA[
|
|
11
|
+
|
|
12
|
+
function popupCode( url ) {
|
|
13
|
+
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
function toggleCode( id ) {
|
|
17
|
+
if ( document.getElementById )
|
|
18
|
+
elem = document.getElementById( id );
|
|
19
|
+
else if ( document.all )
|
|
20
|
+
elem = eval( "document.all." + id );
|
|
21
|
+
else
|
|
22
|
+
return false;
|
|
23
|
+
|
|
24
|
+
elemStyle = elem.style;
|
|
25
|
+
|
|
26
|
+
if ( elemStyle.display != "block" ) {
|
|
27
|
+
elemStyle.display = "block"
|
|
28
|
+
} else {
|
|
29
|
+
elemStyle.display = "none"
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
return true;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// Make codeblocks hidden by default
|
|
36
|
+
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }<\/style>" )
|
|
37
|
+
|
|
38
|
+
// ]]>
|
|
39
|
+
</script>
|
|
40
|
+
|
|
41
|
+
</head>
|
|
42
|
+
<body>
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
<div id="classHeader">
|
|
46
|
+
<table class="header-table">
|
|
47
|
+
<tr class="top-aligned-row">
|
|
48
|
+
<td><strong>Class</strong></td>
|
|
49
|
+
<td class="class-name-in-header">TaskJuggler::ProjectFileParser</td>
|
|
50
|
+
</tr>
|
|
51
|
+
<tr class="top-aligned-row">
|
|
52
|
+
<td><strong>In:</strong></td>
|
|
53
|
+
<td>
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
<a href="../../files/lib/ProjectFileParser_rb.html">
|
|
57
|
+
|
|
58
|
+
lib/ProjectFileParser.rb
|
|
59
|
+
|
|
60
|
+
</a>
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
<br />
|
|
64
|
+
|
|
65
|
+
</td>
|
|
66
|
+
</tr>
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
<tr class="top-aligned-row">
|
|
70
|
+
<td><strong>Parent:</strong></td>
|
|
71
|
+
<td>
|
|
72
|
+
|
|
73
|
+
<a href="TextParser.html">
|
|
74
|
+
|
|
75
|
+
TaskJuggler::TextParser
|
|
76
|
+
|
|
77
|
+
</a>
|
|
78
|
+
|
|
79
|
+
</td>
|
|
80
|
+
</tr>
|
|
81
|
+
|
|
82
|
+
</table>
|
|
83
|
+
</div>
|
|
84
|
+
<!-- banner header -->
|
|
85
|
+
|
|
86
|
+
<div id="bodyContent">
|
|
87
|
+
|
|
88
|
+
<div id="contextContent">
|
|
89
|
+
|
|
90
|
+
<div id="description">
|
|
91
|
+
<p>
|
|
92
|
+
This class specializes the <a href="TextParser.html">TextParser</a> class
|
|
93
|
+
for use with <a href="../TaskJuggler.html">TaskJuggler</a> project files
|
|
94
|
+
(TJP Files). The primary purpose is to provide functionality that make it
|
|
95
|
+
more comfortable to define the <a
|
|
96
|
+
href="../TaskJuggler.html">TaskJuggler</a> syntax in a form that is human
|
|
97
|
+
creatable but also powerful enough to define the data structures the parser
|
|
98
|
+
needs to understand the syntax.
|
|
99
|
+
</p>
|
|
100
|
+
<p>
|
|
101
|
+
By adding some additional information to the syntax rules, we can also
|
|
102
|
+
generate the complete reference manual from this rule set.
|
|
103
|
+
</p>
|
|
104
|
+
|
|
105
|
+
</div>
|
|
106
|
+
|
|
107
|
+
</div>
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
<div id="method-list">
|
|
111
|
+
<h3 class="section-bar">Methods</h3>
|
|
112
|
+
|
|
113
|
+
<div class="name-list">
|
|
114
|
+
|
|
115
|
+
<a href="#M000579">close</a>
|
|
116
|
+
|
|
117
|
+
<a href="#M000577">new</a>
|
|
118
|
+
|
|
119
|
+
<a href="#M000580">nextToken</a>
|
|
120
|
+
|
|
121
|
+
<a href="#M000578">open</a>
|
|
122
|
+
|
|
123
|
+
<a href="#M000581">returnToken</a>
|
|
124
|
+
|
|
125
|
+
<a href="#M000582">setGlobalMacros</a>
|
|
126
|
+
|
|
127
|
+
</div>
|
|
128
|
+
</div>
|
|
129
|
+
|
|
130
|
+
</div>
|
|
131
|
+
|
|
132
|
+
<!-- if includes -->
|
|
133
|
+
|
|
134
|
+
<div id="includes">
|
|
135
|
+
<h3 class="section-bar">Included Modules</h3>
|
|
136
|
+
|
|
137
|
+
<div id="includes-list">
|
|
138
|
+
|
|
139
|
+
<span class="include-name"><a href="TjpSyntaxRules.html">TjpSyntaxRules</a></span>
|
|
140
|
+
|
|
141
|
+
</div>
|
|
142
|
+
</div>
|
|
143
|
+
|
|
144
|
+
<div id="section">
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
<!-- if method_list -->
|
|
150
|
+
|
|
151
|
+
<div id="methods">
|
|
152
|
+
|
|
153
|
+
<h3 class="section-bar">Public Class methods</h3>
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
<div id="method-M000577" class="method-detail">
|
|
157
|
+
<a name="M000577"></a>
|
|
158
|
+
|
|
159
|
+
<div class="method-heading">
|
|
160
|
+
|
|
161
|
+
<a href="#M000577" class="method-signature">
|
|
162
|
+
|
|
163
|
+
<span class="method-name">new</span><span class="method-args">(messageHandler)</span>
|
|
164
|
+
|
|
165
|
+
</a>
|
|
166
|
+
|
|
167
|
+
</div>
|
|
168
|
+
|
|
169
|
+
<div class="method-description">
|
|
170
|
+
|
|
171
|
+
<p>
|
|
172
|
+
Create the parser object. <em>messageHandler</em> is a TjMessageHandler
|
|
173
|
+
that is used for error reporting.
|
|
174
|
+
</p>
|
|
175
|
+
|
|
176
|
+
<p><a class="source-toggle" href="#"
|
|
177
|
+
onclick="toggleCode('M000577-source');return false;">[Source]</a></p>
|
|
178
|
+
<div class="method-source-code" id="M000577-source">
|
|
179
|
+
<pre>
|
|
180
|
+
<span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 34</span>
|
|
181
|
+
34: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">messageHandler</span>)
|
|
182
|
+
35: <span class="ruby-keyword kw">super</span>()
|
|
183
|
+
36:
|
|
184
|
+
37: <span class="ruby-ivar">@messageHandler</span> = <span class="ruby-identifier">messageHandler</span>
|
|
185
|
+
38: <span class="ruby-comment cmt"># Define the token types that the TextScanner may return for variable</span>
|
|
186
|
+
39: <span class="ruby-comment cmt"># elements.</span>
|
|
187
|
+
40: <span class="ruby-ivar">@variables</span> = <span class="ruby-node">%w( INTEGER FLOAT DATE TIME STRING LITERAL ID ID_WITH_COLON
|
|
188
|
+
41: RELATIVE_ID ABSOLUTE_ID MACRO )</span>
|
|
189
|
+
42:
|
|
190
|
+
43: <span class="ruby-identifier">initRules</span>
|
|
191
|
+
44:
|
|
192
|
+
45: <span class="ruby-ivar">@project</span> = <span class="ruby-keyword kw">nil</span>
|
|
193
|
+
46: <span class="ruby-keyword kw">end</span>
|
|
194
|
+
</pre>
|
|
195
|
+
</div>
|
|
196
|
+
|
|
197
|
+
</div>
|
|
198
|
+
</div>
|
|
199
|
+
|
|
200
|
+
|
|
201
|
+
<h3 class="section-bar">Public Instance methods</h3>
|
|
202
|
+
|
|
203
|
+
|
|
204
|
+
<div id="method-M000579" class="method-detail">
|
|
205
|
+
<a name="M000579"></a>
|
|
206
|
+
|
|
207
|
+
<div class="method-heading">
|
|
208
|
+
|
|
209
|
+
<a href="#M000579" class="method-signature">
|
|
210
|
+
|
|
211
|
+
<span class="method-name">close</span><span class="method-args">()</span>
|
|
212
|
+
|
|
213
|
+
</a>
|
|
214
|
+
|
|
215
|
+
</div>
|
|
216
|
+
|
|
217
|
+
<div class="method-description">
|
|
218
|
+
|
|
219
|
+
<p>
|
|
220
|
+
Call this function to cleanup the parser structures after the file
|
|
221
|
+
processing has been completed.
|
|
222
|
+
</p>
|
|
223
|
+
|
|
224
|
+
<p><a class="source-toggle" href="#"
|
|
225
|
+
onclick="toggleCode('M000579-source');return false;">[Source]</a></p>
|
|
226
|
+
<div class="method-source-code" id="M000579-source">
|
|
227
|
+
<pre>
|
|
228
|
+
<span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 65</span>
|
|
229
|
+
65: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">close</span>
|
|
230
|
+
66: <span class="ruby-identifier">res</span> = <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">close</span>
|
|
231
|
+
67: <span class="ruby-identifier">res</span>
|
|
232
|
+
68: <span class="ruby-keyword kw">end</span>
|
|
233
|
+
</pre>
|
|
234
|
+
</div>
|
|
235
|
+
|
|
236
|
+
</div>
|
|
237
|
+
</div>
|
|
238
|
+
|
|
239
|
+
|
|
240
|
+
<div id="method-M000580" class="method-detail">
|
|
241
|
+
<a name="M000580"></a>
|
|
242
|
+
|
|
243
|
+
<div class="method-heading">
|
|
244
|
+
|
|
245
|
+
<a href="#M000580" class="method-signature">
|
|
246
|
+
|
|
247
|
+
<span class="method-name">nextToken</span><span class="method-args">()</span>
|
|
248
|
+
|
|
249
|
+
</a>
|
|
250
|
+
|
|
251
|
+
</div>
|
|
252
|
+
|
|
253
|
+
<div class="method-description">
|
|
254
|
+
|
|
255
|
+
<p>
|
|
256
|
+
This function will deliver the next token from the scanner. A token is a
|
|
257
|
+
two element Array that contains the ID or type of the token as well as the
|
|
258
|
+
text string of the token.
|
|
259
|
+
</p>
|
|
260
|
+
|
|
261
|
+
<p><a class="source-toggle" href="#"
|
|
262
|
+
onclick="toggleCode('M000580-source');return false;">[Source]</a></p>
|
|
263
|
+
<div class="method-source-code" id="M000580-source">
|
|
264
|
+
<pre>
|
|
265
|
+
<span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 73</span>
|
|
266
|
+
73: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">nextToken</span>
|
|
267
|
+
74: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">nextToken</span>
|
|
268
|
+
75: <span class="ruby-keyword kw">end</span>
|
|
269
|
+
</pre>
|
|
270
|
+
</div>
|
|
271
|
+
|
|
272
|
+
</div>
|
|
273
|
+
</div>
|
|
274
|
+
|
|
275
|
+
|
|
276
|
+
<div id="method-M000578" class="method-detail">
|
|
277
|
+
<a name="M000578"></a>
|
|
278
|
+
|
|
279
|
+
<div class="method-heading">
|
|
280
|
+
|
|
281
|
+
<a href="#M000578" class="method-signature">
|
|
282
|
+
|
|
283
|
+
<span class="method-name">open</span><span class="method-args">(masterFile)</span>
|
|
284
|
+
|
|
285
|
+
</a>
|
|
286
|
+
|
|
287
|
+
</div>
|
|
288
|
+
|
|
289
|
+
<div class="method-description">
|
|
290
|
+
|
|
291
|
+
<p>
|
|
292
|
+
Call this function with the master file to start processing a TJP file or a
|
|
293
|
+
set of TJP files.
|
|
294
|
+
</p>
|
|
295
|
+
|
|
296
|
+
<p><a class="source-toggle" href="#"
|
|
297
|
+
onclick="toggleCode('M000578-source');return false;">[Source]</a></p>
|
|
298
|
+
<div class="method-source-code" id="M000578-source">
|
|
299
|
+
<pre>
|
|
300
|
+
<span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 50</span>
|
|
301
|
+
50: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">open</span>(<span class="ruby-identifier">masterFile</span>)
|
|
302
|
+
51: <span class="ruby-keyword kw">begin</span>
|
|
303
|
+
52: <span class="ruby-ivar">@scanner</span> = <span class="ruby-constant">TextScanner</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">masterFile</span>, <span class="ruby-ivar">@messageHandler</span>)
|
|
304
|
+
53: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">open</span>
|
|
305
|
+
54: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">StandardError</span>
|
|
306
|
+
55: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'file_open'</span>, <span class="ruby-identifier">$!</span>.<span class="ruby-identifier">message</span>)
|
|
307
|
+
56: <span class="ruby-keyword kw">end</span>
|
|
308
|
+
57:
|
|
309
|
+
58: <span class="ruby-ivar">@property</span> = <span class="ruby-ivar">@report</span> = <span class="ruby-keyword kw">nil</span>
|
|
310
|
+
59: <span class="ruby-ivar">@scenarioIdx</span> = <span class="ruby-value">0</span>
|
|
311
|
+
60: <span class="ruby-identifier">initFileStack</span>
|
|
312
|
+
61: <span class="ruby-keyword kw">end</span>
|
|
313
|
+
</pre>
|
|
314
|
+
</div>
|
|
315
|
+
|
|
316
|
+
</div>
|
|
317
|
+
</div>
|
|
318
|
+
|
|
319
|
+
|
|
320
|
+
<div id="method-M000581" class="method-detail">
|
|
321
|
+
<a name="M000581"></a>
|
|
322
|
+
|
|
323
|
+
<div class="method-heading">
|
|
324
|
+
|
|
325
|
+
<a href="#M000581" class="method-signature">
|
|
326
|
+
|
|
327
|
+
<span class="method-name">returnToken</span><span class="method-args">(token)</span>
|
|
328
|
+
|
|
329
|
+
</a>
|
|
330
|
+
|
|
331
|
+
</div>
|
|
332
|
+
|
|
333
|
+
<div class="method-description">
|
|
334
|
+
|
|
335
|
+
<p>
|
|
336
|
+
This function can be used to return tokens. Returned tokens will be pushed
|
|
337
|
+
on a LIFO stack. To preserve the order of the original tokens the last
|
|
338
|
+
token must be returned first. This mechanism is used to implement
|
|
339
|
+
look-ahead functionality.
|
|
340
|
+
</p>
|
|
341
|
+
|
|
342
|
+
<p><a class="source-toggle" href="#"
|
|
343
|
+
onclick="toggleCode('M000581-source');return false;">[Source]</a></p>
|
|
344
|
+
<div class="method-source-code" id="M000581-source">
|
|
345
|
+
<pre>
|
|
346
|
+
<span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 81</span>
|
|
347
|
+
81: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">returnToken</span>(<span class="ruby-identifier">token</span>)
|
|
348
|
+
82: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">returnToken</span>(<span class="ruby-identifier">token</span>)
|
|
349
|
+
83: <span class="ruby-keyword kw">end</span>
|
|
350
|
+
</pre>
|
|
351
|
+
</div>
|
|
352
|
+
|
|
353
|
+
</div>
|
|
354
|
+
</div>
|
|
355
|
+
|
|
356
|
+
|
|
357
|
+
<div id="method-M000582" class="method-detail">
|
|
358
|
+
<a name="M000582"></a>
|
|
359
|
+
|
|
360
|
+
<div class="method-heading">
|
|
361
|
+
|
|
362
|
+
<a href="#M000582" class="method-signature">
|
|
363
|
+
|
|
364
|
+
<span class="method-name">setGlobalMacros</span><span class="method-args">()</span>
|
|
365
|
+
|
|
366
|
+
</a>
|
|
367
|
+
|
|
368
|
+
</div>
|
|
369
|
+
|
|
370
|
+
<div class="method-description">
|
|
371
|
+
|
|
372
|
+
<p>
|
|
373
|
+
A set of standard marcros is defined in all files as soon as the project
|
|
374
|
+
header has been read. Calling this functions gets the values from @project
|
|
375
|
+
and inserts the <a href="Macro.html">Macro</a> objects into the <a
|
|
376
|
+
href="TextScanner.html">TextScanner</a>.
|
|
377
|
+
</p>
|
|
378
|
+
|
|
379
|
+
<p><a class="source-toggle" href="#"
|
|
380
|
+
onclick="toggleCode('M000582-source');return false;">[Source]</a></p>
|
|
381
|
+
<div class="method-source-code" id="M000582-source">
|
|
382
|
+
<pre>
|
|
383
|
+
<span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 88</span>
|
|
384
|
+
88: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">setGlobalMacros</span>
|
|
385
|
+
89: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">addMacro</span>(<span class="ruby-constant">Macro</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'projectstart'</span>, <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'start'</span>].<span class="ruby-identifier">to_s</span>,
|
|
386
|
+
90: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">sourceFileInfo</span>))
|
|
387
|
+
91: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">addMacro</span>(<span class="ruby-constant">Macro</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'projectend'</span>, <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'end'</span>].<span class="ruby-identifier">to_s</span>,
|
|
388
|
+
92: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">sourceFileInfo</span>))
|
|
389
|
+
93: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">addMacro</span>(<span class="ruby-constant">Macro</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'now'</span>, <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'now'</span>].<span class="ruby-identifier">to_s</span>,
|
|
390
|
+
94: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">sourceFileInfo</span>))
|
|
391
|
+
95: <span class="ruby-keyword kw">end</span>
|
|
392
|
+
</pre>
|
|
393
|
+
</div>
|
|
394
|
+
|
|
395
|
+
</div>
|
|
396
|
+
</div>
|
|
397
|
+
|
|
398
|
+
|
|
399
|
+
|
|
400
|
+
</div>
|
|
401
|
+
|
|
402
|
+
|
|
403
|
+
|
|
404
|
+
|
|
405
|
+
</div>
|
|
406
|
+
|
|
407
|
+
<div id="validator-badges">
|
|
408
|
+
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
|
409
|
+
</div>
|
|
410
|
+
|
|
411
|
+
</body>
|
|
412
|
+
</html>
|
|
@@ -0,0 +1,597 @@
|
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
|
4
|
+
<head>
|
|
5
|
+
<title>Class: TaskJuggler::PropertyList [TaskJuggler III API documentation]</title>
|
|
6
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
7
|
+
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
|
8
|
+
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
|
9
|
+
<script type="text/javascript">
|
|
10
|
+
// <![CDATA[
|
|
11
|
+
|
|
12
|
+
function popupCode( url ) {
|
|
13
|
+
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
function toggleCode( id ) {
|
|
17
|
+
if ( document.getElementById )
|
|
18
|
+
elem = document.getElementById( id );
|
|
19
|
+
else if ( document.all )
|
|
20
|
+
elem = eval( "document.all." + id );
|
|
21
|
+
else
|
|
22
|
+
return false;
|
|
23
|
+
|
|
24
|
+
elemStyle = elem.style;
|
|
25
|
+
|
|
26
|
+
if ( elemStyle.display != "block" ) {
|
|
27
|
+
elemStyle.display = "block"
|
|
28
|
+
} else {
|
|
29
|
+
elemStyle.display = "none"
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
return true;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// Make codeblocks hidden by default
|
|
36
|
+
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }<\/style>" )
|
|
37
|
+
|
|
38
|
+
// ]]>
|
|
39
|
+
</script>
|
|
40
|
+
|
|
41
|
+
</head>
|
|
42
|
+
<body>
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
<div id="classHeader">
|
|
46
|
+
<table class="header-table">
|
|
47
|
+
<tr class="top-aligned-row">
|
|
48
|
+
<td><strong>Class</strong></td>
|
|
49
|
+
<td class="class-name-in-header">TaskJuggler::PropertyList</td>
|
|
50
|
+
</tr>
|
|
51
|
+
<tr class="top-aligned-row">
|
|
52
|
+
<td><strong>In:</strong></td>
|
|
53
|
+
<td>
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
<a href="../../files/lib/PropertyList_rb.html">
|
|
57
|
+
|
|
58
|
+
lib/PropertyList.rb
|
|
59
|
+
|
|
60
|
+
</a>
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
<br />
|
|
64
|
+
|
|
65
|
+
</td>
|
|
66
|
+
</tr>
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
<tr class="top-aligned-row">
|
|
70
|
+
<td><strong>Parent:</strong></td>
|
|
71
|
+
<td>
|
|
72
|
+
|
|
73
|
+
Array
|
|
74
|
+
|
|
75
|
+
</td>
|
|
76
|
+
</tr>
|
|
77
|
+
|
|
78
|
+
</table>
|
|
79
|
+
</div>
|
|
80
|
+
<!-- banner header -->
|
|
81
|
+
|
|
82
|
+
<div id="bodyContent">
|
|
83
|
+
|
|
84
|
+
<div id="contextContent">
|
|
85
|
+
|
|
86
|
+
<div id="description">
|
|
87
|
+
<p>
|
|
88
|
+
The <a href="PropertyList.html">PropertyList</a> is a utility class that
|
|
89
|
+
can be used to hold a list of properties. It’s derived from an Array,
|
|
90
|
+
so it can hold the properties in a well defined order. The order can be
|
|
91
|
+
determined by an arbitrary number of sorting levels. A sorting level
|
|
92
|
+
specifies an attribute who’s value should be used for sorting, a
|
|
93
|
+
scenario index if necessary and the sorting direction (up/down). All nodes
|
|
94
|
+
in the <a href="PropertyList.html">PropertyList</a> must belong to the same
|
|
95
|
+
<a href="PropertySet.html">PropertySet</a>.
|
|
96
|
+
</p>
|
|
97
|
+
|
|
98
|
+
</div>
|
|
99
|
+
|
|
100
|
+
</div>
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
<div id="method-list">
|
|
104
|
+
<h3 class="section-bar">Methods</h3>
|
|
105
|
+
|
|
106
|
+
<div class="name-list">
|
|
107
|
+
|
|
108
|
+
<a href="#M000500">addSortingCriteria</a>
|
|
109
|
+
|
|
110
|
+
<a href="#M000499">append</a>
|
|
111
|
+
|
|
112
|
+
<a href="#M000503">index</a>
|
|
113
|
+
|
|
114
|
+
<a href="#M000496">new</a>
|
|
115
|
+
|
|
116
|
+
<a href="#M000498">resetSorting</a>
|
|
117
|
+
|
|
118
|
+
<a href="#M000497">setSorting</a>
|
|
119
|
+
|
|
120
|
+
<a href="#M000502">sort!</a>
|
|
121
|
+
|
|
122
|
+
<a href="#M000501">treeMode?</a>
|
|
123
|
+
|
|
124
|
+
</div>
|
|
125
|
+
</div>
|
|
126
|
+
|
|
127
|
+
</div>
|
|
128
|
+
|
|
129
|
+
<!-- if includes -->
|
|
130
|
+
|
|
131
|
+
<div id="section">
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
<div id="attribute-list">
|
|
136
|
+
<h3 class="section-bar">Attributes</h3>
|
|
137
|
+
|
|
138
|
+
<div class="name-list">
|
|
139
|
+
<table>
|
|
140
|
+
|
|
141
|
+
<tr class="top-aligned-row context-row">
|
|
142
|
+
<td class="context-item-name">propertySet</td>
|
|
143
|
+
|
|
144
|
+
<td class="context-item-value"> [R] </td>
|
|
145
|
+
|
|
146
|
+
<td class="context-item-desc"></td>
|
|
147
|
+
</tr>
|
|
148
|
+
|
|
149
|
+
<tr class="top-aligned-row context-row">
|
|
150
|
+
<td class="context-item-name">query</td>
|
|
151
|
+
|
|
152
|
+
<td class="context-item-value"> [W] </td>
|
|
153
|
+
|
|
154
|
+
<td class="context-item-desc"></td>
|
|
155
|
+
</tr>
|
|
156
|
+
|
|
157
|
+
<tr class="top-aligned-row context-row">
|
|
158
|
+
<td class="context-item-name">query</td>
|
|
159
|
+
|
|
160
|
+
<td class="context-item-value"> [R] </td>
|
|
161
|
+
|
|
162
|
+
<td class="context-item-desc"></td>
|
|
163
|
+
</tr>
|
|
164
|
+
|
|
165
|
+
<tr class="top-aligned-row context-row">
|
|
166
|
+
<td class="context-item-name">scenarioIdx</td>
|
|
167
|
+
|
|
168
|
+
<td class="context-item-value"> [R] </td>
|
|
169
|
+
|
|
170
|
+
<td class="context-item-desc"></td>
|
|
171
|
+
</tr>
|
|
172
|
+
|
|
173
|
+
<tr class="top-aligned-row context-row">
|
|
174
|
+
<td class="context-item-name">sortingCriteria</td>
|
|
175
|
+
|
|
176
|
+
<td class="context-item-value"> [R] </td>
|
|
177
|
+
|
|
178
|
+
<td class="context-item-desc"></td>
|
|
179
|
+
</tr>
|
|
180
|
+
|
|
181
|
+
<tr class="top-aligned-row context-row">
|
|
182
|
+
<td class="context-item-name">sortingLevels</td>
|
|
183
|
+
|
|
184
|
+
<td class="context-item-value"> [R] </td>
|
|
185
|
+
|
|
186
|
+
<td class="context-item-desc"></td>
|
|
187
|
+
</tr>
|
|
188
|
+
|
|
189
|
+
<tr class="top-aligned-row context-row">
|
|
190
|
+
<td class="context-item-name">sortingUp</td>
|
|
191
|
+
|
|
192
|
+
<td class="context-item-value"> [R] </td>
|
|
193
|
+
|
|
194
|
+
<td class="context-item-desc"></td>
|
|
195
|
+
</tr>
|
|
196
|
+
|
|
197
|
+
</table>
|
|
198
|
+
</div>
|
|
199
|
+
</div>
|
|
200
|
+
|
|
201
|
+
|
|
202
|
+
<!-- if method_list -->
|
|
203
|
+
|
|
204
|
+
<div id="methods">
|
|
205
|
+
|
|
206
|
+
<h3 class="section-bar">Public Class methods</h3>
|
|
207
|
+
|
|
208
|
+
|
|
209
|
+
<div id="method-M000496" class="method-detail">
|
|
210
|
+
<a name="M000496"></a>
|
|
211
|
+
|
|
212
|
+
<div class="method-heading">
|
|
213
|
+
|
|
214
|
+
<a href="#M000496" class="method-signature">
|
|
215
|
+
|
|
216
|
+
<span class="method-name">new</span><span class="method-args">(arg)</span>
|
|
217
|
+
|
|
218
|
+
</a>
|
|
219
|
+
|
|
220
|
+
</div>
|
|
221
|
+
|
|
222
|
+
<div class="method-description">
|
|
223
|
+
|
|
224
|
+
<p>
|
|
225
|
+
A <a href="PropertyList.html">PropertyList</a> is always bound to a certain
|
|
226
|
+
<a href="PropertySet.html">PropertySet</a>. All properties in the list must
|
|
227
|
+
be of that set.
|
|
228
|
+
</p>
|
|
229
|
+
|
|
230
|
+
<p><a class="source-toggle" href="#"
|
|
231
|
+
onclick="toggleCode('M000496-source');return false;">[Source]</a></p>
|
|
232
|
+
<div class="method-source-code" id="M000496-source">
|
|
233
|
+
<pre>
|
|
234
|
+
<span class="ruby-comment cmt"># File lib/PropertyList.rb, line 30</span>
|
|
235
|
+
30: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">arg</span>)
|
|
236
|
+
31: <span class="ruby-keyword kw">super</span>(<span class="ruby-identifier">arg</span>.<span class="ruby-identifier">to_ary</span>)
|
|
237
|
+
32: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">PropertySet</span>)
|
|
238
|
+
33: <span class="ruby-comment cmt"># Create a PropertyList from the given PropertySet.</span>
|
|
239
|
+
34: <span class="ruby-ivar">@propertySet</span> = <span class="ruby-identifier">arg</span>
|
|
240
|
+
35: <span class="ruby-comment cmt"># To keep the list sorted, we may have to access Property attributes.</span>
|
|
241
|
+
36: <span class="ruby-comment cmt"># Pre-scheduling, we can only use static attributes. Post-scheduling,</span>
|
|
242
|
+
37: <span class="ruby-comment cmt"># we can include dynamic attributes as well. This query template will</span>
|
|
243
|
+
38: <span class="ruby-comment cmt"># be used to query attributes when it has been set. Otherwise the list</span>
|
|
244
|
+
39: <span class="ruby-comment cmt"># can only be sorted by static attributes.</span>
|
|
245
|
+
40: <span class="ruby-ivar">@query</span> = <span class="ruby-keyword kw">nil</span>
|
|
246
|
+
41: <span class="ruby-identifier">resetSorting</span>
|
|
247
|
+
42: <span class="ruby-identifier">addSortingCriteria</span>(<span class="ruby-value str">'seqno'</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-value">-1</span>)
|
|
248
|
+
43: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">sort!</span>
|
|
249
|
+
44: <span class="ruby-keyword kw">else</span>
|
|
250
|
+
45: <span class="ruby-comment cmt"># Create a PropertyList from a given other PropertyList.</span>
|
|
251
|
+
46: <span class="ruby-ivar">@propertySet</span> = <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">propertySet</span>
|
|
252
|
+
47: <span class="ruby-ivar">@query</span> = <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">query</span> <span class="ruby-value">? </span><span class="ruby-identifier">arg</span>.<span class="ruby-identifier">query</span>.<span class="ruby-identifier">dup</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>
|
|
253
|
+
48: <span class="ruby-ivar">@sortingLevels</span> = <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">sortingLevels</span>
|
|
254
|
+
49: <span class="ruby-ivar">@sortingCriteria</span> = <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">sortingCriteria</span>.<span class="ruby-identifier">dup</span>
|
|
255
|
+
50: <span class="ruby-ivar">@sortingUp</span> = <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">sortingUp</span>.<span class="ruby-identifier">dup</span>
|
|
256
|
+
51: <span class="ruby-ivar">@scenarioIdx</span> = <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">scenarioIdx</span>.<span class="ruby-identifier">dup</span>
|
|
257
|
+
52: <span class="ruby-keyword kw">end</span>
|
|
258
|
+
53: <span class="ruby-keyword kw">end</span>
|
|
259
|
+
</pre>
|
|
260
|
+
</div>
|
|
261
|
+
|
|
262
|
+
</div>
|
|
263
|
+
</div>
|
|
264
|
+
|
|
265
|
+
|
|
266
|
+
<h3 class="section-bar">Public Instance methods</h3>
|
|
267
|
+
|
|
268
|
+
|
|
269
|
+
<div id="method-M000500" class="method-detail">
|
|
270
|
+
<a name="M000500"></a>
|
|
271
|
+
|
|
272
|
+
<div class="method-heading">
|
|
273
|
+
|
|
274
|
+
<a href="#M000500" class="method-signature">
|
|
275
|
+
|
|
276
|
+
<span class="method-name">addSortingCriteria</span><span class="method-args">(criteria, up, scIdx)</span>
|
|
277
|
+
|
|
278
|
+
</a>
|
|
279
|
+
|
|
280
|
+
</div>
|
|
281
|
+
|
|
282
|
+
<div class="method-description">
|
|
283
|
+
|
|
284
|
+
<p>
|
|
285
|
+
Append a new sorting level to the existing levels.
|
|
286
|
+
</p>
|
|
287
|
+
|
|
288
|
+
<p><a class="source-toggle" href="#"
|
|
289
|
+
onclick="toggleCode('M000500-source');return false;">[Source]</a></p>
|
|
290
|
+
<div class="method-source-code" id="M000500-source">
|
|
291
|
+
<pre>
|
|
292
|
+
<span class="ruby-comment cmt"># File lib/PropertyList.rb, line 87</span>
|
|
293
|
+
87: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">addSortingCriteria</span>(<span class="ruby-identifier">criteria</span>, <span class="ruby-identifier">up</span>, <span class="ruby-identifier">scIdx</span>)
|
|
294
|
+
88: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@propertySet</span>.<span class="ruby-identifier">knownAttribute?</span>(<span class="ruby-identifier">criteria</span>)
|
|
295
|
+
89: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>, <span class="ruby-node">"Unknown attribute #{criteria} used for "</span> <span class="ruby-operator">+</span>
|
|
296
|
+
90: <span class="ruby-value str">'sorting criterium'</span>
|
|
297
|
+
91: <span class="ruby-keyword kw">end</span>
|
|
298
|
+
92: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">scIdx</span> <span class="ruby-operator">==</span> <span class="ruby-value">-1</span>
|
|
299
|
+
93: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@propertySet</span>.<span class="ruby-identifier">scenarioSpecific?</span>(<span class="ruby-identifier">criteria</span>)
|
|
300
|
+
94: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>, <span class="ruby-node">"Attribute #{criteria} is scenario specific"</span>
|
|
301
|
+
95: <span class="ruby-keyword kw">end</span>
|
|
302
|
+
96: <span class="ruby-keyword kw">else</span>
|
|
303
|
+
97: <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@propertySet</span>.<span class="ruby-identifier">scenarioSpecific?</span>(<span class="ruby-identifier">criteria</span>)
|
|
304
|
+
98: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>, <span class="ruby-node">"Attribute #{criteria} is not scenario specific"</span>
|
|
305
|
+
99: <span class="ruby-keyword kw">end</span>
|
|
306
|
+
100: <span class="ruby-keyword kw">end</span>
|
|
307
|
+
101: <span class="ruby-ivar">@sortingCriteria</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">criteria</span>)
|
|
308
|
+
102: <span class="ruby-ivar">@sortingUp</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">up</span>)
|
|
309
|
+
103: <span class="ruby-ivar">@scenarioIdx</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">scIdx</span>)
|
|
310
|
+
104: <span class="ruby-ivar">@sortingLevels</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
|
|
311
|
+
105: <span class="ruby-keyword kw">end</span>
|
|
312
|
+
</pre>
|
|
313
|
+
</div>
|
|
314
|
+
|
|
315
|
+
</div>
|
|
316
|
+
</div>
|
|
317
|
+
|
|
318
|
+
|
|
319
|
+
<div id="method-M000499" class="method-detail">
|
|
320
|
+
<a name="M000499"></a>
|
|
321
|
+
|
|
322
|
+
<div class="method-heading">
|
|
323
|
+
|
|
324
|
+
<a href="#M000499" class="method-signature">
|
|
325
|
+
|
|
326
|
+
<span class="method-name">append</span><span class="method-args">(list)</span>
|
|
327
|
+
|
|
328
|
+
</a>
|
|
329
|
+
|
|
330
|
+
</div>
|
|
331
|
+
|
|
332
|
+
<div class="method-description">
|
|
333
|
+
|
|
334
|
+
<p>
|
|
335
|
+
Append another Array of Tasks or a <a
|
|
336
|
+
href="PropertyList.html">PropertyList</a> to this. The list will be sorted
|
|
337
|
+
again.
|
|
338
|
+
</p>
|
|
339
|
+
|
|
340
|
+
<p><a class="source-toggle" href="#"
|
|
341
|
+
onclick="toggleCode('M000499-source');return false;">[Source]</a></p>
|
|
342
|
+
<div class="method-source-code" id="M000499-source">
|
|
343
|
+
<pre>
|
|
344
|
+
<span class="ruby-comment cmt"># File lib/PropertyList.rb, line 73</span>
|
|
345
|
+
73: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">append</span>(<span class="ruby-identifier">list</span>)
|
|
346
|
+
74: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$DEBUG</span>
|
|
347
|
+
75: <span class="ruby-identifier">list</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">node</span><span class="ruby-operator">|</span>
|
|
348
|
+
76: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">node</span>.<span class="ruby-identifier">propertySet</span> <span class="ruby-operator">==</span> <span class="ruby-ivar">@propertySet</span>
|
|
349
|
+
77: <span class="ruby-identifier">raise</span> <span class="ruby-value str">"Fatal Error: All nodes must belong to the same PropertySet."</span>
|
|
350
|
+
78: <span class="ruby-keyword kw">end</span>
|
|
351
|
+
79: <span class="ruby-keyword kw">end</span>
|
|
352
|
+
80: <span class="ruby-keyword kw">end</span>
|
|
353
|
+
81:
|
|
354
|
+
82: <span class="ruby-identifier">concat</span>(<span class="ruby-identifier">list</span>)
|
|
355
|
+
83: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">sort!</span>
|
|
356
|
+
84: <span class="ruby-keyword kw">end</span>
|
|
357
|
+
</pre>
|
|
358
|
+
</div>
|
|
359
|
+
|
|
360
|
+
</div>
|
|
361
|
+
</div>
|
|
362
|
+
|
|
363
|
+
|
|
364
|
+
<div id="method-M000503" class="method-detail">
|
|
365
|
+
<a name="M000503"></a>
|
|
366
|
+
|
|
367
|
+
<div class="method-heading">
|
|
368
|
+
|
|
369
|
+
<a href="#M000503" class="method-signature">
|
|
370
|
+
|
|
371
|
+
<span class="method-name">index</span><span class="method-args">()</span>
|
|
372
|
+
|
|
373
|
+
</a>
|
|
374
|
+
|
|
375
|
+
</div>
|
|
376
|
+
|
|
377
|
+
<div class="method-description">
|
|
378
|
+
|
|
379
|
+
<p>
|
|
380
|
+
This function sets the index attribute of all the properties in the list.
|
|
381
|
+
The index starts with 0 and increases for each property.
|
|
382
|
+
</p>
|
|
383
|
+
|
|
384
|
+
<p><a class="source-toggle" href="#"
|
|
385
|
+
onclick="toggleCode('M000503-source');return false;">[Source]</a></p>
|
|
386
|
+
<div class="method-source-code" id="M000503-source">
|
|
387
|
+
<pre>
|
|
388
|
+
<span class="ruby-comment cmt"># File lib/PropertyList.rb, line 159</span>
|
|
389
|
+
159: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">index</span>
|
|
390
|
+
160: <span class="ruby-identifier">i</span> = <span class="ruby-value">0</span>
|
|
391
|
+
161: <span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">p</span><span class="ruby-operator">|</span>
|
|
392
|
+
162: <span class="ruby-identifier">p</span>.<span class="ruby-identifier">set</span>(<span class="ruby-value str">'index'</span>, <span class="ruby-identifier">i</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>)
|
|
393
|
+
163: <span class="ruby-keyword kw">end</span>
|
|
394
|
+
164: <span class="ruby-keyword kw">end</span>
|
|
395
|
+
</pre>
|
|
396
|
+
</div>
|
|
397
|
+
|
|
398
|
+
</div>
|
|
399
|
+
</div>
|
|
400
|
+
|
|
401
|
+
|
|
402
|
+
<div id="method-M000498" class="method-detail">
|
|
403
|
+
<a name="M000498"></a>
|
|
404
|
+
|
|
405
|
+
<div class="method-heading">
|
|
406
|
+
|
|
407
|
+
<a href="#M000498" class="method-signature">
|
|
408
|
+
|
|
409
|
+
<span class="method-name">resetSorting</span><span class="method-args">()</span>
|
|
410
|
+
|
|
411
|
+
</a>
|
|
412
|
+
|
|
413
|
+
</div>
|
|
414
|
+
|
|
415
|
+
<div class="method-description">
|
|
416
|
+
|
|
417
|
+
<p>
|
|
418
|
+
Clear all sorting levels.
|
|
419
|
+
</p>
|
|
420
|
+
|
|
421
|
+
<p><a class="source-toggle" href="#"
|
|
422
|
+
onclick="toggleCode('M000498-source');return false;">[Source]</a></p>
|
|
423
|
+
<div class="method-source-code" id="M000498-source">
|
|
424
|
+
<pre>
|
|
425
|
+
<span class="ruby-comment cmt"># File lib/PropertyList.rb, line 64</span>
|
|
426
|
+
64: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">resetSorting</span>
|
|
427
|
+
65: <span class="ruby-ivar">@sortingLevels</span> = <span class="ruby-value">0</span>
|
|
428
|
+
66: <span class="ruby-ivar">@sortingCriteria</span> = []
|
|
429
|
+
67: <span class="ruby-ivar">@sortingUp</span> = []
|
|
430
|
+
68: <span class="ruby-ivar">@scenarioIdx</span> = []
|
|
431
|
+
69: <span class="ruby-keyword kw">end</span>
|
|
432
|
+
</pre>
|
|
433
|
+
</div>
|
|
434
|
+
|
|
435
|
+
</div>
|
|
436
|
+
</div>
|
|
437
|
+
|
|
438
|
+
|
|
439
|
+
<div id="method-M000497" class="method-detail">
|
|
440
|
+
<a name="M000497"></a>
|
|
441
|
+
|
|
442
|
+
<div class="method-heading">
|
|
443
|
+
|
|
444
|
+
<a href="#M000497" class="method-signature">
|
|
445
|
+
|
|
446
|
+
<span class="method-name">setSorting</span><span class="method-args">(modes)</span>
|
|
447
|
+
|
|
448
|
+
</a>
|
|
449
|
+
|
|
450
|
+
</div>
|
|
451
|
+
|
|
452
|
+
<div class="method-description">
|
|
453
|
+
|
|
454
|
+
<p>
|
|
455
|
+
Set all sorting levels as Array of triplets.
|
|
456
|
+
</p>
|
|
457
|
+
|
|
458
|
+
<p><a class="source-toggle" href="#"
|
|
459
|
+
onclick="toggleCode('M000497-source');return false;">[Source]</a></p>
|
|
460
|
+
<div class="method-source-code" id="M000497-source">
|
|
461
|
+
<pre>
|
|
462
|
+
<span class="ruby-comment cmt"># File lib/PropertyList.rb, line 56</span>
|
|
463
|
+
56: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">setSorting</span>(<span class="ruby-identifier">modes</span>)
|
|
464
|
+
57: <span class="ruby-identifier">resetSorting</span>
|
|
465
|
+
58: <span class="ruby-identifier">modes</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">mode</span><span class="ruby-operator">|</span>
|
|
466
|
+
59: <span class="ruby-identifier">addSortingCriteria</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">mode</span>)
|
|
467
|
+
60: <span class="ruby-keyword kw">end</span>
|
|
468
|
+
61: <span class="ruby-keyword kw">end</span>
|
|
469
|
+
</pre>
|
|
470
|
+
</div>
|
|
471
|
+
|
|
472
|
+
</div>
|
|
473
|
+
</div>
|
|
474
|
+
|
|
475
|
+
|
|
476
|
+
<div id="method-M000502" class="method-detail">
|
|
477
|
+
<a name="M000502"></a>
|
|
478
|
+
|
|
479
|
+
<div class="method-heading">
|
|
480
|
+
|
|
481
|
+
<a href="#M000502" class="method-signature">
|
|
482
|
+
|
|
483
|
+
<span class="method-name">sort!</span><span class="method-args">()</span>
|
|
484
|
+
|
|
485
|
+
</a>
|
|
486
|
+
|
|
487
|
+
</div>
|
|
488
|
+
|
|
489
|
+
<div class="method-description">
|
|
490
|
+
|
|
491
|
+
<p>
|
|
492
|
+
Sort the properties according to the currently defined sorting criteria.
|
|
493
|
+
</p>
|
|
494
|
+
|
|
495
|
+
<p><a class="source-toggle" href="#"
|
|
496
|
+
onclick="toggleCode('M000502-source');return false;">[Source]</a></p>
|
|
497
|
+
<div class="method-source-code" id="M000502-source">
|
|
498
|
+
<pre>
|
|
499
|
+
<span class="ruby-comment cmt"># File lib/PropertyList.rb, line 115</span>
|
|
500
|
+
115: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sort!</span>
|
|
501
|
+
116: <span class="ruby-keyword kw">super</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">a</span>, <span class="ruby-identifier">b</span><span class="ruby-operator">|</span>
|
|
502
|
+
117: <span class="ruby-identifier">res</span> = <span class="ruby-value">0</span>
|
|
503
|
+
118: <span class="ruby-ivar">@sortingLevels</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
|
|
504
|
+
119: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@query</span>
|
|
505
|
+
120: <span class="ruby-comment cmt"># In case we have a Query reference, we get the two values with this</span>
|
|
506
|
+
121: <span class="ruby-comment cmt"># query.</span>
|
|
507
|
+
122: <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">scenarioIdx</span> = <span class="ruby-ivar">@scenarioIdx</span>[<span class="ruby-identifier">i</span>] <span class="ruby-operator"><</span> <span class="ruby-value">0</span> <span class="ruby-operator">?</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-operator">:</span> <span class="ruby-ivar">@scenarioIdx</span>[<span class="ruby-identifier">i</span>]
|
|
508
|
+
123: <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">attributeId</span> = <span class="ruby-ivar">@sortingCriteria</span>[<span class="ruby-identifier">i</span>]
|
|
509
|
+
124:
|
|
510
|
+
125: <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">property</span> = <span class="ruby-identifier">a</span>
|
|
511
|
+
126: <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">process</span>
|
|
512
|
+
127: <span class="ruby-identifier">aVal</span> = <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">sortableResult</span>
|
|
513
|
+
128:
|
|
514
|
+
129: <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">property</span> = <span class="ruby-identifier">b</span>
|
|
515
|
+
130: <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">process</span>
|
|
516
|
+
131: <span class="ruby-identifier">bVal</span> = <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">sortableResult</span>
|
|
517
|
+
132: <span class="ruby-keyword kw">else</span>
|
|
518
|
+
133: <span class="ruby-comment cmt"># In case we don't have a query, we use the static mechanism.</span>
|
|
519
|
+
134: <span class="ruby-comment cmt"># If the scenario index is negative we have a non-scenario-specific</span>
|
|
520
|
+
135: <span class="ruby-comment cmt"># attribute.</span>
|
|
521
|
+
136: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@scenarioIdx</span>[<span class="ruby-identifier">i</span>] <span class="ruby-operator"><</span> <span class="ruby-value">0</span>
|
|
522
|
+
137: <span class="ruby-identifier">aVal</span> = <span class="ruby-identifier">a</span>.<span class="ruby-identifier">get</span>(<span class="ruby-ivar">@sortingCriteria</span>[<span class="ruby-identifier">i</span>])
|
|
523
|
+
138: <span class="ruby-identifier">bVal</span> = <span class="ruby-identifier">b</span>.<span class="ruby-identifier">get</span>(<span class="ruby-ivar">@sortingCriteria</span>[<span class="ruby-identifier">i</span>])
|
|
524
|
+
139: <span class="ruby-keyword kw">else</span>
|
|
525
|
+
140: <span class="ruby-identifier">aVal</span> = <span class="ruby-identifier">a</span>[<span class="ruby-ivar">@sortingCriteria</span>[<span class="ruby-identifier">i</span>], <span class="ruby-ivar">@scenarioIdx</span>[<span class="ruby-identifier">i</span>]]
|
|
526
|
+
141: <span class="ruby-identifier">bVal</span> = <span class="ruby-identifier">b</span>[<span class="ruby-ivar">@sortingCriteria</span>[<span class="ruby-identifier">i</span>], <span class="ruby-ivar">@scenarioIdx</span>[<span class="ruby-identifier">i</span>]]
|
|
527
|
+
142: <span class="ruby-keyword kw">end</span>
|
|
528
|
+
143: <span class="ruby-keyword kw">end</span>
|
|
529
|
+
144: <span class="ruby-identifier">res</span> = <span class="ruby-identifier">aVal</span> <span class="ruby-operator"><=></span> <span class="ruby-identifier">bVal</span>
|
|
530
|
+
145: <span class="ruby-comment cmt"># Invert the result if we have to sort in decreasing order.</span>
|
|
531
|
+
146: <span class="ruby-identifier">res</span> = <span class="ruby-operator">-</span><span class="ruby-identifier">res</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@sortingUp</span>[<span class="ruby-identifier">i</span>]
|
|
532
|
+
147: <span class="ruby-comment cmt"># If the two elements are equal on this compare level we try the next</span>
|
|
533
|
+
148: <span class="ruby-comment cmt"># level.</span>
|
|
534
|
+
149: <span class="ruby-keyword kw">break</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">res</span> <span class="ruby-operator">!=</span> <span class="ruby-value">0</span>
|
|
535
|
+
150: <span class="ruby-keyword kw">end</span>
|
|
536
|
+
151: <span class="ruby-identifier">res</span>
|
|
537
|
+
152: <span class="ruby-keyword kw">end</span>
|
|
538
|
+
153: <span class="ruby-comment cmt"># Update indexes.</span>
|
|
539
|
+
154: <span class="ruby-identifier">index</span>
|
|
540
|
+
155: <span class="ruby-keyword kw">end</span>
|
|
541
|
+
</pre>
|
|
542
|
+
</div>
|
|
543
|
+
|
|
544
|
+
</div>
|
|
545
|
+
</div>
|
|
546
|
+
|
|
547
|
+
|
|
548
|
+
<div id="method-M000501" class="method-detail">
|
|
549
|
+
<a name="M000501"></a>
|
|
550
|
+
|
|
551
|
+
<div class="method-heading">
|
|
552
|
+
|
|
553
|
+
<a href="#M000501" class="method-signature">
|
|
554
|
+
|
|
555
|
+
<span class="method-name">treeMode?</span><span class="method-args">()</span>
|
|
556
|
+
|
|
557
|
+
</a>
|
|
558
|
+
|
|
559
|
+
</div>
|
|
560
|
+
|
|
561
|
+
<div class="method-description">
|
|
562
|
+
|
|
563
|
+
<p>
|
|
564
|
+
If the first sorting level is ‘tree’ the breakdown structure of
|
|
565
|
+
the list is preserved. This is a somewhat special mode and this function
|
|
566
|
+
returns true if the mode is set.
|
|
567
|
+
</p>
|
|
568
|
+
|
|
569
|
+
<p><a class="source-toggle" href="#"
|
|
570
|
+
onclick="toggleCode('M000501-source');return false;">[Source]</a></p>
|
|
571
|
+
<div class="method-source-code" id="M000501-source">
|
|
572
|
+
<pre>
|
|
573
|
+
<span class="ruby-comment cmt"># File lib/PropertyList.rb, line 110</span>
|
|
574
|
+
110: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">treeMode?</span>
|
|
575
|
+
111: <span class="ruby-ivar">@sortingLevels</span> <span class="ruby-operator">></span> <span class="ruby-value">0</span> <span class="ruby-operator">&&</span> <span class="ruby-ivar">@sortingCriteria</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">'tree'</span>
|
|
576
|
+
112: <span class="ruby-keyword kw">end</span>
|
|
577
|
+
</pre>
|
|
578
|
+
</div>
|
|
579
|
+
|
|
580
|
+
</div>
|
|
581
|
+
</div>
|
|
582
|
+
|
|
583
|
+
|
|
584
|
+
|
|
585
|
+
</div>
|
|
586
|
+
|
|
587
|
+
|
|
588
|
+
|
|
589
|
+
|
|
590
|
+
</div>
|
|
591
|
+
|
|
592
|
+
<div id="validator-badges">
|
|
593
|
+
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
|
594
|
+
</div>
|
|
595
|
+
|
|
596
|
+
</body>
|
|
597
|
+
</html>
|