taskjuggler 0.0.2 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Rakefile +1 -0
- data/benchmarks/depends.tjp +2 -1
- data/benchmarks/htmltaskreport.tjp +2 -1
- data/doc/classes/AppConfig.html +124 -120
- data/doc/classes/Arguments.html +10 -6
- data/doc/classes/Object.html +229 -0
- data/doc/classes/String.html +35 -31
- data/doc/classes/TaskJuggler/Account.html +18 -18
- data/doc/classes/TaskJuggler/AccountAttribute.html +261 -0
- data/doc/classes/TaskJuggler/AccountScenario.html +12 -12
- data/doc/classes/TaskJuggler/Allocation.html +34 -30
- data/doc/classes/TaskJuggler/AllocationAttribute.html +70 -70
- data/doc/classes/TaskJuggler/AttributeBase.html +131 -147
- data/doc/classes/TaskJuggler/AttributeDefinition.html +38 -21
- data/doc/classes/TaskJuggler/BatchProcessor.html +313 -0
- data/doc/classes/TaskJuggler/Booking.html +22 -18
- data/doc/classes/TaskJuggler/BookingListAttribute.html +42 -42
- data/doc/classes/TaskJuggler/BooleanAttribute.html +40 -40
- data/doc/classes/TaskJuggler/CSVFile.html +28 -24
- data/doc/classes/TaskJuggler/Charge.html +22 -18
- data/doc/classes/TaskJuggler/ChargeListAttribute.html +30 -30
- data/doc/classes/TaskJuggler/ChargeSet.html +41 -37
- data/doc/classes/TaskJuggler/ChargeSetListAttribute.html +46 -46
- data/doc/classes/TaskJuggler/ColumnListAttribute.html +231 -0
- data/doc/classes/TaskJuggler/ColumnTable.html +23 -21
- data/doc/classes/TaskJuggler/DateAttribute.html +20 -20
- data/doc/classes/TaskJuggler/DefinitionListAttribute.html +162 -0
- data/doc/classes/TaskJuggler/DependencyListAttribute.html +46 -46
- data/doc/classes/TaskJuggler/DurationAttribute.html +30 -30
- data/doc/classes/TaskJuggler/FixnumAttribute.html +20 -20
- data/doc/classes/TaskJuggler/FlagListAttribute.html +42 -42
- data/doc/classes/TaskJuggler/FloatAttribute.html +30 -30
- data/doc/classes/TaskJuggler/FormatListAttribute.html +197 -0
- data/doc/classes/TaskJuggler/GanttChart.html +236 -207
- data/doc/classes/TaskJuggler/GanttContainer.html +46 -42
- data/doc/classes/TaskJuggler/GanttHeader.html +16 -12
- data/doc/classes/TaskJuggler/GanttHeaderScaleItem.html +16 -12
- data/doc/classes/TaskJuggler/GanttLine.html +28 -24
- data/doc/classes/TaskJuggler/GanttLoadStack.html +22 -18
- data/doc/classes/TaskJuggler/GanttMilestone.html +46 -42
- data/doc/classes/TaskJuggler/GanttRouter.html +104 -98
- data/doc/classes/TaskJuggler/GanttTaskBar.html +46 -42
- data/doc/classes/TaskJuggler/HTMLDocument.html +12 -12
- data/doc/classes/TaskJuggler/HTMLGraphics.html +12 -12
- data/doc/classes/TaskJuggler/Interval.html +126 -120
- data/doc/classes/TaskJuggler/IntervalListAttribute.html +46 -46
- data/doc/classes/TaskJuggler/JobInfo.html +284 -0
- data/doc/classes/TaskJuggler/Journal.html +197 -0
- data/doc/classes/TaskJuggler/JournalEntry.html +218 -0
- data/doc/classes/TaskJuggler/KeywordArray.html +179 -0
- data/doc/classes/TaskJuggler/KeywordDocumentation.html +445 -396
- data/doc/classes/TaskJuggler/Limits/Limit.html +34 -30
- data/doc/classes/TaskJuggler/Limits.html +68 -62
- data/doc/classes/TaskJuggler/LimitsAttribute.html +40 -40
- data/doc/classes/TaskJuggler/ListAttributeBase.html +207 -0
- data/doc/classes/TaskJuggler/Log.html +72 -68
- data/doc/classes/TaskJuggler/LogicalAttribute.html +38 -34
- data/doc/classes/TaskJuggler/LogicalExpression.html +16 -12
- data/doc/classes/TaskJuggler/LogicalExpressionAttribute.html +194 -0
- data/doc/classes/TaskJuggler/LogicalFlag.html +32 -32
- data/doc/classes/TaskJuggler/LogicalFunction.html +28 -24
- data/doc/classes/TaskJuggler/LogicalOperation.html +17 -13
- data/doc/classes/TaskJuggler/Macro.html +10 -6
- data/doc/classes/TaskJuggler/MacroParser.html +36 -36
- data/doc/classes/TaskJuggler/MacroTable.html +40 -36
- data/doc/classes/TaskJuggler/Message.html +16 -12
- data/doc/classes/TaskJuggler/MessageHandler.html +16 -12
- data/doc/classes/TaskJuggler/Navigator.html +249 -0
- data/doc/classes/TaskJuggler/OnShiftCache.html +316 -0
- data/doc/classes/TaskJuggler/Project.html +1064 -678
- data/doc/classes/TaskJuggler/ProjectFileParser.html +90 -85
- data/doc/classes/TaskJuggler/PropertyAttribute.html +194 -0
- data/doc/classes/TaskJuggler/PropertyList.html +114 -113
- data/doc/classes/TaskJuggler/PropertySet.html +355 -312
- data/doc/classes/TaskJuggler/PropertyTreeNode.html +527 -474
- data/doc/classes/TaskJuggler/Query.html +90 -85
- data/doc/classes/TaskJuggler/RTPNavigator.html +292 -0
- data/doc/classes/TaskJuggler/RTPReport.html +301 -0
- data/doc/classes/TaskJuggler/RealFormat.html +114 -57
- data/doc/classes/TaskJuggler/RealFormatAttribute.html +162 -0
- data/doc/classes/TaskJuggler/ReferenceAttribute.html +87 -20
- data/doc/classes/TaskJuggler/Report.html +82 -291
- data/doc/classes/TaskJuggler/ReportBase.html +448 -0
- data/doc/classes/TaskJuggler/ReportContext.html +243 -0
- data/doc/classes/TaskJuggler/ReportTable.html +158 -129
- data/doc/classes/TaskJuggler/ReportTableCell.html +30 -26
- data/doc/classes/TaskJuggler/ReportTableColumn.html +29 -25
- data/doc/classes/TaskJuggler/ReportTableLegend.html +28 -24
- data/doc/classes/TaskJuggler/ReportTableLine.html +34 -30
- data/doc/classes/TaskJuggler/Resource.html +12 -12
- data/doc/classes/TaskJuggler/ResourceListAttribute.html +46 -46
- data/doc/classes/TaskJuggler/ResourceListRE.html +49 -57
- data/doc/classes/TaskJuggler/ResourceScenario.html +126 -126
- data/doc/classes/TaskJuggler/RichText.html +52 -48
- data/doc/classes/TaskJuggler/RichTextAttribute.html +30 -30
- data/doc/classes/TaskJuggler/RichTextDocument.html +41 -37
- data/doc/classes/TaskJuggler/RichTextElement.html +274 -264
- data/doc/classes/TaskJuggler/RichTextException.html +13 -13
- data/doc/classes/TaskJuggler/RichTextParser.html +48 -47
- data/doc/classes/TaskJuggler/RichTextProtocolExample.html +52 -55
- data/doc/classes/TaskJuggler/RichTextProtocolHandler.html +55 -10
- data/doc/classes/TaskJuggler/RichTextScanner.html +106 -245
- data/doc/classes/TaskJuggler/RichTextSnip.html +28 -24
- data/doc/classes/TaskJuggler/RichTextSyntaxRules.html +381 -301
- data/doc/classes/TaskJuggler/Scenario.html +6 -6
- data/doc/classes/TaskJuggler/ScenarioData.html +40 -36
- data/doc/classes/TaskJuggler/ScenarioListAttribute.html +229 -0
- data/doc/classes/TaskJuggler/Scoreboard.html +70 -66
- data/doc/classes/TaskJuggler/Shift.html +18 -18
- data/doc/classes/TaskJuggler/ShiftAssignment.html +58 -54
- data/doc/classes/TaskJuggler/ShiftAssignments.html +82 -78
- data/doc/classes/TaskJuggler/ShiftAssignmentsAttribute.html +40 -40
- data/doc/classes/TaskJuggler/ShiftScenario.html +24 -24
- data/doc/classes/TaskJuggler/SortListAttribute.html +196 -0
- data/doc/classes/TaskJuggler/SourceFileInfo.html +16 -12
- data/doc/classes/TaskJuggler/StringAttribute.html +30 -30
- data/doc/classes/TaskJuggler/SymbolAttribute.html +20 -20
- data/doc/classes/TaskJuggler/SyntaxReference.html +46 -42
- data/doc/classes/TaskJuggler/TOCEntry.html +16 -12
- data/doc/classes/TaskJuggler/TableColumnDefinition.html +48 -33
- data/doc/classes/TaskJuggler/TableOfContents.html +22 -18
- data/doc/classes/TaskJuggler/TableReport.html +1036 -0
- data/doc/classes/TaskJuggler/Task.html +12 -12
- data/doc/classes/TaskJuggler/TaskDependency.html +16 -12
- data/doc/classes/TaskJuggler/TaskListAttribute.html +46 -46
- data/doc/classes/TaskJuggler/TaskListRE.html +49 -58
- data/doc/classes/TaskJuggler/TaskScenario.html +1270 -1180
- data/doc/classes/TaskJuggler/TextParser/Pattern.html +100 -96
- data/doc/classes/TaskJuggler/TextParser/Rule.html +88 -84
- data/doc/classes/TaskJuggler/TextParser/StackElement.html +16 -12
- data/doc/classes/TaskJuggler/TextParser/TextParserResultArray.html +12 -12
- data/doc/classes/TaskJuggler/TextParser/TokenDoc.html +10 -6
- data/doc/classes/TaskJuggler/TextParser.html +203 -140
- data/doc/classes/TaskJuggler/TextReport.html +364 -0
- data/doc/classes/TaskJuggler/TextScanner/BufferStreamHandle.html +70 -70
- data/doc/classes/TaskJuggler/TextScanner/FileStreamHandle.html +50 -42
- data/doc/classes/TaskJuggler/TextScanner/StreamHandle.html +16 -12
- data/doc/classes/TaskJuggler/TextScanner.html +334 -240
- data/doc/classes/TaskJuggler/TjException.html +6 -6
- data/doc/classes/TaskJuggler/TjTime.html +547 -497
- data/doc/classes/TaskJuggler/TjpExample.html +29 -25
- data/doc/classes/TaskJuggler/TjpExportRE.html +77 -97
- data/doc/classes/TaskJuggler/TjpSyntaxRules.html +3911 -3886
- data/doc/classes/TaskJuggler/UserManual.html +54 -54
- data/doc/classes/TaskJuggler/WorkingHours.html +53 -49
- data/doc/classes/TaskJuggler/WorkingHoursAttribute.html +53 -85
- data/doc/classes/TaskJuggler/XMLBlob.html +21 -21
- data/doc/classes/TaskJuggler/XMLComment.html +21 -21
- data/doc/classes/TaskJuggler/XMLDocument.html +28 -24
- data/doc/classes/TaskJuggler/XMLElement.html +70 -58
- data/doc/classes/TaskJuggler/XMLNamedText.html +11 -11
- data/doc/classes/TaskJuggler/XMLText.html +36 -36
- data/doc/classes/TaskJuggler.html +266 -183
- data/doc/files/COPYING.html +1 -1
- data/doc/files/README.html +1 -1
- data/doc/files/lib/AccountScenario_rb.html +1 -1
- data/doc/files/lib/Account_rb.html +1 -1
- data/doc/files/lib/Allocation_rb.html +1 -1
- data/doc/files/lib/AppConfig_rb.html +1 -1
- data/doc/files/lib/AttributeBase_rb.html +11 -1
- data/doc/files/lib/AttributeDefinition_rb.html +1 -1
- data/doc/files/lib/Attributes_rb.html +1 -1
- data/doc/files/lib/{LogicalFlag_rb.html → BatchProcessor_rb.html} +8 -6
- data/doc/files/lib/Booking_rb.html +1 -1
- data/doc/files/lib/ChargeSet_rb.html +1 -1
- data/doc/files/lib/Charge_rb.html +1 -1
- data/doc/files/lib/HTMLDocument_rb.html +1 -1
- data/doc/files/lib/Interval_rb.html +1 -1
- data/doc/files/lib/Journal_rb.html +106 -0
- data/doc/files/lib/KeywordArray_rb.html +106 -0
- data/doc/files/lib/KeywordDocumentation_rb.html +1 -1
- data/doc/files/lib/Limits_rb.html +1 -1
- data/doc/files/lib/Log_rb.html +1 -1
- data/doc/files/lib/LogicalExpression_rb.html +1 -3
- data/doc/files/lib/LogicalFunction_rb.html +1 -1
- data/doc/files/lib/LogicalOperation_rb.html +1 -1
- data/doc/files/lib/MacroParser_rb.html +1 -1
- data/doc/files/lib/MacroTable_rb.html +1 -1
- data/doc/files/lib/MessageHandler_rb.html +1 -1
- data/doc/files/lib/Message_rb.html +1 -1
- data/doc/files/lib/ProjectFileParser_rb.html +5 -1
- data/doc/files/lib/Project_rb.html +5 -1
- data/doc/files/lib/PropertyList_rb.html +1 -1
- data/doc/files/lib/PropertySet_rb.html +1 -1
- data/doc/files/lib/PropertyTreeNode_rb.html +1 -1
- data/doc/files/lib/Query_rb.html +1 -1
- data/doc/files/lib/RTPNavigator_rb.html +120 -0
- data/doc/files/lib/RTPReport_rb.html +118 -0
- data/doc/files/lib/RealFormat_rb.html +1 -1
- data/doc/files/lib/ResourceScenario_rb.html +1 -1
- data/doc/files/lib/Resource_rb.html +1 -1
- data/doc/files/lib/RichTextDocument_rb.html +1 -1
- data/doc/files/lib/RichTextElement_rb.html +1 -1
- data/doc/files/lib/RichTextParser_rb.html +1 -1
- data/doc/files/lib/RichTextProtocolExample_rb.html +1 -1
- data/doc/files/lib/RichTextProtocolHandler_rb.html +1 -1
- data/doc/files/lib/RichTextScanner_rb.html +1 -1
- data/doc/files/lib/RichTextSnip_rb.html +1 -1
- data/doc/files/lib/RichTextSyntaxRules_rb.html +1 -1
- data/doc/files/lib/RichText_rb.html +1 -1
- data/doc/files/lib/ScenarioData_rb.html +1 -1
- data/doc/files/lib/Scenario_rb.html +1 -1
- data/doc/files/lib/Scoreboard_rb.html +1 -1
- data/doc/files/lib/ShiftAssignments_rb.html +1 -1
- data/doc/files/lib/ShiftScenario_rb.html +1 -1
- data/doc/files/lib/Shift_rb.html +1 -1
- data/doc/files/lib/SourceFileInfo_rb.html +1 -1
- data/doc/files/lib/SyntaxReference_rb.html +1 -1
- data/doc/files/lib/TOCEntry_rb.html +1 -1
- data/doc/files/lib/TableColumnDefinition_rb.html +1 -1
- data/doc/files/lib/TableOfContents_rb.html +1 -1
- data/doc/files/lib/TaskDependency_rb.html +1 -1
- data/doc/files/lib/TaskJuggler_rb.html +1 -1
- data/doc/files/lib/TaskScenario_rb.html +1 -1
- data/doc/files/lib/Task_rb.html +1 -1
- data/doc/files/lib/TextParser/Pattern_rb.html +1 -1
- data/doc/files/lib/TextParser/Rule_rb.html +1 -1
- data/doc/files/lib/TextParser/StackElement_rb.html +1 -1
- data/doc/files/lib/TextParser/TokenDoc_rb.html +1 -1
- data/doc/files/lib/TextParser_rb.html +1 -1
- data/doc/files/lib/TextScanner_rb.html +1 -1
- data/doc/files/lib/Tj3Config_rb.html +1 -1
- data/doc/files/lib/TjException_rb.html +1 -1
- data/doc/files/lib/TjTime_rb.html +1 -1
- data/doc/files/lib/TjpExample_rb.html +1 -1
- data/doc/files/lib/TjpSyntaxRules_rb.html +1 -1
- data/doc/files/lib/UTF8String_rb.html +1 -1
- data/doc/files/lib/UserManual_rb.html +1 -1
- data/doc/files/lib/WorkingHours_rb.html +1 -1
- data/doc/files/lib/XMLDocument_rb.html +1 -1
- data/doc/files/lib/XMLElement_rb.html +1 -1
- data/doc/files/lib/deep_copy_rb.html +106 -0
- data/doc/files/lib/ms_test_rb.html +90 -0
- data/doc/files/lib/reports/CSVFile_rb.html +1 -1
- data/doc/files/lib/reports/ColumnTable_rb.html +1 -1
- data/doc/files/lib/reports/GanttChart_rb.html +1 -1
- data/doc/files/lib/reports/GanttContainer_rb.html +1 -1
- data/doc/files/lib/reports/GanttHeaderScaleItem_rb.html +1 -1
- data/doc/files/lib/reports/GanttHeader_rb.html +1 -1
- data/doc/files/lib/reports/GanttLine_rb.html +1 -1
- data/doc/files/lib/reports/GanttLoadStack_rb.html +1 -1
- data/doc/files/lib/reports/GanttMilestone_rb.html +1 -1
- data/doc/files/lib/reports/GanttRouter_rb.html +1 -1
- data/doc/files/lib/reports/GanttTaskBar_rb.html +1 -1
- data/doc/files/lib/reports/HTMLGraphics_rb.html +1 -1
- data/doc/files/lib/reports/{ReportElement_rb.html → Navigator_rb.html} +6 -8
- data/doc/files/lib/reports/ReportBase_rb.html +106 -0
- data/doc/files/lib/reports/ReportContext_rb.html +106 -0
- data/doc/files/lib/reports/ReportTableCell_rb.html +1 -1
- data/doc/files/lib/reports/ReportTableColumn_rb.html +1 -1
- data/doc/files/lib/reports/ReportTableLegend_rb.html +1 -1
- data/doc/files/lib/reports/ReportTableLine_rb.html +1 -1
- data/doc/files/lib/reports/ReportTable_rb.html +1 -1
- data/doc/files/lib/reports/Report_rb.html +8 -2
- data/doc/files/lib/reports/ResourceListRE_rb.html +2 -2
- data/doc/files/lib/reports/{ReportTableElement_rb.html → TableReport_rb.html} +7 -5
- data/doc/files/lib/reports/TaskListRE_rb.html +2 -2
- data/doc/files/lib/reports/TextReport_rb.html +116 -0
- data/doc/files/lib/reports/TjpExportRE_rb.html +2 -2
- data/doc/files/lib/taskjuggler3_rb.html +61 -56
- data/doc/files/lib/tj3man_rb.html +1 -1
- data/doc/fr_class_index.html +41 -3
- data/doc/fr_file_index.html +21 -5
- data/doc/fr_method_index.html +1069 -959
- data/examples/ContactList.html +1467 -0
- data/examples/Deliveries.html +485 -0
- data/examples/Development.html +2525 -0
- data/examples/Overview.html +747 -0
- data/examples/Resource Graph.html +616 -0
- data/examples/tutorial.tjp +63 -67
- data/lib/AttributeBase.rb +27 -31
- data/lib/AttributeDefinition.rb +12 -7
- data/lib/Attributes.rb +134 -34
- data/lib/Interval.rb +2 -0
- data/lib/Journal.rb +44 -0
- data/lib/{LogicalFlag.rb → KeywordArray.rb} +5 -13
- data/lib/KeywordDocumentation.rb +84 -47
- data/lib/Limits.rb +7 -5
- data/lib/LogicalExpression.rb +1 -1
- data/lib/LogicalOperation.rb +33 -0
- data/lib/Project.rb +313 -99
- data/lib/ProjectFileParser.rb +88 -11
- data/lib/PropertyList.rb +2 -1
- data/lib/PropertySet.rb +13 -4
- data/lib/PropertyTreeNode.rb +34 -15
- data/lib/Query.rb +2 -1
- data/lib/RTPNavigator.rb +53 -0
- data/lib/RTPReport.rb +62 -0
- data/lib/RealFormat.rb +28 -10
- data/lib/RichTextElement.rb +18 -12
- data/lib/RichTextParser.rb +1 -0
- data/lib/RichTextProtocolExample.rb +8 -11
- data/lib/RichTextProtocolHandler.rb +11 -1
- data/lib/RichTextScanner.rb +308 -164
- data/lib/RichTextSyntaxRules.rb +24 -0
- data/lib/TableColumnDefinition.rb +5 -1
- data/lib/TaskJuggler.rb +3 -2
- data/lib/TaskScenario.rb +123 -31
- data/lib/TextParser.rb +14 -3
- data/lib/TextScanner.rb +210 -34
- data/lib/Tj3Config.rb +1 -1
- data/lib/TjTime.rb +15 -0
- data/lib/TjpExample.rb +1 -1
- data/lib/TjpSyntaxRules.rb +674 -473
- data/lib/WorkingHours.rb +1 -1
- data/lib/XMLElement.rb +11 -3
- data/lib/deep_copy.rb +72 -0
- data/lib/ms_test.rb +27 -0
- data/lib/reports/ColumnTable.rb +7 -5
- data/lib/reports/GanttChart.rb +60 -34
- data/lib/reports/GanttHeader.rb +1 -1
- data/lib/reports/GanttRouter.rb +7 -5
- data/lib/reports/Navigator.rb +72 -0
- data/lib/reports/Report.rb +58 -73
- data/lib/reports/ReportBase.rb +241 -0
- data/lib/reports/ReportContext.rb +41 -0
- data/lib/reports/ReportTable.rb +7 -2
- data/lib/reports/ReportTableCell.rb +3 -3
- data/lib/reports/ResourceListRE.rb +19 -26
- data/lib/reports/{ReportTableElement.rb → TableReport.rb} +297 -97
- data/lib/reports/TaskListRE.rb +16 -24
- data/lib/reports/TextReport.rb +87 -0
- data/lib/reports/TjpExportRE.rb +55 -50
- data/lib/taskjuggler3.rb +6 -1
- data/manual/Getting_Started +57 -6
- data/manual/How_To_Contribute +2 -4
- data/manual/Intro +2 -2
- data/manual/Reporting_Bugs +9 -2
- data/manual/Rich_Text_Attributes +41 -0
- data/manual/Tutorial +219 -173
- data/tasks/test.rake +3 -0
- data/test/TestSuite/CSV-Reports/celltext.tjp +2 -1
- data/test/TestSuite/CSV-Reports/resourcereport.tjp +2 -1
- data/test/TestSuite/CSV-Reports/resourcereport_with_tasks.tjp +2 -1
- data/test/TestSuite/CSV-Reports/sortByTree.tjp +2 -1
- data/test/TestSuite/CSV-Reports/sortBy_duration.down.tjp +2 -1
- data/test/TestSuite/CSV-Reports/sortBy_effort.up.tjp +2 -1
- data/test/TestSuite/CSV-Reports/sortBy_plan.start.down.tjp +2 -1
- data/test/TestSuite/CSV-Reports/taskreport.tjp +2 -1
- data/test/TestSuite/CSV-Reports/taskreport_with_resources.tjp +2 -1
- data/test/TestSuite/HTML-Reports/depArrows.tjp +72 -0
- data/test/TestSuite/HTML-Reports/reference-export.html +187 -0
- data/test/TestSuite/HTML-Reports/reference.tjp +21 -0
- data/test/TestSuite/Scheduler/Correct/Allocate.tjp +2 -1
- data/test/TestSuite/Scheduler/Correct/AutomaticMilestones.tjp +3 -3
- data/test/TestSuite/Scheduler/Correct/Booking.tjp +3 -3
- data/test/TestSuite/Scheduler/Correct/Container-2.tjp +37 -0
- data/test/TestSuite/Scheduler/Correct/Container.tjp +40 -0
- data/test/TestSuite/Scheduler/Correct/Depends.tjp +9 -14
- data/test/TestSuite/Scheduler/Correct/Duration.tjp +2 -1
- data/test/TestSuite/Scheduler/Correct/InheritStartEnd.tjp +20 -29
- data/test/TestSuite/Scheduler/Correct/Limits.tjp +11 -13
- data/test/TestSuite/Scheduler/Correct/Optimize-1.tjp +6 -5
- data/test/TestSuite/Scheduler/Correct/Optimize-2.tjp +10 -6
- data/test/TestSuite/Scheduler/Correct/Optimize-3.tjp +9 -6
- data/test/TestSuite/Scheduler/Correct/Optimize-4.tjp +9 -6
- data/test/TestSuite/Scheduler/Correct/Optimize-5.tjp +13 -10
- data/test/TestSuite/Scheduler/Correct/Precedes.tjp +9 -14
- data/test/TestSuite/Scheduler/Correct/Shift.tjp +9 -8
- data/test/TestSuite/Scheduler/Correct/checks.tji +4 -0
- data/test/TestSuite/Scheduler/Errors/weak_end_dep.tjp +16 -0
- data/test/TestSuite/Scheduler/Errors/weak_start_dep.tjp +16 -0
- data/test/TestSuite/Syntax/Correct/Account.tjp +1 -1
- data/test/TestSuite/Syntax/Correct/AutoID.tjp +21 -0
- data/test/TestSuite/Syntax/Correct/AutoMacros.tjp +2 -1
- data/test/TestSuite/Syntax/Correct/Caption.tjp +7 -6
- data/test/TestSuite/Syntax/Correct/Celltext.tjp +7 -4
- data/test/TestSuite/Syntax/Correct/Comments.tjp +1 -1
- data/test/TestSuite/Syntax/Correct/CompletedWork.tji +11 -19
- data/test/TestSuite/Syntax/Correct/CriticalPath.tjp +4 -3
- data/test/TestSuite/Syntax/Correct/Export.tjp +3 -1
- data/test/TestSuite/Syntax/Correct/Flags.tjp +2 -1
- data/test/TestSuite/Syntax/Correct/HtmlTaskReport.tjp +2 -1
- data/test/TestSuite/Syntax/Correct/Journal.tjp +18 -0
- data/test/TestSuite/Syntax/Correct/LoadUnits.tjp +2 -1
- data/test/TestSuite/Syntax/Correct/LogicalExpression.tjp +16 -0
- data/test/TestSuite/Syntax/Correct/Period.tjp +2 -1
- data/test/TestSuite/Syntax/Correct/RawHTML.tjp +4 -2
- data/test/TestSuite/Syntax/Correct/Reports.tjp +4 -2
- data/test/TestSuite/Syntax/Correct/ResourcePrefix.tji +2 -0
- data/test/TestSuite/Syntax/Correct/ResourcePrefix.tjp +23 -0
- data/test/TestSuite/Syntax/Correct/Responsible.tjp +1 -1
- data/test/TestSuite/Syntax/Correct/Simple.tjp +1 -1
- data/test/TestSuite/Syntax/Correct/String.tjp +1 -1
- data/test/TestSuite/Syntax/Correct/TaskRoot.tjp +2 -1
- data/test/TestSuite/Syntax/Correct/tutorial.tjp +92 -70
- data/test/TestSuite/Syntax/Errors/bad_comment.tjp +7 -0
- data/test/TestSuite/Syntax/Errors/bad_include.tjp +1 -1
- data/test/TestSuite/Syntax/Errors/bad_time_zone.tjp +6 -0
- data/test/TestSuite/Syntax/Errors/bad_timing_res.tjp +5 -0
- data/test/TestSuite/Syntax/Errors/chargeset_master.tjp +1 -1
- data/test/TestSuite/Syntax/Errors/container_attribute.tjp +1 -1
- data/test/TestSuite/Syntax/Errors/cost_acct_no_top.tjp +3 -2
- data/test/TestSuite/Syntax/Errors/cost_rev_same.tjp +1 -1
- data/test/TestSuite/Syntax/Errors/eof_in_istring1.tjp +5 -0
- data/test/TestSuite/Syntax/Errors/eof_in_istring2.tjp +5 -0
- data/test/TestSuite/Syntax/Errors/eof_in_istring3.tjp +6 -0
- data/test/TestSuite/Syntax/Errors/eof_in_istring4.tjp +6 -0
- data/test/TestSuite/Syntax/Errors/eof_in_istring5.tjp +6 -0
- data/test/TestSuite/Syntax/Errors/include_recursion.tji +1 -0
- data/test/TestSuite/Syntax/Errors/include_recursion.tjp +7 -0
- data/test/TestSuite/Syntax/Errors/junk_after_cut.tjp +6 -0
- data/test/TestSuite/Syntax/Errors/navigator_exists.tjp +10 -0
- data/test/TestSuite/Syntax/Errors/operand_unkn_flag.tjp +1 -1
- data/test/TestSuite/Syntax/Errors/report_end.tjp +1 -1
- data/test/TestSuite/Syntax/Errors/report_exists.tjp +10 -0
- data/test/TestSuite/Syntax/Errors/report_start.tjp +1 -1
- data/test/TestSuite/Syntax/Errors/rev_acct_no_top.tjp +1 -1
- data/test/TestSuite/Syntax/Errors/sort_direction.tjp +1 -1
- data/test/TestSuite/Syntax/Errors/sort_unknown_scen.tjp +1 -1
- data/test/TestSuite/Syntax/Errors/sorting_crit_exptd1.tjp +1 -1
- data/test/TestSuite/Syntax/Errors/sorting_crit_exptd2.tjp +1 -1
- data/test/TestSuite/Syntax/Errors/sorting_wbs.tjp +1 -1
- data/test/TestSuite/Syntax/Errors/too_large_timing_res.tjp +7 -0
- data/test/TestSuite/Syntax/Errors/unknown_scenario_idx.tjp +1 -1
- data/test/TestSuite/Syntax/Errors/unknown_task.tjp +1 -1
- data/test/all.rb +1 -16
- data/test/test_CSV-Reports.rb +8 -5
- data/test/test_Query.rb +2 -2
- data/test/test_RichText.rb +95 -0
- data/test/test_Scheduler.rb +8 -4
- data/test/test_Syntax.rb +8 -4
- data/test/test_deep_copy.rb +83 -0
- metadata +549 -487
- data/benchmarks/UTF-8-Strings.rb +0 -58
- data/doc/classes/TaskJuggler/ReportElement.html +0 -1070
- data/doc/classes/TaskJuggler/ReportTableElement.html +0 -644
- data/lib/reports/ReportElement.rb +0 -427
- data/test/TestSuite/Syntax/Correct/csvtest +0 -16
- data/test/TestSuite/Syntax/Errors/no_csv_suffix.tjp +0 -10
- data/test/TestSuite/Syntax/Errors/no_html_suffix.tjp +0 -10
- data/test/TestSuite/Syntax/Errors/report_redifinition.tjp +0 -10
|
@@ -70,8 +70,12 @@
|
|
|
70
70
|
<td><strong>Parent:</strong></td>
|
|
71
71
|
<td>
|
|
72
72
|
|
|
73
|
+
<a href="../Object.html">
|
|
74
|
+
|
|
73
75
|
Object
|
|
74
76
|
|
|
77
|
+
</a>
|
|
78
|
+
|
|
75
79
|
</td>
|
|
76
80
|
</tr>
|
|
77
81
|
|
|
@@ -113,57 +117,67 @@ list of known Attributes.
|
|
|
113
117
|
|
|
114
118
|
<div class="name-list">
|
|
115
119
|
|
|
116
|
-
<a href="#
|
|
120
|
+
<a href="#M000794">[]</a>
|
|
121
|
+
|
|
122
|
+
<a href="#M000795">[]=</a>
|
|
123
|
+
|
|
124
|
+
<a href="#M000804">account</a>
|
|
125
|
+
|
|
126
|
+
<a href="#M000817">attributeName</a>
|
|
117
127
|
|
|
118
|
-
<a href="#
|
|
128
|
+
<a href="#M000812">convertToDailyLoad</a>
|
|
119
129
|
|
|
120
|
-
<a href="#
|
|
130
|
+
<a href="#M000797">dailyWorkingHours</a>
|
|
121
131
|
|
|
122
|
-
<a href="#
|
|
132
|
+
<a href="#M000815">dateToIdx</a>
|
|
123
133
|
|
|
124
|
-
<a href="#
|
|
134
|
+
<a href="#M000792">deep_clone</a>
|
|
125
135
|
|
|
126
|
-
<a href="#
|
|
136
|
+
<a href="#M000820">finishScenario</a>
|
|
127
137
|
|
|
128
|
-
<a href="#
|
|
138
|
+
<a href="#M000810">generateReports</a>
|
|
129
139
|
|
|
130
|
-
<a href="#
|
|
140
|
+
<a href="#M000814">idxToDate</a>
|
|
131
141
|
|
|
132
|
-
<a href="#
|
|
142
|
+
<a href="#M000811">isWorkingTime</a>
|
|
133
143
|
|
|
134
|
-
<a href="#
|
|
144
|
+
<a href="#M000816">maxScheduleGranularity</a>
|
|
135
145
|
|
|
136
|
-
<a href="#
|
|
146
|
+
<a href="#M000799">monthlyWorkingDays</a>
|
|
137
147
|
|
|
138
|
-
<a href="#
|
|
148
|
+
<a href="#M000791">new</a>
|
|
139
149
|
|
|
140
|
-
<a href="#
|
|
150
|
+
<a href="#M000819">prepareScenario</a>
|
|
141
151
|
|
|
142
|
-
<a href="#
|
|
152
|
+
<a href="#M000807">report</a>
|
|
143
153
|
|
|
144
|
-
<a href="#
|
|
154
|
+
<a href="#M000808">reportByName</a>
|
|
145
155
|
|
|
146
|
-
<a href="#
|
|
156
|
+
<a href="#M000806">resource</a>
|
|
147
157
|
|
|
148
|
-
<a href="#
|
|
158
|
+
<a href="#M000801">scenario</a>
|
|
149
159
|
|
|
150
|
-
<a href="#
|
|
160
|
+
<a href="#M000796">scenarioCount</a>
|
|
151
161
|
|
|
152
|
-
<a href="#
|
|
162
|
+
<a href="#M000802">scenarioIdx</a>
|
|
153
163
|
|
|
154
|
-
<a href="#
|
|
164
|
+
<a href="#M000809">schedule</a>
|
|
155
165
|
|
|
156
|
-
<a href="#
|
|
166
|
+
<a href="#M000821">scheduleScenario</a>
|
|
157
167
|
|
|
158
|
-
<a href="#
|
|
168
|
+
<a href="#M000813">scoreboardSize</a>
|
|
159
169
|
|
|
160
|
-
<a href="#
|
|
170
|
+
<a href="#M000793">sendMessage</a>
|
|
161
171
|
|
|
162
|
-
<a href="#
|
|
172
|
+
<a href="#M000803">shift</a>
|
|
163
173
|
|
|
164
|
-
<a href="#
|
|
174
|
+
<a href="#M000805">task</a>
|
|
165
175
|
|
|
166
|
-
<a href="#
|
|
176
|
+
<a href="#M000818">to_s</a>
|
|
177
|
+
|
|
178
|
+
<a href="#M000798">weeklyWorkingDays</a>
|
|
179
|
+
|
|
180
|
+
<a href="#M000800">yearlyWorkingDays</a>
|
|
167
181
|
|
|
168
182
|
</div>
|
|
169
183
|
</div>
|
|
@@ -198,6 +212,22 @@ list of known Attributes.
|
|
|
198
212
|
<td class="context-item-desc"></td>
|
|
199
213
|
</tr>
|
|
200
214
|
|
|
215
|
+
<tr class="top-aligned-row context-row">
|
|
216
|
+
<td class="context-item-name">outputDir</td>
|
|
217
|
+
|
|
218
|
+
<td class="context-item-value"> [RW] </td>
|
|
219
|
+
|
|
220
|
+
<td class="context-item-desc"></td>
|
|
221
|
+
</tr>
|
|
222
|
+
|
|
223
|
+
<tr class="top-aligned-row context-row">
|
|
224
|
+
<td class="context-item-name">reportContext</td>
|
|
225
|
+
|
|
226
|
+
<td class="context-item-value"> [RW] </td>
|
|
227
|
+
|
|
228
|
+
<td class="context-item-desc"></td>
|
|
229
|
+
</tr>
|
|
230
|
+
|
|
201
231
|
<tr class="top-aligned-row context-row">
|
|
202
232
|
<td class="context-item-name">reports</td>
|
|
203
233
|
|
|
@@ -250,12 +280,63 @@ list of known Attributes.
|
|
|
250
280
|
<h3 class="section-bar">Public Class methods</h3>
|
|
251
281
|
|
|
252
282
|
|
|
253
|
-
<div id="method-
|
|
254
|
-
<a name="
|
|
283
|
+
<div id="method-M000816" class="method-detail">
|
|
284
|
+
<a name="M000816"></a>
|
|
285
|
+
|
|
286
|
+
<div class="method-heading">
|
|
287
|
+
|
|
288
|
+
<a href="#M000816" class="method-signature">
|
|
289
|
+
|
|
290
|
+
<span class="method-name">maxScheduleGranularity</span><span class="method-args">()</span>
|
|
291
|
+
|
|
292
|
+
</a>
|
|
293
|
+
|
|
294
|
+
</div>
|
|
295
|
+
|
|
296
|
+
<div class="method-description">
|
|
297
|
+
|
|
298
|
+
<p>
|
|
299
|
+
<a href="../TaskJuggler.html">TaskJuggler</a> keeps all times in UTC. All
|
|
300
|
+
time values must be multiples of the used scheduling granularity. If the
|
|
301
|
+
local time zone is not hour-aligned to UTC, the maximum allowed schedule
|
|
302
|
+
granularity is reduced.
|
|
303
|
+
</p>
|
|
304
|
+
|
|
305
|
+
<p><a class="source-toggle" href="#"
|
|
306
|
+
onclick="toggleCode('M000816-source');return false;">[Source]</a></p>
|
|
307
|
+
<div class="method-source-code" id="M000816-source">
|
|
308
|
+
<pre>
|
|
309
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 669</span>
|
|
310
|
+
669: <span class="ruby-keyword kw">def</span> <span class="ruby-constant">Project</span>.<span class="ruby-identifier">maxScheduleGranularity</span>
|
|
311
|
+
670: <span class="ruby-identifier">refTime</span> = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">gm</span>(<span class="ruby-value">2000</span>, <span class="ruby-value">1</span>, <span class="ruby-value">1</span>, <span class="ruby-value">0</span>, <span class="ruby-value">0</span>, <span class="ruby-value">0</span>)
|
|
312
|
+
671: <span class="ruby-keyword kw">case</span> (<span class="ruby-identifier">min</span> = <span class="ruby-identifier">refTime</span>.<span class="ruby-identifier">getlocal</span>.<span class="ruby-identifier">min</span>)
|
|
313
|
+
672: <span class="ruby-keyword kw">when</span> <span class="ruby-value">0</span>
|
|
314
|
+
673: <span class="ruby-comment cmt"># We are hour-aligned to UTC; scheduleGranularity is 1 hour</span>
|
|
315
|
+
674: <span class="ruby-value">60</span> <span class="ruby-operator">*</span> <span class="ruby-value">60</span>
|
|
316
|
+
675: <span class="ruby-keyword kw">when</span> <span class="ruby-value">30</span>
|
|
317
|
+
676: <span class="ruby-comment cmt"># We are half-hour off from UTC; scheduleGranularity is 30 minutes</span>
|
|
318
|
+
677: <span class="ruby-value">30</span> <span class="ruby-operator">*</span> <span class="ruby-value">60</span>
|
|
319
|
+
678: <span class="ruby-keyword kw">when</span> <span class="ruby-value">15</span>, <span class="ruby-value">45</span>
|
|
320
|
+
679: <span class="ruby-comment cmt"># We are 15 or 45 minutes off from UTC; scheduleGranularity is 15</span>
|
|
321
|
+
680: <span class="ruby-comment cmt"># minutes</span>
|
|
322
|
+
681: <span class="ruby-value">15</span> <span class="ruby-operator">*</span> <span class="ruby-value">60</span>
|
|
323
|
+
682: <span class="ruby-keyword kw">else</span>
|
|
324
|
+
683: <span class="ruby-identifier">raise</span> <span class="ruby-node">"Unknown Time zone alignment #{min}"</span>
|
|
325
|
+
684: <span class="ruby-keyword kw">end</span>
|
|
326
|
+
685: <span class="ruby-keyword kw">end</span>
|
|
327
|
+
</pre>
|
|
328
|
+
</div>
|
|
329
|
+
|
|
330
|
+
</div>
|
|
331
|
+
</div>
|
|
332
|
+
|
|
333
|
+
|
|
334
|
+
<div id="method-M000791" class="method-detail">
|
|
335
|
+
<a name="M000791"></a>
|
|
255
336
|
|
|
256
337
|
<div class="method-heading">
|
|
257
338
|
|
|
258
|
-
<a href="#
|
|
339
|
+
<a href="#M000791" class="method-signature">
|
|
259
340
|
|
|
260
341
|
<span class="method-name">new</span><span class="method-args">(id, name, version, messageHandler)</span>
|
|
261
342
|
|
|
@@ -274,156 +355,313 @@ The constructor will set default values for all project attributes.
|
|
|
274
355
|
</p>
|
|
275
356
|
|
|
276
357
|
<p><a class="source-toggle" href="#"
|
|
277
|
-
onclick="toggleCode('
|
|
278
|
-
<div class="method-source-code" id="
|
|
358
|
+
onclick="toggleCode('M000791-source');return false;">[Source]</a></p>
|
|
359
|
+
<div class="method-source-code" id="M000791-source">
|
|
279
360
|
<pre>
|
|
280
|
-
<span class="ruby-comment cmt"># File lib/Project.rb, line
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
361
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 56</span>
|
|
362
|
+
56: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">name</span>, <span class="ruby-identifier">version</span>, <span class="ruby-identifier">messageHandler</span>)
|
|
363
|
+
57: <span class="ruby-ivar">@messageHandler</span> = <span class="ruby-identifier">messageHandler</span>
|
|
364
|
+
58: <span class="ruby-ivar">@attributes</span> = {
|
|
365
|
+
59: <span class="ruby-value str">'projectid'</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">id</span> <span class="ruby-operator">||</span> <span class="ruby-value str">"prj"</span>,
|
|
366
|
+
60: <span class="ruby-value str">'projectids'</span> =<span class="ruby-operator">></span> [ <span class="ruby-identifier">id</span> ],
|
|
367
|
+
61: <span class="ruby-value str">'name'</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">name</span>,
|
|
368
|
+
62: <span class="ruby-value str">'version'</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">version</span> <span class="ruby-operator">||</span> <span class="ruby-value str">"1.0"</span>,
|
|
369
|
+
63: <span class="ruby-value str">'costAccount'</span> =<span class="ruby-operator">></span> <span class="ruby-keyword kw">nil</span>,
|
|
370
|
+
64: <span class="ruby-value str">'copyright'</span> =<span class="ruby-operator">></span> <span class="ruby-keyword kw">nil</span>,
|
|
371
|
+
65: <span class="ruby-value str">'currency'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">"EUR"</span>,
|
|
372
|
+
66: <span class="ruby-value str">'currencyFormat'</span> =<span class="ruby-operator">></span> <span class="ruby-constant">RealFormat</span>.<span class="ruby-identifier">new</span>([ <span class="ruby-value str">'-'</span>, <span class="ruby-value str">''</span>, <span class="ruby-value str">''</span>, <span class="ruby-value str">','</span>, <span class="ruby-value">2</span> ]),
|
|
373
|
+
67: <span class="ruby-value str">'dailyworkinghours'</span> =<span class="ruby-operator">></span> <span class="ruby-value">8.0</span>,
|
|
374
|
+
68: <span class="ruby-value str">'end'</span> =<span class="ruby-operator">></span> <span class="ruby-keyword kw">nil</span>,
|
|
375
|
+
69: <span class="ruby-value str">'flags'</span> =<span class="ruby-operator">></span> [],
|
|
376
|
+
70: <span class="ruby-value str">'journal'</span> =<span class="ruby-operator">></span> <span class="ruby-constant">Journal</span>.<span class="ruby-identifier">new</span>,
|
|
377
|
+
71: <span class="ruby-value str">'limits'</span> =<span class="ruby-operator">></span> <span class="ruby-keyword kw">nil</span>,
|
|
378
|
+
72: <span class="ruby-value str">'loadUnit'</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">:shortauto</span>,
|
|
379
|
+
73: <span class="ruby-value str">'navigators'</span> =<span class="ruby-operator">></span> {},
|
|
380
|
+
74: <span class="ruby-value str">'now'</span> =<span class="ruby-operator">></span> <span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">now</span>.<span class="ruby-identifier">align</span>(<span class="ruby-value">3600</span>),
|
|
381
|
+
75: <span class="ruby-value str">'numberFormat'</span> =<span class="ruby-operator">></span> <span class="ruby-constant">RealFormat</span>.<span class="ruby-identifier">new</span>([ <span class="ruby-value str">'-'</span>, <span class="ruby-value str">''</span>, <span class="ruby-value str">''</span>, <span class="ruby-value str">'.'</span>, <span class="ruby-value">1</span>]),
|
|
382
|
+
76: <span class="ruby-value str">'priority'</span> =<span class="ruby-operator">></span> <span class="ruby-value">500</span>,
|
|
383
|
+
77: <span class="ruby-value str">'rate'</span> =<span class="ruby-operator">></span> <span class="ruby-value">0</span><span class="ruby-value">.0</span>,
|
|
384
|
+
78: <span class="ruby-value str">'revenueAccount'</span> =<span class="ruby-operator">></span> <span class="ruby-keyword kw">nil</span>,
|
|
385
|
+
79: <span class="ruby-value str">'scheduleGranularity'</span> =<span class="ruby-operator">></span> <span class="ruby-constant">Project</span>.<span class="ruby-identifier">maxScheduleGranularity</span>,
|
|
386
|
+
80: <span class="ruby-value str">'shortTimeFormat'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">"%H:%M"</span>,
|
|
387
|
+
81: <span class="ruby-value str">'start'</span> =<span class="ruby-operator">></span> <span class="ruby-keyword kw">nil</span>,
|
|
388
|
+
82: <span class="ruby-value str">'timeFormat'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">"%Y-%m-%d"</span>,
|
|
389
|
+
83: <span class="ruby-value str">'timezone'</span> =<span class="ruby-operator">></span> <span class="ruby-keyword kw">nil</span>,
|
|
390
|
+
84: <span class="ruby-value str">'vacations'</span> =<span class="ruby-operator">></span> [],
|
|
391
|
+
85: <span class="ruby-value str">'weekStartsMonday'</span> =<span class="ruby-operator">></span> <span class="ruby-keyword kw">true</span>,
|
|
392
|
+
86: <span class="ruby-value str">'workinghours'</span> =<span class="ruby-operator">></span> <span class="ruby-constant">WorkingHours</span>.<span class="ruby-identifier">new</span>,
|
|
393
|
+
87: <span class="ruby-value str">'yearlyworkingdays'</span> =<span class="ruby-operator">></span> <span class="ruby-value">260.714</span>
|
|
394
|
+
88: }
|
|
395
|
+
89:
|
|
396
|
+
90: <span class="ruby-comment cmt"># Before we can add any properties to this project, we need to define the</span>
|
|
397
|
+
91: <span class="ruby-comment cmt"># attributes that each of the property types will be using. In TaskJuggler</span>
|
|
398
|
+
92: <span class="ruby-comment cmt"># lingo, properties of a project are resources, tasks, accounts, shifts</span>
|
|
399
|
+
93: <span class="ruby-comment cmt"># and scenarios. Each of these properties can have lots of further</span>
|
|
400
|
+
94: <span class="ruby-comment cmt"># information attached to it. These bits of information are called</span>
|
|
401
|
+
95: <span class="ruby-comment cmt"># attributes. An attribute is defined by the AttributeDefinition class.</span>
|
|
402
|
+
96: <span class="ruby-comment cmt"># The PropertySet objects need to be fed with a list of such attribute</span>
|
|
403
|
+
97: <span class="ruby-comment cmt"># definitions to register the attributes with the properties.</span>
|
|
404
|
+
98: <span class="ruby-ivar">@scenarios</span> = <span class="ruby-constant">PropertySet</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">self</span>, <span class="ruby-keyword kw">true</span>)
|
|
405
|
+
99: <span class="ruby-identifier">attrs</span> = [
|
|
406
|
+
100: <span class="ruby-comment cmt"># ID Name Type</span>
|
|
407
|
+
101: <span class="ruby-comment cmt"># Inh. Inh.Prj Scen. Default</span>
|
|
408
|
+
102: [ <span class="ruby-value str">'enabled'</span>, <span class="ruby-value str">'Enabled'</span>, <span class="ruby-constant">BooleanAttribute</span>,
|
|
409
|
+
103: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span> ],
|
|
410
|
+
104: [ <span class="ruby-value str">'minslackrate'</span>, <span class="ruby-value str">'Min. Slack Rate'</span>, <span class="ruby-constant">FloatAttribute</span>,
|
|
411
|
+
105: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-value">1.0</span> ],
|
|
412
|
+
106: [ <span class="ruby-value str">'projection'</span>, <span class="ruby-value str">'Projection Mode'</span>, <span class="ruby-constant">BooleanAttribute</span>,
|
|
413
|
+
107: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span> ],
|
|
414
|
+
108: [ <span class="ruby-value str">'strict'</span>, <span class="ruby-value str">'Strict Bookings'</span>, <span class="ruby-constant">BooleanAttribute</span>,
|
|
415
|
+
109: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span> ]
|
|
416
|
+
110: ]
|
|
417
|
+
111: <span class="ruby-identifier">attrs</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">a</span><span class="ruby-operator">|</span> <span class="ruby-ivar">@scenarios</span>.<span class="ruby-identifier">addAttributeType</span>(<span class="ruby-constant">AttributeDefinition</span>.<span class="ruby-identifier">new</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">a</span>)) }
|
|
418
|
+
112:
|
|
419
|
+
113: <span class="ruby-ivar">@shifts</span> = <span class="ruby-constant">PropertySet</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">self</span>, <span class="ruby-keyword kw">true</span>)
|
|
420
|
+
114: <span class="ruby-identifier">attrs</span> = [
|
|
421
|
+
115: <span class="ruby-comment cmt"># ID Name Type</span>
|
|
422
|
+
116: <span class="ruby-comment cmt"># Inh. Inh.Prj Scen. Default</span>
|
|
423
|
+
117: [ <span class="ruby-value str">'index'</span>, <span class="ruby-value str">'Index'</span>, <span class="ruby-constant">FixnumAttribute</span>,
|
|
424
|
+
118: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-value">-1</span> ],
|
|
425
|
+
119: [ <span class="ruby-value str">'replace'</span>, <span class="ruby-value str">'Replace'</span>, <span class="ruby-constant">BooleanAttribute</span>,
|
|
426
|
+
120: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span> ],
|
|
427
|
+
121: [ <span class="ruby-value str">'timezone'</span>, <span class="ruby-value str">'Time Zone'</span>, <span class="ruby-constant">StringAttribute</span>,
|
|
428
|
+
122: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">nil</span> ],
|
|
429
|
+
123: [ <span class="ruby-value str">'tree'</span>, <span class="ruby-value str">'Tree Index'</span>, <span class="ruby-constant">StringAttribute</span>,
|
|
430
|
+
124: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-value str">""</span> ],
|
|
431
|
+
125: [ <span class="ruby-value str">'vacations'</span>, <span class="ruby-value str">'Vacations'</span>, <span class="ruby-constant">IntervalListAttribute</span>,
|
|
432
|
+
126: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">true</span>, [] ],
|
|
433
|
+
127: [ <span class="ruby-value str">'wbs'</span>, <span class="ruby-value str">'WBS'</span>, <span class="ruby-constant">StringAttribute</span>,
|
|
434
|
+
128: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-value str">""</span> ],
|
|
435
|
+
129: [ <span class="ruby-value str">'workinghours'</span>, <span class="ruby-value str">'Working Hours'</span>, <span class="ruby-constant">WorkingHoursAttribute</span>,
|
|
436
|
+
130: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">nil</span> ]
|
|
437
|
+
131: ]
|
|
438
|
+
132: <span class="ruby-identifier">attrs</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">a</span><span class="ruby-operator">|</span> <span class="ruby-ivar">@shifts</span>.<span class="ruby-identifier">addAttributeType</span>(<span class="ruby-constant">AttributeDefinition</span>.<span class="ruby-identifier">new</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">a</span>)) }
|
|
439
|
+
133:
|
|
440
|
+
134: <span class="ruby-ivar">@accounts</span> = <span class="ruby-constant">PropertySet</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">self</span>, <span class="ruby-keyword kw">true</span>)
|
|
441
|
+
135: <span class="ruby-identifier">attrs</span> = [
|
|
442
|
+
136: <span class="ruby-comment cmt"># ID Name Type</span>
|
|
443
|
+
137: <span class="ruby-comment cmt"># Inh. Inh.Prj Scen. Default</span>
|
|
444
|
+
138: [ <span class="ruby-value str">'index'</span>, <span class="ruby-value str">'Index'</span>, <span class="ruby-constant">FixnumAttribute</span>,
|
|
445
|
+
139: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-value">-1</span> ],
|
|
446
|
+
140: [ <span class="ruby-value str">'tree'</span>, <span class="ruby-value str">'Tree Index'</span>, <span class="ruby-constant">StringAttribute</span>,
|
|
447
|
+
141: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-value str">""</span> ],
|
|
448
|
+
142: [ <span class="ruby-value str">'wbs'</span>, <span class="ruby-value str">'WBS'</span>, <span class="ruby-constant">StringAttribute</span>,
|
|
449
|
+
143: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-value str">""</span> ]
|
|
450
|
+
144: ]
|
|
451
|
+
145: <span class="ruby-identifier">attrs</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">a</span><span class="ruby-operator">|</span> <span class="ruby-ivar">@accounts</span>.<span class="ruby-identifier">addAttributeType</span>(<span class="ruby-constant">AttributeDefinition</span>.<span class="ruby-identifier">new</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">a</span>)) }
|
|
452
|
+
146:
|
|
453
|
+
147: <span class="ruby-ivar">@resources</span> = <span class="ruby-constant">PropertySet</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">self</span>, <span class="ruby-keyword kw">true</span>)
|
|
454
|
+
148: <span class="ruby-identifier">attrs</span> = [
|
|
455
|
+
149: <span class="ruby-comment cmt"># ID Name Type</span>
|
|
456
|
+
150: <span class="ruby-comment cmt"># Inh. Inh.Prj Scen. Default</span>
|
|
457
|
+
151: [ <span class="ruby-value str">'alloctdeffort'</span>, <span class="ruby-value str">'Alloctd. Effort'</span>, <span class="ruby-constant">FloatAttribute</span>,
|
|
458
|
+
152: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-value">0</span><span class="ruby-value">.0</span> ],
|
|
459
|
+
153: [ <span class="ruby-value str">'criticalness'</span>, <span class="ruby-value str">'Criticalness'</span>, <span class="ruby-constant">FloatAttribute</span>,
|
|
460
|
+
154: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-value">0</span><span class="ruby-value">.0</span> ],
|
|
461
|
+
155: [ <span class="ruby-value str">'duties'</span>, <span class="ruby-value str">'Duties'</span>, <span class="ruby-constant">TaskListAttribute</span>,
|
|
462
|
+
156: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, [] ],
|
|
463
|
+
157: [ <span class="ruby-value str">'efficiency'</span>,<span class="ruby-value str">'Efficiency'</span>, <span class="ruby-constant">FloatAttribute</span>,
|
|
464
|
+
158: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-value">1.0</span> ],
|
|
465
|
+
159: [ <span class="ruby-value str">'effort'</span>, <span class="ruby-value str">'Total Effort'</span>, <span class="ruby-constant">FixnumAttribute</span>,
|
|
466
|
+
160: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-value">0</span> ],
|
|
467
|
+
161: [ <span class="ruby-value str">'email'</span>, <span class="ruby-value str">'Email'</span>, <span class="ruby-constant">StringAttribute</span>,
|
|
468
|
+
162: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">nil</span> ],
|
|
469
|
+
163: [ <span class="ruby-value str">'flags'</span>, <span class="ruby-value str">'Flags'</span>, <span class="ruby-constant">FlagListAttribute</span>,
|
|
470
|
+
164: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, [] ],
|
|
471
|
+
165: [ <span class="ruby-value str">'fte'</span>, <span class="ruby-value str">'FTE'</span>, <span class="ruby-constant">FloatAttribute</span>,
|
|
472
|
+
166: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-value">1.0</span> ],
|
|
473
|
+
167: [ <span class="ruby-value str">'headcount'</span>, <span class="ruby-value str">'Headcount'</span>, <span class="ruby-constant">FixnumAttribute</span>,
|
|
474
|
+
168: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-value">1</span> ],
|
|
475
|
+
169: [ <span class="ruby-value str">'index'</span>, <span class="ruby-value str">'Index'</span>, <span class="ruby-constant">FixnumAttribute</span>,
|
|
476
|
+
170: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-value">-1</span> ],
|
|
477
|
+
171: [ <span class="ruby-value str">'limits'</span>, <span class="ruby-value str">'Limits'</span>, <span class="ruby-constant">LimitsAttribute</span>,
|
|
478
|
+
172: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">nil</span> ],
|
|
479
|
+
173: [ <span class="ruby-value str">'rate'</span>, <span class="ruby-value str">'Rate'</span>, <span class="ruby-constant">FloatAttribute</span>,
|
|
480
|
+
174: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-value">0</span><span class="ruby-value">.0</span> ],
|
|
481
|
+
175: [ <span class="ruby-value str">'shifts'</span>, <span class="ruby-value str">'Shifts'</span>, <span class="ruby-constant">ShiftAssignmentsAttribute</span>,
|
|
482
|
+
176: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">nil</span> ],
|
|
483
|
+
177: [ <span class="ruby-value str">'timezone'</span>, <span class="ruby-value str">'Time Zone'</span>, <span class="ruby-constant">StringAttribute</span>,
|
|
484
|
+
178: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">nil</span> ],
|
|
485
|
+
179: [ <span class="ruby-value str">'tree'</span>, <span class="ruby-value str">'Tree Index'</span>, <span class="ruby-constant">StringAttribute</span>,
|
|
486
|
+
180: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-value str">""</span> ],
|
|
487
|
+
181: [ <span class="ruby-value str">'vacations'</span>, <span class="ruby-value str">'Vacations'</span>, <span class="ruby-constant">IntervalListAttribute</span>,
|
|
488
|
+
182: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">true</span>, [] ],
|
|
489
|
+
183: [ <span class="ruby-value str">'wbs'</span>, <span class="ruby-value str">'WBS'</span>, <span class="ruby-constant">StringAttribute</span>,
|
|
490
|
+
184: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-value str">""</span> ],
|
|
491
|
+
185: [ <span class="ruby-value str">'workinghours'</span>, <span class="ruby-value str">'Working Hours'</span>, <span class="ruby-constant">WorkingHoursAttribute</span>,
|
|
492
|
+
186: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">nil</span> ]
|
|
493
|
+
187: ]
|
|
494
|
+
188: <span class="ruby-identifier">attrs</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">a</span><span class="ruby-operator">|</span> <span class="ruby-ivar">@resources</span>.<span class="ruby-identifier">addAttributeType</span>(<span class="ruby-constant">AttributeDefinition</span>.<span class="ruby-identifier">new</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">a</span>)) }
|
|
495
|
+
189:
|
|
496
|
+
190: <span class="ruby-ivar">@tasks</span> = <span class="ruby-constant">PropertySet</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">self</span>, <span class="ruby-keyword kw">false</span>)
|
|
497
|
+
191: <span class="ruby-identifier">attrs</span> = [
|
|
498
|
+
192: <span class="ruby-comment cmt"># ID Name Type</span>
|
|
499
|
+
193: <span class="ruby-comment cmt"># Inh. Inh.Prj Scen. Default</span>
|
|
500
|
+
194: [ <span class="ruby-value str">'allocate'</span>, <span class="ruby-value str">'Allocations'</span>, <span class="ruby-constant">AllocationAttribute</span>,
|
|
501
|
+
195: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, [] ],
|
|
502
|
+
196: [ <span class="ruby-value str">'assignedresources'</span>, <span class="ruby-value str">'Assigned Resources'</span>, <span class="ruby-constant">ResourceListAttribute</span>,
|
|
503
|
+
197: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, [] ],
|
|
504
|
+
198: [ <span class="ruby-value str">'booking'</span>, <span class="ruby-value str">'Bookings'</span>, <span class="ruby-constant">BookingListAttribute</span>,
|
|
505
|
+
199: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, [] ],
|
|
506
|
+
200: [ <span class="ruby-value str">'charge'</span>, <span class="ruby-value str">'Charges'</span>, <span class="ruby-constant">ChargeListAttribute</span>,
|
|
507
|
+
201: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, [] ],
|
|
508
|
+
202: [ <span class="ruby-value str">'chargeset'</span>, <span class="ruby-value str">'Charge Sets'</span>, <span class="ruby-constant">ChargeSetListAttribute</span>,
|
|
509
|
+
203: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, [] ],
|
|
510
|
+
204: [ <span class="ruby-value str">'complete'</span>, <span class="ruby-value str">'Completion'</span>, <span class="ruby-constant">FloatAttribute</span>,
|
|
511
|
+
205: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">nil</span> ],
|
|
512
|
+
206: [ <span class="ruby-value str">'criticalness'</span>, <span class="ruby-value str">'Criticalness'</span>, <span class="ruby-constant">FloatAttribute</span>,
|
|
513
|
+
207: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-value">0</span><span class="ruby-value">.0</span> ],
|
|
514
|
+
208: [ <span class="ruby-value str">'depends'</span>, <span class="ruby-value str">'Preceding tasks'</span>, <span class="ruby-constant">DependencyListAttribute</span>,
|
|
515
|
+
209: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, [] ],
|
|
516
|
+
210: [ <span class="ruby-value str">'duration'</span>, <span class="ruby-value str">'Duration'</span>, <span class="ruby-constant">DurationAttribute</span>,
|
|
517
|
+
211: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-value">0</span> ],
|
|
518
|
+
212: [ <span class="ruby-value str">'effort'</span>, <span class="ruby-value str">'Effort'</span>, <span class="ruby-constant">DurationAttribute</span>,
|
|
519
|
+
213: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-value">0</span> ],
|
|
520
|
+
214: [ <span class="ruby-value str">'end'</span>, <span class="ruby-value str">'End'</span>, <span class="ruby-constant">DateAttribute</span>,
|
|
521
|
+
215: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">nil</span> ],
|
|
522
|
+
216: [ <span class="ruby-value str">'endpreds'</span>, <span class="ruby-value str">'End Preds.'</span>, <span class="ruby-constant">TaskListAttribute</span>,
|
|
523
|
+
217: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, [] ],
|
|
524
|
+
218: [ <span class="ruby-value str">'endsuccs'</span>, <span class="ruby-value str">'End Succs.'</span>, <span class="ruby-constant">TaskListAttribute</span>,
|
|
525
|
+
219: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, [] ],
|
|
526
|
+
220: [ <span class="ruby-value str">'flags'</span>, <span class="ruby-value str">'Flags'</span>, <span class="ruby-constant">FlagListAttribute</span>,
|
|
527
|
+
221: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, [] ],
|
|
528
|
+
222: [ <span class="ruby-value str">'forward'</span>, <span class="ruby-value str">'Scheduling'</span>, <span class="ruby-constant">BooleanAttribute</span>,
|
|
529
|
+
223: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">true</span> ],
|
|
530
|
+
224: [ <span class="ruby-value str">'index'</span>, <span class="ruby-value str">'Index'</span>, <span class="ruby-constant">FixnumAttribute</span>,
|
|
531
|
+
225: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-value">-1</span> ],
|
|
532
|
+
226: [ <span class="ruby-value str">'length'</span>, <span class="ruby-value str">'Length'</span>, <span class="ruby-constant">DurationAttribute</span>,
|
|
533
|
+
227: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-value">0</span> ],
|
|
534
|
+
228: [ <span class="ruby-value str">'limits'</span>, <span class="ruby-value str">'Limits'</span>, <span class="ruby-constant">LimitsAttribute</span>,
|
|
535
|
+
229: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">nil</span> ],
|
|
536
|
+
230: [ <span class="ruby-value str">'maxend'</span>, <span class="ruby-value str">'Max. End'</span>, <span class="ruby-constant">DateAttribute</span>,
|
|
537
|
+
231: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">nil</span> ],
|
|
538
|
+
232: [ <span class="ruby-value str">'maxstart'</span>, <span class="ruby-value str">'Max. Start'</span>, <span class="ruby-constant">DateAttribute</span>,
|
|
539
|
+
233: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">nil</span> ],
|
|
540
|
+
234: [ <span class="ruby-value str">'milestone'</span>, <span class="ruby-value str">'Milestone'</span>, <span class="ruby-constant">BooleanAttribute</span>,
|
|
541
|
+
235: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span> ],
|
|
542
|
+
236: [ <span class="ruby-value str">'minend'</span>, <span class="ruby-value str">'Min. End'</span>, <span class="ruby-constant">DateAttribute</span>,
|
|
543
|
+
237: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">nil</span> ],
|
|
544
|
+
238: [ <span class="ruby-value str">'minstart'</span>, <span class="ruby-value str">'Min. Start'</span>, <span class="ruby-constant">DateAttribute</span>,
|
|
545
|
+
239: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">nil</span> ],
|
|
546
|
+
240: [ <span class="ruby-value str">'note'</span>, <span class="ruby-value str">'Note'</span>, <span class="ruby-constant">RichTextAttribute</span>,
|
|
547
|
+
241: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">nil</span> ],
|
|
548
|
+
242: [ <span class="ruby-value str">'pathcriticalness'</span>, <span class="ruby-value str">'Path Criticalness'</span>, <span class="ruby-constant">FloatAttribute</span>,
|
|
549
|
+
243: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-value">0</span><span class="ruby-value">.0</span> ],
|
|
550
|
+
244: [ <span class="ruby-value str">'precedes'</span>, <span class="ruby-value str">'Following tasks'</span>, <span class="ruby-constant">DependencyListAttribute</span>,
|
|
551
|
+
245: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, [] ],
|
|
552
|
+
246: [ <span class="ruby-value str">'priority'</span>, <span class="ruby-value str">'Priority'</span>, <span class="ruby-constant">FixnumAttribute</span>,
|
|
553
|
+
247: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-value">500</span> ],
|
|
554
|
+
248: [ <span class="ruby-value str">'projectid'</span>, <span class="ruby-value str">'Project ID'</span>, <span class="ruby-constant">SymbolAttribute</span>,
|
|
555
|
+
249: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">nil</span> ],
|
|
556
|
+
250: [ <span class="ruby-value str">'responsible'</span>, <span class="ruby-value str">'Responsible'</span>, <span class="ruby-constant">ResourceListAttribute</span>,
|
|
557
|
+
251: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, [] ],
|
|
558
|
+
252: [ <span class="ruby-value str">'scheduled'</span>, <span class="ruby-value str">'Scheduled'</span>, <span class="ruby-constant">BooleanAttribute</span>,
|
|
559
|
+
253: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span> ],
|
|
560
|
+
254: [ <span class="ruby-value str">'shifts'</span>, <span class="ruby-value str">'Shifts'</span>, <span class="ruby-constant">ShiftAssignmentsAttribute</span>,
|
|
561
|
+
255: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">nil</span> ],
|
|
562
|
+
256: [ <span class="ruby-value str">'start'</span>, <span class="ruby-value str">'Start'</span>, <span class="ruby-constant">DateAttribute</span>,
|
|
563
|
+
257: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">nil</span> ],
|
|
564
|
+
258: [ <span class="ruby-value str">'startpreds'</span>, <span class="ruby-value str">'Start Preds.'</span>, <span class="ruby-constant">TaskListAttribute</span>,
|
|
565
|
+
259: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, [] ],
|
|
566
|
+
260: [ <span class="ruby-value str">'startsuccs'</span>, <span class="ruby-value str">'Start Succs.'</span>, <span class="ruby-constant">TaskListAttribute</span>,
|
|
567
|
+
261: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, [] ],
|
|
568
|
+
262: [ <span class="ruby-value str">'tree'</span>, <span class="ruby-value str">'Tree Index'</span>, <span class="ruby-constant">StringAttribute</span>,
|
|
569
|
+
263: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-value str">""</span> ],
|
|
570
|
+
264: [ <span class="ruby-value str">'wbs'</span>, <span class="ruby-value str">'WBS'</span>, <span class="ruby-constant">StringAttribute</span>,
|
|
571
|
+
265: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-value str">""</span> ]
|
|
572
|
+
266: ]
|
|
573
|
+
267: <span class="ruby-identifier">attrs</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">a</span><span class="ruby-operator">|</span> <span class="ruby-ivar">@tasks</span>.<span class="ruby-identifier">addAttributeType</span>(<span class="ruby-constant">AttributeDefinition</span>.<span class="ruby-identifier">new</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">a</span>)) }
|
|
574
|
+
268:
|
|
575
|
+
269: <span class="ruby-ivar">@reports</span> = <span class="ruby-constant">PropertySet</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">self</span>, <span class="ruby-keyword kw">false</span>)
|
|
576
|
+
270: <span class="ruby-identifier">attrs</span> = [
|
|
577
|
+
271: <span class="ruby-comment cmt"># ID Name Type</span>
|
|
578
|
+
272: <span class="ruby-comment cmt"># Inh. Inh.Prj Scen. Default</span>
|
|
579
|
+
273: [ <span class="ruby-value str">'caption'</span>, <span class="ruby-value str">'Caption'</span>, <span class="ruby-constant">RichTextAttribute</span>,
|
|
580
|
+
274: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">nil</span> ],
|
|
581
|
+
275: [ <span class="ruby-value str">'center'</span>, <span class="ruby-value str">'Center'</span>, <span class="ruby-constant">RichTextAttribute</span>,
|
|
582
|
+
276: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">nil</span> ],
|
|
583
|
+
277: [ <span class="ruby-value str">'columns'</span>, <span class="ruby-value str">'Columns'</span>, <span class="ruby-constant">ColumnListAttribute</span>,
|
|
584
|
+
278: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, [] ],
|
|
585
|
+
279: [ <span class="ruby-value str">'costAccount'</span>, <span class="ruby-value str">'Cost Account'</span>, <span class="ruby-constant">AccountAttribute</span>,
|
|
586
|
+
280: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">nil</span> ],
|
|
587
|
+
281: [ <span class="ruby-value str">'currencyFormat'</span>, <span class="ruby-value str">'Currency Format'</span>, <span class="ruby-constant">RealFormatAttribute</span>,
|
|
588
|
+
282: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">nil</span> ],
|
|
589
|
+
283: [ <span class="ruby-value str">'definitions'</span>, <span class="ruby-value str">'Definitions'</span>, <span class="ruby-constant">DefinitionListAttribute</span>,
|
|
590
|
+
284: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-constant">KeywordArray</span>.<span class="ruby-identifier">new</span>([ <span class="ruby-value str">'*'</span> ]) ],
|
|
591
|
+
285: [ <span class="ruby-value str">'end'</span>, <span class="ruby-value str">'End'</span>, <span class="ruby-constant">DateAttribute</span>,
|
|
592
|
+
286: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">nil</span> ],
|
|
593
|
+
287: [ <span class="ruby-value str">'epilog'</span>, <span class="ruby-value str">'Epilog'</span>, <span class="ruby-constant">RichTextAttribute</span>,
|
|
594
|
+
288: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">nil</span> ],
|
|
595
|
+
289: [ <span class="ruby-value str">'footer'</span>, <span class="ruby-value str">'Footer'</span>, <span class="ruby-constant">RichTextAttribute</span>,
|
|
596
|
+
290: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">nil</span> ],
|
|
597
|
+
291: [ <span class="ruby-value str">'formats'</span>, <span class="ruby-value str">'Formats'</span>, <span class="ruby-constant">FormatListAttribute</span>,
|
|
598
|
+
292: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, [] ],
|
|
599
|
+
293: [ <span class="ruby-value str">'ganttBars'</span>, <span class="ruby-value str">'Gantt Bars'</span>, <span class="ruby-constant">BooleanAttribute</span>,
|
|
600
|
+
294: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span> ],
|
|
601
|
+
295: [ <span class="ruby-value str">'header'</span>, <span class="ruby-value str">'Header'</span>, <span class="ruby-constant">RichTextAttribute</span>,
|
|
602
|
+
296: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">nil</span> ],
|
|
603
|
+
297: [ <span class="ruby-value str">'headline'</span>, <span class="ruby-value str">'Headline'</span>, <span class="ruby-constant">StringAttribute</span>,
|
|
604
|
+
298: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-value str">''</span> ],
|
|
605
|
+
299: [ <span class="ruby-value str">'hideResource'</span>, <span class="ruby-value str">'Hide Resource'</span>, <span class="ruby-constant">LogicalExpressionAttribute</span>,
|
|
606
|
+
300: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">nil</span> ],
|
|
607
|
+
301: [ <span class="ruby-value str">'hideTask'</span>, <span class="ruby-value str">'Hide Task'</span>, <span class="ruby-constant">LogicalExpressionAttribute</span>,
|
|
608
|
+
302: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">nil</span> ],
|
|
609
|
+
303: [ <span class="ruby-value str">'index'</span>, <span class="ruby-value str">'Index'</span>, <span class="ruby-constant">FixnumAttribute</span>,
|
|
610
|
+
304: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-value">-1</span> ],
|
|
611
|
+
305: [ <span class="ruby-value str">'left'</span>, <span class="ruby-value str">'Left'</span>, <span class="ruby-constant">RichTextAttribute</span>,
|
|
612
|
+
306: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">nil</span> ],
|
|
613
|
+
307: [ <span class="ruby-value str">'loadUnit'</span>, <span class="ruby-value str">'Load Unit'</span>, <span class="ruby-constant">StringAttribute</span>,
|
|
614
|
+
308: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">nil</span> ],
|
|
615
|
+
309: [ <span class="ruby-value str">'now'</span>, <span class="ruby-value str">'Now'</span>, <span class="ruby-constant">DateAttribute</span>,
|
|
616
|
+
310: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">nil</span> ],
|
|
617
|
+
311: [ <span class="ruby-value str">'numberFormat'</span>, <span class="ruby-value str">'Number Format'</span>, <span class="ruby-constant">RealFormatAttribute</span>,
|
|
618
|
+
312: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">nil</span> ],
|
|
619
|
+
313: [ <span class="ruby-value str">'prolog'</span>, <span class="ruby-value str">'Prolog'</span>, <span class="ruby-constant">RichTextAttribute</span>,
|
|
620
|
+
314: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">nil</span>],
|
|
621
|
+
315: [ <span class="ruby-value str">'resourceAttributes'</span>, <span class="ruby-value str">'Resource Attributes'</span>, <span class="ruby-constant">FormatListAttribute</span>,
|
|
622
|
+
316: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-constant">KeywordArray</span>.<span class="ruby-identifier">new</span>([ <span class="ruby-value str">'*'</span> ]) ],
|
|
623
|
+
317: [ <span class="ruby-value str">'resourceRoot'</span>, <span class="ruby-value str">'resource Root'</span>, <span class="ruby-constant">PropertyAttribute</span>,
|
|
624
|
+
318: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">nil</span> ],
|
|
625
|
+
319: [ <span class="ruby-value str">'revenueAccount'</span>, <span class="ruby-value str">'Revenue Account'</span>, <span class="ruby-constant">AccountAttribute</span>,
|
|
626
|
+
320: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">nil</span> ],
|
|
627
|
+
321: [ <span class="ruby-value str">'right'</span>, <span class="ruby-value str">'Right'</span>, <span class="ruby-constant">RichTextAttribute</span>,
|
|
628
|
+
322: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">nil</span> ],
|
|
629
|
+
323: [ <span class="ruby-value str">'rollupResource'</span>, <span class="ruby-value str">'Rollup Resource'</span>, <span class="ruby-constant">LogicalExpressionAttribute</span>,
|
|
630
|
+
324: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">nil</span> ],
|
|
631
|
+
325: [ <span class="ruby-value str">'rollupTask'</span>, <span class="ruby-value str">'Rollup Task'</span>, <span class="ruby-constant">LogicalExpressionAttribute</span>,
|
|
632
|
+
326: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">nil</span> ],
|
|
633
|
+
327: [ <span class="ruby-value str">'scenarios'</span>, <span class="ruby-value str">'Scenarios'</span>, <span class="ruby-constant">ScenarioListAttribute</span>,
|
|
634
|
+
328: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, [ <span class="ruby-value">0</span> ] ],
|
|
635
|
+
329: [ <span class="ruby-value str">'shortTimeFormat'</span>, <span class="ruby-value str">'Short Time Format'</span>, <span class="ruby-constant">StringAttribute</span>,
|
|
636
|
+
330: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">nil</span> ],
|
|
637
|
+
331: [ <span class="ruby-value str">'sortResources'</span>, <span class="ruby-value str">'Sort Resources'</span>, <span class="ruby-constant">SortListAttribute</span>,
|
|
638
|
+
332: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, [[ <span class="ruby-value str">'seqno'</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-value">-1</span> ]] ],
|
|
639
|
+
333: [ <span class="ruby-value str">'sortTasks'</span>, <span class="ruby-value str">'Sort Tasks'</span>, <span class="ruby-constant">SortListAttribute</span>,
|
|
640
|
+
334: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, [[ <span class="ruby-value str">'seqno'</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-value">-1</span> ]] ],
|
|
641
|
+
335: [ <span class="ruby-value str">'start'</span>, <span class="ruby-value str">'Start'</span>, <span class="ruby-constant">DateAttribute</span>,
|
|
642
|
+
336: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">nil</span> ],
|
|
643
|
+
337: [ <span class="ruby-value str">'taskAttributes'</span>, <span class="ruby-value str">'Task Attributes'</span>, <span class="ruby-constant">FormatListAttribute</span>,
|
|
644
|
+
338: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-constant">KeywordArray</span>.<span class="ruby-identifier">new</span>([ <span class="ruby-value str">'*'</span> ]) ],
|
|
645
|
+
339: [ <span class="ruby-value str">'taskRoot'</span>, <span class="ruby-value str">'Task Root'</span>, <span class="ruby-constant">PropertyAttribute</span>,
|
|
646
|
+
340: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">nil</span> ],
|
|
647
|
+
341: [ <span class="ruby-value str">'timeFormat'</span>, <span class="ruby-value str">'Time Format'</span>, <span class="ruby-constant">StringAttribute</span>,
|
|
648
|
+
342: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">nil</span> ],
|
|
649
|
+
343: [ <span class="ruby-value str">'timezone'</span>, <span class="ruby-value str">'Time Zone'</span>, <span class="ruby-constant">StringAttribute</span>,
|
|
650
|
+
344: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">nil</span> ],
|
|
651
|
+
345: [ <span class="ruby-value str">'tree'</span>, <span class="ruby-value str">'Tree Index'</span>, <span class="ruby-constant">StringAttribute</span>,
|
|
652
|
+
346: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-value str">""</span> ],
|
|
653
|
+
347: [ <span class="ruby-value str">'wbs'</span>, <span class="ruby-value str">'WBS'</span>, <span class="ruby-constant">StringAttribute</span>,
|
|
654
|
+
348: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-value str">""</span> ],
|
|
655
|
+
349: [ <span class="ruby-value str">'weekStartsMonday'</span>, <span class="ruby-value str">'Week Starts Monday'</span>, <span class="ruby-constant">BooleanAttribute</span>,
|
|
656
|
+
350: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span> ]
|
|
657
|
+
351: ]
|
|
658
|
+
352: <span class="ruby-identifier">attrs</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">a</span><span class="ruby-operator">|</span> <span class="ruby-ivar">@reports</span>.<span class="ruby-identifier">addAttributeType</span>(<span class="ruby-constant">AttributeDefinition</span>.<span class="ruby-identifier">new</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">a</span>)) }
|
|
659
|
+
353:
|
|
660
|
+
354: <span class="ruby-constant">Scenario</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">self</span>, <span class="ruby-value str">'plan'</span>, <span class="ruby-value str">'Plan Scenario'</span>, <span class="ruby-keyword kw">nil</span>)
|
|
661
|
+
355:
|
|
662
|
+
356: <span class="ruby-ivar">@reportContext</span> = <span class="ruby-keyword kw">nil</span>
|
|
663
|
+
357: <span class="ruby-ivar">@outputDir</span> = <span class="ruby-value str">''</span>
|
|
664
|
+
358: <span class="ruby-keyword kw">end</span>
|
|
427
665
|
</pre>
|
|
428
666
|
</div>
|
|
429
667
|
|
|
@@ -434,12 +672,12 @@ The constructor will set default values for all project attributes.
|
|
|
434
672
|
<h3 class="section-bar">Public Instance methods</h3>
|
|
435
673
|
|
|
436
674
|
|
|
437
|
-
<div id="method-
|
|
438
|
-
<a name="
|
|
675
|
+
<div id="method-M000794" class="method-detail">
|
|
676
|
+
<a name="M000794"></a>
|
|
439
677
|
|
|
440
678
|
<div class="method-heading">
|
|
441
679
|
|
|
442
|
-
<a href="#
|
|
680
|
+
<a href="#M000794" class="method-signature">
|
|
443
681
|
|
|
444
682
|
<span class="method-name">[]</span><span class="method-args">(name)</span>
|
|
445
683
|
|
|
@@ -456,16 +694,16 @@ attribute.
|
|
|
456
694
|
</p>
|
|
457
695
|
|
|
458
696
|
<p><a class="source-toggle" href="#"
|
|
459
|
-
onclick="toggleCode('
|
|
460
|
-
<div class="method-source-code" id="
|
|
697
|
+
onclick="toggleCode('M000794-source');return false;">[Source]</a></p>
|
|
698
|
+
<div class="method-source-code" id="M000794-source">
|
|
461
699
|
<pre>
|
|
462
|
-
<span class="ruby-comment cmt"># File lib/Project.rb, line
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
700
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 373</span>
|
|
701
|
+
373: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">[]</span>(<span class="ruby-identifier">name</span>)
|
|
702
|
+
374: <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@attributes</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">name</span>)
|
|
703
|
+
375: <span class="ruby-identifier">raise</span> <span class="ruby-node">"Unknown project attribute #{name}"</span>
|
|
704
|
+
376: <span class="ruby-keyword kw">end</span>
|
|
705
|
+
377: <span class="ruby-ivar">@attributes</span>[<span class="ruby-identifier">name</span>]
|
|
706
|
+
378: <span class="ruby-keyword kw">end</span>
|
|
469
707
|
</pre>
|
|
470
708
|
</div>
|
|
471
709
|
|
|
@@ -473,12 +711,12 @@ attribute.
|
|
|
473
711
|
</div>
|
|
474
712
|
|
|
475
713
|
|
|
476
|
-
<div id="method-
|
|
477
|
-
<a name="
|
|
714
|
+
<div id="method-M000795" class="method-detail">
|
|
715
|
+
<a name="M000795"></a>
|
|
478
716
|
|
|
479
717
|
<div class="method-heading">
|
|
480
718
|
|
|
481
|
-
<a href="#
|
|
719
|
+
<a href="#M000795" class="method-signature">
|
|
482
720
|
|
|
483
721
|
<span class="method-name">[]=</span><span class="method-args">(name, value)</span>
|
|
484
722
|
|
|
@@ -494,16 +732,16 @@ to <em>value</em>.
|
|
|
494
732
|
</p>
|
|
495
733
|
|
|
496
734
|
<p><a class="source-toggle" href="#"
|
|
497
|
-
onclick="toggleCode('
|
|
498
|
-
<div class="method-source-code" id="
|
|
735
|
+
onclick="toggleCode('M000795-source');return false;">[Source]</a></p>
|
|
736
|
+
<div class="method-source-code" id="M000795-source">
|
|
499
737
|
<pre>
|
|
500
|
-
<span class="ruby-comment cmt"># File lib/Project.rb, line
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
738
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 381</span>
|
|
739
|
+
381: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">[]=</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">value</span>)
|
|
740
|
+
382: <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@attributes</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">name</span>)
|
|
741
|
+
383: <span class="ruby-identifier">raise</span> <span class="ruby-node">"Unknown project attribute #{name}"</span>
|
|
742
|
+
384: <span class="ruby-keyword kw">end</span>
|
|
743
|
+
385: <span class="ruby-ivar">@attributes</span>[<span class="ruby-identifier">name</span>] = <span class="ruby-identifier">value</span>
|
|
744
|
+
386: <span class="ruby-keyword kw">end</span>
|
|
507
745
|
</pre>
|
|
508
746
|
</div>
|
|
509
747
|
|
|
@@ -511,12 +749,12 @@ to <em>value</em>.
|
|
|
511
749
|
</div>
|
|
512
750
|
|
|
513
751
|
|
|
514
|
-
<div id="method-
|
|
515
|
-
<a name="
|
|
752
|
+
<div id="method-M000804" class="method-detail">
|
|
753
|
+
<a name="M000804"></a>
|
|
516
754
|
|
|
517
755
|
<div class="method-heading">
|
|
518
756
|
|
|
519
|
-
<a href="#
|
|
757
|
+
<a href="#M000804" class="method-signature">
|
|
520
758
|
|
|
521
759
|
<span class="method-name">account</span><span class="method-args">(id)</span>
|
|
522
760
|
|
|
@@ -532,13 +770,13 @@ return nil if it does not exist.
|
|
|
532
770
|
</p>
|
|
533
771
|
|
|
534
772
|
<p><a class="source-toggle" href="#"
|
|
535
|
-
onclick="toggleCode('
|
|
536
|
-
<div class="method-source-code" id="
|
|
773
|
+
onclick="toggleCode('M000804-source');return false;">[Source]</a></p>
|
|
774
|
+
<div class="method-source-code" id="M000804-source">
|
|
537
775
|
<pre>
|
|
538
|
-
<span class="ruby-comment cmt"># File lib/Project.rb, line
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
776
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 451</span>
|
|
777
|
+
451: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">account</span>(<span class="ruby-identifier">id</span>)
|
|
778
|
+
452: <span class="ruby-ivar">@accounts</span>[<span class="ruby-identifier">id</span>]
|
|
779
|
+
453: <span class="ruby-keyword kw">end</span>
|
|
542
780
|
</pre>
|
|
543
781
|
</div>
|
|
544
782
|
|
|
@@ -546,12 +784,52 @@ return nil if it does not exist.
|
|
|
546
784
|
</div>
|
|
547
785
|
|
|
548
786
|
|
|
549
|
-
<div id="method-
|
|
550
|
-
<a name="
|
|
787
|
+
<div id="method-M000817" class="method-detail">
|
|
788
|
+
<a name="M000817"></a>
|
|
551
789
|
|
|
552
790
|
<div class="method-heading">
|
|
553
791
|
|
|
554
|
-
<a href="#
|
|
792
|
+
<a href="#M000817" class="method-signature">
|
|
793
|
+
|
|
794
|
+
<span class="method-name">attributeName</span><span class="method-args">(id)</span>
|
|
795
|
+
|
|
796
|
+
</a>
|
|
797
|
+
|
|
798
|
+
</div>
|
|
799
|
+
|
|
800
|
+
<div class="method-description">
|
|
801
|
+
|
|
802
|
+
<p>
|
|
803
|
+
Return the name of the attribute <em>id</em>. Since we don’t know
|
|
804
|
+
whether we are looking for a task, resource, etc. attribute, we prefer
|
|
805
|
+
tasks over resources here.
|
|
806
|
+
</p>
|
|
807
|
+
|
|
808
|
+
<p><a class="source-toggle" href="#"
|
|
809
|
+
onclick="toggleCode('M000817-source');return false;">[Source]</a></p>
|
|
810
|
+
<div class="method-source-code" id="M000817-source">
|
|
811
|
+
<pre>
|
|
812
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 690</span>
|
|
813
|
+
690: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">attributeName</span>(<span class="ruby-identifier">id</span>)
|
|
814
|
+
691: <span class="ruby-comment cmt"># We have to see if the attribute id is a task or resource attribute and</span>
|
|
815
|
+
692: <span class="ruby-comment cmt"># return it's name.</span>
|
|
816
|
+
693: (<span class="ruby-identifier">name</span> = <span class="ruby-ivar">@tasks</span>.<span class="ruby-identifier">attributeName</span>(<span class="ruby-identifier">id</span>)).<span class="ruby-identifier">nil?</span> <span class="ruby-operator">&&</span>
|
|
817
|
+
694: (<span class="ruby-identifier">name</span> = <span class="ruby-ivar">@resources</span>.<span class="ruby-identifier">attributeName</span>(<span class="ruby-identifier">id</span>)).<span class="ruby-identifier">nil?</span>
|
|
818
|
+
695: <span class="ruby-identifier">name</span>
|
|
819
|
+
696: <span class="ruby-keyword kw">end</span>
|
|
820
|
+
</pre>
|
|
821
|
+
</div>
|
|
822
|
+
|
|
823
|
+
</div>
|
|
824
|
+
</div>
|
|
825
|
+
|
|
826
|
+
|
|
827
|
+
<div id="method-M000812" class="method-detail">
|
|
828
|
+
<a name="M000812"></a>
|
|
829
|
+
|
|
830
|
+
<div class="method-heading">
|
|
831
|
+
|
|
832
|
+
<a href="#M000812" class="method-signature">
|
|
555
833
|
|
|
556
834
|
<span class="method-name">convertToDailyLoad</span><span class="method-args">(seconds)</span>
|
|
557
835
|
|
|
@@ -567,13 +845,13 @@ setting of the global ‘dailyworkinghours’ attribute.
|
|
|
567
845
|
</p>
|
|
568
846
|
|
|
569
847
|
<p><a class="source-toggle" href="#"
|
|
570
|
-
onclick="toggleCode('
|
|
571
|
-
<div class="method-source-code" id="
|
|
848
|
+
onclick="toggleCode('M000812-source');return false;">[Source]</a></p>
|
|
849
|
+
<div class="method-source-code" id="M000812-source">
|
|
572
850
|
<pre>
|
|
573
|
-
<span class="ruby-comment cmt"># File lib/Project.rb, line
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
851
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 624</span>
|
|
852
|
+
624: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">convertToDailyLoad</span>(<span class="ruby-identifier">seconds</span>)
|
|
853
|
+
625: <span class="ruby-identifier">seconds</span> <span class="ruby-operator">/</span> (<span class="ruby-ivar">@attributes</span>[<span class="ruby-value str">'dailyworkinghours'</span>] <span class="ruby-operator">*</span> <span class="ruby-value">3600.0</span>)
|
|
854
|
+
626: <span class="ruby-keyword kw">end</span>
|
|
577
855
|
</pre>
|
|
578
856
|
</div>
|
|
579
857
|
|
|
@@ -581,12 +859,12 @@ setting of the global ‘dailyworkinghours’ attribute.
|
|
|
581
859
|
</div>
|
|
582
860
|
|
|
583
861
|
|
|
584
|
-
<div id="method-
|
|
585
|
-
<a name="
|
|
862
|
+
<div id="method-M000797" class="method-detail">
|
|
863
|
+
<a name="M000797"></a>
|
|
586
864
|
|
|
587
865
|
<div class="method-heading">
|
|
588
866
|
|
|
589
|
-
<a href="#
|
|
867
|
+
<a href="#M000797" class="method-signature">
|
|
590
868
|
|
|
591
869
|
<span class="method-name">dailyWorkingHours</span><span class="method-args">()</span>
|
|
592
870
|
|
|
@@ -602,13 +880,13 @@ can be set to other values by the user.
|
|
|
602
880
|
</p>
|
|
603
881
|
|
|
604
882
|
<p><a class="source-toggle" href="#"
|
|
605
|
-
onclick="toggleCode('
|
|
606
|
-
<div class="method-source-code" id="
|
|
883
|
+
onclick="toggleCode('M000797-source');return false;">[Source]</a></p>
|
|
884
|
+
<div class="method-source-code" id="M000797-source">
|
|
607
885
|
<pre>
|
|
608
|
-
<span class="ruby-comment cmt"># File lib/Project.rb, line
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
886
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 395</span>
|
|
887
|
+
395: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">dailyWorkingHours</span>
|
|
888
|
+
396: <span class="ruby-ivar">@attributes</span>[<span class="ruby-value str">'dailyworkinghours'</span>].<span class="ruby-identifier">to_f</span>
|
|
889
|
+
397: <span class="ruby-keyword kw">end</span>
|
|
612
890
|
</pre>
|
|
613
891
|
</div>
|
|
614
892
|
|
|
@@ -616,12 +894,12 @@ can be set to other values by the user.
|
|
|
616
894
|
</div>
|
|
617
895
|
|
|
618
896
|
|
|
619
|
-
<div id="method-
|
|
620
|
-
<a name="
|
|
897
|
+
<div id="method-M000815" class="method-detail">
|
|
898
|
+
<a name="M000815"></a>
|
|
621
899
|
|
|
622
900
|
<div class="method-heading">
|
|
623
901
|
|
|
624
|
-
<a href="#
|
|
902
|
+
<a href="#M000815" class="method-signature">
|
|
625
903
|
|
|
626
904
|
<span class="method-name">dateToIdx</span><span class="method-args">(date, forceIntoProject = false)</span>
|
|
627
905
|
|
|
@@ -639,24 +917,60 @@ time frame.
|
|
|
639
917
|
</p>
|
|
640
918
|
|
|
641
919
|
<p><a class="source-toggle" href="#"
|
|
642
|
-
onclick="toggleCode('
|
|
643
|
-
<div class="method-source-code" id="
|
|
920
|
+
onclick="toggleCode('M000815-source');return false;">[Source]</a></p>
|
|
921
|
+
<div class="method-source-code" id="M000815-source">
|
|
922
|
+
<pre>
|
|
923
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 650</span>
|
|
924
|
+
650: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">dateToIdx</span>(<span class="ruby-identifier">date</span>, <span class="ruby-identifier">forceIntoProject</span> = <span class="ruby-keyword kw">false</span>)
|
|
925
|
+
651: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">date</span> <span class="ruby-operator"><</span> <span class="ruby-ivar">@attributes</span>[<span class="ruby-value str">'start'</span>] <span class="ruby-operator">||</span> <span class="ruby-identifier">date</span> <span class="ruby-operator">></span> <span class="ruby-ivar">@attributes</span>[<span class="ruby-value str">'end'</span>])
|
|
926
|
+
652: <span class="ruby-comment cmt"># Date is out of range.</span>
|
|
927
|
+
653: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">forceIntoProject</span>
|
|
928
|
+
654: <span class="ruby-keyword kw">return</span> <span class="ruby-value">0</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">date</span> <span class="ruby-operator"><</span> <span class="ruby-ivar">@attributes</span>[<span class="ruby-value str">'start'</span>]
|
|
929
|
+
655: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">scoreboardSize</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">date</span> <span class="ruby-operator">></span> <span class="ruby-ivar">@attributes</span>[<span class="ruby-value str">'end'</span>]
|
|
930
|
+
656: <span class="ruby-keyword kw">else</span>
|
|
931
|
+
657: <span class="ruby-identifier">raise</span> <span class="ruby-node">"Date #{date} is out of project time range "</span> <span class="ruby-operator">+</span>
|
|
932
|
+
658: <span class="ruby-node">"(#{@attributes['start']} - #{@attributes['end']})"</span>
|
|
933
|
+
659: <span class="ruby-keyword kw">end</span>
|
|
934
|
+
660: <span class="ruby-keyword kw">end</span>
|
|
935
|
+
661: <span class="ruby-comment cmt"># Calculate the corresponding index.</span>
|
|
936
|
+
662: ((<span class="ruby-identifier">date</span> <span class="ruby-operator">-</span> <span class="ruby-ivar">@attributes</span>[<span class="ruby-value str">'start'</span>]) <span class="ruby-operator">/</span> <span class="ruby-ivar">@attributes</span>[<span class="ruby-value str">'scheduleGranularity'</span>]).<span class="ruby-identifier">to_i</span>
|
|
937
|
+
663: <span class="ruby-keyword kw">end</span>
|
|
938
|
+
</pre>
|
|
939
|
+
</div>
|
|
940
|
+
|
|
941
|
+
</div>
|
|
942
|
+
</div>
|
|
943
|
+
|
|
944
|
+
|
|
945
|
+
<div id="method-M000792" class="method-detail">
|
|
946
|
+
<a name="M000792"></a>
|
|
947
|
+
|
|
948
|
+
<div class="method-heading">
|
|
949
|
+
|
|
950
|
+
<a href="#M000792" class="method-signature">
|
|
951
|
+
|
|
952
|
+
<span class="method-name">deep_clone</span><span class="method-args">()</span>
|
|
953
|
+
|
|
954
|
+
</a>
|
|
955
|
+
|
|
956
|
+
</div>
|
|
957
|
+
|
|
958
|
+
<div class="method-description">
|
|
959
|
+
|
|
960
|
+
<p>
|
|
961
|
+
Overload the <a href="Project.html#M000792">deep_clone</a> function so that
|
|
962
|
+
references to the project don’t lead to deep copying of the whole
|
|
963
|
+
project.
|
|
964
|
+
</p>
|
|
965
|
+
|
|
966
|
+
<p><a class="source-toggle" href="#"
|
|
967
|
+
onclick="toggleCode('M000792-source');return false;">[Source]</a></p>
|
|
968
|
+
<div class="method-source-code" id="M000792-source">
|
|
644
969
|
<pre>
|
|
645
|
-
<span class="ruby-comment cmt"># File lib/Project.rb, line
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
473: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">forceIntoProject</span>
|
|
650
|
-
474: <span class="ruby-keyword kw">return</span> <span class="ruby-value">0</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">date</span> <span class="ruby-operator"><</span> <span class="ruby-ivar">@attributes</span>[<span class="ruby-value str">'start'</span>]
|
|
651
|
-
475: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">scoreboardSize</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">date</span> <span class="ruby-operator">></span> <span class="ruby-ivar">@attributes</span>[<span class="ruby-value str">'end'</span>]
|
|
652
|
-
476: <span class="ruby-keyword kw">else</span>
|
|
653
|
-
477: <span class="ruby-identifier">raise</span> <span class="ruby-node">"Date #{date} is out of project time range "</span> <span class="ruby-operator">+</span>
|
|
654
|
-
478: <span class="ruby-node">"(#{@attributes['start']} - #{@attributes['end']})"</span>
|
|
655
|
-
479: <span class="ruby-keyword kw">end</span>
|
|
656
|
-
480: <span class="ruby-keyword kw">end</span>
|
|
657
|
-
481: <span class="ruby-comment cmt"># Calculate the corresponding index.</span>
|
|
658
|
-
482: ((<span class="ruby-identifier">date</span> <span class="ruby-operator">-</span> <span class="ruby-ivar">@attributes</span>[<span class="ruby-value str">'start'</span>]) <span class="ruby-operator">/</span> <span class="ruby-ivar">@attributes</span>[<span class="ruby-value str">'scheduleGranularity'</span>]).<span class="ruby-identifier">to_i</span>
|
|
659
|
-
483: <span class="ruby-keyword kw">end</span>
|
|
970
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 362</span>
|
|
971
|
+
362: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">deep_clone</span>
|
|
972
|
+
363: <span class="ruby-keyword kw">self</span>
|
|
973
|
+
364: <span class="ruby-keyword kw">end</span>
|
|
660
974
|
</pre>
|
|
661
975
|
</div>
|
|
662
976
|
|
|
@@ -664,12 +978,12 @@ time frame.
|
|
|
664
978
|
</div>
|
|
665
979
|
|
|
666
980
|
|
|
667
|
-
<div id="method-
|
|
668
|
-
<a name="
|
|
981
|
+
<div id="method-M000810" class="method-detail">
|
|
982
|
+
<a name="M000810"></a>
|
|
669
983
|
|
|
670
984
|
<div class="method-heading">
|
|
671
985
|
|
|
672
|
-
<a href="#
|
|
986
|
+
<a href="#M000810" class="method-signature">
|
|
673
987
|
|
|
674
988
|
<span class="method-name">generateReports</span><span class="method-args">(maxCpuCores)</span>
|
|
675
989
|
|
|
@@ -682,39 +996,45 @@ time frame.
|
|
|
682
996
|
<p>
|
|
683
997
|
Call this function to generate the reports based on the scheduling result.
|
|
684
998
|
This function may only be called after <a
|
|
685
|
-
href="Project.html#
|
|
999
|
+
href="Project.html#M000809">Project#schedule</a> has been called.
|
|
686
1000
|
</p>
|
|
687
1001
|
|
|
688
1002
|
<p><a class="source-toggle" href="#"
|
|
689
|
-
onclick="toggleCode('
|
|
690
|
-
<div class="method-source-code" id="
|
|
1003
|
+
onclick="toggleCode('M000810-source');return false;">[Source]</a></p>
|
|
1004
|
+
<div class="method-source-code" id="M000810-source">
|
|
691
1005
|
<pre>
|
|
692
|
-
<span class="ruby-comment cmt"># File lib/Project.rb, line
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
1006
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 527</span>
|
|
1007
|
+
527: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateReports</span>(<span class="ruby-identifier">maxCpuCores</span>)
|
|
1008
|
+
528: <span class="ruby-keyword kw">begin</span>
|
|
1009
|
+
529: <span class="ruby-ivar">@reports</span>.<span class="ruby-identifier">index</span>
|
|
1010
|
+
530: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">maxCpuCores</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span>
|
|
1011
|
+
531: <span class="ruby-ivar">@reports</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">report</span><span class="ruby-operator">|</span>
|
|
1012
|
+
532: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">report</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value str">'formats'</span>).<span class="ruby-identifier">empty?</span>
|
|
1013
|
+
533: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">startProgressMeter</span>(<span class="ruby-node">"Report #{report.name}"</span>)
|
|
1014
|
+
534: <span class="ruby-ivar">@reportContext</span> = <span class="ruby-constant">ReportContext</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">self</span>, <span class="ruby-identifier">report</span>)
|
|
1015
|
+
535: <span class="ruby-identifier">report</span>.<span class="ruby-identifier">generate</span>
|
|
1016
|
+
536: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">stopProgressMeter</span>
|
|
1017
|
+
537: <span class="ruby-keyword kw">end</span>
|
|
1018
|
+
538: <span class="ruby-keyword kw">else</span>
|
|
1019
|
+
539: <span class="ruby-identifier">bp</span> = <span class="ruby-constant">BatchProcessor</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">maxCpuCores</span>)
|
|
1020
|
+
540: <span class="ruby-ivar">@reports</span>.<span class="ruby-identifier">each_value</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">report</span><span class="ruby-operator">|</span>
|
|
1021
|
+
541: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">report</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value str">'formats'</span>).<span class="ruby-identifier">empty?</span>
|
|
1022
|
+
542: <span class="ruby-identifier">bp</span>.<span class="ruby-identifier">queue</span>(<span class="ruby-identifier">report</span>) { <span class="ruby-identifier">report</span>.<span class="ruby-identifier">generate</span> }
|
|
1023
|
+
543: <span class="ruby-keyword kw">end</span>
|
|
1024
|
+
544: <span class="ruby-identifier">bp</span>.<span class="ruby-identifier">wait</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">report</span><span class="ruby-operator">|</span>
|
|
1025
|
+
545: <span class="ruby-identifier">$stdout</span>.<span class="ruby-identifier">print</span>(<span class="ruby-identifier">report</span>.<span class="ruby-identifier">stdout</span>)
|
|
1026
|
+
546: <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">print</span>(<span class="ruby-identifier">report</span>.<span class="ruby-identifier">stderr</span>)
|
|
1027
|
+
547: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">startProgressMeter</span>(<span class="ruby-node">"Report #{report.tag.name}"</span>)
|
|
1028
|
+
548: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">stopProgressMeter</span>
|
|
1029
|
+
549: <span class="ruby-keyword kw">end</span>
|
|
1030
|
+
550: <span class="ruby-keyword kw">end</span>
|
|
1031
|
+
551: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">TjException</span>
|
|
1032
|
+
552: <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">puts</span> <span class="ruby-node">"Report Generation Error: #{$!}"</span>
|
|
1033
|
+
553: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
|
|
1034
|
+
554: <span class="ruby-keyword kw">end</span>
|
|
1035
|
+
555:
|
|
1036
|
+
556: <span class="ruby-keyword kw">true</span>
|
|
1037
|
+
557: <span class="ruby-keyword kw">end</span>
|
|
718
1038
|
</pre>
|
|
719
1039
|
</div>
|
|
720
1040
|
|
|
@@ -722,12 +1042,12 @@ href="Project.html#M000646">Project#schedule</a> has been called.
|
|
|
722
1042
|
</div>
|
|
723
1043
|
|
|
724
1044
|
|
|
725
|
-
<div id="method-
|
|
726
|
-
<a name="
|
|
1045
|
+
<div id="method-M000814" class="method-detail">
|
|
1046
|
+
<a name="M000814"></a>
|
|
727
1047
|
|
|
728
1048
|
<div class="method-heading">
|
|
729
1049
|
|
|
730
|
-
<a href="#
|
|
1050
|
+
<a href="#M000814" class="method-signature">
|
|
731
1051
|
|
|
732
1052
|
<span class="method-name">idxToDate</span><span class="method-args">(idx)</span>
|
|
733
1053
|
|
|
@@ -745,16 +1065,16 @@ raised.
|
|
|
745
1065
|
</p>
|
|
746
1066
|
|
|
747
1067
|
<p><a class="source-toggle" href="#"
|
|
748
|
-
onclick="toggleCode('
|
|
749
|
-
<div class="method-source-code" id="
|
|
1068
|
+
onclick="toggleCode('M000814-source');return false;">[Source]</a></p>
|
|
1069
|
+
<div class="method-source-code" id="M000814-source">
|
|
750
1070
|
<pre>
|
|
751
|
-
<span class="ruby-comment cmt"># File lib/Project.rb, line
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
1071
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 640</span>
|
|
1072
|
+
640: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">idxToDate</span>(<span class="ruby-identifier">idx</span>)
|
|
1073
|
+
641: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$DEBUG</span> <span class="ruby-operator">&&</span> (<span class="ruby-identifier">idx</span> <span class="ruby-operator"><</span> <span class="ruby-value">0</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">idx</span> <span class="ruby-operator">></span> <span class="ruby-identifier">scoreboardSize</span>)
|
|
1074
|
+
642: <span class="ruby-identifier">raise</span> <span class="ruby-value str">"Scoreboard index out of range"</span>
|
|
1075
|
+
643: <span class="ruby-keyword kw">end</span>
|
|
1076
|
+
644: <span class="ruby-ivar">@attributes</span>[<span class="ruby-value str">'start'</span>] <span class="ruby-operator">+</span> <span class="ruby-identifier">idx</span> <span class="ruby-operator">*</span> <span class="ruby-ivar">@attributes</span>[<span class="ruby-value str">'scheduleGranularity'</span>]
|
|
1077
|
+
645: <span class="ruby-keyword kw">end</span>
|
|
758
1078
|
</pre>
|
|
759
1079
|
</div>
|
|
760
1080
|
|
|
@@ -762,12 +1082,12 @@ raised.
|
|
|
762
1082
|
</div>
|
|
763
1083
|
|
|
764
1084
|
|
|
765
|
-
<div id="method-
|
|
766
|
-
<a name="
|
|
1085
|
+
<div id="method-M000811" class="method-detail">
|
|
1086
|
+
<a name="M000811"></a>
|
|
767
1087
|
|
|
768
1088
|
<div class="method-heading">
|
|
769
1089
|
|
|
770
|
-
<a href="#
|
|
1090
|
+
<a href="#M000811" class="method-signature">
|
|
771
1091
|
|
|
772
1092
|
<span class="method-name">isWorkingTime(slot) → true or false<br />
|
|
773
1093
|
isWorkingTime(startTime, endTime) → true or false<br />
|
|
@@ -789,32 +1109,32 @@ defined and the slot lies within a defined working time period.
|
|
|
789
1109
|
</p>
|
|
790
1110
|
|
|
791
1111
|
<p><a class="source-toggle" href="#"
|
|
792
|
-
onclick="toggleCode('
|
|
793
|
-
<div class="method-source-code" id="
|
|
1112
|
+
onclick="toggleCode('M000811-source');return false;">[Source]</a></p>
|
|
1113
|
+
<div class="method-source-code" id="M000811-source">
|
|
794
1114
|
<pre>
|
|
795
|
-
<span class="ruby-comment cmt"># File lib/Project.rb, line
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
1115
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 599</span>
|
|
1116
|
+
599: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">isWorkingTime</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
|
|
1117
|
+
600: <span class="ruby-comment cmt"># Normalize argument(s) to Interval</span>
|
|
1118
|
+
601: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">args</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span>
|
|
1119
|
+
602: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Interval</span>)
|
|
1120
|
+
603: <span class="ruby-identifier">iv</span> = <span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>]
|
|
1121
|
+
604: <span class="ruby-keyword kw">else</span>
|
|
1122
|
+
605: <span class="ruby-identifier">iv</span> = <span class="ruby-constant">Interval</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>], <span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">+</span>
|
|
1123
|
+
606: <span class="ruby-ivar">@attributes</span>[<span class="ruby-value str">'scheduleGranularity'</span>])
|
|
1124
|
+
607: <span class="ruby-keyword kw">end</span>
|
|
1125
|
+
608: <span class="ruby-keyword kw">else</span>
|
|
1126
|
+
609: <span class="ruby-identifier">iv</span> = <span class="ruby-constant">Interval</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>], <span class="ruby-identifier">args</span>[<span class="ruby-value">1</span>])
|
|
1127
|
+
610: <span class="ruby-keyword kw">end</span>
|
|
1128
|
+
611:
|
|
1129
|
+
612: <span class="ruby-comment cmt"># Check if the interval has overlap with any of the global vacations.</span>
|
|
1130
|
+
613: <span class="ruby-ivar">@attributes</span>[<span class="ruby-value str">'vacations'</span>].<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">vacation</span><span class="ruby-operator">|</span>
|
|
1131
|
+
614: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">vacation</span>.<span class="ruby-identifier">overlaps?</span>(<span class="ruby-identifier">iv</span>)
|
|
1132
|
+
615: <span class="ruby-keyword kw">end</span>
|
|
1133
|
+
616:
|
|
1134
|
+
617: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@attributes</span>[<span class="ruby-value str">'workinghours'</span>].<span class="ruby-identifier">timeOff?</span>(<span class="ruby-identifier">iv</span>)
|
|
1135
|
+
618:
|
|
1136
|
+
619: <span class="ruby-keyword kw">true</span>
|
|
1137
|
+
620: <span class="ruby-keyword kw">end</span>
|
|
818
1138
|
</pre>
|
|
819
1139
|
</div>
|
|
820
1140
|
|
|
@@ -822,12 +1142,12 @@ defined and the slot lies within a defined working time period.
|
|
|
822
1142
|
</div>
|
|
823
1143
|
|
|
824
1144
|
|
|
825
|
-
<div id="method-
|
|
826
|
-
<a name="
|
|
1145
|
+
<div id="method-M000799" class="method-detail">
|
|
1146
|
+
<a name="M000799"></a>
|
|
827
1147
|
|
|
828
1148
|
<div class="method-heading">
|
|
829
1149
|
|
|
830
|
-
<a href="#
|
|
1150
|
+
<a href="#M000799" class="method-signature">
|
|
831
1151
|
|
|
832
1152
|
<span class="method-name">monthlyWorkingDays</span><span class="method-args">()</span>
|
|
833
1153
|
|
|
@@ -842,13 +1162,48 @@ Return the average number of working days per month.
|
|
|
842
1162
|
</p>
|
|
843
1163
|
|
|
844
1164
|
<p><a class="source-toggle" href="#"
|
|
845
|
-
onclick="toggleCode('
|
|
846
|
-
<div class="method-source-code" id="
|
|
1165
|
+
onclick="toggleCode('M000799-source');return false;">[Source]</a></p>
|
|
1166
|
+
<div class="method-source-code" id="M000799-source">
|
|
1167
|
+
<pre>
|
|
1168
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 405</span>
|
|
1169
|
+
405: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">monthlyWorkingDays</span>
|
|
1170
|
+
406: <span class="ruby-ivar">@attributes</span>[<span class="ruby-value str">'yearlyworkingdays'</span>] <span class="ruby-operator">/</span> <span class="ruby-value">12.0</span>
|
|
1171
|
+
407: <span class="ruby-keyword kw">end</span>
|
|
1172
|
+
</pre>
|
|
1173
|
+
</div>
|
|
1174
|
+
|
|
1175
|
+
</div>
|
|
1176
|
+
</div>
|
|
1177
|
+
|
|
1178
|
+
|
|
1179
|
+
<div id="method-M000807" class="method-detail">
|
|
1180
|
+
<a name="M000807"></a>
|
|
1181
|
+
|
|
1182
|
+
<div class="method-heading">
|
|
1183
|
+
|
|
1184
|
+
<a href="#M000807" class="method-signature">
|
|
1185
|
+
|
|
1186
|
+
<span class="method-name">report</span><span class="method-args">(id)</span>
|
|
1187
|
+
|
|
1188
|
+
</a>
|
|
1189
|
+
|
|
1190
|
+
</div>
|
|
1191
|
+
|
|
1192
|
+
<div class="method-description">
|
|
1193
|
+
|
|
1194
|
+
<p>
|
|
1195
|
+
Return the <a href="Report.html">Report</a> with the ID <tt>id</tt> or
|
|
1196
|
+
return nil if it does not exist.
|
|
1197
|
+
</p>
|
|
1198
|
+
|
|
1199
|
+
<p><a class="source-toggle" href="#"
|
|
1200
|
+
onclick="toggleCode('M000807-source');return false;">[Source]</a></p>
|
|
1201
|
+
<div class="method-source-code" id="M000807-source">
|
|
847
1202
|
<pre>
|
|
848
|
-
<span class="ruby-comment cmt"># File lib/Project.rb, line
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
1203
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 466</span>
|
|
1204
|
+
466: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">report</span>(<span class="ruby-identifier">id</span>)
|
|
1205
|
+
467: <span class="ruby-ivar">@reports</span>[<span class="ruby-identifier">id</span>]
|
|
1206
|
+
468: <span class="ruby-keyword kw">end</span>
|
|
852
1207
|
</pre>
|
|
853
1208
|
</div>
|
|
854
1209
|
|
|
@@ -856,12 +1211,50 @@ Return the average number of working days per month.
|
|
|
856
1211
|
</div>
|
|
857
1212
|
|
|
858
1213
|
|
|
859
|
-
<div id="method-
|
|
860
|
-
<a name="
|
|
1214
|
+
<div id="method-M000808" class="method-detail">
|
|
1215
|
+
<a name="M000808"></a>
|
|
861
1216
|
|
|
862
1217
|
<div class="method-heading">
|
|
863
1218
|
|
|
864
|
-
<a href="#
|
|
1219
|
+
<a href="#M000808" class="method-signature">
|
|
1220
|
+
|
|
1221
|
+
<span class="method-name">reportByName</span><span class="method-args">(name)</span>
|
|
1222
|
+
|
|
1223
|
+
</a>
|
|
1224
|
+
|
|
1225
|
+
</div>
|
|
1226
|
+
|
|
1227
|
+
<div class="method-description">
|
|
1228
|
+
|
|
1229
|
+
<p>
|
|
1230
|
+
Return the <a href="Report.html">Report</a> with the name <tt>name</tt> or
|
|
1231
|
+
return nil if it does not exist.
|
|
1232
|
+
</p>
|
|
1233
|
+
|
|
1234
|
+
<p><a class="source-toggle" href="#"
|
|
1235
|
+
onclick="toggleCode('M000808-source');return false;">[Source]</a></p>
|
|
1236
|
+
<div class="method-source-code" id="M000808-source">
|
|
1237
|
+
<pre>
|
|
1238
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 472</span>
|
|
1239
|
+
472: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">reportByName</span>(<span class="ruby-identifier">name</span>)
|
|
1240
|
+
473: <span class="ruby-ivar">@reports</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">report</span><span class="ruby-operator">|</span>
|
|
1241
|
+
474: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">report</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">report</span>.<span class="ruby-identifier">name</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">name</span>
|
|
1242
|
+
475: <span class="ruby-keyword kw">end</span>
|
|
1243
|
+
476: <span class="ruby-keyword kw">nil</span>
|
|
1244
|
+
477: <span class="ruby-keyword kw">end</span>
|
|
1245
|
+
</pre>
|
|
1246
|
+
</div>
|
|
1247
|
+
|
|
1248
|
+
</div>
|
|
1249
|
+
</div>
|
|
1250
|
+
|
|
1251
|
+
|
|
1252
|
+
<div id="method-M000806" class="method-detail">
|
|
1253
|
+
<a name="M000806"></a>
|
|
1254
|
+
|
|
1255
|
+
<div class="method-heading">
|
|
1256
|
+
|
|
1257
|
+
<a href="#M000806" class="method-signature">
|
|
865
1258
|
|
|
866
1259
|
<span class="method-name">resource</span><span class="method-args">(id)</span>
|
|
867
1260
|
|
|
@@ -877,13 +1270,13 @@ return nil if it does not exist.
|
|
|
877
1270
|
</p>
|
|
878
1271
|
|
|
879
1272
|
<p><a class="source-toggle" href="#"
|
|
880
|
-
onclick="toggleCode('
|
|
881
|
-
<div class="method-source-code" id="
|
|
1273
|
+
onclick="toggleCode('M000806-source');return false;">[Source]</a></p>
|
|
1274
|
+
<div class="method-source-code" id="M000806-source">
|
|
882
1275
|
<pre>
|
|
883
|
-
<span class="ruby-comment cmt"># File lib/Project.rb, line
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
1276
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 461</span>
|
|
1277
|
+
461: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">resource</span>(<span class="ruby-identifier">id</span>)
|
|
1278
|
+
462: <span class="ruby-ivar">@resources</span>[<span class="ruby-identifier">id</span>]
|
|
1279
|
+
463: <span class="ruby-keyword kw">end</span>
|
|
887
1280
|
</pre>
|
|
888
1281
|
</div>
|
|
889
1282
|
|
|
@@ -891,12 +1284,12 @@ return nil if it does not exist.
|
|
|
891
1284
|
</div>
|
|
892
1285
|
|
|
893
1286
|
|
|
894
|
-
<div id="method-
|
|
895
|
-
<a name="
|
|
1287
|
+
<div id="method-M000801" class="method-detail">
|
|
1288
|
+
<a name="M000801"></a>
|
|
896
1289
|
|
|
897
1290
|
<div class="method-heading">
|
|
898
1291
|
|
|
899
|
-
<a href="#
|
|
1292
|
+
<a href="#M000801" class="method-signature">
|
|
900
1293
|
|
|
901
1294
|
<span class="method-name">scenario(index) → Scenario<br />
|
|
902
1295
|
scenario(id) → Scenario<br />
|
|
@@ -914,26 +1307,20 @@ or <em>index</em>.
|
|
|
914
1307
|
</p>
|
|
915
1308
|
|
|
916
1309
|
<p><a class="source-toggle" href="#"
|
|
917
|
-
onclick="toggleCode('
|
|
918
|
-
<div class="method-source-code" id="
|
|
1310
|
+
onclick="toggleCode('M000801-source');return false;">[Source]</a></p>
|
|
1311
|
+
<div class="method-source-code" id="M000801-source">
|
|
919
1312
|
<pre>
|
|
920
|
-
<span class="ruby-comment cmt"># File lib/Project.rb, line
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
263: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$DEBUG</span> <span class="ruby-operator">&&</span> <span class="ruby-ivar">@scenarios</span>[<span class="ruby-identifier">arg</span>].<span class="ruby-identifier">nil?</span>
|
|
932
|
-
264: <span class="ruby-identifier">raise</span> <span class="ruby-node">"No scenario with id '#{arg}'"</span>
|
|
933
|
-
265: <span class="ruby-keyword kw">end</span>
|
|
934
|
-
266: <span class="ruby-ivar">@scenarios</span>[<span class="ruby-identifier">arg</span>]
|
|
935
|
-
267: <span class="ruby-keyword kw">end</span>
|
|
936
|
-
268: <span class="ruby-keyword kw">end</span>
|
|
1313
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 419</span>
|
|
1314
|
+
419: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">scenario</span>(<span class="ruby-identifier">arg</span>)
|
|
1315
|
+
420: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Fixnum</span>)
|
|
1316
|
+
421: <span class="ruby-ivar">@scenarios</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">sc</span><span class="ruby-operator">|</span>
|
|
1317
|
+
422: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">sc</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">sc</span>.<span class="ruby-identifier">sequenceNo</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">arg</span>
|
|
1318
|
+
423: <span class="ruby-keyword kw">end</span>
|
|
1319
|
+
424: <span class="ruby-keyword kw">else</span>
|
|
1320
|
+
425: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@scenarios</span>[<span class="ruby-identifier">arg</span>]
|
|
1321
|
+
426: <span class="ruby-keyword kw">end</span>
|
|
1322
|
+
427: <span class="ruby-keyword kw">nil</span>
|
|
1323
|
+
428: <span class="ruby-keyword kw">end</span>
|
|
937
1324
|
</pre>
|
|
938
1325
|
</div>
|
|
939
1326
|
|
|
@@ -941,12 +1328,12 @@ or <em>index</em>.
|
|
|
941
1328
|
</div>
|
|
942
1329
|
|
|
943
1330
|
|
|
944
|
-
<div id="method-
|
|
945
|
-
<a name="
|
|
1331
|
+
<div id="method-M000796" class="method-detail">
|
|
1332
|
+
<a name="M000796"></a>
|
|
946
1333
|
|
|
947
1334
|
<div class="method-heading">
|
|
948
1335
|
|
|
949
|
-
<a href="#
|
|
1336
|
+
<a href="#M000796" class="method-signature">
|
|
950
1337
|
|
|
951
1338
|
<span class="method-name">scenarioCount</span><span class="method-args">()</span>
|
|
952
1339
|
|
|
@@ -961,13 +1348,13 @@ Return the number of defined scenarios for the project.
|
|
|
961
1348
|
</p>
|
|
962
1349
|
|
|
963
1350
|
<p><a class="source-toggle" href="#"
|
|
964
|
-
onclick="toggleCode('
|
|
965
|
-
<div class="method-source-code" id="
|
|
1351
|
+
onclick="toggleCode('M000796-source');return false;">[Source]</a></p>
|
|
1352
|
+
<div class="method-source-code" id="M000796-source">
|
|
966
1353
|
<pre>
|
|
967
|
-
<span class="ruby-comment cmt"># File lib/Project.rb, line
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
1354
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 389</span>
|
|
1355
|
+
389: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">scenarioCount</span>
|
|
1356
|
+
390: <span class="ruby-ivar">@scenarios</span>.<span class="ruby-identifier">items</span>
|
|
1357
|
+
391: <span class="ruby-keyword kw">end</span>
|
|
971
1358
|
</pre>
|
|
972
1359
|
</div>
|
|
973
1360
|
|
|
@@ -975,12 +1362,12 @@ Return the number of defined scenarios for the project.
|
|
|
975
1362
|
</div>
|
|
976
1363
|
|
|
977
1364
|
|
|
978
|
-
<div id="method-
|
|
979
|
-
<a name="
|
|
1365
|
+
<div id="method-M000802" class="method-detail">
|
|
1366
|
+
<a name="M000802"></a>
|
|
980
1367
|
|
|
981
1368
|
<div class="method-heading">
|
|
982
1369
|
|
|
983
|
-
<a href="#
|
|
1370
|
+
<a href="#M000802" class="method-signature">
|
|
984
1371
|
|
|
985
1372
|
<span class="method-name">scenarioIdx(scenario)<br />
|
|
986
1373
|
scenarioIdx(id)<br />
|
|
@@ -998,19 +1385,19 @@ specified by <em>scenario</em> or <em>id</em>.
|
|
|
998
1385
|
</p>
|
|
999
1386
|
|
|
1000
1387
|
<p><a class="source-toggle" href="#"
|
|
1001
|
-
onclick="toggleCode('
|
|
1002
|
-
<div class="method-source-code" id="
|
|
1388
|
+
onclick="toggleCode('M000802-source');return false;">[Source]</a></p>
|
|
1389
|
+
<div class="method-source-code" id="M000802-source">
|
|
1003
1390
|
<pre>
|
|
1004
|
-
<span class="ruby-comment cmt"># File lib/Project.rb, line
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1391
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 435</span>
|
|
1392
|
+
435: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">scenarioIdx</span>(<span class="ruby-identifier">sc</span>)
|
|
1393
|
+
436: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">sc</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Scenario</span>)
|
|
1394
|
+
437: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">sc</span>.<span class="ruby-identifier">sequenceNo</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>
|
|
1395
|
+
438: <span class="ruby-keyword kw">elsif</span> <span class="ruby-ivar">@scenarios</span>[<span class="ruby-identifier">sc</span>].<span class="ruby-identifier">nil?</span>
|
|
1396
|
+
439: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
|
|
1397
|
+
440: <span class="ruby-keyword kw">else</span>
|
|
1398
|
+
441: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@scenarios</span>[<span class="ruby-identifier">sc</span>].<span class="ruby-identifier">sequenceNo</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>
|
|
1399
|
+
442: <span class="ruby-keyword kw">end</span>
|
|
1400
|
+
443: <span class="ruby-keyword kw">end</span>
|
|
1014
1401
|
</pre>
|
|
1015
1402
|
</div>
|
|
1016
1403
|
|
|
@@ -1018,12 +1405,12 @@ specified by <em>scenario</em> or <em>id</em>.
|
|
|
1018
1405
|
</div>
|
|
1019
1406
|
|
|
1020
1407
|
|
|
1021
|
-
<div id="method-
|
|
1022
|
-
<a name="
|
|
1408
|
+
<div id="method-M000809" class="method-detail">
|
|
1409
|
+
<a name="M000809"></a>
|
|
1023
1410
|
|
|
1024
1411
|
<div class="method-heading">
|
|
1025
1412
|
|
|
1026
|
-
<a href="#
|
|
1413
|
+
<a href="#M000809" class="method-signature">
|
|
1027
1414
|
|
|
1028
1415
|
<span class="method-name">schedule</span><span class="method-args">()</span>
|
|
1029
1416
|
|
|
@@ -1040,52 +1427,52 @@ stores the result in the data structures again.
|
|
|
1040
1427
|
</p>
|
|
1041
1428
|
|
|
1042
1429
|
<p><a class="source-toggle" href="#"
|
|
1043
|
-
onclick="toggleCode('
|
|
1044
|
-
<div class="method-source-code" id="
|
|
1430
|
+
onclick="toggleCode('M000809-source');return false;">[Source]</a></p>
|
|
1431
|
+
<div class="method-source-code" id="M000809-source">
|
|
1045
1432
|
<pre>
|
|
1046
|
-
<span class="ruby-comment cmt"># File lib/Project.rb, line
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1433
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 482</span>
|
|
1434
|
+
482: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">schedule</span>
|
|
1435
|
+
483: [ <span class="ruby-ivar">@shifts</span>, <span class="ruby-ivar">@resources</span>, <span class="ruby-ivar">@tasks</span> ].<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">p</span><span class="ruby-operator">|</span>
|
|
1436
|
+
484: <span class="ruby-identifier">p</span>.<span class="ruby-identifier">inheritAttributesFromScenario</span>
|
|
1437
|
+
485: <span class="ruby-comment cmt"># Set all index counters to their proper values.</span>
|
|
1438
|
+
486: <span class="ruby-identifier">p</span>.<span class="ruby-identifier">index</span>
|
|
1439
|
+
487: <span class="ruby-keyword kw">end</span>
|
|
1440
|
+
488:
|
|
1441
|
+
489: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@tasks</span>.<span class="ruby-identifier">empty?</span>
|
|
1442
|
+
490: <span class="ruby-identifier">message</span> = <span class="ruby-constant">Message</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'no_tasks'</span>, <span class="ruby-value str">'error'</span>, <span class="ruby-value str">"No tasks defined"</span>)
|
|
1443
|
+
491: <span class="ruby-identifier">sendMessage</span>(<span class="ruby-identifier">message</span>)
|
|
1444
|
+
492: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
|
|
1445
|
+
493: <span class="ruby-keyword kw">end</span>
|
|
1446
|
+
494:
|
|
1447
|
+
495: <span class="ruby-keyword kw">begin</span>
|
|
1448
|
+
496: <span class="ruby-ivar">@scenarios</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">sc</span><span class="ruby-operator">|</span>
|
|
1449
|
+
497: <span class="ruby-comment cmt"># Skip disabled scenarios</span>
|
|
1450
|
+
498: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">sc</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value str">'enabled'</span>)
|
|
1451
|
+
499:
|
|
1452
|
+
500: <span class="ruby-identifier">scIdx</span> = <span class="ruby-identifier">scenarioIdx</span>(<span class="ruby-identifier">sc</span>)
|
|
1453
|
+
501:
|
|
1454
|
+
502: <span class="ruby-comment cmt"># All user provided values are set now. The next step is to</span>
|
|
1455
|
+
503: <span class="ruby-comment cmt"># propagate inherited values. These values must be marked as</span>
|
|
1456
|
+
504: <span class="ruby-comment cmt"># inherited by setting the mode to 1. As we always call</span>
|
|
1457
|
+
505: <span class="ruby-comment cmt"># PropertyTreeNode#inherit this is just a safeguard.</span>
|
|
1458
|
+
506: <span class="ruby-constant">AttributeBase</span>.<span class="ruby-identifier">setMode</span>(<span class="ruby-value">1</span>)
|
|
1459
|
+
507: <span class="ruby-identifier">prepareScenario</span>(<span class="ruby-identifier">scIdx</span>)
|
|
1460
|
+
508:
|
|
1461
|
+
509: <span class="ruby-comment cmt"># Now change to mode 2 so all values that are modified are marked</span>
|
|
1462
|
+
510: <span class="ruby-comment cmt"># as computed.</span>
|
|
1463
|
+
511: <span class="ruby-constant">AttributeBase</span>.<span class="ruby-identifier">setMode</span>(<span class="ruby-value">2</span>)
|
|
1464
|
+
512: <span class="ruby-comment cmt"># Schedule the scenario.</span>
|
|
1465
|
+
513: <span class="ruby-identifier">scheduleScenario</span>(<span class="ruby-identifier">scIdx</span>)
|
|
1466
|
+
514:
|
|
1467
|
+
515: <span class="ruby-comment cmt"># Complete the data sets, and check the result.</span>
|
|
1468
|
+
516: <span class="ruby-identifier">finishScenario</span>(<span class="ruby-identifier">scIdx</span>)
|
|
1469
|
+
517: <span class="ruby-keyword kw">end</span>
|
|
1470
|
+
518: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">TjException</span>
|
|
1471
|
+
519: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
|
|
1472
|
+
520: <span class="ruby-keyword kw">end</span>
|
|
1473
|
+
521:
|
|
1474
|
+
522: <span class="ruby-keyword kw">true</span>
|
|
1475
|
+
523: <span class="ruby-keyword kw">end</span>
|
|
1089
1476
|
</pre>
|
|
1090
1477
|
</div>
|
|
1091
1478
|
|
|
@@ -1093,12 +1480,12 @@ stores the result in the data structures again.
|
|
|
1093
1480
|
</div>
|
|
1094
1481
|
|
|
1095
1482
|
|
|
1096
|
-
<div id="method-
|
|
1097
|
-
<a name="
|
|
1483
|
+
<div id="method-M000813" class="method-detail">
|
|
1484
|
+
<a name="M000813"></a>
|
|
1098
1485
|
|
|
1099
1486
|
<div class="method-heading">
|
|
1100
1487
|
|
|
1101
|
-
<a href="#
|
|
1488
|
+
<a href="#M000813" class="method-signature">
|
|
1102
1489
|
|
|
1103
1490
|
<span class="method-name">scoreboardSize</span><span class="method-args">()</span>
|
|
1104
1491
|
|
|
@@ -1116,14 +1503,14 @@ number of entries in the scoreboards.
|
|
|
1116
1503
|
</p>
|
|
1117
1504
|
|
|
1118
1505
|
<p><a class="source-toggle" href="#"
|
|
1119
|
-
onclick="toggleCode('
|
|
1120
|
-
<div class="method-source-code" id="
|
|
1506
|
+
onclick="toggleCode('M000813-source');return false;">[Source]</a></p>
|
|
1507
|
+
<div class="method-source-code" id="M000813-source">
|
|
1121
1508
|
<pre>
|
|
1122
|
-
<span class="ruby-comment cmt"># File lib/Project.rb, line
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
|
|
1509
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 632</span>
|
|
1510
|
+
632: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">scoreboardSize</span>
|
|
1511
|
+
633: ((<span class="ruby-ivar">@attributes</span>[<span class="ruby-value str">'end'</span>] <span class="ruby-operator">-</span> <span class="ruby-ivar">@attributes</span>[<span class="ruby-value str">'start'</span>]) <span class="ruby-operator">/</span>
|
|
1512
|
+
634: <span class="ruby-ivar">@attributes</span>[<span class="ruby-value str">'scheduleGranularity'</span>]).<span class="ruby-identifier">to_i</span>
|
|
1513
|
+
635: <span class="ruby-keyword kw">end</span>
|
|
1127
1514
|
</pre>
|
|
1128
1515
|
</div>
|
|
1129
1516
|
|
|
@@ -1131,12 +1518,12 @@ number of entries in the scoreboards.
|
|
|
1131
1518
|
</div>
|
|
1132
1519
|
|
|
1133
1520
|
|
|
1134
|
-
<div id="method-
|
|
1135
|
-
<a name="
|
|
1521
|
+
<div id="method-M000793" class="method-detail">
|
|
1522
|
+
<a name="M000793"></a>
|
|
1136
1523
|
|
|
1137
1524
|
<div class="method-heading">
|
|
1138
1525
|
|
|
1139
|
-
<a href="#
|
|
1526
|
+
<a href="#M000793" class="method-signature">
|
|
1140
1527
|
|
|
1141
1528
|
<span class="method-name">sendMessage</span><span class="method-args">(message)</span>
|
|
1142
1529
|
|
|
@@ -1152,13 +1539,13 @@ is a <a href="../String.html">String</a> that contains the message.
|
|
|
1152
1539
|
</p>
|
|
1153
1540
|
|
|
1154
1541
|
<p><a class="source-toggle" href="#"
|
|
1155
|
-
onclick="toggleCode('
|
|
1156
|
-
<div class="method-source-code" id="
|
|
1542
|
+
onclick="toggleCode('M000793-source');return false;">[Source]</a></p>
|
|
1543
|
+
<div class="method-source-code" id="M000793-source">
|
|
1157
1544
|
<pre>
|
|
1158
|
-
<span class="ruby-comment cmt"># File lib/Project.rb, line
|
|
1159
|
-
|
|
1160
|
-
|
|
1161
|
-
|
|
1545
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 368</span>
|
|
1546
|
+
368: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sendMessage</span>(<span class="ruby-identifier">message</span>)
|
|
1547
|
+
369: <span class="ruby-ivar">@messageHandler</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">message</span>)
|
|
1548
|
+
370: <span class="ruby-keyword kw">end</span>
|
|
1162
1549
|
</pre>
|
|
1163
1550
|
</div>
|
|
1164
1551
|
|
|
@@ -1166,12 +1553,12 @@ is a <a href="../String.html">String</a> that contains the message.
|
|
|
1166
1553
|
</div>
|
|
1167
1554
|
|
|
1168
1555
|
|
|
1169
|
-
<div id="method-
|
|
1170
|
-
<a name="
|
|
1556
|
+
<div id="method-M000803" class="method-detail">
|
|
1557
|
+
<a name="M000803"></a>
|
|
1171
1558
|
|
|
1172
1559
|
<div class="method-heading">
|
|
1173
1560
|
|
|
1174
|
-
<a href="#
|
|
1561
|
+
<a href="#M000803" class="method-signature">
|
|
1175
1562
|
|
|
1176
1563
|
<span class="method-name">shift</span><span class="method-args">(id)</span>
|
|
1177
1564
|
|
|
@@ -1187,13 +1574,13 @@ nil if it does not exist.
|
|
|
1187
1574
|
</p>
|
|
1188
1575
|
|
|
1189
1576
|
<p><a class="source-toggle" href="#"
|
|
1190
|
-
onclick="toggleCode('
|
|
1191
|
-
<div class="method-source-code" id="
|
|
1577
|
+
onclick="toggleCode('M000803-source');return false;">[Source]</a></p>
|
|
1578
|
+
<div class="method-source-code" id="M000803-source">
|
|
1192
1579
|
<pre>
|
|
1193
|
-
<span class="ruby-comment cmt"># File lib/Project.rb, line
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
|
|
1580
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 446</span>
|
|
1581
|
+
446: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">shift</span>(<span class="ruby-identifier">id</span>)
|
|
1582
|
+
447: <span class="ruby-ivar">@shifts</span>[<span class="ruby-identifier">id</span>]
|
|
1583
|
+
448: <span class="ruby-keyword kw">end</span>
|
|
1197
1584
|
</pre>
|
|
1198
1585
|
</div>
|
|
1199
1586
|
|
|
@@ -1201,12 +1588,12 @@ nil if it does not exist.
|
|
|
1201
1588
|
</div>
|
|
1202
1589
|
|
|
1203
1590
|
|
|
1204
|
-
<div id="method-
|
|
1205
|
-
<a name="
|
|
1591
|
+
<div id="method-M000805" class="method-detail">
|
|
1592
|
+
<a name="M000805"></a>
|
|
1206
1593
|
|
|
1207
1594
|
<div class="method-heading">
|
|
1208
1595
|
|
|
1209
|
-
<a href="#
|
|
1596
|
+
<a href="#M000805" class="method-signature">
|
|
1210
1597
|
|
|
1211
1598
|
<span class="method-name">task</span><span class="method-args">(id)</span>
|
|
1212
1599
|
|
|
@@ -1222,13 +1609,13 @@ nil if it does not exist.
|
|
|
1222
1609
|
</p>
|
|
1223
1610
|
|
|
1224
1611
|
<p><a class="source-toggle" href="#"
|
|
1225
|
-
onclick="toggleCode('
|
|
1226
|
-
<div class="method-source-code" id="
|
|
1612
|
+
onclick="toggleCode('M000805-source');return false;">[Source]</a></p>
|
|
1613
|
+
<div class="method-source-code" id="M000805-source">
|
|
1227
1614
|
<pre>
|
|
1228
|
-
<span class="ruby-comment cmt"># File lib/Project.rb, line
|
|
1229
|
-
|
|
1230
|
-
|
|
1231
|
-
|
|
1615
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 456</span>
|
|
1616
|
+
456: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">task</span>(<span class="ruby-identifier">id</span>)
|
|
1617
|
+
457: <span class="ruby-ivar">@tasks</span>[<span class="ruby-identifier">id</span>]
|
|
1618
|
+
458: <span class="ruby-keyword kw">end</span>
|
|
1232
1619
|
</pre>
|
|
1233
1620
|
</div>
|
|
1234
1621
|
|
|
@@ -1236,12 +1623,12 @@ nil if it does not exist.
|
|
|
1236
1623
|
</div>
|
|
1237
1624
|
|
|
1238
1625
|
|
|
1239
|
-
<div id="method-
|
|
1240
|
-
<a name="
|
|
1626
|
+
<div id="method-M000818" class="method-detail">
|
|
1627
|
+
<a name="M000818"></a>
|
|
1241
1628
|
|
|
1242
1629
|
<div class="method-heading">
|
|
1243
1630
|
|
|
1244
|
-
<a href="#
|
|
1631
|
+
<a href="#M000818" class="method-signature">
|
|
1245
1632
|
|
|
1246
1633
|
<span class="method-name">to_s</span><span class="method-args">()</span>
|
|
1247
1634
|
|
|
@@ -1256,18 +1643,18 @@ Print the attribute values. It’s used for debugging only.
|
|
|
1256
1643
|
</p>
|
|
1257
1644
|
|
|
1258
1645
|
<p><a class="source-toggle" href="#"
|
|
1259
|
-
onclick="toggleCode('
|
|
1260
|
-
<div class="method-source-code" id="
|
|
1646
|
+
onclick="toggleCode('M000818-source');return false;">[Source]</a></p>
|
|
1647
|
+
<div class="method-source-code" id="M000818-source">
|
|
1261
1648
|
<pre>
|
|
1262
|
-
<span class="ruby-comment cmt"># File lib/Project.rb, line
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
|
|
1266
|
-
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
|
|
1270
|
-
|
|
1649
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 701</span>
|
|
1650
|
+
701: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_s</span>
|
|
1651
|
+
702: <span class="ruby-ivar">@attributes</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">attribute</span>, <span class="ruby-identifier">value</span><span class="ruby-operator">|</span>
|
|
1652
|
+
703: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">value</span>
|
|
1653
|
+
704: <span class="ruby-identifier">puts</span> <span class="ruby-node">"#{attribute}: "</span> <span class="ruby-operator">+</span>
|
|
1654
|
+
705: <span class="ruby-node">"#{value.is_a?(PropertyTreeNode) ? value.fullId : value}"</span>
|
|
1655
|
+
706: <span class="ruby-keyword kw">end</span>
|
|
1656
|
+
707: <span class="ruby-keyword kw">end</span>
|
|
1657
|
+
708: <span class="ruby-keyword kw">end</span>
|
|
1271
1658
|
</pre>
|
|
1272
1659
|
</div>
|
|
1273
1660
|
|
|
@@ -1275,12 +1662,12 @@ Print the attribute values. It’s used for debugging only.
|
|
|
1275
1662
|
</div>
|
|
1276
1663
|
|
|
1277
1664
|
|
|
1278
|
-
<div id="method-
|
|
1279
|
-
<a name="
|
|
1665
|
+
<div id="method-M000798" class="method-detail">
|
|
1666
|
+
<a name="M000798"></a>
|
|
1280
1667
|
|
|
1281
1668
|
<div class="method-heading">
|
|
1282
1669
|
|
|
1283
|
-
<a href="#
|
|
1670
|
+
<a href="#M000798" class="method-signature">
|
|
1284
1671
|
|
|
1285
1672
|
<span class="method-name">weeklyWorkingDays</span><span class="method-args">()</span>
|
|
1286
1673
|
|
|
@@ -1295,13 +1682,13 @@ Return the average number of working days per week.
|
|
|
1295
1682
|
</p>
|
|
1296
1683
|
|
|
1297
1684
|
<p><a class="source-toggle" href="#"
|
|
1298
|
-
onclick="toggleCode('
|
|
1299
|
-
<div class="method-source-code" id="
|
|
1685
|
+
onclick="toggleCode('M000798-source');return false;">[Source]</a></p>
|
|
1686
|
+
<div class="method-source-code" id="M000798-source">
|
|
1300
1687
|
<pre>
|
|
1301
|
-
<span class="ruby-comment cmt"># File lib/Project.rb, line
|
|
1302
|
-
|
|
1303
|
-
|
|
1304
|
-
|
|
1688
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 400</span>
|
|
1689
|
+
400: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">weeklyWorkingDays</span>
|
|
1690
|
+
401: <span class="ruby-ivar">@attributes</span>[<span class="ruby-value str">'yearlyworkingdays'</span>] <span class="ruby-operator">/</span> <span class="ruby-value">52.1429</span>
|
|
1691
|
+
402: <span class="ruby-keyword kw">end</span>
|
|
1305
1692
|
</pre>
|
|
1306
1693
|
</div>
|
|
1307
1694
|
|
|
@@ -1309,12 +1696,12 @@ Return the average number of working days per week.
|
|
|
1309
1696
|
</div>
|
|
1310
1697
|
|
|
1311
1698
|
|
|
1312
|
-
<div id="method-
|
|
1313
|
-
<a name="
|
|
1699
|
+
<div id="method-M000800" class="method-detail">
|
|
1700
|
+
<a name="M000800"></a>
|
|
1314
1701
|
|
|
1315
1702
|
<div class="method-heading">
|
|
1316
1703
|
|
|
1317
|
-
<a href="#
|
|
1704
|
+
<a href="#M000800" class="method-signature">
|
|
1318
1705
|
|
|
1319
1706
|
<span class="method-name">yearlyWorkingDays</span><span class="method-args">()</span>
|
|
1320
1707
|
|
|
@@ -1329,13 +1716,13 @@ Return the average number of working days per year.
|
|
|
1329
1716
|
</p>
|
|
1330
1717
|
|
|
1331
1718
|
<p><a class="source-toggle" href="#"
|
|
1332
|
-
onclick="toggleCode('
|
|
1333
|
-
<div class="method-source-code" id="
|
|
1719
|
+
onclick="toggleCode('M000800-source');return false;">[Source]</a></p>
|
|
1720
|
+
<div class="method-source-code" id="M000800-source">
|
|
1334
1721
|
<pre>
|
|
1335
|
-
<span class="ruby-comment cmt"># File lib/Project.rb, line
|
|
1336
|
-
|
|
1337
|
-
|
|
1338
|
-
|
|
1722
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 410</span>
|
|
1723
|
+
410: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">yearlyWorkingDays</span>
|
|
1724
|
+
411: <span class="ruby-ivar">@attributes</span>[<span class="ruby-value str">'yearlyworkingdays'</span>].<span class="ruby-identifier">to_f</span>
|
|
1725
|
+
412: <span class="ruby-keyword kw">end</span>
|
|
1339
1726
|
</pre>
|
|
1340
1727
|
</div>
|
|
1341
1728
|
|
|
@@ -1346,12 +1733,12 @@ Return the average number of working days per year.
|
|
|
1346
1733
|
<h3 class="section-bar">Protected Instance methods</h3>
|
|
1347
1734
|
|
|
1348
1735
|
|
|
1349
|
-
<div id="method-
|
|
1350
|
-
<a name="
|
|
1736
|
+
<div id="method-M000820" class="method-detail">
|
|
1737
|
+
<a name="M000820"></a>
|
|
1351
1738
|
|
|
1352
1739
|
<div class="method-heading">
|
|
1353
1740
|
|
|
1354
|
-
<a href="#
|
|
1741
|
+
<a href="#M000820" class="method-signature">
|
|
1355
1742
|
|
|
1356
1743
|
<span class="method-name">finishScenario</span><span class="method-args">(scIdx)</span>
|
|
1357
1744
|
|
|
@@ -1362,28 +1749,28 @@ Return the average number of working days per year.
|
|
|
1362
1749
|
<div class="method-description">
|
|
1363
1750
|
|
|
1364
1751
|
<p><a class="source-toggle" href="#"
|
|
1365
|
-
onclick="toggleCode('
|
|
1366
|
-
<div class="method-source-code" id="
|
|
1752
|
+
onclick="toggleCode('M000820-source');return false;">[Source]</a></p>
|
|
1753
|
+
<div class="method-source-code" id="M000820-source">
|
|
1367
1754
|
<pre>
|
|
1368
|
-
<span class="ruby-comment cmt"># File lib/Project.rb, line
|
|
1369
|
-
|
|
1370
|
-
|
|
1371
|
-
|
|
1372
|
-
|
|
1373
|
-
|
|
1374
|
-
|
|
1375
|
-
|
|
1376
|
-
|
|
1377
|
-
|
|
1378
|
-
|
|
1379
|
-
|
|
1380
|
-
|
|
1381
|
-
|
|
1382
|
-
|
|
1383
|
-
|
|
1384
|
-
|
|
1385
|
-
|
|
1386
|
-
|
|
1755
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 772</span>
|
|
1756
|
+
772: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">finishScenario</span>(<span class="ruby-identifier">scIdx</span>)
|
|
1757
|
+
773: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">startProgressMeter</span>(<span class="ruby-node">"Checking scenario #{scenario(scIdx).get('name')}"</span>)
|
|
1758
|
+
774: <span class="ruby-identifier">total</span> = <span class="ruby-ivar">@tasks</span>.<span class="ruby-identifier">items</span>
|
|
1759
|
+
775: <span class="ruby-identifier">i</span> = <span class="ruby-value">0</span>
|
|
1760
|
+
776: <span class="ruby-ivar">@tasks</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">task</span><span class="ruby-operator">|</span>
|
|
1761
|
+
777: <span class="ruby-identifier">task</span>.<span class="ruby-identifier">finishScheduling</span>(<span class="ruby-identifier">scIdx</span>)
|
|
1762
|
+
778: <span class="ruby-identifier">i</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
|
|
1763
|
+
779: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">progress</span>((<span class="ruby-identifier">i</span>.<span class="ruby-identifier">to_f</span> <span class="ruby-operator">/</span> <span class="ruby-identifier">total</span>) <span class="ruby-operator">*</span> <span class="ruby-value">0</span><span class="ruby-value">.5</span>)
|
|
1764
|
+
780: <span class="ruby-keyword kw">end</span>
|
|
1765
|
+
781:
|
|
1766
|
+
782: <span class="ruby-identifier">i</span> = <span class="ruby-value">0</span>
|
|
1767
|
+
783: <span class="ruby-ivar">@tasks</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">task</span><span class="ruby-operator">|</span>
|
|
1768
|
+
784: <span class="ruby-identifier">task</span>.<span class="ruby-identifier">postScheduleCheck</span>(<span class="ruby-identifier">scIdx</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">task</span>.<span class="ruby-identifier">parent</span>.<span class="ruby-identifier">nil?</span>
|
|
1769
|
+
785: <span class="ruby-identifier">i</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
|
|
1770
|
+
786: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">progress</span>(<span class="ruby-value">0</span><span class="ruby-value">.5</span> <span class="ruby-operator">+</span> (<span class="ruby-identifier">i</span>.<span class="ruby-identifier">to_f</span> <span class="ruby-operator">/</span> <span class="ruby-identifier">total</span>) <span class="ruby-operator">*</span> <span class="ruby-value">0</span><span class="ruby-value">.5</span>)
|
|
1771
|
+
787: <span class="ruby-keyword kw">end</span>
|
|
1772
|
+
788: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">stopProgressMeter</span>
|
|
1773
|
+
789: <span class="ruby-keyword kw">end</span>
|
|
1387
1774
|
</pre>
|
|
1388
1775
|
</div>
|
|
1389
1776
|
|
|
@@ -1391,12 +1778,12 @@ Return the average number of working days per year.
|
|
|
1391
1778
|
</div>
|
|
1392
1779
|
|
|
1393
1780
|
|
|
1394
|
-
<div id="method-
|
|
1395
|
-
<a name="
|
|
1781
|
+
<div id="method-M000819" class="method-detail">
|
|
1782
|
+
<a name="M000819"></a>
|
|
1396
1783
|
|
|
1397
1784
|
<div class="method-heading">
|
|
1398
1785
|
|
|
1399
|
-
<a href="#
|
|
1786
|
+
<a href="#M000819" class="method-signature">
|
|
1400
1787
|
|
|
1401
1788
|
<span class="method-name">prepareScenario</span><span class="method-args">(scIdx)</span>
|
|
1402
1789
|
|
|
@@ -1407,70 +1794,69 @@ Return the average number of working days per year.
|
|
|
1407
1794
|
<div class="method-description">
|
|
1408
1795
|
|
|
1409
1796
|
<p><a class="source-toggle" href="#"
|
|
1410
|
-
onclick="toggleCode('
|
|
1411
|
-
<div class="method-source-code" id="
|
|
1797
|
+
onclick="toggleCode('M000819-source');return false;">[Source]</a></p>
|
|
1798
|
+
<div class="method-source-code" id="M000819-source">
|
|
1412
1799
|
<pre>
|
|
1413
|
-
<span class="ruby-comment cmt"># File lib/Project.rb, line
|
|
1414
|
-
|
|
1415
|
-
|
|
1416
|
-
|
|
1417
|
-
|
|
1418
|
-
|
|
1419
|
-
|
|
1420
|
-
|
|
1421
|
-
|
|
1422
|
-
|
|
1423
|
-
|
|
1424
|
-
|
|
1425
|
-
|
|
1426
|
-
|
|
1427
|
-
|
|
1428
|
-
|
|
1429
|
-
|
|
1430
|
-
|
|
1431
|
-
|
|
1432
|
-
|
|
1433
|
-
|
|
1434
|
-
|
|
1435
|
-
|
|
1436
|
-
|
|
1437
|
-
|
|
1438
|
-
|
|
1439
|
-
|
|
1440
|
-
|
|
1441
|
-
|
|
1442
|
-
|
|
1443
|
-
|
|
1444
|
-
|
|
1445
|
-
|
|
1446
|
-
|
|
1447
|
-
|
|
1448
|
-
|
|
1449
|
-
|
|
1450
|
-
|
|
1451
|
-
|
|
1452
|
-
|
|
1453
|
-
|
|
1454
|
-
|
|
1455
|
-
|
|
1456
|
-
|
|
1457
|
-
|
|
1458
|
-
|
|
1459
|
-
|
|
1460
|
-
|
|
1461
|
-
|
|
1462
|
-
|
|
1463
|
-
|
|
1464
|
-
|
|
1465
|
-
|
|
1466
|
-
|
|
1467
|
-
|
|
1468
|
-
|
|
1469
|
-
|
|
1470
|
-
|
|
1471
|
-
|
|
1472
|
-
|
|
1473
|
-
556: <span class="ruby-keyword kw">end</span>
|
|
1800
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 712</span>
|
|
1801
|
+
712: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">prepareScenario</span>(<span class="ruby-identifier">scIdx</span>)
|
|
1802
|
+
713: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">startProgressMeter</span>(<span class="ruby-node">"Preparing scenario #{scenario(scIdx).get('name')}"</span>)
|
|
1803
|
+
714: <span class="ruby-identifier">resources</span> = <span class="ruby-constant">PropertyList</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@resources</span>)
|
|
1804
|
+
715: <span class="ruby-identifier">tasks</span> = <span class="ruby-constant">PropertyList</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@tasks</span>)
|
|
1805
|
+
716:
|
|
1806
|
+
717: <span class="ruby-comment cmt"># Compile a list of leaf resources that are actually used in this</span>
|
|
1807
|
+
718: <span class="ruby-comment cmt"># project.</span>
|
|
1808
|
+
719: <span class="ruby-identifier">usedResources</span> = []
|
|
1809
|
+
720: <span class="ruby-identifier">tasks</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">task</span><span class="ruby-operator">|</span>
|
|
1810
|
+
721: <span class="ruby-identifier">task</span>.<span class="ruby-identifier">candidates</span>(<span class="ruby-identifier">scIdx</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">resource</span><span class="ruby-operator">|</span>
|
|
1811
|
+
722: <span class="ruby-identifier">usedResources</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">resource</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">usedResources</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">resource</span>)
|
|
1812
|
+
723: <span class="ruby-keyword kw">end</span>
|
|
1813
|
+
724: <span class="ruby-keyword kw">end</span>
|
|
1814
|
+
725: <span class="ruby-identifier">total</span> = <span class="ruby-identifier">usedResources</span>.<span class="ruby-identifier">length</span>
|
|
1815
|
+
726: <span class="ruby-identifier">i</span> = <span class="ruby-value">0</span>
|
|
1816
|
+
727: <span class="ruby-identifier">usedResources</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">resource</span><span class="ruby-operator">|</span>
|
|
1817
|
+
728: <span class="ruby-identifier">resource</span>.<span class="ruby-identifier">prepareScheduling</span>(<span class="ruby-identifier">scIdx</span>)
|
|
1818
|
+
729: <span class="ruby-identifier">i</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
|
|
1819
|
+
730: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">progress</span>((<span class="ruby-identifier">i</span>.<span class="ruby-identifier">to_f</span> <span class="ruby-operator">/</span> <span class="ruby-identifier">total</span>) <span class="ruby-operator">*</span> <span class="ruby-value">0</span><span class="ruby-value">.8</span>)
|
|
1820
|
+
731: <span class="ruby-keyword kw">end</span>
|
|
1821
|
+
732:
|
|
1822
|
+
733: <span class="ruby-identifier">tasks</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">task</span><span class="ruby-operator">|</span> <span class="ruby-identifier">task</span>.<span class="ruby-identifier">prepareScheduling</span>(<span class="ruby-identifier">scIdx</span>) }
|
|
1823
|
+
734: <span class="ruby-identifier">tasks</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">task</span><span class="ruby-operator">|</span> <span class="ruby-identifier">task</span>.<span class="ruby-constant">Xref</span>(<span class="ruby-identifier">scIdx</span>) }
|
|
1824
|
+
735: <span class="ruby-identifier">tasks</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">task</span><span class="ruby-operator">|</span> <span class="ruby-identifier">task</span>.<span class="ruby-identifier">propagateInitialValues</span>(<span class="ruby-identifier">scIdx</span>) }
|
|
1825
|
+
736: <span class="ruby-identifier">tasks</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">task</span><span class="ruby-operator">|</span> <span class="ruby-identifier">task</span>.<span class="ruby-identifier">preScheduleCheck</span>(<span class="ruby-identifier">scIdx</span>) }
|
|
1826
|
+
737:
|
|
1827
|
+
738: <span class="ruby-comment cmt"># Check for dependency loops in the task graph.</span>
|
|
1828
|
+
739: <span class="ruby-identifier">tasks</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">task</span><span class="ruby-operator">|</span> <span class="ruby-identifier">task</span>.<span class="ruby-identifier">resetLoopFlags</span>(<span class="ruby-identifier">scIdx</span>) }
|
|
1829
|
+
740: <span class="ruby-identifier">tasks</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">task</span><span class="ruby-operator">|</span>
|
|
1830
|
+
741: <span class="ruby-identifier">task</span>.<span class="ruby-identifier">checkForLoops</span>(<span class="ruby-identifier">scIdx</span>, [], <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">task</span>.<span class="ruby-identifier">parent</span>.<span class="ruby-identifier">nil?</span>
|
|
1831
|
+
742: <span class="ruby-keyword kw">end</span>
|
|
1832
|
+
743: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">progress</span>(<span class="ruby-value">0</span><span class="ruby-value">.85</span>)
|
|
1833
|
+
744: <span class="ruby-identifier">tasks</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">task</span><span class="ruby-operator">|</span> <span class="ruby-identifier">task</span>.<span class="ruby-identifier">resetLoopFlags</span>(<span class="ruby-identifier">scIdx</span>) }
|
|
1834
|
+
745: <span class="ruby-identifier">tasks</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">task</span><span class="ruby-operator">|</span>
|
|
1835
|
+
746: <span class="ruby-identifier">task</span>.<span class="ruby-identifier">checkForLoops</span>(<span class="ruby-identifier">scIdx</span>, [], <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">true</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">task</span>.<span class="ruby-identifier">parent</span>.<span class="ruby-identifier">nil?</span>
|
|
1836
|
+
747: <span class="ruby-keyword kw">end</span>
|
|
1837
|
+
748: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">progress</span>(<span class="ruby-value">0</span><span class="ruby-value">.87</span>)
|
|
1838
|
+
749:
|
|
1839
|
+
750: <span class="ruby-comment cmt"># Compute the criticalness of the tasks and their pathes.</span>
|
|
1840
|
+
751: <span class="ruby-identifier">tasks</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">task</span><span class="ruby-operator">|</span> <span class="ruby-identifier">task</span>.<span class="ruby-identifier">countResourceAllocations</span>(<span class="ruby-identifier">scIdx</span>) }
|
|
1841
|
+
752: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">progress</span>(<span class="ruby-value">0</span><span class="ruby-value">.88</span>)
|
|
1842
|
+
753: <span class="ruby-identifier">resources</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">resource</span><span class="ruby-operator">|</span> <span class="ruby-identifier">resource</span>.<span class="ruby-identifier">calcCriticalness</span>(<span class="ruby-identifier">scIdx</span>) }
|
|
1843
|
+
754: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">progress</span>(<span class="ruby-value">0</span><span class="ruby-value">.9</span>)
|
|
1844
|
+
755: <span class="ruby-identifier">tasks</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">task</span><span class="ruby-operator">|</span> <span class="ruby-identifier">task</span>.<span class="ruby-identifier">calcCriticalness</span>(<span class="ruby-identifier">scIdx</span>) }
|
|
1845
|
+
756: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">progress</span>(<span class="ruby-value">0</span><span class="ruby-value">.95</span>)
|
|
1846
|
+
757: <span class="ruby-identifier">tasks</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">task</span><span class="ruby-operator">|</span> <span class="ruby-identifier">task</span>.<span class="ruby-identifier">calcPathCriticalness</span>(<span class="ruby-identifier">scIdx</span>) }
|
|
1847
|
+
758: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">progress</span>(<span class="ruby-value">1.0</span>)
|
|
1848
|
+
759:
|
|
1849
|
+
760: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">stopProgressMeter</span>
|
|
1850
|
+
761: <span class="ruby-comment cmt"># This is used for debugging only</span>
|
|
1851
|
+
762: <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">false</span>
|
|
1852
|
+
763: <span class="ruby-identifier">resources</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">resource</span><span class="ruby-operator">|</span>
|
|
1853
|
+
764: <span class="ruby-identifier">puts</span> <span class="ruby-identifier">resource</span>
|
|
1854
|
+
765: <span class="ruby-keyword kw">end</span>
|
|
1855
|
+
766: <span class="ruby-identifier">tasks</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">task</span><span class="ruby-operator">|</span>
|
|
1856
|
+
767: <span class="ruby-identifier">puts</span> <span class="ruby-identifier">task</span>
|
|
1857
|
+
768: <span class="ruby-keyword kw">end</span>
|
|
1858
|
+
769: <span class="ruby-keyword kw">end</span>
|
|
1859
|
+
770: <span class="ruby-keyword kw">end</span>
|
|
1474
1860
|
</pre>
|
|
1475
1861
|
</div>
|
|
1476
1862
|
|
|
@@ -1478,12 +1864,12 @@ Return the average number of working days per year.
|
|
|
1478
1864
|
</div>
|
|
1479
1865
|
|
|
1480
1866
|
|
|
1481
|
-
<div id="method-
|
|
1482
|
-
<a name="
|
|
1867
|
+
<div id="method-M000821" class="method-detail">
|
|
1868
|
+
<a name="M000821"></a>
|
|
1483
1869
|
|
|
1484
1870
|
<div class="method-heading">
|
|
1485
1871
|
|
|
1486
|
-
<a href="#
|
|
1872
|
+
<a href="#M000821" class="method-signature">
|
|
1487
1873
|
|
|
1488
1874
|
<span class="method-name">scheduleScenario</span><span class="method-args">(scIdx)</span>
|
|
1489
1875
|
|
|
@@ -1499,90 +1885,90 @@ index <tt>scIdx</tt>.
|
|
|
1499
1885
|
</p>
|
|
1500
1886
|
|
|
1501
1887
|
<p><a class="source-toggle" href="#"
|
|
1502
|
-
onclick="toggleCode('
|
|
1503
|
-
<div class="method-source-code" id="
|
|
1888
|
+
onclick="toggleCode('M000821-source');return false;">[Source]</a></p>
|
|
1889
|
+
<div class="method-source-code" id="M000821-source">
|
|
1504
1890
|
<pre>
|
|
1505
|
-
<span class="ruby-comment cmt"># File lib/Project.rb, line
|
|
1506
|
-
|
|
1507
|
-
|
|
1508
|
-
|
|
1509
|
-
|
|
1510
|
-
|
|
1511
|
-
|
|
1512
|
-
|
|
1513
|
-
|
|
1514
|
-
|
|
1515
|
-
|
|
1516
|
-
|
|
1517
|
-
|
|
1518
|
-
|
|
1519
|
-
|
|
1520
|
-
|
|
1521
|
-
|
|
1522
|
-
|
|
1523
|
-
|
|
1524
|
-
|
|
1525
|
-
|
|
1526
|
-
|
|
1527
|
-
|
|
1528
|
-
|
|
1529
|
-
|
|
1530
|
-
|
|
1531
|
-
|
|
1532
|
-
|
|
1533
|
-
|
|
1534
|
-
|
|
1535
|
-
|
|
1536
|
-
|
|
1537
|
-
|
|
1538
|
-
|
|
1539
|
-
|
|
1540
|
-
|
|
1541
|
-
|
|
1542
|
-
|
|
1543
|
-
|
|
1544
|
-
|
|
1545
|
-
|
|
1546
|
-
|
|
1547
|
-
|
|
1548
|
-
|
|
1549
|
-
|
|
1550
|
-
|
|
1551
|
-
|
|
1552
|
-
|
|
1553
|
-
|
|
1554
|
-
|
|
1555
|
-
|
|
1556
|
-
|
|
1557
|
-
|
|
1558
|
-
|
|
1559
|
-
|
|
1560
|
-
|
|
1561
|
-
|
|
1562
|
-
|
|
1563
|
-
|
|
1564
|
-
|
|
1565
|
-
|
|
1566
|
-
|
|
1567
|
-
|
|
1568
|
-
|
|
1569
|
-
|
|
1570
|
-
|
|
1571
|
-
|
|
1572
|
-
|
|
1573
|
-
|
|
1574
|
-
|
|
1575
|
-
|
|
1576
|
-
|
|
1577
|
-
|
|
1578
|
-
|
|
1579
|
-
|
|
1580
|
-
|
|
1581
|
-
|
|
1582
|
-
|
|
1583
|
-
|
|
1584
|
-
|
|
1585
|
-
|
|
1891
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 792</span>
|
|
1892
|
+
792: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">scheduleScenario</span>(<span class="ruby-identifier">scIdx</span>)
|
|
1893
|
+
793: <span class="ruby-identifier">tasks</span> = <span class="ruby-constant">PropertyList</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@tasks</span>)
|
|
1894
|
+
794: <span class="ruby-identifier">tasks</span>.<span class="ruby-identifier">delete_if</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">task</span><span class="ruby-operator">|</span> <span class="ruby-operator">!</span><span class="ruby-identifier">task</span>.<span class="ruby-identifier">leaf?</span> }
|
|
1895
|
+
795:
|
|
1896
|
+
796: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">enter</span>(<span class="ruby-value str">'scheduleScenario'</span>, <span class="ruby-node">"#{tasks.length} leaf tasks"</span>)
|
|
1897
|
+
797: <span class="ruby-comment cmt"># The sorting of the work item list determines which tasks will get their</span>
|
|
1898
|
+
798: <span class="ruby-comment cmt"># resources first. The first sorting criterium is the user specified task</span>
|
|
1899
|
+
799: <span class="ruby-comment cmt"># priority. The second criterium is the scheduler determined priority</span>
|
|
1900
|
+
800: <span class="ruby-comment cmt"># stored in the pathcriticalness attribute. That way, the user can always</span>
|
|
1901
|
+
801: <span class="ruby-comment cmt"># override the scheduler determined priority. To always have a defined</span>
|
|
1902
|
+
802: <span class="ruby-comment cmt"># order, the third criterium is the sequence number.</span>
|
|
1903
|
+
803: <span class="ruby-identifier">tasks</span>.<span class="ruby-identifier">setSorting</span>([ [ <span class="ruby-value str">'priority'</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-identifier">scIdx</span> ],
|
|
1904
|
+
804: [ <span class="ruby-value str">'pathcriticalness'</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-identifier">scIdx</span> ],
|
|
1905
|
+
805: [ <span class="ruby-value str">'seqno'</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-value">-1</span> ] ])
|
|
1906
|
+
806: <span class="ruby-identifier">tasks</span>.<span class="ruby-identifier">sort!</span>
|
|
1907
|
+
807: <span class="ruby-identifier">totalTasks</span> = <span class="ruby-identifier">tasks</span>.<span class="ruby-identifier">length</span>
|
|
1908
|
+
808:
|
|
1909
|
+
809: <span class="ruby-comment cmt"># Enter the main scheduling loop. This loop is only terminated when all</span>
|
|
1910
|
+
810: <span class="ruby-comment cmt"># tasks have been scheduled or another thread has set the breakFlag to</span>
|
|
1911
|
+
811: <span class="ruby-comment cmt"># true.</span>
|
|
1912
|
+
812: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">startProgressMeter</span>(<span class="ruby-value str">"Scheduling scenario "</span> <span class="ruby-operator">+</span>
|
|
1913
|
+
813: <span class="ruby-node">"#{scenario(scIdx).get('name')}"</span>)
|
|
1914
|
+
814: <span class="ruby-identifier">loop</span> <span class="ruby-keyword kw">do</span>
|
|
1915
|
+
815: <span class="ruby-comment cmt"># The main scheduler loop only needs to look at the first task that is</span>
|
|
1916
|
+
816: <span class="ruby-comment cmt"># ready to be scheduled.</span>
|
|
1917
|
+
817: <span class="ruby-identifier">workItems</span> = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">tasks</span>)
|
|
1918
|
+
818:
|
|
1919
|
+
819: <span class="ruby-comment cmt"># Count the already completed tasks.</span>
|
|
1920
|
+
820: <span class="ruby-identifier">completedTasks</span> = <span class="ruby-value">0</span>
|
|
1921
|
+
821: <span class="ruby-identifier">workItems</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">task</span><span class="ruby-operator">|</span>
|
|
1922
|
+
822: <span class="ruby-identifier">completedTasks</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">task</span>[<span class="ruby-value str">'scheduled'</span>, <span class="ruby-identifier">scIdx</span>]
|
|
1923
|
+
823: <span class="ruby-keyword kw">end</span>
|
|
1924
|
+
824:
|
|
1925
|
+
825: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">progress</span>(<span class="ruby-identifier">completedTasks</span>.<span class="ruby-identifier">to_f</span> <span class="ruby-operator">/</span> <span class="ruby-identifier">totalTasks</span>)
|
|
1926
|
+
826: <span class="ruby-comment cmt"># Remove all tasks that are not ready for scheduling yet.</span>
|
|
1927
|
+
827: <span class="ruby-identifier">workItems</span>.<span class="ruby-identifier">delete_if</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">task</span><span class="ruby-operator">|</span> <span class="ruby-operator">!</span><span class="ruby-identifier">task</span>.<span class="ruby-identifier">readyForScheduling?</span>(<span class="ruby-identifier">scIdx</span>) }
|
|
1928
|
+
828:
|
|
1929
|
+
829: <span class="ruby-comment cmt"># Check if we are done.</span>
|
|
1930
|
+
830: <span class="ruby-keyword kw">break</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">workItems</span>.<span class="ruby-identifier">empty?</span>
|
|
1931
|
+
831:
|
|
1932
|
+
832: <span class="ruby-comment cmt"># The first task in the list is the one with the highes priority and</span>
|
|
1933
|
+
833: <span class="ruby-comment cmt"># the largest path criticalness that is ready to be scheduled.</span>
|
|
1934
|
+
834: <span class="ruby-identifier">task</span> = <span class="ruby-identifier">workItems</span>[<span class="ruby-value">0</span>]
|
|
1935
|
+
835: <span class="ruby-comment cmt"># Schedule it.</span>
|
|
1936
|
+
836: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">task</span>.<span class="ruby-identifier">schedule</span>(<span class="ruby-identifier">scIdx</span>)
|
|
1937
|
+
837: <span class="ruby-constant">Log</span> <span class="ruby-operator"><<</span> <span class="ruby-node">"Task #{task.fullId}: #{task['start', scIdx]} -> "</span> <span class="ruby-operator">+</span>
|
|
1938
|
+
838: <span class="ruby-node">"#{task['end', scIdx]}"</span>
|
|
1939
|
+
839: <span class="ruby-keyword kw">end</span>
|
|
1940
|
+
840: <span class="ruby-keyword kw">end</span>
|
|
1941
|
+
841: <span class="ruby-identifier">unscheduledTasks</span> = []
|
|
1942
|
+
842: <span class="ruby-identifier">tasks</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">t</span><span class="ruby-operator">|</span> <span class="ruby-identifier">unscheduledTasks</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">t</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">t</span>[<span class="ruby-value str">'scheduled'</span>, <span class="ruby-identifier">scIdx</span>] }
|
|
1943
|
+
843:
|
|
1944
|
+
844: <span class="ruby-comment cmt"># Check for unscheduled tasks and report the first 10 of them as</span>
|
|
1945
|
+
845: <span class="ruby-comment cmt"># warnings.</span>
|
|
1946
|
+
846: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">unscheduledTasks</span>.<span class="ruby-identifier">empty?</span>
|
|
1947
|
+
847: <span class="ruby-identifier">message</span> = <span class="ruby-constant">Message</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'unscheduled_tasks'</span>, <span class="ruby-value str">'warning'</span>,
|
|
1948
|
+
848: <span class="ruby-node">"#{unscheduledTasks.length} tasks could not be "</span> <span class="ruby-operator">+</span>
|
|
1949
|
+
849: <span class="ruby-value str">"scheduled"</span>)
|
|
1950
|
+
850: <span class="ruby-identifier">sendMessage</span>(<span class="ruby-identifier">message</span>)
|
|
1951
|
+
851: <span class="ruby-identifier">i</span> = <span class="ruby-value">0</span>
|
|
1952
|
+
852: <span class="ruby-identifier">unscheduledTasks</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">t</span><span class="ruby-operator">|</span>
|
|
1953
|
+
853: <span class="ruby-identifier">message</span> = <span class="ruby-constant">Message</span>.<span class="ruby-identifier">new</span>(
|
|
1954
|
+
854: <span class="ruby-value str">'unscheduled_task'</span>, <span class="ruby-value str">'warning'</span>,
|
|
1955
|
+
855: <span class="ruby-node">"Task #{t.fullId}: "</span> <span class="ruby-operator">+</span>
|
|
1956
|
+
856: <span class="ruby-node">"#{t['start', scIdx] ? t['start', scIdx] : '<?>'} -> "</span> <span class="ruby-operator">+</span>
|
|
1957
|
+
857: <span class="ruby-node">"#{t['end', scIdx] ? t['end', scIdx] : '<?>'}"</span>, <span class="ruby-identifier">t</span>,
|
|
1958
|
+
858: <span class="ruby-identifier">scenario</span>(<span class="ruby-identifier">scIdx</span>))
|
|
1959
|
+
859: <span class="ruby-identifier">sendMessage</span>(<span class="ruby-identifier">message</span>)
|
|
1960
|
+
860:
|
|
1961
|
+
861: <span class="ruby-identifier">i</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
|
|
1962
|
+
862: <span class="ruby-keyword kw">break</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">i</span> <span class="ruby-operator">>=</span> <span class="ruby-value">10</span>
|
|
1963
|
+
863: <span class="ruby-keyword kw">end</span>
|
|
1964
|
+
864: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">stopProgressMeter</span>
|
|
1965
|
+
865: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
|
|
1966
|
+
866: <span class="ruby-keyword kw">end</span>
|
|
1967
|
+
867:
|
|
1968
|
+
868: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">stopProgressMeter</span>
|
|
1969
|
+
869: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">exit</span>(<span class="ruby-value str">'scheduleScenario'</span>, <span class="ruby-node">"Scheduling of scenario #{scIdx} finished"</span>)
|
|
1970
|
+
870: <span class="ruby-keyword kw">true</span>
|
|
1971
|
+
871: <span class="ruby-keyword kw">end</span>
|
|
1586
1972
|
</pre>
|
|
1587
1973
|
</div>
|
|
1588
1974
|
|