taskjuggler 0.0.8 → 0.0.9
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/CHANGELOG +1144 -2047
- data/README +1 -1
- data/Rakefile +6 -6
- data/data/css/tjmanual.css +20 -0
- data/data/css/tjreport.css +7 -6
- data/doc/AppConfig.html +136 -130
- data/doc/Arguments.html +46 -40
- data/doc/CHANGELOG.html +1162 -2057
- data/doc/COPYING.html +8 -2
- data/doc/Object.html +205 -199
- data/doc/README.html +9 -3
- data/doc/RuntimeConfig.html +75 -69
- data/doc/String.html +69 -63
- data/doc/TaskJuggler.html +350 -291
- data/doc/TaskJuggler/Account.html +26 -20
- data/doc/TaskJuggler/AccountAttribute.html +24 -18
- data/doc/TaskJuggler/AccountScenario.html +24 -18
- data/doc/TaskJuggler/Allocation.html +74 -68
- data/doc/TaskJuggler/AllocationAttribute.html +54 -48
- data/doc/TaskJuggler/AttributeBase.html +172 -93
- data/doc/TaskJuggler/AttributeDefinition.html +22 -16
- data/doc/TaskJuggler/AttributeOverwrite.html +586 -0
- data/doc/TaskJuggler/BatchProcessor.html +263 -257
- data/doc/TaskJuggler/Booking.html +44 -38
- data/doc/TaskJuggler/BookingListAttribute.html +25 -21
- data/doc/TaskJuggler/BooleanAttribute.html +24 -18
- data/doc/TaskJuggler/CSVFile.html +193 -187
- data/doc/TaskJuggler/CellSettingPattern.html +13 -7
- data/doc/TaskJuggler/CellSettingPatternList.html +25 -19
- data/doc/TaskJuggler/Charge.html +49 -43
- data/doc/TaskJuggler/ChargeListAttribute.html +21 -15
- data/doc/TaskJuggler/ChargeSet.html +94 -88
- data/doc/TaskJuggler/ChargeSetListAttribute.html +29 -25
- data/doc/TaskJuggler/CollisionDetector.html +142 -136
- data/doc/TaskJuggler/ColumnListAttribute.html +21 -17
- data/doc/TaskJuggler/ColumnTable.html +50 -44
- data/doc/TaskJuggler/Daemon.html +71 -50
- data/doc/TaskJuggler/DataCache.html +110 -58
- data/doc/TaskJuggler/DataCacheEntry.html +22 -16
- data/doc/TaskJuggler/DateAttribute.html +24 -18
- data/doc/TaskJuggler/DefinitionListAttribute.html +12 -6
- data/doc/TaskJuggler/DependencyListAttribute.html +29 -25
- data/doc/TaskJuggler/DurationAttribute.html +25 -19
- data/doc/TaskJuggler/FileList.html +25 -19
- data/doc/TaskJuggler/FileRecord.html +17 -11
- data/doc/TaskJuggler/FixnumAttribute.html +16 -10
- data/doc/TaskJuggler/FlagListAttribute.html +25 -21
- data/doc/TaskJuggler/FloatAttribute.html +20 -14
- data/doc/TaskJuggler/FormatListAttribute.html +17 -11
- data/doc/TaskJuggler/GanttChart.html +242 -236
- data/doc/TaskJuggler/GanttContainer.html +71 -67
- data/doc/TaskJuggler/GanttHeader.html +113 -107
- data/doc/TaskJuggler/GanttHeaderScaleItem.html +26 -20
- data/doc/TaskJuggler/GanttLine.html +217 -210
- data/doc/TaskJuggler/GanttLoadStack.html +89 -83
- data/doc/TaskJuggler/GanttMilestone.html +11 -6
- data/doc/TaskJuggler/GanttRouter.html +194 -186
- data/doc/TaskJuggler/GanttTaskBar.html +41 -34
- data/doc/TaskJuggler/HTMLDocument.html +52 -46
- data/doc/TaskJuggler/HTMLGraphics.html +58 -52
- data/doc/TaskJuggler/Interval.html +90 -84
- data/doc/TaskJuggler/IntervalList.html +777 -0
- data/doc/TaskJuggler/IntervalListAttribute.html +29 -25
- data/doc/TaskJuggler/JobInfo.html +36 -30
- data/doc/TaskJuggler/Journal.html +188 -177
- data/doc/TaskJuggler/JournalEntry.html +36 -30
- data/doc/TaskJuggler/JournalEntryList.html +88 -82
- data/doc/TaskJuggler/KeywordArray.html +12 -6
- data/doc/TaskJuggler/KeywordDocumentation.html +512 -503
- data/doc/TaskJuggler/Limits.html +111 -105
- data/doc/TaskJuggler/Limits/Limit.html +71 -65
- data/doc/TaskJuggler/LimitsAttribute.html +21 -15
- data/doc/TaskJuggler/ListAttributeBase.html +16 -10
- data/doc/TaskJuggler/Log.html +111 -105
- data/doc/TaskJuggler/LogFile.html +54 -48
- data/doc/TaskJuggler/LogicalAttribute.html +35 -29
- data/doc/TaskJuggler/LogicalExpression.html +32 -26
- data/doc/TaskJuggler/LogicalExpressionAttribute.html +16 -10
- data/doc/TaskJuggler/LogicalExpressionListAttribute.html +671 -0
- data/doc/TaskJuggler/LogicalFlag.html +24 -18
- data/doc/TaskJuggler/LogicalFunction.html +164 -158
- data/doc/TaskJuggler/LogicalOperation.html +138 -132
- data/doc/TaskJuggler/Macro.html +14 -8
- data/doc/TaskJuggler/MacroTable.html +42 -36
- data/doc/TaskJuggler/ManagerResponsibilities.html +19 -13
- data/doc/TaskJuggler/ManagerStatusRecord.html +23 -17
- data/doc/TaskJuggler/Message.html +56 -50
- data/doc/TaskJuggler/MessageHandler.html +73 -67
- data/doc/TaskJuggler/Navigator.html +92 -86
- data/doc/TaskJuggler/NavigatorElement.html +88 -82
- data/doc/TaskJuggler/NikuProject.html +15 -9
- data/doc/TaskJuggler/NikuReport.html +405 -370
- data/doc/TaskJuggler/NikuResource.html +13 -7
- data/doc/TaskJuggler/NodeListAttribute.html +13 -9
- data/doc/TaskJuggler/PlaceHolderCell.html +22 -16
- data/doc/TaskJuggler/ProcessIntercom.html +116 -110
- data/doc/TaskJuggler/ProcessIntercomIface.html +39 -33
- data/doc/TaskJuggler/Project.html +1064 -895
- data/doc/TaskJuggler/ProjectBroker.html +439 -366
- data/doc/TaskJuggler/ProjectBrokerIface.html +63 -53
- data/doc/TaskJuggler/ProjectFileParser.html +329 -319
- data/doc/TaskJuggler/ProjectFileScanner.html +351 -345
- data/doc/TaskJuggler/ProjectRecord.html +66 -60
- data/doc/TaskJuggler/ProjectServer.html +287 -280
- data/doc/TaskJuggler/ProjectServerIface.html +43 -37
- data/doc/TaskJuggler/PropertyAttribute.html +16 -10
- data/doc/TaskJuggler/PropertyList.html +205 -199
- data/doc/TaskJuggler/PropertySet.html +264 -296
- data/doc/TaskJuggler/PropertyTreeNode.html +455 -505
- data/doc/TaskJuggler/Query.html +309 -524
- data/doc/TaskJuggler/RTFHandlers.html +17 -11
- data/doc/TaskJuggler/RTFNavigator.html +33 -27
- data/doc/TaskJuggler/RTFQuery.html +135 -129
- data/doc/TaskJuggler/RTFReport.html +63 -57
- data/doc/TaskJuggler/RTFReportLink.html +55 -49
- data/doc/TaskJuggler/RTFWithQuerySupport.html +17 -11
- data/doc/TaskJuggler/RealFormat.html +64 -58
- data/doc/TaskJuggler/RealFormatAttribute.html +12 -6
- data/doc/TaskJuggler/ReferenceAttribute.html +35 -29
- data/doc/TaskJuggler/Report.html +294 -249
- data/doc/TaskJuggler/ReportBase.html +229 -223
- data/doc/TaskJuggler/ReportContext.html +52 -46
- data/doc/TaskJuggler/ReportServer.html +143 -137
- data/doc/TaskJuggler/ReportServerIface.html +51 -43
- data/doc/TaskJuggler/ReportServerRecord.html +36 -30
- data/doc/TaskJuggler/ReportServlet.html +167 -140
- data/doc/TaskJuggler/ReportTable.html +137 -131
- data/doc/TaskJuggler/ReportTableCell.html +332 -292
- data/doc/TaskJuggler/ReportTableColumn.html +46 -40
- data/doc/TaskJuggler/ReportTableLegend.html +43 -38
- data/doc/TaskJuggler/ReportTableLine.html +66 -60
- data/doc/TaskJuggler/Resource.html +166 -160
- data/doc/TaskJuggler/ResourceListAttribute.html +54 -32
- data/doc/TaskJuggler/ResourceListRE.html +47 -41
- data/doc/TaskJuggler/ResourceScenario.html +671 -644
- data/doc/TaskJuggler/RichText.html +51 -45
- data/doc/TaskJuggler/RichTextAttribute.html +28 -22
- data/doc/TaskJuggler/RichTextDocument.html +96 -90
- data/doc/TaskJuggler/RichTextElement.html +503 -497
- data/doc/TaskJuggler/RichTextFunctionExample.html +41 -35
- data/doc/TaskJuggler/RichTextFunctionHandler.html +19 -13
- data/doc/TaskJuggler/RichTextImage.html +14 -8
- data/doc/TaskJuggler/RichTextIntermediate.html +86 -80
- data/doc/TaskJuggler/RichTextParser.html +59 -53
- data/doc/TaskJuggler/RichTextScanner.html +184 -178
- data/doc/TaskJuggler/RichTextSnip.html +69 -63
- data/doc/TaskJuggler/RichTextSyntaxRules.html +416 -410
- data/doc/TaskJuggler/Scenario.html +13 -7
- data/doc/TaskJuggler/ScenarioData.html +40 -34
- data/doc/TaskJuggler/ScenarioListAttribute.html +21 -15
- data/doc/TaskJuggler/Scoreboard.html +129 -107
- data/doc/TaskJuggler/SheetHandlerBase.html +245 -239
- data/doc/TaskJuggler/SheetReceiver.html +333 -327
- data/doc/TaskJuggler/SheetSender.html +227 -221
- data/doc/TaskJuggler/Shift.html +26 -20
- data/doc/TaskJuggler/ShiftAssignment.html +45 -39
- data/doc/TaskJuggler/ShiftAssignments.html +178 -172
- data/doc/TaskJuggler/ShiftAssignmentsAttribute.html +21 -15
- data/doc/TaskJuggler/ShiftScenario.html +29 -23
- data/doc/TaskJuggler/SimpleQueryExpander.html +36 -30
- data/doc/TaskJuggler/SortListAttribute.html +17 -13
- data/doc/TaskJuggler/SourceFileInfo.html +19 -13
- data/doc/TaskJuggler/StatusSheetReceiver.html +31 -25
- data/doc/TaskJuggler/StatusSheetReport.html +166 -159
- data/doc/TaskJuggler/StatusSheetSender.html +80 -74
- data/doc/TaskJuggler/StringAttribute.html +20 -14
- data/doc/TaskJuggler/SymbolAttribute.html +16 -10
- data/doc/TaskJuggler/SyntaxReference.html +231 -225
- data/doc/TaskJuggler/TOCEntry.html +46 -40
- data/doc/TaskJuggler/TSResourceRecord.html +15 -9
- data/doc/TaskJuggler/TSTaskRecord.html +16 -10
- data/doc/TaskJuggler/TableColumnDefinition.html +84 -39
- data/doc/TaskJuggler/TableOfContents.html +28 -22
- data/doc/TaskJuggler/TableReport.html +906 -866
- data/doc/TaskJuggler/Task.html +99 -93
- data/doc/TaskJuggler/TaskDependency.html +24 -18
- data/doc/TaskJuggler/TaskListAttribute.html +29 -25
- data/doc/TaskJuggler/TaskListRE.html +46 -39
- data/doc/TaskJuggler/TaskScenario.html +2218 -1965
- data/doc/TaskJuggler/TextFormatter.html +154 -148
- data/doc/TaskJuggler/TextParser.html +362 -348
- data/doc/TaskJuggler/TextParser/Pattern.html +313 -307
- data/doc/TaskJuggler/TextParser/Rule.html +147 -141
- data/doc/TaskJuggler/TextParser/StackElement.html +58 -52
- data/doc/TaskJuggler/TextParser/State.html +88 -82
- data/doc/TaskJuggler/TextParser/StateTransition.html +42 -36
- data/doc/TaskJuggler/TextParser/TextParserResultArray.html +20 -14
- data/doc/TaskJuggler/TextParser/TokenDoc.html +19 -13
- data/doc/TaskJuggler/TextReport.html +80 -74
- data/doc/TaskJuggler/TextScanner.html +284 -272
- data/doc/TaskJuggler/TextScanner/BufferStreamHandle.html +14 -8
- data/doc/TaskJuggler/TextScanner/FileStreamHandle.html +21 -15
- data/doc/TaskJuggler/TextScanner/MacroStackEntry.html +15 -9
- data/doc/TaskJuggler/TextScanner/StreamHandle.html +102 -96
- data/doc/TaskJuggler/TimeSheet.html +123 -117
- data/doc/TaskJuggler/TimeSheetReceiver.html +28 -22
- data/doc/TaskJuggler/TimeSheetRecord.html +212 -206
- data/doc/TaskJuggler/TimeSheetReport.html +206 -199
- data/doc/TaskJuggler/TimeSheetSender.html +27 -21
- data/doc/TaskJuggler/TimeSheetSummary.html +140 -134
- data/doc/TaskJuggler/TimeSheets.html +20 -14
- data/doc/TaskJuggler/Tj3AppBase.html +100 -94
- data/doc/TaskJuggler/Tj3Client.html +407 -483
- data/doc/TaskJuggler/Tj3Daemon.html +116 -107
- data/doc/TaskJuggler/Tj3SheetAppBase.html +45 -39
- data/doc/TaskJuggler/Tj3SsReceiver.html +31 -25
- data/doc/TaskJuggler/Tj3SsSender.html +64 -58
- data/doc/TaskJuggler/Tj3TsReceiver.html +31 -25
- data/doc/TaskJuggler/Tj3TsSender.html +51 -45
- data/doc/TaskJuggler/Tj3TsSummary.html +59 -53
- data/doc/TaskJuggler/TjException.html +13 -7
- data/doc/TaskJuggler/TjTime.html +444 -438
- data/doc/TaskJuggler/TjpExample.html +84 -78
- data/doc/TaskJuggler/TjpExportRE.html +356 -349
- data/doc/TaskJuggler/TjpSyntaxRules.html +4279 -4151
- data/doc/TaskJuggler/URLParameter.html +16 -10
- data/doc/TaskJuggler/UserManual.html +185 -179
- data/doc/TaskJuggler/VimSyntax.html +144 -138
- data/doc/TaskJuggler/WebServer.html +46 -39
- data/doc/TaskJuggler/WelcomePage.html +769 -0
- data/doc/TaskJuggler/WorkingHours.html +185 -179
- data/doc/TaskJuggler/WorkingHoursAttribute.html +42 -36
- data/doc/TaskJuggler/XMLBlob.html +21 -15
- data/doc/TaskJuggler/XMLComment.html +17 -11
- data/doc/TaskJuggler/XMLDocument.html +33 -27
- data/doc/TaskJuggler/XMLElement.html +97 -91
- data/doc/TaskJuggler/XMLNamedText.html +13 -7
- data/doc/TaskJuggler/XMLText.html +32 -26
- data/doc/index.html +601 -563
- data/doc/lib/AccountScenario_rb.html +5 -3
- data/doc/lib/Account_rb.html +5 -3
- data/doc/lib/Allocation_rb.html +5 -3
- data/doc/lib/AppConfig_rb.html +5 -3
- data/doc/lib/AttributeBase_rb.html +5 -3
- data/doc/lib/AttributeDefinition_rb.html +5 -3
- data/doc/lib/Attributes_rb.html +5 -3
- data/doc/lib/BatchProcessor_rb.html +5 -3
- data/doc/lib/Booking_rb.html +5 -3
- data/doc/lib/ChargeSet_rb.html +5 -3
- data/doc/lib/Charge_rb.html +5 -3
- data/doc/lib/DataCache_rb.html +5 -3
- data/doc/lib/FileList_rb.html +5 -3
- data/doc/lib/HTMLDocument_rb.html +5 -3
- data/doc/lib/IntervalList_rb.html +69 -0
- data/doc/lib/Interval_rb.html +5 -3
- data/doc/lib/Journal_rb.html +5 -3
- data/doc/lib/KeywordArray_rb.html +5 -3
- data/doc/lib/KeywordDocumentation_rb.html +5 -3
- data/doc/lib/Limits_rb.html +5 -3
- data/doc/lib/LogFile_rb.html +5 -3
- data/doc/lib/Log_rb.html +5 -3
- data/doc/lib/LogicalExpression_rb.html +5 -3
- data/doc/lib/LogicalFunction_rb.html +5 -3
- data/doc/lib/LogicalOperation_rb.html +5 -3
- data/doc/lib/MacroTable_rb.html +5 -3
- data/doc/lib/MessageHandler_rb.html +5 -3
- data/doc/lib/ProjectFileParser_rb.html +5 -3
- data/doc/lib/ProjectFileScanner_rb.html +5 -3
- data/doc/lib/Project_rb.html +5 -3
- data/doc/lib/PropertyList_rb.html +5 -3
- data/doc/lib/PropertySet_rb.html +5 -3
- data/doc/lib/PropertyTreeNode_rb.html +5 -3
- data/doc/lib/Query_rb.html +5 -3
- data/doc/lib/RTFHandlers_rb.html +5 -3
- data/doc/lib/RTFNavigator_rb.html +5 -3
- data/doc/lib/RTFQuery_rb.html +5 -3
- data/doc/lib/RTFReportLink_rb.html +5 -3
- data/doc/lib/RTFReport_rb.html +5 -3
- data/doc/lib/RTFWithQuerySupport_rb.html +5 -3
- data/doc/lib/RealFormat_rb.html +5 -3
- data/doc/lib/ResourceScenario_rb.html +5 -3
- data/doc/lib/Resource_rb.html +5 -3
- data/doc/lib/RichTextDocument_rb.html +5 -3
- data/doc/lib/RichTextElement_rb.html +5 -3
- data/doc/lib/RichTextFunctionExample_rb.html +5 -3
- data/doc/lib/RichTextFunctionHandler_rb.html +5 -3
- data/doc/lib/RichTextParser_rb.html +5 -3
- data/doc/lib/RichTextScanner_rb.html +5 -3
- data/doc/lib/RichTextSnip_rb.html +5 -3
- data/doc/lib/RichTextSyntaxRules_rb.html +5 -3
- data/doc/lib/RichText_rb.html +5 -3
- data/doc/lib/RuntimeConfig_rb.html +5 -3
- data/doc/lib/ScenarioData_rb.html +5 -3
- data/doc/lib/Scenario_rb.html +5 -3
- data/doc/lib/Scoreboard_rb.html +7 -3
- data/doc/lib/SheetHandlerBase_rb.html +5 -3
- data/doc/lib/SheetReceiver_rb.html +5 -3
- data/doc/lib/SheetSender_rb.html +5 -3
- data/doc/lib/ShiftAssignments_rb.html +5 -3
- data/doc/lib/ShiftScenario_rb.html +5 -3
- data/doc/lib/Shift_rb.html +5 -3
- data/doc/lib/SimpleQueryExpander_rb.html +5 -3
- data/doc/lib/SourceFileInfo_rb.html +5 -3
- data/doc/lib/StatusSheetReceiver_rb.html +5 -3
- data/doc/lib/StatusSheetSender_rb.html +5 -3
- data/doc/lib/SyntaxReference_rb.html +5 -3
- data/doc/lib/TOCEntry_rb.html +5 -3
- data/doc/lib/TableColumnDefinition_rb.html +5 -3
- data/doc/lib/TableOfContents_rb.html +5 -3
- data/doc/lib/TaskDependency_rb.html +5 -3
- data/doc/lib/TaskJuggler_rb.html +5 -3
- data/doc/lib/TaskScenario_rb.html +5 -3
- data/doc/lib/Task_rb.html +5 -3
- data/doc/lib/TextFormatter_rb.html +6 -4
- data/doc/lib/TextParser/Pattern_rb.html +5 -3
- data/doc/lib/TextParser/Rule_rb.html +5 -3
- data/doc/lib/TextParser/StackElement_rb.html +5 -3
- data/doc/lib/TextParser/State_rb.html +6 -4
- data/doc/lib/TextParser/TokenDoc_rb.html +5 -3
- data/doc/lib/TextParser_rb.html +5 -3
- data/doc/lib/TextScanner_rb.html +5 -3
- data/doc/lib/TimeSheetReceiver_rb.html +5 -3
- data/doc/lib/TimeSheetSender_rb.html +5 -3
- data/doc/lib/TimeSheetSummary_rb.html +6 -4
- data/doc/lib/TimeSheets_rb.html +5 -3
- data/doc/lib/Tj3AppBase_rb.html +5 -3
- data/doc/lib/Tj3Config_rb.html +5 -3
- data/doc/lib/Tj3SheetAppBase_rb.html +5 -3
- data/doc/lib/TjException_rb.html +5 -3
- data/doc/lib/TjTime_rb.html +5 -3
- data/doc/lib/TjpExample_rb.html +5 -3
- data/doc/lib/TjpSyntaxRules_rb.html +5 -3
- data/doc/lib/URLParameter_rb.html +5 -3
- data/doc/lib/UTF8String_rb.html +5 -3
- data/doc/lib/UserManual_rb.html +5 -3
- data/doc/lib/VimSyntax_rb.html +6 -4
- data/doc/lib/WorkingHours_rb.html +5 -3
- data/doc/lib/XMLDocument_rb.html +5 -3
- data/doc/lib/XMLElement_rb.html +5 -3
- data/doc/lib/daemon/Daemon_rb.html +5 -3
- data/doc/lib/daemon/ProcessIntercom_rb.html +7 -3
- data/doc/lib/daemon/ProjectBroker_rb.html +5 -3
- data/doc/lib/daemon/ProjectServer_rb.html +5 -3
- data/doc/lib/daemon/ReportServer_rb.html +5 -3
- data/doc/lib/daemon/ReportServlet_rb.html +69 -0
- data/doc/lib/daemon/WebServer_rb.html +9 -3
- data/doc/lib/daemon/WelcomePage_rb.html +71 -0
- data/doc/lib/deep_copy_rb.html +5 -3
- data/doc/lib/reports/CSVFile_rb.html +5 -3
- data/doc/lib/reports/CollisionDetector_rb.html +5 -3
- data/doc/lib/reports/ColumnTable_rb.html +5 -3
- data/doc/lib/reports/GanttChart_rb.html +5 -3
- data/doc/lib/reports/GanttContainer_rb.html +5 -3
- data/doc/lib/reports/GanttHeaderScaleItem_rb.html +5 -3
- data/doc/lib/reports/GanttHeader_rb.html +5 -3
- data/doc/lib/reports/GanttLine_rb.html +5 -3
- data/doc/lib/reports/GanttLoadStack_rb.html +5 -3
- data/doc/lib/reports/GanttMilestone_rb.html +5 -3
- data/doc/lib/reports/GanttRouter_rb.html +5 -3
- data/doc/lib/reports/GanttTaskBar_rb.html +5 -3
- data/doc/lib/reports/HTMLGraphics_rb.html +5 -3
- data/doc/lib/reports/Navigator_rb.html +5 -3
- data/doc/lib/reports/NikuReport_rb.html +5 -3
- data/doc/lib/reports/ReportBase_rb.html +5 -3
- data/doc/lib/reports/ReportContext_rb.html +5 -3
- data/doc/lib/reports/ReportTableCell_rb.html +5 -3
- data/doc/lib/reports/ReportTableColumn_rb.html +5 -3
- data/doc/lib/reports/ReportTableLegend_rb.html +5 -3
- data/doc/lib/reports/ReportTableLine_rb.html +5 -3
- data/doc/lib/reports/ReportTable_rb.html +5 -3
- data/doc/lib/reports/Report_rb.html +5 -3
- data/doc/lib/reports/ResourceListRE_rb.html +5 -3
- data/doc/lib/reports/StatusSheetReport_rb.html +5 -3
- data/doc/lib/reports/TableReport_rb.html +5 -3
- data/doc/lib/reports/TaskListRE_rb.html +5 -3
- data/doc/lib/reports/TextReport_rb.html +5 -3
- data/doc/lib/reports/TimeSheetReport_rb.html +5 -3
- data/doc/lib/reports/TjpExportRE_rb.html +5 -3
- data/doc/lib/{taskjuggler3_rb.html → tj3_rb.html} +7 -5
- data/doc/lib/tj3client_rb.html +5 -3
- data/doc/lib/tj3d_rb.html +6 -4
- data/doc/lib/tj3man_rb.html +5 -3
- data/doc/lib/tj3ss_receiver_rb.html +5 -3
- data/doc/lib/tj3ss_sender_rb.html +5 -3
- data/doc/lib/tj3ts_receiver_rb.html +5 -3
- data/doc/lib/tj3ts_sender_rb.html +5 -3
- data/doc/lib/tj3ts_summary_rb.html +5 -3
- data/examples/tutorial.tjp +13 -5
- data/gem_spec.rb +3 -0
- data/lib/Account.rb +2 -1
- data/lib/AccountScenario.rb +2 -1
- data/lib/Allocation.rb +2 -1
- data/lib/AppConfig.rb +2 -1
- data/lib/AttributeBase.rb +19 -5
- data/lib/AttributeDefinition.rb +2 -1
- data/lib/Attributes.rb +49 -38
- data/lib/BatchProcessor.rb +2 -1
- data/lib/Booking.rb +2 -1
- data/lib/Charge.rb +2 -1
- data/lib/ChargeSet.rb +2 -1
- data/lib/DataCache.rb +15 -1
- data/lib/FileList.rb +2 -1
- data/lib/HTMLDocument.rb +2 -1
- data/lib/Interval.rb +2 -1
- data/lib/IntervalList.rb +100 -0
- data/lib/Journal.rb +8 -2
- data/lib/KeywordArray.rb +2 -1
- data/lib/KeywordDocumentation.rb +10 -6
- data/lib/Limits.rb +2 -1
- data/lib/Log.rb +3 -2
- data/lib/LogFile.rb +2 -1
- data/lib/LogicalExpression.rb +2 -1
- data/lib/LogicalFunction.rb +2 -1
- data/lib/LogicalOperation.rb +2 -1
- data/lib/MacroTable.rb +2 -1
- data/lib/MessageHandler.rb +2 -1
- data/lib/Project.rb +92 -25
- data/lib/ProjectFileParser.rb +7 -2
- data/lib/ProjectFileScanner.rb +2 -1
- data/lib/PropertyList.rb +2 -1
- data/lib/PropertySet.rb +2 -6
- data/lib/PropertyTreeNode.rb +22 -44
- data/lib/Query.rb +32 -13
- data/lib/RTFHandlers.rb +2 -1
- data/lib/RTFNavigator.rb +2 -1
- data/lib/RTFQuery.rb +3 -2
- data/lib/RTFReport.rb +2 -1
- data/lib/RTFReportLink.rb +2 -1
- data/lib/RTFWithQuerySupport.rb +2 -1
- data/lib/RealFormat.rb +2 -1
- data/lib/Resource.rb +2 -1
- data/lib/ResourceScenario.rb +35 -14
- data/lib/RichText.rb +2 -1
- data/lib/RichTextDocument.rb +2 -1
- data/lib/RichTextElement.rb +2 -1
- data/lib/RichTextFunctionExample.rb +2 -1
- data/lib/RichTextFunctionHandler.rb +2 -1
- data/lib/RichTextParser.rb +2 -1
- data/lib/RichTextScanner.rb +2 -1
- data/lib/RichTextSnip.rb +2 -1
- data/lib/RichTextSyntaxRules.rb +2 -1
- data/lib/RuntimeConfig.rb +2 -1
- data/lib/Scenario.rb +2 -1
- data/lib/ScenarioData.rb +2 -1
- data/lib/Scoreboard.rb +27 -8
- data/lib/SheetHandlerBase.rb +2 -1
- data/lib/SheetReceiver.rb +2 -1
- data/lib/SheetSender.rb +2 -1
- data/lib/Shift.rb +2 -1
- data/lib/ShiftAssignments.rb +2 -1
- data/lib/ShiftScenario.rb +2 -1
- data/lib/SimpleQueryExpander.rb +2 -1
- data/lib/SourceFileInfo.rb +2 -1
- data/lib/StatusSheetReceiver.rb +2 -1
- data/lib/StatusSheetSender.rb +2 -1
- data/lib/SyntaxReference.rb +2 -1
- data/lib/TOCEntry.rb +2 -1
- data/lib/TableColumnDefinition.rb +9 -2
- data/lib/TableOfContents.rb +2 -1
- data/lib/Task.rb +2 -1
- data/lib/TaskDependency.rb +2 -1
- data/lib/TaskJuggler.rb +8 -6
- data/lib/TaskScenario.rb +337 -153
- data/lib/TextFormatter.rb +3 -2
- data/lib/TextParser.rb +7 -2
- data/lib/TextParser/Pattern.rb +2 -1
- data/lib/TextParser/Rule.rb +2 -1
- data/lib/TextParser/StackElement.rb +2 -1
- data/lib/TextParser/State.rb +3 -2
- data/lib/TextParser/TokenDoc.rb +2 -1
- data/lib/TextScanner.rb +12 -5
- data/lib/TimeSheetReceiver.rb +2 -1
- data/lib/TimeSheetSender.rb +2 -1
- data/lib/TimeSheetSummary.rb +3 -2
- data/lib/TimeSheets.rb +2 -1
- data/lib/Tj3AppBase.rb +6 -5
- data/lib/Tj3Config.rb +5 -4
- data/lib/Tj3SheetAppBase.rb +2 -1
- data/lib/TjException.rb +2 -1
- data/lib/TjTime.rb +2 -1
- data/lib/TjpExample.rb +2 -1
- data/lib/TjpSyntaxRules.rb +264 -65
- data/lib/URLParameter.rb +2 -1
- data/lib/UTF8String.rb +2 -1
- data/lib/UserManual.rb +2 -1
- data/lib/VimSyntax.rb +3 -2
- data/lib/WorkingHours.rb +2 -1
- data/lib/XMLDocument.rb +2 -1
- data/lib/XMLElement.rb +2 -1
- data/lib/daemon/Daemon.rb +3 -1
- data/lib/daemon/ProcessIntercom.rb +3 -1
- data/lib/daemon/ProjectBroker.rb +84 -32
- data/lib/daemon/ProjectServer.rb +5 -3
- data/lib/daemon/ReportServer.rb +8 -5
- data/lib/daemon/ReportServlet.rb +166 -0
- data/lib/daemon/WebServer.rb +6 -150
- data/lib/daemon/WelcomePage.rb +80 -0
- data/lib/deep_copy.rb +2 -1
- data/lib/reports/CSVFile.rb +2 -1
- data/lib/reports/CollisionDetector.rb +2 -1
- data/lib/reports/ColumnTable.rb +2 -1
- data/lib/reports/GanttChart.rb +2 -1
- data/lib/reports/GanttContainer.rb +3 -4
- data/lib/reports/GanttHeader.rb +2 -1
- data/lib/reports/GanttHeaderScaleItem.rb +2 -1
- data/lib/reports/GanttLine.rb +12 -10
- data/lib/reports/GanttLoadStack.rb +2 -1
- data/lib/reports/GanttMilestone.rb +3 -3
- data/lib/reports/GanttRouter.rb +4 -1
- data/lib/reports/GanttTaskBar.rb +9 -7
- data/lib/reports/HTMLGraphics.rb +2 -1
- data/lib/reports/Navigator.rb +2 -1
- data/lib/reports/NikuReport.rb +79 -49
- data/lib/reports/Report.rb +42 -10
- data/lib/reports/ReportBase.rb +2 -1
- data/lib/reports/ReportContext.rb +2 -1
- data/lib/reports/ReportTable.rb +2 -1
- data/lib/reports/ReportTableCell.rb +63 -28
- data/lib/reports/ReportTableColumn.rb +2 -1
- data/lib/reports/ReportTableLegend.rb +5 -5
- data/lib/reports/ReportTableLine.rb +2 -1
- data/lib/reports/ResourceListRE.rb +2 -1
- data/lib/reports/StatusSheetReport.rb +4 -2
- data/lib/reports/TableReport.rb +42 -38
- data/lib/reports/TaskListRE.rb +4 -2
- data/lib/reports/TextReport.rb +2 -1
- data/lib/reports/TimeSheetReport.rb +4 -2
- data/lib/reports/TjpExportRE.rb +4 -2
- data/lib/{taskjuggler3.rb → tj3.rb} +6 -5
- data/lib/tj3client.rb +19 -36
- data/lib/tj3d.rb +6 -2
- data/lib/tj3man.rb +4 -3
- data/lib/tj3ss_receiver.rb +2 -1
- data/lib/tj3ss_sender.rb +2 -1
- data/lib/tj3ts_receiver.rb +2 -1
- data/lib/tj3ts_sender.rb +2 -1
- data/lib/tj3ts_summary.rb +2 -1
- data/manual/Day_To_Day_Juggling +36 -0
- data/manual/How_To_Contribute +9 -4
- data/manual/Installation +10 -3
- data/manual/TaskJuggler_Internals +0 -2
- data/manual/Tutorial +25 -3
- data/prj_cfg.rb +4 -2
- data/spec/IntervalList_spec.rb +138 -0
- data/spec/ProjectBroker_spec.rb +133 -0
- data/tasks/changelog.rake +41 -24
- data/tasks/csts.rake +1 -0
- data/tasks/gem.rake +1 -0
- data/tasks/rcov.rake +1 -1
- data/tasks/spec.rake +7 -0
- data/tasks/test.rake +1 -0
- data/test/MessageChecker.rb +2 -1
- data/test/TestSuite/CSV-Reports/niku.tjp +70 -0
- data/test/TestSuite/CSV-Reports/{celltext-Reference.csv → refs/celltext.csv} +0 -0
- data/test/TestSuite/CSV-Reports/refs/niku.csv +5 -0
- data/test/TestSuite/CSV-Reports/{resourcereport-Reference.csv → refs/resourcereport.csv} +0 -0
- data/test/TestSuite/CSV-Reports/{resourcereport_with_tasks-Reference.csv → refs/resourcereport_with_tasks.csv} +0 -0
- data/test/TestSuite/CSV-Reports/{sortByTree-Reference.csv → refs/sortByTree.csv} +0 -0
- data/test/TestSuite/CSV-Reports/{sortBy_duration.down-Reference.csv → refs/sortBy_duration.down.csv} +0 -0
- data/test/TestSuite/CSV-Reports/{sortBy_effort.up-Reference.csv → refs/sortBy_effort.up.csv} +0 -0
- data/test/TestSuite/CSV-Reports/{sortBy_plan.start.down-Reference.csv → refs/sortBy_plan.start.down.csv} +0 -0
- data/test/TestSuite/CSV-Reports/{taskreport-Reference.csv → refs/taskreport.csv} +0 -0
- data/test/TestSuite/CSV-Reports/{taskreport_with_resources-Reference.csv → refs/taskreport_with_resources.csv} +0 -0
- data/test/TestSuite/CSV-Reports/{weekly-Reference.csv → refs/weekly.csv} +0 -0
- data/test/TestSuite/HTML-Reports/Alerts.tjp +12 -0
- data/test/TestSuite/Scheduler/Correct/Allocate.tjp +2 -2
- data/test/TestSuite/Scheduler/Correct/Container-2.tjp +1 -2
- data/test/TestSuite/Scheduler/Correct/InheritedAttributes.tjp +77 -0
- data/test/TestSuite/Scheduler/Correct/WeakDeps.tjp +40 -0
- data/test/TestSuite/Scheduler/Errors/loop_detected_12.tjp +2 -2
- data/test/TestSuite/Scheduler/Errors/loop_detected_13.tjp +3 -4
- data/test/TestSuite/Scheduler/Errors/loop_detected_3.tjp +2 -2
- data/test/TestSuite/Scheduler/Errors/loop_detected_6.tjp +8 -7
- data/test/TestSuite/Scheduler/Errors/onend_wrong_direction.tjp +19 -0
- data/test/TestSuite/Scheduler/Errors/onstart_wrong_direction.tjp +18 -0
- data/test/TestSuite/Scheduler/Errors/task_depend_multi.tjp +1 -2
- data/test/TestSuite/StatusSheets/StatusSheetTemplates/2002-03-02/boss_2002-03-02.tji +46 -0
- data/test/TestSuite/StatusSheets/StatusSheetTemplates/2002-03-02/dev2_2002-03-02.tji +22 -0
- data/test/TestSuite/StatusSheets/StatusSheetTemplates/2002-03-02/resources.yml +11 -0
- data/test/TestSuite/StatusSheets/StatusSheetTemplates/acceptable_intervals +1 -0
- data/test/TestSuite/StatusSheets/sender.log +256 -0
- data/test/TestSuite/StatusSheets/statussheets.log +9 -0
- data/test/TestSuite/StatusSheets/tj3d.log +395 -0
- data/test/TestSuite/Syntax/Correct/Limits-1.tjp +2 -0
- data/test/TestSuite/Syntax/Correct/Niku.tjp +6 -1
- data/test/TestSuite/Syntax/Correct/Scenario.tjp +4 -1
- data/test/TestSuite/Syntax/Correct/Supplement.tjp +12 -5
- data/test/TestSuite/Syntax/Correct/TaskPrefix.tji +3 -0
- data/test/TestSuite/Syntax/Correct/TaskPrefix.tjp +24 -0
- data/test/TestSuite/Syntax/Correct/css/tjreport.css +7 -2
- data/test/TestSuite/Syntax/Correct/tutorial.tjp +15 -5
- data/test/all.rb +2 -4
- data/test/test_BatchProcessor.rb +2 -1
- data/test/test_CSV-Reports.rb +34 -23
- data/test/test_CSVFile.rb +2 -1
- data/test/test_CollisionDetector.rb +3 -2
- data/test/test_Journal.rb +2 -1
- data/test/test_Limits.rb +2 -1
- data/test/test_LogicalExpression.rb +2 -1
- data/test/test_MacroTable.rb +2 -1
- data/test/test_Project.rb +3 -2
- data/test/test_ProjectFileScanner.rb +2 -1
- data/test/test_PropertySet.rb +2 -1
- data/test/test_Query.rb +2 -1
- data/test/test_RealFormat.rb +2 -1
- data/test/test_ReportGenerator.rb +2 -1
- data/test/test_RichText.rb +2 -1
- data/test/test_Scheduler.rb +2 -1
- data/test/test_ShiftAssignments.rb +2 -1
- data/test/test_SimpleQueryExpander.rb +2 -1
- data/test/test_Syntax.rb +2 -1
- data/test/test_TextFormatter.rb +3 -2
- data/test/test_TjTime.rb +2 -1
- data/test/test_TjpExample.rb +2 -1
- data/test/test_URLParameter.rb +2 -1
- data/test/test_UTF8String.rb +2 -1
- data/test/test_WorkingHours.rb +2 -1
- data/test/test_deep_copy.rb +2 -1
- metadata +74 -20
- data/doc/StringIO.html +0 -595
- data/test/TestSuite/Scheduler/Errors/loop_detected_7.tjp +0 -46
- data/test/TestSuite/Scheduler/Errors/loop_detected_8.tjp +0 -51
- data/test/TestSuite/Scheduler/Errors/multiple_durations.tjp +0 -11
|
@@ -126,6 +126,8 @@
|
|
|
126
126
|
|
|
127
127
|
<li><a href="../TaskJuggler/AttributeDefinition.html">TaskJuggler::AttributeDefinition</a></li>
|
|
128
128
|
|
|
129
|
+
<li><a href="../TaskJuggler/AttributeOverwrite.html">TaskJuggler::AttributeOverwrite</a></li>
|
|
130
|
+
|
|
129
131
|
<li><a href="../TaskJuggler/BatchProcessor.html">TaskJuggler::BatchProcessor</a></li>
|
|
130
132
|
|
|
131
133
|
<li><a href="../TaskJuggler/Booking.html">TaskJuggler::Booking</a></li>
|
|
@@ -204,6 +206,8 @@
|
|
|
204
206
|
|
|
205
207
|
<li><a href="../TaskJuggler/Interval.html">TaskJuggler::Interval</a></li>
|
|
206
208
|
|
|
209
|
+
<li><a href="../TaskJuggler/IntervalList.html">TaskJuggler::IntervalList</a></li>
|
|
210
|
+
|
|
207
211
|
<li><a href="../TaskJuggler/IntervalListAttribute.html">TaskJuggler::IntervalListAttribute</a></li>
|
|
208
212
|
|
|
209
213
|
<li><a href="../TaskJuggler/JobInfo.html">TaskJuggler::JobInfo</a></li>
|
|
@@ -236,6 +240,8 @@
|
|
|
236
240
|
|
|
237
241
|
<li><a href="../TaskJuggler/LogicalExpressionAttribute.html">TaskJuggler::LogicalExpressionAttribute</a></li>
|
|
238
242
|
|
|
243
|
+
<li><a href="../TaskJuggler/LogicalExpressionListAttribute.html">TaskJuggler::LogicalExpressionListAttribute</a></li>
|
|
244
|
+
|
|
239
245
|
<li><a href="../TaskJuggler/LogicalFlag.html">TaskJuggler::LogicalFlag</a></li>
|
|
240
246
|
|
|
241
247
|
<li><a href="../TaskJuggler/LogicalFunction.html">TaskJuggler::LogicalFunction</a></li>
|
|
@@ -516,6 +522,8 @@
|
|
|
516
522
|
|
|
517
523
|
<li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
|
|
518
524
|
|
|
525
|
+
<li><a href="../TaskJuggler/WelcomePage.html">TaskJuggler::WelcomePage</a></li>
|
|
526
|
+
|
|
519
527
|
<li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
|
|
520
528
|
|
|
521
529
|
<li><a href="../TaskJuggler/WorkingHoursAttribute.html">TaskJuggler::WorkingHoursAttribute</a></li>
|
|
@@ -542,8 +550,6 @@
|
|
|
542
550
|
|
|
543
551
|
<li><a href="../String.html">String</a></li>
|
|
544
552
|
|
|
545
|
-
<li><a href="../StringIO.html">StringIO</a></li>
|
|
546
|
-
|
|
547
553
|
</ul>
|
|
548
554
|
<div id="no-class-search-results" style="display: none;">No matching classes.</div>
|
|
549
555
|
</div>
|
|
@@ -591,12 +597,12 @@
|
|
|
591
597
|
<div class="method-source-code"
|
|
592
598
|
id="connect-source">
|
|
593
599
|
<pre>
|
|
594
|
-
<span class="ruby-comment cmt"># File lib/daemon/ProcessIntercom.rb, line
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
+
<span class="ruby-comment cmt"># File lib/daemon/ProcessIntercom.rb, line 41</span>
|
|
601
|
+
41: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">connect</span>(<span class="ruby-identifier">authKey</span>, <span class="ruby-identifier">stdout</span>, <span class="ruby-identifier">stderr</span>, <span class="ruby-identifier">stdin</span>, <span class="ruby-identifier">silent</span>)
|
|
602
|
+
42: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@server</span>.<span class="ruby-identifier">checkKey</span>(<span class="ruby-identifier">authKey</span>, <span class="ruby-value str">'connect'</span>)
|
|
603
|
+
43:
|
|
604
|
+
44: <span class="ruby-identifier">trap</span> { <span class="ruby-ivar">@server</span>.<span class="ruby-identifier">connect</span>(<span class="ruby-identifier">stdout</span>, <span class="ruby-identifier">stderr</span>, <span class="ruby-identifier">stdin</span>, <span class="ruby-identifier">silent</span>) }
|
|
605
|
+
45: <span class="ruby-keyword kw">end</span></pre>
|
|
600
606
|
</div>
|
|
601
607
|
|
|
602
608
|
</div>
|
|
@@ -627,12 +633,12 @@
|
|
|
627
633
|
<div class="method-source-code"
|
|
628
634
|
id="disconnect-source">
|
|
629
635
|
<pre>
|
|
630
|
-
<span class="ruby-comment cmt"># File lib/daemon/ProcessIntercom.rb, line
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
+
<span class="ruby-comment cmt"># File lib/daemon/ProcessIntercom.rb, line 47</span>
|
|
637
|
+
47: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">disconnect</span>(<span class="ruby-identifier">authKey</span>)
|
|
638
|
+
48: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@server</span>.<span class="ruby-identifier">checkKey</span>(<span class="ruby-identifier">authKey</span>, <span class="ruby-value str">'disconnect'</span>)
|
|
639
|
+
49:
|
|
640
|
+
50: <span class="ruby-identifier">trap</span> { <span class="ruby-ivar">@server</span>.<span class="ruby-identifier">disconnect</span> }
|
|
641
|
+
51: <span class="ruby-keyword kw">end</span></pre>
|
|
636
642
|
</div>
|
|
637
643
|
|
|
638
644
|
</div>
|
|
@@ -663,12 +669,12 @@
|
|
|
663
669
|
<div class="method-source-code"
|
|
664
670
|
id="terminate-source">
|
|
665
671
|
<pre>
|
|
666
|
-
<span class="ruby-comment cmt"># File lib/daemon/ProcessIntercom.rb, line
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
+
<span class="ruby-comment cmt"># File lib/daemon/ProcessIntercom.rb, line 35</span>
|
|
673
|
+
35: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">terminate</span>(<span class="ruby-identifier">authKey</span>)
|
|
674
|
+
36: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@server</span>.<span class="ruby-identifier">checkKey</span>(<span class="ruby-identifier">authKey</span>, <span class="ruby-value str">'terminate'</span>)
|
|
675
|
+
37:
|
|
676
|
+
38: <span class="ruby-identifier">trap</span> { <span class="ruby-ivar">@server</span>.<span class="ruby-identifier">terminate</span> }
|
|
677
|
+
39: <span class="ruby-keyword kw">end</span></pre>
|
|
672
678
|
</div>
|
|
673
679
|
|
|
674
680
|
</div>
|
|
@@ -701,19 +707,19 @@ This function catches all unhandled exceptions in the passed block.
|
|
|
701
707
|
<div class="method-source-code"
|
|
702
708
|
id="trap-source">
|
|
703
709
|
<pre>
|
|
704
|
-
<span class="ruby-comment cmt"># File lib/daemon/ProcessIntercom.rb, line
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
710
|
+
<span class="ruby-comment cmt"># File lib/daemon/ProcessIntercom.rb, line 22</span>
|
|
711
|
+
22: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">trap</span>
|
|
712
|
+
23: <span class="ruby-identifier">log</span> = <span class="ruby-constant">LogFile</span>.<span class="ruby-identifier">instance</span>
|
|
713
|
+
24:
|
|
714
|
+
25: <span class="ruby-keyword kw">begin</span>
|
|
715
|
+
26: <span class="ruby-keyword kw">yield</span>
|
|
716
|
+
27: <span class="ruby-keyword kw">rescue</span>
|
|
717
|
+
28: <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">print</span> <span class="ruby-identifier">$!</span>.<span class="ruby-identifier">to_s</span>
|
|
718
|
+
29: <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">print</span> <span class="ruby-identifier">$!</span>.<span class="ruby-identifier">backtrace</span>.<span class="ruby-identifier">join</span>(<span class="ruby-value str">"\n"</span>)
|
|
719
|
+
30: <span class="ruby-identifier">log</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-identifier">$!</span>.<span class="ruby-identifier">backtrace</span>.<span class="ruby-identifier">join</span>(<span class="ruby-value str">"\n"</span>))
|
|
720
|
+
31: <span class="ruby-identifier">log</span>.<span class="ruby-identifier">fatal</span>(<span class="ruby-node">"Unexpected exception: #{$!}"</span>)
|
|
721
|
+
32: <span class="ruby-keyword kw">end</span>
|
|
722
|
+
33: <span class="ruby-keyword kw">end</span></pre>
|
|
717
723
|
</div>
|
|
718
724
|
|
|
719
725
|
</div>
|
|
@@ -93,6 +93,8 @@
|
|
|
93
93
|
|
|
94
94
|
<li><a href="#method-i-checkTimeSheets">#checkTimeSheets</a></li>
|
|
95
95
|
|
|
96
|
+
<li><a href="#method-i-collectTimeOffIntervals">#collectTimeOffIntervals</a></li>
|
|
97
|
+
|
|
96
98
|
<li><a href="#method-i-convertToDailyLoad">#convertToDailyLoad</a></li>
|
|
97
99
|
|
|
98
100
|
<li><a href="#method-i-dailyWorkingHours">#dailyWorkingHours</a></li>
|
|
@@ -111,6 +113,8 @@
|
|
|
111
113
|
|
|
112
114
|
<li><a href="#method-i-idxToDate">#idxToDate</a></li>
|
|
113
115
|
|
|
116
|
+
<li><a href="#method-i-initScoreboards">#initScoreboards</a></li>
|
|
117
|
+
|
|
114
118
|
<li><a href="#method-i-isWorkingTime">#isWorkingTime</a></li>
|
|
115
119
|
|
|
116
120
|
<li><a href="#method-i-listReports">#listReports</a></li>
|
|
@@ -149,6 +153,8 @@
|
|
|
149
153
|
|
|
150
154
|
<li><a href="#method-i-weeklyWorkingDays">#weeklyWorkingDays</a></li>
|
|
151
155
|
|
|
156
|
+
<li><a href="#method-i-workingDays">#workingDays</a></li>
|
|
157
|
+
|
|
152
158
|
<li><a href="#method-i-yearlyWorkingDays">#yearlyWorkingDays</a></li>
|
|
153
159
|
|
|
154
160
|
</ul>
|
|
@@ -207,6 +213,8 @@
|
|
|
207
213
|
|
|
208
214
|
<li><a href="../TaskJuggler/AttributeDefinition.html">TaskJuggler::AttributeDefinition</a></li>
|
|
209
215
|
|
|
216
|
+
<li><a href="../TaskJuggler/AttributeOverwrite.html">TaskJuggler::AttributeOverwrite</a></li>
|
|
217
|
+
|
|
210
218
|
<li><a href="../TaskJuggler/BatchProcessor.html">TaskJuggler::BatchProcessor</a></li>
|
|
211
219
|
|
|
212
220
|
<li><a href="../TaskJuggler/Booking.html">TaskJuggler::Booking</a></li>
|
|
@@ -285,6 +293,8 @@
|
|
|
285
293
|
|
|
286
294
|
<li><a href="../TaskJuggler/Interval.html">TaskJuggler::Interval</a></li>
|
|
287
295
|
|
|
296
|
+
<li><a href="../TaskJuggler/IntervalList.html">TaskJuggler::IntervalList</a></li>
|
|
297
|
+
|
|
288
298
|
<li><a href="../TaskJuggler/IntervalListAttribute.html">TaskJuggler::IntervalListAttribute</a></li>
|
|
289
299
|
|
|
290
300
|
<li><a href="../TaskJuggler/JobInfo.html">TaskJuggler::JobInfo</a></li>
|
|
@@ -317,6 +327,8 @@
|
|
|
317
327
|
|
|
318
328
|
<li><a href="../TaskJuggler/LogicalExpressionAttribute.html">TaskJuggler::LogicalExpressionAttribute</a></li>
|
|
319
329
|
|
|
330
|
+
<li><a href="../TaskJuggler/LogicalExpressionListAttribute.html">TaskJuggler::LogicalExpressionListAttribute</a></li>
|
|
331
|
+
|
|
320
332
|
<li><a href="../TaskJuggler/LogicalFlag.html">TaskJuggler::LogicalFlag</a></li>
|
|
321
333
|
|
|
322
334
|
<li><a href="../TaskJuggler/LogicalFunction.html">TaskJuggler::LogicalFunction</a></li>
|
|
@@ -597,6 +609,8 @@
|
|
|
597
609
|
|
|
598
610
|
<li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
|
|
599
611
|
|
|
612
|
+
<li><a href="../TaskJuggler/WelcomePage.html">TaskJuggler::WelcomePage</a></li>
|
|
613
|
+
|
|
600
614
|
<li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
|
|
601
615
|
|
|
602
616
|
<li><a href="../TaskJuggler/WorkingHoursAttribute.html">TaskJuggler::WorkingHoursAttribute</a></li>
|
|
@@ -623,8 +637,6 @@
|
|
|
623
637
|
|
|
624
638
|
<li><a href="../String.html">String</a></li>
|
|
625
639
|
|
|
626
|
-
<li><a href="../StringIO.html">StringIO</a></li>
|
|
627
|
-
|
|
628
640
|
</ul>
|
|
629
641
|
<div id="no-class-search-results" style="display: none;">No matching classes.</div>
|
|
630
642
|
</div>
|
|
@@ -887,24 +899,24 @@ granularity is reduced.
|
|
|
887
899
|
<div class="method-source-code"
|
|
888
900
|
id="max-chedule-ranularity-source">
|
|
889
901
|
<pre>
|
|
890
|
-
<span class="ruby-comment cmt"># File lib/Project.rb, line
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
902
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 880</span>
|
|
903
|
+
880: <span class="ruby-keyword kw">def</span> <span class="ruby-constant">Project</span>.<span class="ruby-identifier">maxScheduleGranularity</span>
|
|
904
|
+
881: <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>)
|
|
905
|
+
882: <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>)
|
|
906
|
+
883: <span class="ruby-keyword kw">when</span> <span class="ruby-value">0</span>
|
|
907
|
+
884: <span class="ruby-comment cmt"># We are hour-aligned to UTC; scheduleGranularity is 1 hour</span>
|
|
908
|
+
885: <span class="ruby-value">60</span> * <span class="ruby-value">60</span>
|
|
909
|
+
886: <span class="ruby-keyword kw">when</span> <span class="ruby-value">30</span>
|
|
910
|
+
887: <span class="ruby-comment cmt"># We are half-hour off from UTC; scheduleGranularity is 30 minutes</span>
|
|
911
|
+
888: <span class="ruby-value">30</span> * <span class="ruby-value">60</span>
|
|
912
|
+
889: <span class="ruby-keyword kw">when</span> <span class="ruby-value">15</span>, <span class="ruby-value">45</span>
|
|
913
|
+
890: <span class="ruby-comment cmt"># We are 15 or 45 minutes off from UTC; scheduleGranularity is 15</span>
|
|
914
|
+
891: <span class="ruby-comment cmt"># minutes</span>
|
|
915
|
+
892: <span class="ruby-value">15</span> * <span class="ruby-value">60</span>
|
|
916
|
+
893: <span class="ruby-keyword kw">else</span>
|
|
917
|
+
894: <span class="ruby-identifier">raise</span> <span class="ruby-node">"Unknown Time zone alignment #{min}"</span>
|
|
918
|
+
895: <span class="ruby-keyword kw">end</span>
|
|
919
|
+
896: <span class="ruby-keyword kw">end</span></pre>
|
|
908
920
|
</div>
|
|
909
921
|
|
|
910
922
|
</div>
|
|
@@ -941,359 +953,369 @@ The constructor will set default values for all project attributes.
|
|
|
941
953
|
<div class="method-source-code"
|
|
942
954
|
id="new-source">
|
|
943
955
|
<pre>
|
|
944
|
-
<span class="ruby-comment cmt"># File lib/Project.rb, line
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
169: [ <span class="ruby-value str">'criticalness'</span>, <span class="ruby-value str">'Criticalness'</span>, <span class="ruby-constant">FloatAttribute</span>,
|
|
956
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 61</span>
|
|
957
|
+
61: <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>)
|
|
958
|
+
62: <span class="ruby-ivar">@messageHandler</span> = <span class="ruby-identifier">messageHandler</span>
|
|
959
|
+
63: <span class="ruby-constant">AttributeBase</span>.<span class="ruby-identifier">setMode</span>(<span class="ruby-value">0</span>)
|
|
960
|
+
64: <span class="ruby-ivar">@attributes</span> = {
|
|
961
|
+
65: <span class="ruby-comment cmt"># This nested Array defines the supported alert levels. The lowest</span>
|
|
962
|
+
66: <span class="ruby-comment cmt"># level comes first at index 0 and the level rises from there on.</span>
|
|
963
|
+
67: <span class="ruby-comment cmt"># Currently, these levels are hardcoded. Each level entry has 3</span>
|
|
964
|
+
68: <span class="ruby-comment cmt"># members: the tjp syntax token, the user visible name and the</span>
|
|
965
|
+
69: <span class="ruby-comment cmt"># associated color as RGB byte array.</span>
|
|
966
|
+
70: <span class="ruby-value str">'alertLevels'</span> =<span class="ruby-operator">></span> [
|
|
967
|
+
71: [ <span class="ruby-value str">'green'</span>, <span class="ruby-value str">'Green'</span>, <span class="ruby-value str">'#008000'</span> ],
|
|
968
|
+
72: [ <span class="ruby-value str">'yellow'</span>, <span class="ruby-value str">'Yellow'</span>, <span class="ruby-value str">'#BEA800'</span> ],
|
|
969
|
+
73: [ <span class="ruby-value str">'red'</span>, <span class="ruby-value str">'Red'</span>, <span class="ruby-value str">'#C00000'</span> ] ],
|
|
970
|
+
74: <span class="ruby-value str">'copyright'</span> =<span class="ruby-operator">></span> <span class="ruby-keyword kw">nil</span>,
|
|
971
|
+
75: <span class="ruby-value str">'costAccount'</span> =<span class="ruby-operator">></span> <span class="ruby-keyword kw">nil</span>,
|
|
972
|
+
76: <span class="ruby-value str">'currency'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">"EUR"</span>,
|
|
973
|
+
77: <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> ]),
|
|
974
|
+
78: <span class="ruby-value str">'dailyworkinghours'</span> =<span class="ruby-operator">></span> <span class="ruby-value">8.0</span>,
|
|
975
|
+
79: <span class="ruby-value str">'end'</span> =<span class="ruby-operator">></span> <span class="ruby-keyword kw">nil</span>,
|
|
976
|
+
80: <span class="ruby-value str">'flags'</span> =<span class="ruby-operator">></span> [],
|
|
977
|
+
81: <span class="ruby-value str">'journal'</span> =<span class="ruby-operator">></span> <span class="ruby-constant">Journal</span>.<span class="ruby-identifier">new</span>,
|
|
978
|
+
82: <span class="ruby-value str">'limits'</span> =<span class="ruby-operator">></span> <span class="ruby-keyword kw">nil</span>,
|
|
979
|
+
83: <span class="ruby-value str">'loadUnit'</span> =<span class="ruby-operator">></span> <span class="ruby-value">:days</span>,
|
|
980
|
+
84: <span class="ruby-value str">'name'</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">name</span>,
|
|
981
|
+
85: <span class="ruby-value str">'navigators'</span> =<span class="ruby-operator">></span> {},
|
|
982
|
+
86: <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>),
|
|
983
|
+
87: <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>]),
|
|
984
|
+
88: <span class="ruby-value str">'priority'</span> =<span class="ruby-operator">></span> <span class="ruby-value">500</span>,
|
|
985
|
+
89: <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>,
|
|
986
|
+
90: <span class="ruby-value str">'projectids'</span> =<span class="ruby-operator">></span> [ <span class="ruby-identifier">id</span> ],
|
|
987
|
+
91: <span class="ruby-value str">'rate'</span> =<span class="ruby-operator">></span> <span class="ruby-value">0.0</span>,
|
|
988
|
+
92: <span class="ruby-value str">'revenueAccount'</span> =<span class="ruby-operator">></span> <span class="ruby-keyword kw">nil</span>,
|
|
989
|
+
93: <span class="ruby-value str">'scheduleGranularity'</span> =<span class="ruby-operator">></span> <span class="ruby-constant">Project</span>.<span class="ruby-identifier">maxScheduleGranularity</span>,
|
|
990
|
+
94: <span class="ruby-value str">'shortTimeFormat'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">"%H:%M"</span>,
|
|
991
|
+
95: <span class="ruby-value str">'start'</span> =<span class="ruby-operator">></span> <span class="ruby-keyword kw">nil</span>,
|
|
992
|
+
96: <span class="ruby-value str">'timeFormat'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">"%Y-%m-%d"</span>,
|
|
993
|
+
97: <span class="ruby-value str">'timezone'</span> =<span class="ruby-operator">></span> <span class="ruby-keyword kw">nil</span>,
|
|
994
|
+
98: <span class="ruby-value str">'trackingScenarioIdx'</span> =<span class="ruby-operator">></span> <span class="ruby-value">0</span>,
|
|
995
|
+
99: <span class="ruby-value str">'vacations'</span> =<span class="ruby-operator">></span> [],
|
|
996
|
+
100: <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>,
|
|
997
|
+
101: <span class="ruby-value str">'weekStartsMonday'</span> =<span class="ruby-operator">></span> <span class="ruby-keyword kw">true</span>,
|
|
998
|
+
102: <span class="ruby-value str">'workinghours'</span> =<span class="ruby-operator">></span> <span class="ruby-keyword kw">nil</span>,
|
|
999
|
+
103: <span class="ruby-value str">'yearlyworkingdays'</span> =<span class="ruby-operator">></span> <span class="ruby-value">260.714</span>
|
|
1000
|
+
104: }
|
|
1001
|
+
105:
|
|
1002
|
+
106: <span class="ruby-comment cmt"># Before we can add any properties to this project, we need to define the</span>
|
|
1003
|
+
107: <span class="ruby-comment cmt"># attributes that each of the property types will be using. In TaskJuggler</span>
|
|
1004
|
+
108: <span class="ruby-comment cmt"># lingo, properties of a project are resources, tasks, accounts, shifts</span>
|
|
1005
|
+
109: <span class="ruby-comment cmt"># and scenarios. Each of these properties can have lots of further</span>
|
|
1006
|
+
110: <span class="ruby-comment cmt"># information attached to it. These bits of information are called</span>
|
|
1007
|
+
111: <span class="ruby-comment cmt"># attributes. An attribute is defined by the AttributeDefinition class.</span>
|
|
1008
|
+
112: <span class="ruby-comment cmt"># The PropertySet objects need to be fed with a list of such attribute</span>
|
|
1009
|
+
113: <span class="ruby-comment cmt"># definitions to register the attributes with the properties.</span>
|
|
1010
|
+
114: <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>)
|
|
1011
|
+
115: <span class="ruby-identifier">attrs</span> = [
|
|
1012
|
+
116: <span class="ruby-comment cmt"># ID Name Type</span>
|
|
1013
|
+
117: <span class="ruby-comment cmt"># Inh. Inh.Prj Scen. Default</span>
|
|
1014
|
+
118: [ <span class="ruby-value str">'enabled'</span>, <span class="ruby-value str">'Enabled'</span>, <span class="ruby-constant">BooleanAttribute</span>,
|
|
1015
|
+
119: <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> ],
|
|
1016
|
+
120: [ <span class="ruby-value str">'minslackrate'</span>, <span class="ruby-value str">'Min. Slack Rate'</span>, <span class="ruby-constant">FloatAttribute</span>,
|
|
1017
|
+
121: <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> ],
|
|
1018
|
+
122: [ <span class="ruby-value str">'projection'</span>, <span class="ruby-value str">'Projection Mode'</span>, <span class="ruby-constant">BooleanAttribute</span>,
|
|
1019
|
+
123: <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> ],
|
|
1020
|
+
124: [ <span class="ruby-value str">'strict'</span>, <span class="ruby-value str">'Strict Bookings'</span>, <span class="ruby-constant">BooleanAttribute</span>,
|
|
1021
|
+
125: <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> ]
|
|
1022
|
+
126: ]
|
|
1023
|
+
127: <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-identifier">a</span>)) }
|
|
1024
|
+
128:
|
|
1025
|
+
129: <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>)
|
|
1026
|
+
130: <span class="ruby-identifier">attrs</span> = [
|
|
1027
|
+
131: <span class="ruby-comment cmt"># ID Name Type</span>
|
|
1028
|
+
132: <span class="ruby-comment cmt"># Inh. Inh.Prj Scen. Default</span>
|
|
1029
|
+
133: [ <span class="ruby-value str">'index'</span>, <span class="ruby-value str">'Index'</span>, <span class="ruby-constant">FixnumAttribute</span>,
|
|
1030
|
+
134: <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> ],
|
|
1031
|
+
135: [ <span class="ruby-value str">'replace'</span>, <span class="ruby-value str">'Replace'</span>, <span class="ruby-constant">BooleanAttribute</span>,
|
|
1032
|
+
136: <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> ],
|
|
1033
|
+
137: [ <span class="ruby-value str">'timezone'</span>, <span class="ruby-value str">'Time Zone'</span>, <span class="ruby-constant">StringAttribute</span>,
|
|
1034
|
+
138: <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> ],
|
|
1035
|
+
139: [ <span class="ruby-value str">'tree'</span>, <span class="ruby-value str">'Tree Index'</span>, <span class="ruby-constant">StringAttribute</span>,
|
|
1036
|
+
140: <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> ],
|
|
1037
|
+
141: [ <span class="ruby-value str">'vacations'</span>, <span class="ruby-value str">'Vacations'</span>, <span class="ruby-constant">IntervalListAttribute</span>,
|
|
1038
|
+
142: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">true</span>, [] ],
|
|
1039
|
+
143: [ <span class="ruby-value str">'wbs'</span>, <span class="ruby-value str">'WBS'</span>, <span class="ruby-constant">StringAttribute</span>,
|
|
1040
|
+
144: <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> ],
|
|
1041
|
+
145: [ <span class="ruby-value str">'workinghours'</span>, <span class="ruby-value str">'Working Hours'</span>, <span class="ruby-constant">WorkingHoursAttribute</span>,
|
|
1042
|
+
146: <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> ]
|
|
1043
|
+
147: ]
|
|
1044
|
+
148: <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-identifier">a</span>)) }
|
|
1045
|
+
149:
|
|
1046
|
+
150: <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>)
|
|
1047
|
+
151: <span class="ruby-identifier">attrs</span> = [
|
|
1048
|
+
152: <span class="ruby-comment cmt"># ID Name Type</span>
|
|
1049
|
+
153: <span class="ruby-comment cmt"># Inh. Inh.Prj Scen. Default</span>
|
|
1050
|
+
154: [ <span class="ruby-value str">'index'</span>, <span class="ruby-value str">'Index'</span>, <span class="ruby-constant">FixnumAttribute</span>,
|
|
1051
|
+
155: <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> ],
|
|
1052
|
+
156: [ <span class="ruby-value str">'flags'</span>, <span class="ruby-value str">'Flags'</span>, <span class="ruby-constant">FlagListAttribute</span>,
|
|
1053
|
+
157: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, [] ],
|
|
1054
|
+
158: [ <span class="ruby-value str">'tree'</span>, <span class="ruby-value str">'Tree Index'</span>, <span class="ruby-constant">StringAttribute</span>,
|
|
1055
|
+
159: <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> ],
|
|
1056
|
+
160: [ <span class="ruby-value str">'wbs'</span>, <span class="ruby-value str">'WBS'</span>, <span class="ruby-constant">StringAttribute</span>,
|
|
1057
|
+
161: <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> ]
|
|
1058
|
+
162: ]
|
|
1059
|
+
163: <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-identifier">a</span>)) }
|
|
1060
|
+
164:
|
|
1061
|
+
165: <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>)
|
|
1062
|
+
166: <span class="ruby-identifier">attrs</span> = [
|
|
1063
|
+
167: <span class="ruby-comment cmt"># ID Name Type</span>
|
|
1064
|
+
168: <span class="ruby-comment cmt"># Inh. Inh.Prj Scen. Default</span>
|
|
1065
|
+
169: [ <span class="ruby-value str">'alloctdeffort'</span>, <span class="ruby-value str">'Alloctd. Effort'</span>, <span class="ruby-constant">FloatAttribute</span>,
|
|
1055
1066
|
170: <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.0</span> ],
|
|
1056
|
-
171: [ <span class="ruby-value str">'
|
|
1057
|
-
172: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>,
|
|
1058
|
-
173: [ <span class="ruby-value str">'
|
|
1067
|
+
171: [ <span class="ruby-value str">'criticalness'</span>, <span class="ruby-value str">'Criticalness'</span>, <span class="ruby-constant">FloatAttribute</span>,
|
|
1068
|
+
172: <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.0</span> ],
|
|
1069
|
+
173: [ <span class="ruby-value str">'duties'</span>, <span class="ruby-value str">'Duties'</span>, <span class="ruby-constant">TaskListAttribute</span>,
|
|
1059
1070
|
174: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, [] ],
|
|
1060
|
-
175: [ <span class="ruby-value str">'
|
|
1061
|
-
176: <span class="ruby-keyword kw">
|
|
1062
|
-
177: [ <span class="ruby-value str">'
|
|
1063
|
-
178: <span class="ruby-keyword kw">
|
|
1064
|
-
179: [ <span class="ruby-value str">'
|
|
1065
|
-
180: <span class="ruby-keyword kw">false</span>,
|
|
1066
|
-
181: [ <span class="ruby-value str">'
|
|
1067
|
-
182: <span class="ruby-keyword kw">false</span>,
|
|
1068
|
-
183: [ <span class="ruby-value str">'
|
|
1069
|
-
184: <span class="ruby-keyword kw">
|
|
1070
|
-
185: [ <span class="ruby-value str">'
|
|
1071
|
-
186: <span class="ruby-keyword kw">
|
|
1072
|
-
187: [ <span class="ruby-value str">'
|
|
1073
|
-
188: <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> ],
|
|
1074
|
-
189: [ <span class="ruby-value str">'
|
|
1075
|
-
190: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">
|
|
1076
|
-
191: [ <span class="ruby-value str">'
|
|
1077
|
-
192: <span class="ruby-keyword kw">
|
|
1078
|
-
193: [ <span class="ruby-value str">'
|
|
1079
|
-
194: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">
|
|
1080
|
-
195: [ <span class="ruby-value str">'
|
|
1081
|
-
196: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">
|
|
1082
|
-
197: [ <span class="ruby-value str">'
|
|
1083
|
-
198: <span class="ruby-keyword kw">
|
|
1084
|
-
199: [ <span class="ruby-value str">'
|
|
1085
|
-
200: <span class="ruby-keyword kw">
|
|
1086
|
-
201: [ <span class="ruby-value str">'
|
|
1087
|
-
202: <span class="ruby-keyword kw">true</span>,
|
|
1088
|
-
203: [ <span class="ruby-value str">'
|
|
1089
|
-
204: <span class="ruby-keyword kw">
|
|
1090
|
-
205: [ <span class="ruby-value str">'
|
|
1091
|
-
206: <span class="ruby-keyword kw">
|
|
1092
|
-
207: [ <span class="ruby-value str">'
|
|
1093
|
-
208: <span class="ruby-keyword kw">
|
|
1094
|
-
209: [ <span class="ruby-value str">'
|
|
1095
|
-
210: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">
|
|
1096
|
-
211: [ <span class="ruby-value str">'
|
|
1097
|
-
212: <span class="ruby-keyword kw">
|
|
1098
|
-
213:
|
|
1099
|
-
214:
|
|
1100
|
-
215:
|
|
1101
|
-
216: <span class="ruby-
|
|
1102
|
-
217:
|
|
1103
|
-
218:
|
|
1104
|
-
219:
|
|
1105
|
-
220:
|
|
1106
|
-
221:
|
|
1107
|
-
222: [ <span class="ruby-value str">'
|
|
1108
|
-
223: <span class="ruby-keyword kw">
|
|
1109
|
-
224: [ <span class="ruby-value str">'
|
|
1071
|
+
175: [ <span class="ruby-value str">'directreports'</span>, <span class="ruby-value str">'Direct Reports'</span>, <span class="ruby-constant">ResourceListAttribute</span>,
|
|
1072
|
+
176: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, [] ],
|
|
1073
|
+
177: [ <span class="ruby-value str">'efficiency'</span>,<span class="ruby-value str">'Efficiency'</span>, <span class="ruby-constant">FloatAttribute</span>,
|
|
1074
|
+
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-value">1.0</span> ],
|
|
1075
|
+
179: [ <span class="ruby-value str">'effort'</span>, <span class="ruby-value str">'Total Effort'</span>, <span class="ruby-constant">FixnumAttribute</span>,
|
|
1076
|
+
180: <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> ],
|
|
1077
|
+
181: [ <span class="ruby-value str">'email'</span>, <span class="ruby-value str">'Email'</span>, <span class="ruby-constant">StringAttribute</span>,
|
|
1078
|
+
182: <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> ],
|
|
1079
|
+
183: [ <span class="ruby-value str">'fail'</span>, <span class="ruby-value str">'Failure Conditions'</span>, <span class="ruby-constant">LogicalExpressionListAttribute</span>,
|
|
1080
|
+
184: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, [] ],
|
|
1081
|
+
185: [ <span class="ruby-value str">'flags'</span>, <span class="ruby-value str">'Flags'</span>, <span class="ruby-constant">FlagListAttribute</span>,
|
|
1082
|
+
186: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, [] ],
|
|
1083
|
+
187: [ <span class="ruby-value str">'fte'</span>, <span class="ruby-value str">'FTE'</span>, <span class="ruby-constant">FloatAttribute</span>,
|
|
1084
|
+
188: <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> ],
|
|
1085
|
+
189: [ <span class="ruby-value str">'headcount'</span>, <span class="ruby-value str">'Headcount'</span>, <span class="ruby-constant">FixnumAttribute</span>,
|
|
1086
|
+
190: <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> ],
|
|
1087
|
+
191: [ <span class="ruby-value str">'index'</span>, <span class="ruby-value str">'Index'</span>, <span class="ruby-constant">FixnumAttribute</span>,
|
|
1088
|
+
192: <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> ],
|
|
1089
|
+
193: [ <span class="ruby-value str">'limits'</span>, <span class="ruby-value str">'Limits'</span>, <span class="ruby-constant">LimitsAttribute</span>,
|
|
1090
|
+
194: <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> ],
|
|
1091
|
+
195: [ <span class="ruby-value str">'managers'</span>, <span class="ruby-value str">'Managers'</span>, <span class="ruby-constant">ResourceListAttribute</span>,
|
|
1092
|
+
196: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, [] ],
|
|
1093
|
+
197: [ <span class="ruby-value str">'rate'</span>, <span class="ruby-value str">'Rate'</span>, <span class="ruby-constant">FloatAttribute</span>,
|
|
1094
|
+
198: <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.0</span> ],
|
|
1095
|
+
199: [ <span class="ruby-value str">'reports'</span>, <span class="ruby-value str">'Reports'</span>, <span class="ruby-constant">ResourceListAttribute</span>,
|
|
1096
|
+
200: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, [] ],
|
|
1097
|
+
201: [ <span class="ruby-value str">'shifts'</span>, <span class="ruby-value str">'Shifts'</span>, <span class="ruby-constant">ShiftAssignmentsAttribute</span>,
|
|
1098
|
+
202: <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> ],
|
|
1099
|
+
203: [ <span class="ruby-value str">'timezone'</span>, <span class="ruby-value str">'Time Zone'</span>, <span class="ruby-constant">StringAttribute</span>,
|
|
1100
|
+
204: <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> ],
|
|
1101
|
+
205: [ <span class="ruby-value str">'tree'</span>, <span class="ruby-value str">'Tree Index'</span>, <span class="ruby-constant">StringAttribute</span>,
|
|
1102
|
+
206: <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> ],
|
|
1103
|
+
207: [ <span class="ruby-value str">'vacations'</span>, <span class="ruby-value str">'Vacations'</span>, <span class="ruby-constant">IntervalListAttribute</span>,
|
|
1104
|
+
208: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">true</span>, [] ],
|
|
1105
|
+
209: [ <span class="ruby-value str">'warn'</span>, <span class="ruby-value str">'Warning Condition'</span>, <span class="ruby-constant">LogicalExpressionListAttribute</span>,
|
|
1106
|
+
210: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, [] ],
|
|
1107
|
+
211: [ <span class="ruby-value str">'wbs'</span>, <span class="ruby-value str">'WBS'</span>, <span class="ruby-constant">StringAttribute</span>,
|
|
1108
|
+
212: <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> ],
|
|
1109
|
+
213: [ <span class="ruby-value str">'workinghours'</span>, <span class="ruby-value str">'Working Hours'</span>, <span class="ruby-constant">WorkingHoursAttribute</span>,
|
|
1110
|
+
214: <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> ]
|
|
1111
|
+
215: ]
|
|
1112
|
+
216: <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-identifier">a</span>)) }
|
|
1113
|
+
217:
|
|
1114
|
+
218: <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>)
|
|
1115
|
+
219: <span class="ruby-identifier">attrs</span> = [
|
|
1116
|
+
220: <span class="ruby-comment cmt"># ID Name Type</span>
|
|
1117
|
+
221: <span class="ruby-comment cmt"># Inh. Inh.Prj Scen. Default</span>
|
|
1118
|
+
222: [ <span class="ruby-value str">'allocate'</span>, <span class="ruby-value str">'Allocations'</span>, <span class="ruby-constant">AllocationAttribute</span>,
|
|
1119
|
+
223: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, [] ],
|
|
1120
|
+
224: [ <span class="ruby-value str">'assignedresources'</span>, <span class="ruby-value str">'Assigned Resources'</span>, <span class="ruby-constant">ResourceListAttribute</span>,
|
|
1110
1121
|
225: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, [] ],
|
|
1111
|
-
226: [ <span class="ruby-value str">'
|
|
1122
|
+
226: [ <span class="ruby-value str">'booking'</span>, <span class="ruby-value str">'Bookings'</span>, <span class="ruby-constant">BookingListAttribute</span>,
|
|
1112
1123
|
227: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, [] ],
|
|
1113
|
-
228: [ <span class="ruby-value str">'
|
|
1114
|
-
229: <span class="ruby-keyword kw">
|
|
1115
|
-
230: [ <span class="ruby-value str">'
|
|
1116
|
-
231: <span class="ruby-keyword kw">
|
|
1117
|
-
232: [ <span class="ruby-value str">'
|
|
1118
|
-
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-
|
|
1119
|
-
234: [ <span class="ruby-value str">'
|
|
1120
|
-
235: <span class="ruby-keyword kw">
|
|
1121
|
-
236: [ <span class="ruby-value str">'
|
|
1122
|
-
237: <span class="ruby-keyword kw">
|
|
1123
|
-
238: [ <span class="ruby-value str">'
|
|
1124
|
+
228: [ <span class="ruby-value str">'charge'</span>, <span class="ruby-value str">'Charges'</span>, <span class="ruby-constant">ChargeListAttribute</span>,
|
|
1125
|
+
229: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, [] ],
|
|
1126
|
+
230: [ <span class="ruby-value str">'chargeset'</span>, <span class="ruby-value str">'Charge Sets'</span>, <span class="ruby-constant">ChargeSetListAttribute</span>,
|
|
1127
|
+
231: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, [] ],
|
|
1128
|
+
232: [ <span class="ruby-value str">'complete'</span>, <span class="ruby-value str">'Completion'</span>, <span class="ruby-constant">FloatAttribute</span>,
|
|
1129
|
+
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> ],
|
|
1130
|
+
234: [ <span class="ruby-value str">'criticalness'</span>, <span class="ruby-value str">'Criticalness'</span>, <span class="ruby-constant">FloatAttribute</span>,
|
|
1131
|
+
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-value">0.0</span> ],
|
|
1132
|
+
236: [ <span class="ruby-value str">'depends'</span>, <span class="ruby-value str">'Preceding tasks'</span>, <span class="ruby-constant">DependencyListAttribute</span>,
|
|
1133
|
+
237: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, [] ],
|
|
1134
|
+
238: [ <span class="ruby-value str">'duration'</span>, <span class="ruby-value str">'Duration'</span>, <span class="ruby-constant">DurationAttribute</span>,
|
|
1124
1135
|
239: <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> ],
|
|
1125
|
-
240: [ <span class="ruby-value str">'
|
|
1126
|
-
241: <span class="ruby-keyword kw">
|
|
1127
|
-
242: [ <span class="ruby-value str">'
|
|
1128
|
-
243: <span class="ruby-keyword kw">
|
|
1129
|
-
244: [ <span class="ruby-value str">'
|
|
1136
|
+
240: [ <span class="ruby-value str">'effort'</span>, <span class="ruby-value str">'Effort'</span>, <span class="ruby-constant">DurationAttribute</span>,
|
|
1137
|
+
241: <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> ],
|
|
1138
|
+
242: [ <span class="ruby-value str">'end'</span>, <span class="ruby-value str">'End'</span>, <span class="ruby-constant">DateAttribute</span>,
|
|
1139
|
+
243: <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> ],
|
|
1140
|
+
244: [ <span class="ruby-value str">'endpreds'</span>, <span class="ruby-value str">'End Preds.'</span>, <span class="ruby-constant">TaskListAttribute</span>,
|
|
1130
1141
|
245: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, [] ],
|
|
1131
|
-
246: [ <span class="ruby-value str">'
|
|
1132
|
-
247: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>,
|
|
1133
|
-
248: [ <span class="ruby-value str">'
|
|
1134
|
-
249: <span class="ruby-keyword kw">
|
|
1135
|
-
250: [ <span class="ruby-value str">'
|
|
1136
|
-
251: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>,
|
|
1137
|
-
252: [ <span class="ruby-value str">'
|
|
1138
|
-
253: <span class="ruby-keyword kw">
|
|
1139
|
-
254: [ <span class="ruby-value str">'
|
|
1140
|
-
255: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">
|
|
1141
|
-
256: [ <span class="ruby-value str">'
|
|
1142
|
-
257: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-
|
|
1143
|
-
258: [ <span class="ruby-value str">'
|
|
1144
|
-
259: <span class="ruby-keyword kw">
|
|
1145
|
-
260: [ <span class="ruby-value str">'
|
|
1146
|
-
261: <span class="ruby-keyword kw">
|
|
1147
|
-
262: [ <span class="ruby-value str">'
|
|
1148
|
-
263: <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">
|
|
1149
|
-
264: [ <span class="ruby-value str">'
|
|
1150
|
-
265: <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">
|
|
1151
|
-
266: [ <span class="ruby-value str">'
|
|
1152
|
-
267: <span class="ruby-keyword kw">
|
|
1153
|
-
268: [ <span class="ruby-value str">'
|
|
1154
|
-
269: <span class="ruby-keyword kw">
|
|
1155
|
-
270: [ <span class="ruby-value str">'
|
|
1156
|
-
271: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">
|
|
1157
|
-
272: [ <span class="ruby-value str">'
|
|
1158
|
-
273: <span class="ruby-keyword kw">
|
|
1159
|
-
274: [ <span class="ruby-value str">'
|
|
1160
|
-
275: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">
|
|
1161
|
-
276: [ <span class="ruby-value str">'
|
|
1162
|
-
277: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-
|
|
1163
|
-
278: [ <span class="ruby-value str">'
|
|
1164
|
-
279: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">
|
|
1165
|
-
280: [ <span class="ruby-value str">'
|
|
1166
|
-
281: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>,
|
|
1167
|
-
282: [ <span class="ruby-value str">'
|
|
1168
|
-
283: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>,
|
|
1169
|
-
284: [ <span class="ruby-value str">'
|
|
1170
|
-
285: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>,
|
|
1171
|
-
286: [ <span class="ruby-value str">'
|
|
1172
|
-
287: <span class="ruby-keyword kw">
|
|
1173
|
-
288: [ <span class="ruby-value str">'
|
|
1142
|
+
246: [ <span class="ruby-value str">'endsuccs'</span>, <span class="ruby-value str">'End Succs.'</span>, <span class="ruby-constant">TaskListAttribute</span>,
|
|
1143
|
+
247: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, [] ],
|
|
1144
|
+
248: [ <span class="ruby-value str">'fail'</span>, <span class="ruby-value str">'Failure Conditions'</span>, <span class="ruby-constant">LogicalExpressionListAttribute</span>,
|
|
1145
|
+
249: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, [] ],
|
|
1146
|
+
250: [ <span class="ruby-value str">'flags'</span>, <span class="ruby-value str">'Flags'</span>, <span class="ruby-constant">FlagListAttribute</span>,
|
|
1147
|
+
251: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, [] ],
|
|
1148
|
+
252: [ <span class="ruby-value str">'forward'</span>, <span class="ruby-value str">'Scheduling'</span>, <span class="ruby-constant">BooleanAttribute</span>,
|
|
1149
|
+
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">true</span> ],
|
|
1150
|
+
254: [ <span class="ruby-value str">'index'</span>, <span class="ruby-value str">'Index'</span>, <span class="ruby-constant">FixnumAttribute</span>,
|
|
1151
|
+
255: <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> ],
|
|
1152
|
+
256: [ <span class="ruby-value str">'length'</span>, <span class="ruby-value str">'Length'</span>, <span class="ruby-constant">DurationAttribute</span>,
|
|
1153
|
+
257: <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> ],
|
|
1154
|
+
258: [ <span class="ruby-value str">'limits'</span>, <span class="ruby-value str">'Limits'</span>, <span class="ruby-constant">LimitsAttribute</span>,
|
|
1155
|
+
259: <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> ],
|
|
1156
|
+
260: [ <span class="ruby-value str">'maxend'</span>, <span class="ruby-value str">'Max. End'</span>, <span class="ruby-constant">DateAttribute</span>,
|
|
1157
|
+
261: <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> ],
|
|
1158
|
+
262: [ <span class="ruby-value str">'maxstart'</span>, <span class="ruby-value str">'Max. Start'</span>, <span class="ruby-constant">DateAttribute</span>,
|
|
1159
|
+
263: <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> ],
|
|
1160
|
+
264: [ <span class="ruby-value str">'milestone'</span>, <span class="ruby-value str">'Milestone'</span>, <span class="ruby-constant">BooleanAttribute</span>,
|
|
1161
|
+
265: <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> ],
|
|
1162
|
+
266: [ <span class="ruby-value str">'minend'</span>, <span class="ruby-value str">'Min. End'</span>, <span class="ruby-constant">DateAttribute</span>,
|
|
1163
|
+
267: <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> ],
|
|
1164
|
+
268: [ <span class="ruby-value str">'minstart'</span>, <span class="ruby-value str">'Min. Start'</span>, <span class="ruby-constant">DateAttribute</span>,
|
|
1165
|
+
269: <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> ],
|
|
1166
|
+
270: [ <span class="ruby-value str">'note'</span>, <span class="ruby-value str">'Note'</span>, <span class="ruby-constant">RichTextAttribute</span>,
|
|
1167
|
+
271: <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> ],
|
|
1168
|
+
272: [ <span class="ruby-value str">'pathcriticalness'</span>, <span class="ruby-value str">'Path Criticalness'</span>, <span class="ruby-constant">FloatAttribute</span>,
|
|
1169
|
+
273: <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.0</span> ],
|
|
1170
|
+
274: [ <span class="ruby-value str">'precedes'</span>, <span class="ruby-value str">'Following tasks'</span>, <span class="ruby-constant">DependencyListAttribute</span>,
|
|
1171
|
+
275: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, [] ],
|
|
1172
|
+
276: [ <span class="ruby-value str">'priority'</span>, <span class="ruby-value str">'Priority'</span>, <span class="ruby-constant">FixnumAttribute</span>,
|
|
1173
|
+
277: <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> ],
|
|
1174
|
+
278: [ <span class="ruby-value str">'projectid'</span>, <span class="ruby-value str">'Project ID'</span>, <span class="ruby-constant">SymbolAttribute</span>,
|
|
1175
|
+
279: <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> ],
|
|
1176
|
+
280: [ <span class="ruby-value str">'responsible'</span>, <span class="ruby-value str">'Responsible'</span>, <span class="ruby-constant">ResourceListAttribute</span>,
|
|
1177
|
+
281: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, [] ],
|
|
1178
|
+
282: [ <span class="ruby-value str">'scheduled'</span>, <span class="ruby-value str">'Scheduled'</span>, <span class="ruby-constant">BooleanAttribute</span>,
|
|
1179
|
+
283: <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> ],
|
|
1180
|
+
284: [ <span class="ruby-value str">'shifts'</span>, <span class="ruby-value str">'Shifts'</span>, <span class="ruby-constant">ShiftAssignmentsAttribute</span>,
|
|
1181
|
+
285: <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> ],
|
|
1182
|
+
286: [ <span class="ruby-value str">'start'</span>, <span class="ruby-value str">'Start'</span>, <span class="ruby-constant">DateAttribute</span>,
|
|
1183
|
+
287: <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> ],
|
|
1184
|
+
288: [ <span class="ruby-value str">'startpreds'</span>, <span class="ruby-value str">'Start Preds.'</span>, <span class="ruby-constant">TaskListAttribute</span>,
|
|
1174
1185
|
289: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, [] ],
|
|
1175
|
-
290: [ <span class="ruby-value str">'
|
|
1176
|
-
291: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>,
|
|
1177
|
-
292: [ <span class="ruby-value str">'
|
|
1178
|
-
293: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">
|
|
1179
|
-
294: [ <span class="ruby-value str">'
|
|
1180
|
-
295: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">
|
|
1181
|
-
296: [ <span class="ruby-value str">'
|
|
1182
|
-
297: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">
|
|
1183
|
-
298:
|
|
1184
|
-
299:
|
|
1185
|
-
300:
|
|
1186
|
-
301: <span class="ruby-
|
|
1187
|
-
302:
|
|
1188
|
-
303:
|
|
1189
|
-
304:
|
|
1190
|
-
305:
|
|
1191
|
-
306:
|
|
1192
|
-
307: [ <span class="ruby-value str">'
|
|
1193
|
-
308: <span class="ruby-keyword kw">true</span>,
|
|
1194
|
-
309: [ <span class="ruby-value str">'
|
|
1195
|
-
310: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>,
|
|
1196
|
-
311: [ <span class="ruby-value str">'
|
|
1197
|
-
312: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">
|
|
1198
|
-
313: [ <span class="ruby-value str">'
|
|
1186
|
+
290: [ <span class="ruby-value str">'startsuccs'</span>, <span class="ruby-value str">'Start Succs.'</span>, <span class="ruby-constant">TaskListAttribute</span>,
|
|
1187
|
+
291: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, [] ],
|
|
1188
|
+
292: [ <span class="ruby-value str">'status'</span>, <span class="ruby-value str">'Task Status'</span>, <span class="ruby-constant">StringAttribute</span>,
|
|
1189
|
+
293: <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 str">""</span> ],
|
|
1190
|
+
294: [ <span class="ruby-value str">'tree'</span>, <span class="ruby-value str">'Tree Index'</span>, <span class="ruby-constant">StringAttribute</span>,
|
|
1191
|
+
295: <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> ],
|
|
1192
|
+
296: [ <span class="ruby-value str">'warn'</span>, <span class="ruby-value str">'Warning Condition'</span>, <span class="ruby-constant">LogicalExpressionListAttribute</span>,
|
|
1193
|
+
297: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, [] ],
|
|
1194
|
+
298: [ <span class="ruby-value str">'wbs'</span>, <span class="ruby-value str">'WBS'</span>, <span class="ruby-constant">StringAttribute</span>,
|
|
1195
|
+
299: <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> ]
|
|
1196
|
+
300: ]
|
|
1197
|
+
301: <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-identifier">a</span>)) }
|
|
1198
|
+
302:
|
|
1199
|
+
303: <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>)
|
|
1200
|
+
304: <span class="ruby-identifier">attrs</span> = [
|
|
1201
|
+
305: <span class="ruby-comment cmt"># ID Name Type</span>
|
|
1202
|
+
306: <span class="ruby-comment cmt"># Inh. Inh.Prj Scen. Default</span>
|
|
1203
|
+
307: [ <span class="ruby-value str">'caption'</span>, <span class="ruby-value str">'Caption'</span>, <span class="ruby-constant">RichTextAttribute</span>,
|
|
1204
|
+
308: <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> ],
|
|
1205
|
+
309: [ <span class="ruby-value str">'center'</span>, <span class="ruby-value str">'Center'</span>, <span class="ruby-constant">RichTextAttribute</span>,
|
|
1206
|
+
310: <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> ],
|
|
1207
|
+
311: [ <span class="ruby-value str">'columns'</span>, <span class="ruby-value str">'Columns'</span>, <span class="ruby-constant">ColumnListAttribute</span>,
|
|
1208
|
+
312: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, [] ],
|
|
1209
|
+
313: [ <span class="ruby-value str">'costAccount'</span>, <span class="ruby-value str">'Cost Account'</span>, <span class="ruby-constant">AccountAttribute</span>,
|
|
1199
1210
|
314: <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> ],
|
|
1200
|
-
315: [ <span class="ruby-value str">'
|
|
1201
|
-
316: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">
|
|
1202
|
-
317: [ <span class="ruby-value str">'
|
|
1203
|
-
318: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">
|
|
1204
|
-
319: [ <span class="ruby-value str">'
|
|
1205
|
-
320: <span class="ruby-keyword kw">
|
|
1206
|
-
321: [ <span class="ruby-value str">'
|
|
1207
|
-
322: <span class="ruby-keyword kw">true</span>,
|
|
1208
|
-
323: [ <span class="ruby-value str">'
|
|
1209
|
-
324: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">
|
|
1210
|
-
325: [ <span class="ruby-value str">'
|
|
1211
|
-
326: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>,
|
|
1212
|
-
327: [ <span class="ruby-value str">'
|
|
1213
|
-
328: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>,
|
|
1214
|
-
329: [ <span class="ruby-value str">'
|
|
1215
|
-
330: <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">
|
|
1216
|
-
331: [ <span class="ruby-value str">'
|
|
1217
|
-
332: <span class="ruby-keyword kw">
|
|
1218
|
-
333: [ <span class="ruby-value str">'
|
|
1219
|
-
334: <span class="ruby-keyword kw">true</span>,
|
|
1220
|
-
335: [ <span class="ruby-value str">'
|
|
1211
|
+
315: [ <span class="ruby-value str">'currencyFormat'</span>, <span class="ruby-value str">'Currency Format'</span>, <span class="ruby-constant">RealFormatAttribute</span>,
|
|
1212
|
+
316: <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> ],
|
|
1213
|
+
317: [ <span class="ruby-value str">'definitions'</span>, <span class="ruby-value str">'Definitions'</span>, <span class="ruby-constant">DefinitionListAttribute</span>,
|
|
1214
|
+
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-constant">KeywordArray</span>.<span class="ruby-identifier">new</span>([ <span class="ruby-value str">'*'</span> ]) ],
|
|
1215
|
+
319: [ <span class="ruby-value str">'end'</span>, <span class="ruby-value str">'End'</span>, <span class="ruby-constant">DateAttribute</span>,
|
|
1216
|
+
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> ],
|
|
1217
|
+
321: [ <span class="ruby-value str">'epilog'</span>, <span class="ruby-value str">'Epilog'</span>, <span class="ruby-constant">RichTextAttribute</span>,
|
|
1218
|
+
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> ],
|
|
1219
|
+
323: [ <span class="ruby-value str">'flags'</span>, <span class="ruby-value str">'Flags'</span>, <span class="ruby-constant">FlagListAttribute</span>,
|
|
1220
|
+
324: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, [] ],
|
|
1221
|
+
325: [ <span class="ruby-value str">'footer'</span>, <span class="ruby-value str">'Footer'</span>, <span class="ruby-constant">RichTextAttribute</span>,
|
|
1222
|
+
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> ],
|
|
1223
|
+
327: [ <span class="ruby-value str">'formats'</span>, <span class="ruby-value str">'Formats'</span>, <span class="ruby-constant">FormatListAttribute</span>,
|
|
1224
|
+
328: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, [] ],
|
|
1225
|
+
329: [ <span class="ruby-value str">'ganttBars'</span>, <span class="ruby-value str">'Gantt Bars'</span>, <span class="ruby-constant">BooleanAttribute</span>,
|
|
1226
|
+
330: <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> ],
|
|
1227
|
+
331: [ <span class="ruby-value str">'header'</span>, <span class="ruby-value str">'Header'</span>, <span class="ruby-constant">RichTextAttribute</span>,
|
|
1228
|
+
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-keyword kw">nil</span> ],
|
|
1229
|
+
333: [ <span class="ruby-value str">'headline'</span>, <span class="ruby-value str">'Headline'</span>, <span class="ruby-constant">RichTextAttribute</span>,
|
|
1230
|
+
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-keyword kw">nil</span> ],
|
|
1231
|
+
335: [ <span class="ruby-value str">'hideResource'</span>, <span class="ruby-value str">'Hide Resource'</span>, <span class="ruby-constant">LogicalExpressionAttribute</span>,
|
|
1221
1232
|
336: <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> ],
|
|
1222
|
-
337: [ <span class="ruby-value str">'
|
|
1223
|
-
338: <span class="ruby-keyword kw">
|
|
1224
|
-
339: [ <span class="ruby-value str">'
|
|
1225
|
-
340: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-
|
|
1226
|
-
341: [ <span class="ruby-value str">'
|
|
1227
|
-
342: <span class="ruby-keyword kw">
|
|
1228
|
-
343: [ <span class="ruby-value str">'
|
|
1229
|
-
344: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">
|
|
1230
|
-
345: [ <span class="ruby-value str">'
|
|
1233
|
+
337: [ <span class="ruby-value str">'hideTask'</span>, <span class="ruby-value str">'Hide Task'</span>, <span class="ruby-constant">LogicalExpressionAttribute</span>,
|
|
1234
|
+
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-keyword kw">nil</span> ],
|
|
1235
|
+
339: [ <span class="ruby-value str">'index'</span>, <span class="ruby-value str">'Index'</span>, <span class="ruby-constant">FixnumAttribute</span>,
|
|
1236
|
+
340: <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> ],
|
|
1237
|
+
341: [ <span class="ruby-value str">'interactive'</span>, <span class="ruby-value str">'Interactive'</span>, <span class="ruby-constant">BooleanAttribute</span>,
|
|
1238
|
+
342: <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">false</span> ],
|
|
1239
|
+
343: [ <span class="ruby-value str">'left'</span>, <span class="ruby-value str">'Left'</span>, <span class="ruby-constant">RichTextAttribute</span>,
|
|
1240
|
+
344: <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> ],
|
|
1241
|
+
345: [ <span class="ruby-value str">'loadUnit'</span>, <span class="ruby-value str">'Load Unit'</span>, <span class="ruby-constant">StringAttribute</span>,
|
|
1231
1242
|
346: <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> ],
|
|
1232
|
-
347: [ <span class="ruby-value str">'
|
|
1243
|
+
347: [ <span class="ruby-value str">'now'</span>, <span class="ruby-value str">'Now'</span>, <span class="ruby-constant">DateAttribute</span>,
|
|
1233
1244
|
348: <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> ],
|
|
1234
|
-
349: [ <span class="ruby-value str">'
|
|
1235
|
-
350: <span class="ruby-keyword kw">
|
|
1236
|
-
351: [ <span class="ruby-value str">'
|
|
1237
|
-
352: <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>],
|
|
1238
|
-
353: [ <span class="ruby-value str">'
|
|
1239
|
-
354: <span class="ruby-keyword kw">true</span>,
|
|
1240
|
-
355: [ <span class="ruby-value str">'
|
|
1241
|
-
356: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-
|
|
1242
|
-
357: [ <span class="ruby-value str">'
|
|
1243
|
-
358: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">
|
|
1244
|
-
359: [ <span class="ruby-value str">'
|
|
1245
|
-
360: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">
|
|
1246
|
-
361: [ <span class="ruby-value str">'
|
|
1245
|
+
349: [ <span class="ruby-value str">'numberFormat'</span>, <span class="ruby-value str">'Number Format'</span>, <span class="ruby-constant">RealFormatAttribute</span>,
|
|
1246
|
+
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">nil</span> ],
|
|
1247
|
+
351: [ <span class="ruby-value str">'openNodes'</span>, <span class="ruby-value str">'Open Nodes'</span>, <span class="ruby-constant">NodeListAttribute</span>,
|
|
1248
|
+
352: <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> ],
|
|
1249
|
+
353: [ <span class="ruby-value str">'prolog'</span>, <span class="ruby-value str">'Prolog'</span>, <span class="ruby-constant">RichTextAttribute</span>,
|
|
1250
|
+
354: <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>],
|
|
1251
|
+
355: [ <span class="ruby-value str">'resourceAttributes'</span>, <span class="ruby-value str">'Resource Attributes'</span>, <span class="ruby-constant">FormatListAttribute</span>,
|
|
1252
|
+
356: <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> ]) ],
|
|
1253
|
+
357: [ <span class="ruby-value str">'resourceRoot'</span>, <span class="ruby-value str">'resource Root'</span>, <span class="ruby-constant">PropertyAttribute</span>,
|
|
1254
|
+
358: <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> ],
|
|
1255
|
+
359: [ <span class="ruby-value str">'revenueAccount'</span>, <span class="ruby-value str">'Revenue Account'</span>, <span class="ruby-constant">AccountAttribute</span>,
|
|
1256
|
+
360: <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> ],
|
|
1257
|
+
361: [ <span class="ruby-value str">'right'</span>, <span class="ruby-value str">'Right'</span>, <span class="ruby-constant">RichTextAttribute</span>,
|
|
1247
1258
|
362: <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> ],
|
|
1248
|
-
363: [ <span class="ruby-value str">'
|
|
1249
|
-
364: <span class="ruby-keyword kw">true</span>,
|
|
1250
|
-
365: [ <span class="ruby-value str">'
|
|
1251
|
-
366: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>,
|
|
1252
|
-
367: [ <span class="ruby-value str">'
|
|
1253
|
-
368: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-
|
|
1254
|
-
369: [ <span class="ruby-value str">'
|
|
1255
|
-
370: <span class="ruby-keyword kw">true</span>,
|
|
1256
|
-
371: [ <span class="ruby-value str">'
|
|
1257
|
-
372: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">
|
|
1258
|
-
373: [ <span class="ruby-value str">'
|
|
1259
|
+
363: [ <span class="ruby-value str">'rollupResource'</span>, <span class="ruby-value str">'Rollup Resource'</span>, <span class="ruby-constant">LogicalExpressionAttribute</span>,
|
|
1260
|
+
364: <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> ],
|
|
1261
|
+
365: [ <span class="ruby-value str">'rollupTask'</span>, <span class="ruby-value str">'Rollup Task'</span>, <span class="ruby-constant">LogicalExpressionAttribute</span>,
|
|
1262
|
+
366: <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> ],
|
|
1263
|
+
367: [ <span class="ruby-value str">'scenarios'</span>, <span class="ruby-value str">'Scenarios'</span>, <span class="ruby-constant">ScenarioListAttribute</span>,
|
|
1264
|
+
368: <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> ] ],
|
|
1265
|
+
369: [ <span class="ruby-value str">'selfcontained'</span>, <span class="ruby-value str">'Selfcontained'</span>, <span class="ruby-constant">BooleanAttribute</span>,
|
|
1266
|
+
370: <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> ],
|
|
1267
|
+
371: [ <span class="ruby-value str">'shortTimeFormat'</span>, <span class="ruby-value str">'Short Time Format'</span>, <span class="ruby-constant">StringAttribute</span>,
|
|
1268
|
+
372: <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> ],
|
|
1269
|
+
373: [ <span class="ruby-value str">'sortResources'</span>, <span class="ruby-value str">'Sort Resources'</span>, <span class="ruby-constant">SortListAttribute</span>,
|
|
1259
1270
|
374: <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> ]] ],
|
|
1260
|
-
375: [ <span class="ruby-value str">'
|
|
1261
|
-
376: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">
|
|
1262
|
-
377: [ <span class="ruby-value str">'
|
|
1263
|
-
378: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">
|
|
1264
|
-
379: [ <span class="ruby-value str">'
|
|
1265
|
-
380: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-
|
|
1266
|
-
381: [ <span class="ruby-value str">'
|
|
1267
|
-
382: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">
|
|
1268
|
-
383: [ <span class="ruby-value str">'
|
|
1271
|
+
375: [ <span class="ruby-value str">'sortTasks'</span>, <span class="ruby-value str">'Sort Tasks'</span>, <span class="ruby-constant">SortListAttribute</span>,
|
|
1272
|
+
376: <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> ]] ],
|
|
1273
|
+
377: [ <span class="ruby-value str">'start'</span>, <span class="ruby-value str">'Start'</span>, <span class="ruby-constant">DateAttribute</span>,
|
|
1274
|
+
378: <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> ],
|
|
1275
|
+
379: [ <span class="ruby-value str">'taskAttributes'</span>, <span class="ruby-value str">'Task Attributes'</span>, <span class="ruby-constant">FormatListAttribute</span>,
|
|
1276
|
+
380: <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> ]) ],
|
|
1277
|
+
381: [ <span class="ruby-value str">'taskRoot'</span>, <span class="ruby-value str">'Task Root'</span>, <span class="ruby-constant">PropertyAttribute</span>,
|
|
1278
|
+
382: <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> ],
|
|
1279
|
+
383: [ <span class="ruby-value str">'timeFormat'</span>, <span class="ruby-value str">'Time Format'</span>, <span class="ruby-constant">StringAttribute</span>,
|
|
1269
1280
|
384: <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> ],
|
|
1270
|
-
385: [ <span class="ruby-value str">'
|
|
1271
|
-
386: <span class="ruby-keyword kw">false</span>,
|
|
1272
|
-
387: [ <span class="ruby-value str">'
|
|
1273
|
-
388: <span class="ruby-keyword kw">false</span>,
|
|
1274
|
-
389: [ <span class="ruby-value str">'
|
|
1275
|
-
390: <span class="ruby-keyword kw">
|
|
1276
|
-
391: [ <span class="ruby-value str">'
|
|
1277
|
-
392: <span class="ruby-keyword kw">true</span>,
|
|
1278
|
-
393:
|
|
1279
|
-
394:
|
|
1280
|
-
395:
|
|
1281
|
-
396:
|
|
1282
|
-
397:
|
|
1283
|
-
398:
|
|
1284
|
-
399:
|
|
1285
|
-
400:
|
|
1286
|
-
401:
|
|
1287
|
-
402:
|
|
1288
|
-
403:
|
|
1289
|
-
404: <span class="ruby-comment cmt">#
|
|
1290
|
-
405: <span class="ruby-
|
|
1291
|
-
406:
|
|
1292
|
-
407: <span class="ruby-
|
|
1293
|
-
408:
|
|
1294
|
-
409: <span class="ruby-
|
|
1295
|
-
410: <span class="ruby-ivar">@
|
|
1296
|
-
411:
|
|
1281
|
+
385: [ <span class="ruby-value str">'timeOffId'</span>, <span class="ruby-value str">'Time Off ID'</span>, <span class="ruby-constant">StringAttribute</span>,
|
|
1282
|
+
386: <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> ],
|
|
1283
|
+
387: [ <span class="ruby-value str">'timeOffName'</span>, <span class="ruby-value str">'Time Off Name'</span>, <span class="ruby-constant">StringAttribute</span>,
|
|
1284
|
+
388: <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> ],
|
|
1285
|
+
389: [ <span class="ruby-value str">'timezone'</span>, <span class="ruby-value str">'Time Zone'</span>, <span class="ruby-constant">StringAttribute</span>,
|
|
1286
|
+
390: <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> ],
|
|
1287
|
+
391: [ <span class="ruby-value str">'title'</span>, <span class="ruby-value str">'Title'</span>, <span class="ruby-constant">StringAttribute</span>,
|
|
1288
|
+
392: <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> ],
|
|
1289
|
+
393: [ <span class="ruby-value str">'tree'</span>, <span class="ruby-value str">'Tree Index'</span>, <span class="ruby-constant">StringAttribute</span>,
|
|
1290
|
+
394: <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> ],
|
|
1291
|
+
395: [ <span class="ruby-value str">'wbs'</span>, <span class="ruby-value str">'WBS'</span>, <span class="ruby-constant">StringAttribute</span>,
|
|
1292
|
+
396: <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> ],
|
|
1293
|
+
397: [ <span class="ruby-value str">'weekStartsMonday'</span>, <span class="ruby-value str">'Week Starts Monday'</span>, <span class="ruby-constant">BooleanAttribute</span>,
|
|
1294
|
+
398: <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> ]
|
|
1295
|
+
399: ]
|
|
1296
|
+
400: <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-identifier">a</span>)) }
|
|
1297
|
+
401:
|
|
1298
|
+
402: <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>)
|
|
1299
|
+
403:
|
|
1300
|
+
404: <span class="ruby-comment cmt"># A list of files that contained the project data.</span>
|
|
1301
|
+
405: <span class="ruby-ivar">@inputFiles</span> = <span class="ruby-constant">FileList</span>.<span class="ruby-identifier">new</span>
|
|
1302
|
+
406:
|
|
1303
|
+
407: <span class="ruby-ivar">@timeSheets</span> = <span class="ruby-constant">TimeSheets</span>.<span class="ruby-identifier">new</span>
|
|
1304
|
+
408:
|
|
1305
|
+
409: <span class="ruby-comment cmt"># A scoreboard that reflects the global working hours and vacations.</span>
|
|
1306
|
+
410: <span class="ruby-ivar">@scoreboard</span> = <span class="ruby-keyword kw">nil</span>
|
|
1307
|
+
411: <span class="ruby-comment cmt"># A scoreboard that reflects the global working hours but no vacations.</span>
|
|
1308
|
+
412: <span class="ruby-ivar">@scoreboardNoVacations</span> = <span class="ruby-keyword kw">nil</span>
|
|
1309
|
+
413:
|
|
1310
|
+
414: <span class="ruby-comment cmt"># The ReportContext provides additional settings to the report that can</span>
|
|
1311
|
+
415: <span class="ruby-comment cmt"># complement or replace the report attributes. Reports can include other</span>
|
|
1312
|
+
416: <span class="ruby-comment cmt"># reports. During report generation, only one context is active, but the</span>
|
|
1313
|
+
417: <span class="ruby-comment cmt"># context of enclosing reports needs to be preserved. Therefor we use a</span>
|
|
1314
|
+
418: <span class="ruby-comment cmt"># stack to implement this.</span>
|
|
1315
|
+
419: <span class="ruby-ivar">@reportContexts</span> = []
|
|
1316
|
+
420: <span class="ruby-ivar">@outputDir</span> = <span class="ruby-value str">''</span>
|
|
1317
|
+
421: <span class="ruby-ivar">@warnTsDeltas</span> = <span class="ruby-keyword kw">false</span>
|
|
1318
|
+
422: <span class="ruby-keyword kw">end</span></pre>
|
|
1297
1319
|
</div>
|
|
1298
1320
|
|
|
1299
1321
|
</div>
|
|
@@ -1334,13 +1356,13 @@ attribute.
|
|
|
1334
1356
|
<div class="method-source-code"
|
|
1335
1357
|
id="--source">
|
|
1336
1358
|
<pre>
|
|
1337
|
-
<span class="ruby-comment cmt"># File lib/Project.rb, line
|
|
1338
|
-
|
|
1339
|
-
|
|
1340
|
-
|
|
1341
|
-
|
|
1342
|
-
|
|
1343
|
-
|
|
1359
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 431</span>
|
|
1360
|
+
431: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">[]</span>(<span class="ruby-identifier">name</span>)
|
|
1361
|
+
432: <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>)
|
|
1362
|
+
433: <span class="ruby-identifier">raise</span> <span class="ruby-node">"Unknown project attribute #{name}"</span>
|
|
1363
|
+
434: <span class="ruby-keyword kw">end</span>
|
|
1364
|
+
435: <span class="ruby-ivar">@attributes</span>[<span class="ruby-identifier">name</span>]
|
|
1365
|
+
436: <span class="ruby-keyword kw">end</span></pre>
|
|
1344
1366
|
</div>
|
|
1345
1367
|
|
|
1346
1368
|
</div>
|
|
@@ -1374,30 +1396,30 @@ to <em>value</em>.
|
|
|
1374
1396
|
<div class="method-source-code"
|
|
1375
1397
|
id="--source">
|
|
1376
1398
|
<pre>
|
|
1377
|
-
<span class="ruby-comment cmt"># File lib/Project.rb, line
|
|
1378
|
-
|
|
1379
|
-
|
|
1380
|
-
|
|
1381
|
-
|
|
1382
|
-
|
|
1383
|
-
|
|
1384
|
-
|
|
1385
|
-
|
|
1386
|
-
|
|
1387
|
-
|
|
1388
|
-
|
|
1389
|
-
|
|
1390
|
-
|
|
1391
|
-
|
|
1392
|
-
|
|
1393
|
-
|
|
1394
|
-
|
|
1395
|
-
|
|
1396
|
-
|
|
1397
|
-
|
|
1398
|
-
|
|
1399
|
-
|
|
1400
|
-
|
|
1399
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 439</span>
|
|
1400
|
+
439: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">[]=</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">value</span>)
|
|
1401
|
+
440: <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>)
|
|
1402
|
+
441: <span class="ruby-identifier">raise</span> <span class="ruby-node">"Unknown project attribute #{name}"</span>
|
|
1403
|
+
442: <span class="ruby-keyword kw">end</span>
|
|
1404
|
+
443: <span class="ruby-ivar">@attributes</span>[<span class="ruby-identifier">name</span>] = <span class="ruby-identifier">value</span>
|
|
1405
|
+
444:
|
|
1406
|
+
445: <span class="ruby-comment cmt"># If the start, end or schedule granularity have been changed, we have</span>
|
|
1407
|
+
446: <span class="ruby-comment cmt"># to reset the working hours.</span>
|
|
1408
|
+
447: <span class="ruby-keyword kw">if</span> <span class="ruby-node">%(start end scheduleGranularity timezone timingresolution)</span>.
|
|
1409
|
+
448: <span class="ruby-identifier">include?</span>(<span class="ruby-identifier">name</span>)
|
|
1410
|
+
449: <span class="ruby-keyword kw">if</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">'end'</span>]
|
|
1411
|
+
450: <span class="ruby-ivar">@attributes</span>[<span class="ruby-value str">'workinghours'</span>] =
|
|
1412
|
+
451: <span class="ruby-constant">WorkingHours</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@attributes</span>[<span class="ruby-value str">'scheduleGranularity'</span>],
|
|
1413
|
+
452: <span class="ruby-ivar">@attributes</span>[<span class="ruby-value str">'start'</span>], <span class="ruby-ivar">@attributes</span>[<span class="ruby-value str">'end'</span>])
|
|
1414
|
+
453: <span class="ruby-comment cmt"># WorkingHours is using a copy-on-write scheme to prevent multiple</span>
|
|
1415
|
+
454: <span class="ruby-comment cmt"># copies of the same Scoreboard. All other WorkingHours objects are</span>
|
|
1416
|
+
455: <span class="ruby-comment cmt"># created as copies of this object. By calling</span>
|
|
1417
|
+
456: <span class="ruby-comment cmt"># WorkingHours::onShift? we make sure this instance has got a</span>
|
|
1418
|
+
457: <span class="ruby-comment cmt"># Scoreboard than gets reused by the other instances.</span>
|
|
1419
|
+
458: <span class="ruby-ivar">@attributes</span>[<span class="ruby-value str">'workinghours'</span>].<span class="ruby-identifier">onShift?</span>(<span class="ruby-ivar">@attributes</span>[<span class="ruby-value str">'start'</span>])
|
|
1420
|
+
459: <span class="ruby-keyword kw">end</span>
|
|
1421
|
+
460: <span class="ruby-keyword kw">end</span>
|
|
1422
|
+
461: <span class="ruby-keyword kw">end</span></pre>
|
|
1401
1423
|
</div>
|
|
1402
1424
|
|
|
1403
1425
|
</div>
|
|
@@ -1431,10 +1453,10 @@ return nil if it does not exist.
|
|
|
1431
1453
|
<div class="method-source-code"
|
|
1432
1454
|
id="account-source">
|
|
1433
1455
|
<pre>
|
|
1434
|
-
<span class="ruby-comment cmt"># File lib/Project.rb, line
|
|
1435
|
-
|
|
1436
|
-
|
|
1437
|
-
|
|
1456
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 564</span>
|
|
1457
|
+
564: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">account</span>(<span class="ruby-identifier">id</span>)
|
|
1458
|
+
565: <span class="ruby-ivar">@accounts</span>[<span class="ruby-identifier">id</span>]
|
|
1459
|
+
566: <span class="ruby-keyword kw">end</span></pre>
|
|
1438
1460
|
</div>
|
|
1439
1461
|
|
|
1440
1462
|
</div>
|
|
@@ -1470,11 +1492,11 @@ pound sign.
|
|
|
1470
1492
|
<div class="method-source-code"
|
|
1471
1493
|
id="alert-evel-olor-source">
|
|
1472
1494
|
<pre>
|
|
1473
|
-
<span class="ruby-comment cmt"># File lib/Project.rb, line
|
|
1474
|
-
|
|
1475
|
-
|
|
1476
|
-
|
|
1477
|
-
|
|
1495
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 496</span>
|
|
1496
|
+
496: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">alertLevelColor</span>(<span class="ruby-identifier">levelIndex</span>)
|
|
1497
|
+
497: <span class="ruby-keyword kw">return</span> <span class="ruby-value str">'unknown'</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@attributes</span>[<span class="ruby-value str">'alertLevels'</span>][<span class="ruby-identifier">levelIndex</span>]
|
|
1498
|
+
498: <span class="ruby-ivar">@attributes</span>[<span class="ruby-value str">'alertLevels'</span>][<span class="ruby-identifier">levelIndex</span>][<span class="ruby-value">2</span>]
|
|
1499
|
+
499: <span class="ruby-keyword kw">end</span></pre>
|
|
1478
1500
|
</div>
|
|
1479
1501
|
|
|
1480
1502
|
</div>
|
|
@@ -1508,11 +1530,11 @@ Return the ID or keyword of the alert level with the given
|
|
|
1508
1530
|
<div class="method-source-code"
|
|
1509
1531
|
id="alert-evel-d-source">
|
|
1510
1532
|
<pre>
|
|
1511
|
-
<span class="ruby-comment cmt"># File lib/Project.rb, line
|
|
1512
|
-
|
|
1513
|
-
|
|
1514
|
-
|
|
1515
|
-
|
|
1533
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 481</span>
|
|
1534
|
+
481: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">alertLevelId</span>(<span class="ruby-identifier">levelIndex</span>)
|
|
1535
|
+
482: <span class="ruby-keyword kw">return</span> <span class="ruby-value str">'unknown'</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@attributes</span>[<span class="ruby-value str">'alertLevels'</span>][<span class="ruby-identifier">levelIndex</span>]
|
|
1536
|
+
483: <span class="ruby-ivar">@attributes</span>[<span class="ruby-value str">'alertLevels'</span>][<span class="ruby-identifier">levelIndex</span>][<span class="ruby-value">0</span>]
|
|
1537
|
+
484: <span class="ruby-keyword kw">end</span></pre>
|
|
1516
1538
|
</div>
|
|
1517
1539
|
|
|
1518
1540
|
</div>
|
|
@@ -1546,15 +1568,15 @@ the index of it. If no level is found, nil is returned.
|
|
|
1546
1568
|
<div class="method-source-code"
|
|
1547
1569
|
id="alert-evel-ndex-source">
|
|
1548
1570
|
<pre>
|
|
1549
|
-
<span class="ruby-comment cmt"># File lib/Project.rb, line
|
|
1550
|
-
|
|
1551
|
-
|
|
1552
|
-
|
|
1553
|
-
|
|
1554
|
-
|
|
1555
|
-
|
|
1556
|
-
|
|
1557
|
-
|
|
1571
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 470</span>
|
|
1572
|
+
470: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">alertLevelIndex</span>(<span class="ruby-identifier">levelName</span>)
|
|
1573
|
+
471: <span class="ruby-ivar">@attributes</span>[<span class="ruby-value str">'alertLevels'</span>].<span class="ruby-identifier">length</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
|
|
1574
|
+
472: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@attributes</span>[<span class="ruby-value str">'alertLevels'</span>][<span class="ruby-identifier">i</span>][<span class="ruby-value">0</span>] <span class="ruby-operator">==</span> <span class="ruby-identifier">levelName</span>
|
|
1575
|
+
473: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">i</span>
|
|
1576
|
+
474: <span class="ruby-keyword kw">end</span>
|
|
1577
|
+
475: <span class="ruby-keyword kw">end</span>
|
|
1578
|
+
476: <span class="ruby-keyword kw">nil</span>
|
|
1579
|
+
477: <span class="ruby-keyword kw">end</span></pre>
|
|
1558
1580
|
</div>
|
|
1559
1581
|
|
|
1560
1582
|
</div>
|
|
@@ -1588,11 +1610,11 @@ Return the user readable name of the alert level with the given
|
|
|
1588
1610
|
<div class="method-source-code"
|
|
1589
1611
|
id="alert-evel-ame-source">
|
|
1590
1612
|
<pre>
|
|
1591
|
-
<span class="ruby-comment cmt"># File lib/Project.rb, line
|
|
1592
|
-
|
|
1593
|
-
|
|
1594
|
-
|
|
1595
|
-
|
|
1613
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 488</span>
|
|
1614
|
+
488: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">alertLevelName</span>(<span class="ruby-identifier">levelIndex</span>)
|
|
1615
|
+
489: <span class="ruby-keyword kw">return</span> <span class="ruby-value str">'unknown'</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@attributes</span>[<span class="ruby-value str">'alertLevels'</span>][<span class="ruby-identifier">levelIndex</span>]
|
|
1616
|
+
490: <span class="ruby-ivar">@attributes</span>[<span class="ruby-value str">'alertLevels'</span>][<span class="ruby-identifier">levelIndex</span>][<span class="ruby-value">1</span>]
|
|
1617
|
+
491: <span class="ruby-keyword kw">end</span></pre>
|
|
1596
1618
|
</div>
|
|
1597
1619
|
|
|
1598
1620
|
</div>
|
|
@@ -1627,14 +1649,14 @@ tasks over resources here.
|
|
|
1627
1649
|
<div class="method-source-code"
|
|
1628
1650
|
id="attribute-ame-source">
|
|
1629
1651
|
<pre>
|
|
1630
|
-
<span class="ruby-comment cmt"># File lib/Project.rb, line
|
|
1631
|
-
|
|
1632
|
-
|
|
1633
|
-
|
|
1634
|
-
|
|
1635
|
-
|
|
1636
|
-
|
|
1637
|
-
|
|
1652
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 901</span>
|
|
1653
|
+
901: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">attributeName</span>(<span class="ruby-identifier">id</span>)
|
|
1654
|
+
902: <span class="ruby-comment cmt"># We have to see if the attribute id is a task or resource attribute and</span>
|
|
1655
|
+
903: <span class="ruby-comment cmt"># return it's name.</span>
|
|
1656
|
+
904: (<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>
|
|
1657
|
+
905: (<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>
|
|
1658
|
+
906: <span class="ruby-identifier">name</span>
|
|
1659
|
+
907: <span class="ruby-keyword kw">end</span></pre>
|
|
1638
1660
|
</div>
|
|
1639
1661
|
|
|
1640
1662
|
</div>
|
|
@@ -1668,22 +1690,22 @@ format.
|
|
|
1668
1690
|
<div class="method-source-code"
|
|
1669
1691
|
id="check-eports-source">
|
|
1670
1692
|
<pre>
|
|
1671
|
-
<span class="ruby-comment cmt"># File lib/Project.rb, line
|
|
1672
|
-
|
|
1673
|
-
|
|
1674
|
-
|
|
1675
|
-
|
|
1676
|
-
|
|
1677
|
-
|
|
1678
|
-
|
|
1679
|
-
|
|
1680
|
-
|
|
1681
|
-
|
|
1682
|
-
|
|
1683
|
-
|
|
1684
|
-
|
|
1685
|
-
|
|
1686
|
-
|
|
1693
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 636</span>
|
|
1694
|
+
636: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">checkReports</span>
|
|
1695
|
+
637: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@reports</span>.<span class="ruby-identifier">empty?</span>
|
|
1696
|
+
638: <span class="ruby-ivar">@messageHandler</span>.<span class="ruby-identifier">warning</span>(<span class="ruby-value str">'no_report_defined'</span>,
|
|
1697
|
+
639: <span class="ruby-value str">"This project has no reports defined. "</span> <span class="ruby-operator">+</span>
|
|
1698
|
+
640: <span class="ruby-value str">"No output data will be generated."</span>)
|
|
1699
|
+
641: <span class="ruby-keyword kw">end</span>
|
|
1700
|
+
642:
|
|
1701
|
+
643: <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>
|
|
1702
|
+
644: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">unless</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>
|
|
1703
|
+
645: <span class="ruby-keyword kw">end</span>
|
|
1704
|
+
646:
|
|
1705
|
+
647: <span class="ruby-ivar">@messageHandler</span>.<span class="ruby-identifier">warning</span>(<span class="ruby-value str">'all_formats_empty'</span>,
|
|
1706
|
+
648: <span class="ruby-value str">"None of the reports has a 'formats' attribute. "</span> <span class="ruby-operator">+</span>
|
|
1707
|
+
649: <span class="ruby-value str">"No output data will be generated."</span>)
|
|
1708
|
+
650: <span class="ruby-keyword kw">end</span></pre>
|
|
1687
1709
|
</div>
|
|
1688
1710
|
|
|
1689
1711
|
</div>
|
|
@@ -1714,10 +1736,46 @@ format.
|
|
|
1714
1736
|
<div class="method-source-code"
|
|
1715
1737
|
id="check-ime-heets-source">
|
|
1716
1738
|
<pre>
|
|
1717
|
-
<span class="ruby-comment cmt"># File lib/Project.rb, line
|
|
1718
|
-
|
|
1719
|
-
|
|
1720
|
-
|
|
1739
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 747</span>
|
|
1740
|
+
747: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">checkTimeSheets</span>
|
|
1741
|
+
748: <span class="ruby-ivar">@timeSheets</span>.<span class="ruby-identifier">check</span>
|
|
1742
|
+
749: <span class="ruby-keyword kw">end</span></pre>
|
|
1743
|
+
</div>
|
|
1744
|
+
|
|
1745
|
+
</div>
|
|
1746
|
+
|
|
1747
|
+
|
|
1748
|
+
|
|
1749
|
+
|
|
1750
|
+
</div>
|
|
1751
|
+
|
|
1752
|
+
|
|
1753
|
+
<div id="collect-ime-ff-ntervals-method" class="method-detail ">
|
|
1754
|
+
<a name="method-i-collectTimeOffIntervals"></a>
|
|
1755
|
+
|
|
1756
|
+
<div class="method-heading">
|
|
1757
|
+
|
|
1758
|
+
<span class="method-name">collectTimeOffIntervals</span><span
|
|
1759
|
+
class="method-args">(iv, minDuration)</span>
|
|
1760
|
+
<span class="method-click-advice">click to toggle source</span>
|
|
1761
|
+
|
|
1762
|
+
</div>
|
|
1763
|
+
|
|
1764
|
+
<div class="method-description">
|
|
1765
|
+
|
|
1766
|
+
|
|
1767
|
+
|
|
1768
|
+
|
|
1769
|
+
|
|
1770
|
+
<div class="method-source-code"
|
|
1771
|
+
id="collect-ime-ff-ntervals-source">
|
|
1772
|
+
<pre>
|
|
1773
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 858</span>
|
|
1774
|
+
858: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">collectTimeOffIntervals</span>(<span class="ruby-identifier">iv</span>, <span class="ruby-identifier">minDuration</span>)
|
|
1775
|
+
859: <span class="ruby-ivar">@scoreboard</span>.<span class="ruby-identifier">collectIntervals</span>(<span class="ruby-identifier">iv</span>, <span class="ruby-identifier">minDuration</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">val</span><span class="ruby-operator">|</span>
|
|
1776
|
+
860: <span class="ruby-identifier">val</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Fixnum</span>) <span class="ruby-operator">&&</span> (<span class="ruby-identifier">val</span> & <span class="ruby-value">0x3E</span>) <span class="ruby-operator">!=</span> <span class="ruby-value">0</span>
|
|
1777
|
+
861: <span class="ruby-keyword kw">end</span>
|
|
1778
|
+
862: <span class="ruby-keyword kw">end</span></pre>
|
|
1721
1779
|
</div>
|
|
1722
1780
|
|
|
1723
1781
|
</div>
|
|
@@ -1751,10 +1809,10 @@ setting of the global ‘dailyworkinghours’ attribute.
|
|
|
1751
1809
|
<div class="method-source-code"
|
|
1752
1810
|
id="convert-o-aily-oad-source">
|
|
1753
1811
|
<pre>
|
|
1754
|
-
<span class="ruby-comment cmt"># File lib/Project.rb, line
|
|
1755
|
-
|
|
1756
|
-
|
|
1757
|
-
|
|
1812
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 817</span>
|
|
1813
|
+
817: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">convertToDailyLoad</span>(<span class="ruby-identifier">seconds</span>)
|
|
1814
|
+
818: <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-value">3600.0</span>)
|
|
1815
|
+
819: <span class="ruby-keyword kw">end</span></pre>
|
|
1758
1816
|
</div>
|
|
1759
1817
|
|
|
1760
1818
|
</div>
|
|
@@ -1788,10 +1846,10 @@ can be set to other values by the user.
|
|
|
1788
1846
|
<div class="method-source-code"
|
|
1789
1847
|
id="daily-orking-ours-source">
|
|
1790
1848
|
<pre>
|
|
1791
|
-
<span class="ruby-comment cmt"># File lib/Project.rb, line
|
|
1792
|
-
|
|
1793
|
-
|
|
1794
|
-
|
|
1849
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 503</span>
|
|
1850
|
+
503: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">dailyWorkingHours</span>
|
|
1851
|
+
504: <span class="ruby-ivar">@attributes</span>[<span class="ruby-value str">'dailyworkinghours'</span>].<span class="ruby-identifier">to_f</span>
|
|
1852
|
+
505: <span class="ruby-keyword kw">end</span></pre>
|
|
1795
1853
|
</div>
|
|
1796
1854
|
|
|
1797
1855
|
</div>
|
|
@@ -1827,21 +1885,21 @@ time frame.
|
|
|
1827
1885
|
<div class="method-source-code"
|
|
1828
1886
|
id="date-o-dx-source">
|
|
1829
1887
|
<pre>
|
|
1830
|
-
<span class="ruby-comment cmt"># File lib/Project.rb, line
|
|
1831
|
-
|
|
1832
|
-
|
|
1833
|
-
|
|
1834
|
-
|
|
1835
|
-
|
|
1836
|
-
|
|
1837
|
-
|
|
1838
|
-
|
|
1839
|
-
|
|
1840
|
-
|
|
1841
|
-
|
|
1842
|
-
|
|
1843
|
-
|
|
1844
|
-
|
|
1888
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 843</span>
|
|
1889
|
+
843: <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>)
|
|
1890
|
+
844: <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>])
|
|
1891
|
+
845: <span class="ruby-comment cmt"># Date is out of range.</span>
|
|
1892
|
+
846: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">forceIntoProject</span>
|
|
1893
|
+
847: <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>]
|
|
1894
|
+
848: <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>]
|
|
1895
|
+
849: <span class="ruby-keyword kw">else</span>
|
|
1896
|
+
850: <span class="ruby-identifier">raise</span> <span class="ruby-node">"Date #{date} is out of project time range "</span> <span class="ruby-operator">+</span>
|
|
1897
|
+
851: <span class="ruby-node">"(#{@attributes['start']} - #{@attributes['end']})"</span>
|
|
1898
|
+
852: <span class="ruby-keyword kw">end</span>
|
|
1899
|
+
853: <span class="ruby-keyword kw">end</span>
|
|
1900
|
+
854: <span class="ruby-comment cmt"># Calculate the corresponding index.</span>
|
|
1901
|
+
855: ((<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>
|
|
1902
|
+
856: <span class="ruby-keyword kw">end</span></pre>
|
|
1845
1903
|
</div>
|
|
1846
1904
|
|
|
1847
1905
|
</div>
|
|
@@ -1876,10 +1934,10 @@ of the whole project.
|
|
|
1876
1934
|
<div class="method-source-code"
|
|
1877
1935
|
id="deep-clone-source">
|
|
1878
1936
|
<pre>
|
|
1879
|
-
<span class="ruby-comment cmt"># File lib/Project.rb, line
|
|
1880
|
-
|
|
1881
|
-
|
|
1882
|
-
|
|
1937
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 426</span>
|
|
1938
|
+
426: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">deep_clone</span>
|
|
1939
|
+
427: <span class="ruby-keyword kw">self</span>
|
|
1940
|
+
428: <span class="ruby-keyword kw">end</span></pre>
|
|
1883
1941
|
</div>
|
|
1884
1942
|
|
|
1885
1943
|
</div>
|
|
@@ -1912,10 +1970,10 @@ This function sends an error message to the message handler.
|
|
|
1912
1970
|
<div class="method-source-code"
|
|
1913
1971
|
id="error-source">
|
|
1914
1972
|
<pre>
|
|
1915
|
-
<span class="ruby-comment cmt"># File lib/Project.rb, line
|
|
1916
|
-
|
|
1917
|
-
|
|
1918
|
-
|
|
1973
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 923</span>
|
|
1974
|
+
923: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">error</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>)
|
|
1975
|
+
924: <span class="ruby-ivar">@messageHandler</span>.<span class="ruby-identifier">error</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>)
|
|
1976
|
+
925: <span class="ruby-keyword kw">end</span></pre>
|
|
1919
1977
|
</div>
|
|
1920
1978
|
|
|
1921
1979
|
</div>
|
|
@@ -1932,7 +1990,7 @@ This function sends an error message to the message handler.
|
|
|
1932
1990
|
<div class="method-heading">
|
|
1933
1991
|
|
|
1934
1992
|
<span class="method-name">generateReport</span><span
|
|
1935
|
-
class="method-args">(reportId, regExpMode, dynamicAttributes = nil)</span>
|
|
1993
|
+
class="method-args">(reportId, regExpMode, formats = nil, dynamicAttributes = nil)</span>
|
|
1936
1994
|
<span class="method-click-advice">click to toggle source</span>
|
|
1937
1995
|
|
|
1938
1996
|
</div>
|
|
@@ -1946,43 +2004,46 @@ This function sends an error message to the message handler.
|
|
|
1946
2004
|
<div class="method-source-code"
|
|
1947
2005
|
id="generate-eport-source">
|
|
1948
2006
|
<pre>
|
|
1949
|
-
<span class="ruby-comment cmt"># File lib/Project.rb, line
|
|
1950
|
-
|
|
1951
|
-
|
|
1952
|
-
|
|
1953
|
-
|
|
1954
|
-
|
|
1955
|
-
|
|
1956
|
-
|
|
1957
|
-
|
|
1958
|
-
|
|
1959
|
-
|
|
1960
|
-
|
|
1961
|
-
|
|
1962
|
-
|
|
1963
|
-
695:
|
|
1964
|
-
696: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">startProgressMeter</span>(<span class="ruby-node">"Report #{report.name}"</span>)
|
|
1965
|
-
697: <span class="ruby-ivar">@reportContexts</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">context</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>))
|
|
1966
|
-
698:
|
|
1967
|
-
699: <span class="ruby-comment cmt"># If we have dynamic attributes we need to backup the old attributes</span>
|
|
1968
|
-
700: <span class="ruby-comment cmt"># first, then parse the dynamicAttributes String replacing the</span>
|
|
1969
|
-
701: <span class="ruby-comment cmt"># original values.</span>
|
|
1970
|
-
702: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">dynamicAttributes</span>
|
|
1971
|
-
703: <span class="ruby-identifier">context</span>.<span class="ruby-identifier">attributeBackup</span> = <span class="ruby-identifier">report</span>.<span class="ruby-identifier">backupAttributes</span>
|
|
1972
|
-
704: <span class="ruby-identifier">parser</span> = <span class="ruby-constant">ProjectFileParser</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@messageHandler</span>)
|
|
1973
|
-
705: <span class="ruby-identifier">parser</span>.<span class="ruby-identifier">parseReportAttributes</span>(<span class="ruby-identifier">report</span>, <span class="ruby-identifier">dynamicAttributes</span>)
|
|
1974
|
-
706: <span class="ruby-identifier">report</span>.<span class="ruby-identifier">set</span>(<span class="ruby-value str">'interactive'</span>, <span class="ruby-keyword kw">true</span>)
|
|
2007
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 694</span>
|
|
2008
|
+
694: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateReport</span>(<span class="ruby-identifier">reportId</span>, <span class="ruby-identifier">regExpMode</span>, <span class="ruby-identifier">formats</span> = <span class="ruby-keyword kw">nil</span>,
|
|
2009
|
+
695: <span class="ruby-identifier">dynamicAttributes</span> = <span class="ruby-keyword kw">nil</span>)
|
|
2010
|
+
696: <span class="ruby-identifier">reportList</span> = <span class="ruby-identifier">regExpMode</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">reportList</span> = <span class="ruby-identifier">matchingReports</span>(<span class="ruby-identifier">reportId</span>) <span class="ruby-operator">:</span>
|
|
2011
|
+
697: [ <span class="ruby-identifier">reportId</span> ]
|
|
2012
|
+
698: <span class="ruby-identifier">reportList</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">id</span><span class="ruby-operator">|</span>
|
|
2013
|
+
699: <span class="ruby-keyword kw">unless</span> (<span class="ruby-identifier">report</span> = <span class="ruby-ivar">@reports</span>[<span class="ruby-identifier">id</span>])
|
|
2014
|
+
700: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'unknown_report_id'</span>,
|
|
2015
|
+
701: <span class="ruby-node">"Request to generate unknown report #{id}"</span>)
|
|
2016
|
+
702: <span class="ruby-keyword kw">end</span>
|
|
2017
|
+
703: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">formats</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">&&</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>
|
|
2018
|
+
704: <span class="ruby-ivar">@messageHandler</span>.<span class="ruby-identifier">error</span>(<span class="ruby-value str">'formats_empty'</span>,
|
|
2019
|
+
705: <span class="ruby-node">"The report #{report.fullId} has no 'formats' attribute. "</span> <span class="ruby-operator">+</span>
|
|
2020
|
+
706: <span class="ruby-value str">"No output data will be generated."</span>)
|
|
1975
2021
|
707: <span class="ruby-keyword kw">end</span>
|
|
1976
2022
|
708:
|
|
1977
|
-
709: <span class="ruby-
|
|
1978
|
-
710:
|
|
1979
|
-
711:
|
|
1980
|
-
712:
|
|
1981
|
-
713: <span class="ruby-
|
|
1982
|
-
714: <span class="ruby-
|
|
1983
|
-
715: <span class="ruby-
|
|
1984
|
-
716:
|
|
1985
|
-
717:
|
|
2023
|
+
709: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">startProgressMeter</span>(<span class="ruby-node">"Report #{report.name}"</span>)
|
|
2024
|
+
710: <span class="ruby-ivar">@reportContexts</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">context</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>))
|
|
2025
|
+
711:
|
|
2026
|
+
712: <span class="ruby-comment cmt"># If we have dynamic attributes we need to backup the old attributes</span>
|
|
2027
|
+
713: <span class="ruby-comment cmt"># first, then parse the dynamicAttributes String replacing the</span>
|
|
2028
|
+
714: <span class="ruby-comment cmt"># original values.</span>
|
|
2029
|
+
715: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">dynamicAttributes</span>
|
|
2030
|
+
716: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">dynamicAttributes</span>.<span class="ruby-identifier">empty?</span>
|
|
2031
|
+
717: <span class="ruby-identifier">context</span>.<span class="ruby-identifier">attributeBackup</span> = <span class="ruby-identifier">report</span>.<span class="ruby-identifier">backupAttributes</span>
|
|
2032
|
+
718: <span class="ruby-identifier">parser</span> = <span class="ruby-constant">ProjectFileParser</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@messageHandler</span>)
|
|
2033
|
+
719: <span class="ruby-identifier">parser</span>.<span class="ruby-identifier">parseReportAttributes</span>(<span class="ruby-identifier">report</span>, <span class="ruby-identifier">dynamicAttributes</span>)
|
|
2034
|
+
720: <span class="ruby-keyword kw">end</span>
|
|
2035
|
+
721: <span class="ruby-identifier">report</span>.<span class="ruby-identifier">set</span>(<span class="ruby-value str">'interactive'</span>, <span class="ruby-keyword kw">true</span>)
|
|
2036
|
+
722: <span class="ruby-keyword kw">end</span>
|
|
2037
|
+
723:
|
|
2038
|
+
724: <span class="ruby-identifier">report</span>.<span class="ruby-identifier">generate</span>(<span class="ruby-identifier">formats</span>)
|
|
2039
|
+
725:
|
|
2040
|
+
726: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">dynamicAttributes</span> <span class="ruby-operator">&&</span> <span class="ruby-operator">!</span><span class="ruby-identifier">dynamicAttributes</span>.<span class="ruby-identifier">empty?</span>
|
|
2041
|
+
727: <span class="ruby-identifier">report</span>.<span class="ruby-identifier">restoreAttributes</span>(<span class="ruby-identifier">context</span>.<span class="ruby-identifier">attributeBackup</span>)
|
|
2042
|
+
728: <span class="ruby-keyword kw">end</span>
|
|
2043
|
+
729: <span class="ruby-ivar">@reportContexts</span>.<span class="ruby-identifier">pop</span>
|
|
2044
|
+
730: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">stopProgressMeter</span>
|
|
2045
|
+
731: <span class="ruby-keyword kw">end</span>
|
|
2046
|
+
732: <span class="ruby-keyword kw">end</span></pre>
|
|
1986
2047
|
</div>
|
|
1987
2048
|
|
|
1988
2049
|
</div>
|
|
@@ -2017,46 +2078,46 @@ href="Project.html#method-i-schedule">Project#schedule</a> has been called.
|
|
|
2017
2078
|
<div class="method-source-code"
|
|
2018
2079
|
id="generate-eports-source">
|
|
2019
2080
|
<pre>
|
|
2020
|
-
<span class="ruby-comment cmt"># File lib/Project.rb, line
|
|
2021
|
-
|
|
2022
|
-
|
|
2023
|
-
|
|
2024
|
-
645: <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>
|
|
2025
|
-
646: <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>
|
|
2026
|
-
647: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">startProgressMeter</span>(<span class="ruby-node">"Report #{report.name}"</span>)
|
|
2027
|
-
648: <span class="ruby-ivar">@reportContexts</span>.<span class="ruby-identifier">push</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>))
|
|
2028
|
-
649: <span class="ruby-identifier">report</span>.<span class="ruby-identifier">generate</span>
|
|
2029
|
-
650: <span class="ruby-ivar">@reportContexts</span>.<span class="ruby-identifier">pop</span>
|
|
2030
|
-
651: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">stopProgressMeter</span>
|
|
2031
|
-
652: <span class="ruby-keyword kw">end</span>
|
|
2032
|
-
653: <span class="ruby-keyword kw">else</span>
|
|
2033
|
-
654: <span class="ruby-comment cmt"># Kickoff the generation of all reports by pushing the jobs into the</span>
|
|
2034
|
-
655: <span class="ruby-comment cmt"># BatchProcessor queue.</span>
|
|
2035
|
-
656: <span class="ruby-identifier">bp</span> = <span class="ruby-constant">BatchProcessor</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">maxCpuCores</span>)
|
|
2081
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 654</span>
|
|
2082
|
+
654: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateReports</span>(<span class="ruby-identifier">maxCpuCores</span>)
|
|
2083
|
+
655: <span class="ruby-ivar">@reports</span>.<span class="ruby-identifier">index</span>
|
|
2084
|
+
656: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">maxCpuCores</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span>
|
|
2036
2085
|
657: <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>
|
|
2037
2086
|
658: <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>
|
|
2038
|
-
659: <span class="ruby-
|
|
2039
|
-
660:
|
|
2040
|
-
661:
|
|
2041
|
-
662:
|
|
2042
|
-
663:
|
|
2043
|
-
664:
|
|
2044
|
-
665:
|
|
2045
|
-
666: <span class="ruby-comment cmt">#
|
|
2046
|
-
667: <span class="ruby-
|
|
2047
|
-
668:
|
|
2048
|
-
669:
|
|
2049
|
-
670: <span class="ruby-
|
|
2050
|
-
671: <span class="ruby-
|
|
2051
|
-
672: <span class="ruby-ivar">@
|
|
2052
|
-
673:
|
|
2053
|
-
674:
|
|
2054
|
-
675: <span class="ruby-
|
|
2055
|
-
676:
|
|
2056
|
-
677:
|
|
2057
|
-
678: <span class="ruby-
|
|
2058
|
-
679:
|
|
2059
|
-
680:
|
|
2087
|
+
659: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">startProgressMeter</span>(<span class="ruby-node">"Report #{report.name}"</span>)
|
|
2088
|
+
660: <span class="ruby-ivar">@reportContexts</span>.<span class="ruby-identifier">push</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>))
|
|
2089
|
+
661: <span class="ruby-identifier">report</span>.<span class="ruby-identifier">generate</span>
|
|
2090
|
+
662: <span class="ruby-ivar">@reportContexts</span>.<span class="ruby-identifier">pop</span>
|
|
2091
|
+
663: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">stopProgressMeter</span>
|
|
2092
|
+
664: <span class="ruby-keyword kw">end</span>
|
|
2093
|
+
665: <span class="ruby-keyword kw">else</span>
|
|
2094
|
+
666: <span class="ruby-comment cmt"># Kickoff the generation of all reports by pushing the jobs into the</span>
|
|
2095
|
+
667: <span class="ruby-comment cmt"># BatchProcessor queue.</span>
|
|
2096
|
+
668: <span class="ruby-identifier">bp</span> = <span class="ruby-constant">BatchProcessor</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">maxCpuCores</span>)
|
|
2097
|
+
669: <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>
|
|
2098
|
+
670: <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>
|
|
2099
|
+
671: <span class="ruby-identifier">bp</span>.<span class="ruby-identifier">queue</span>(<span class="ruby-identifier">report</span>) {
|
|
2100
|
+
672: <span class="ruby-ivar">@reportContexts</span>.<span class="ruby-identifier">push</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>))
|
|
2101
|
+
673: <span class="ruby-identifier">res</span> = <span class="ruby-identifier">report</span>.<span class="ruby-identifier">generate</span>
|
|
2102
|
+
674: <span class="ruby-ivar">@reportContexts</span>.<span class="ruby-identifier">pop</span>
|
|
2103
|
+
675: <span class="ruby-identifier">res</span>
|
|
2104
|
+
676: }
|
|
2105
|
+
677: <span class="ruby-keyword kw">end</span>
|
|
2106
|
+
678: <span class="ruby-comment cmt"># Now wait for all the jobs to finish.</span>
|
|
2107
|
+
679: <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>
|
|
2108
|
+
680: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">startProgressMeter</span>(<span class="ruby-node">"Report #{report.tag.name}"</span>)
|
|
2109
|
+
681: <span class="ruby-identifier">$stdout</span>.<span class="ruby-identifier">print</span>(<span class="ruby-identifier">report</span>.<span class="ruby-identifier">stdout</span>)
|
|
2110
|
+
682: <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">print</span>(<span class="ruby-identifier">report</span>.<span class="ruby-identifier">stderr</span>)
|
|
2111
|
+
683: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">report</span>.<span class="ruby-identifier">retVal</span>.<span class="ruby-identifier">signaled?</span>
|
|
2112
|
+
684: <span class="ruby-ivar">@messageHandler</span>.<span class="ruby-identifier">error</span>(<span class="ruby-value str">'rg_signal'</span>, <span class="ruby-value str">"Signal raised"</span>)
|
|
2113
|
+
685: <span class="ruby-keyword kw">end</span>
|
|
2114
|
+
686: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">report</span>.<span class="ruby-identifier">retVal</span>.<span class="ruby-identifier">success?</span>
|
|
2115
|
+
687: <span class="ruby-ivar">@messageHandler</span>.<span class="ruby-identifier">error</span>(<span class="ruby-value str">'rg_abort'</span>, <span class="ruby-value str">"Process aborted"</span>)
|
|
2116
|
+
688: <span class="ruby-keyword kw">end</span>
|
|
2117
|
+
689: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">stopProgressMeter</span>
|
|
2118
|
+
690: <span class="ruby-keyword kw">end</span>
|
|
2119
|
+
691: <span class="ruby-keyword kw">end</span>
|
|
2120
|
+
692: <span class="ruby-keyword kw">end</span></pre>
|
|
2060
2121
|
</div>
|
|
2061
2122
|
|
|
2062
2123
|
</div>
|
|
@@ -2092,13 +2153,13 @@ raised.
|
|
|
2092
2153
|
<div class="method-source-code"
|
|
2093
2154
|
id="idx-o-ate-source">
|
|
2094
2155
|
<pre>
|
|
2095
|
-
<span class="ruby-comment cmt"># File lib/Project.rb, line
|
|
2096
|
-
|
|
2097
|
-
|
|
2098
|
-
|
|
2099
|
-
|
|
2100
|
-
|
|
2101
|
-
|
|
2156
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 833</span>
|
|
2157
|
+
833: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">idxToDate</span>(<span class="ruby-identifier">idx</span>)
|
|
2158
|
+
834: <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>)
|
|
2159
|
+
835: <span class="ruby-identifier">raise</span> <span class="ruby-value str">"Scoreboard index out of range"</span>
|
|
2160
|
+
836: <span class="ruby-keyword kw">end</span>
|
|
2161
|
+
837: <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-ivar">@attributes</span>[<span class="ruby-value str">'scheduleGranularity'</span>]
|
|
2162
|
+
838: <span class="ruby-keyword kw">end</span></pre>
|
|
2102
2163
|
</div>
|
|
2103
2164
|
|
|
2104
2165
|
</div>
|
|
@@ -2136,29 +2197,29 @@ defined and the slot lies within a defined working time period.
|
|
|
2136
2197
|
<div class="method-source-code"
|
|
2137
2198
|
id="is-orking-ime-source">
|
|
2138
2199
|
<pre>
|
|
2139
|
-
<span class="ruby-comment cmt"># File lib/Project.rb, line
|
|
2140
|
-
|
|
2141
|
-
|
|
2142
|
-
|
|
2143
|
-
|
|
2144
|
-
|
|
2145
|
-
|
|
2146
|
-
|
|
2147
|
-
|
|
2148
|
-
|
|
2149
|
-
|
|
2150
|
-
|
|
2151
|
-
|
|
2152
|
-
|
|
2153
|
-
|
|
2154
|
-
|
|
2155
|
-
|
|
2156
|
-
|
|
2157
|
-
|
|
2158
|
-
|
|
2159
|
-
|
|
2160
|
-
|
|
2161
|
-
|
|
2200
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 792</span>
|
|
2201
|
+
792: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">isWorkingTime</span>(*<span class="ruby-identifier">args</span>)
|
|
2202
|
+
793: <span class="ruby-comment cmt"># Normalize argument(s) to Interval</span>
|
|
2203
|
+
794: <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>
|
|
2204
|
+
795: <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>)
|
|
2205
|
+
796: <span class="ruby-identifier">iv</span> = <span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>]
|
|
2206
|
+
797: <span class="ruby-keyword kw">else</span>
|
|
2207
|
+
798: <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>
|
|
2208
|
+
799: <span class="ruby-ivar">@attributes</span>[<span class="ruby-value str">'scheduleGranularity'</span>])
|
|
2209
|
+
800: <span class="ruby-keyword kw">end</span>
|
|
2210
|
+
801: <span class="ruby-keyword kw">else</span>
|
|
2211
|
+
802: <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>])
|
|
2212
|
+
803: <span class="ruby-keyword kw">end</span>
|
|
2213
|
+
804:
|
|
2214
|
+
805: <span class="ruby-comment cmt"># Check if the interval has overlap with any of the global vacations.</span>
|
|
2215
|
+
806: <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>
|
|
2216
|
+
807: <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>)
|
|
2217
|
+
808: <span class="ruby-keyword kw">end</span>
|
|
2218
|
+
809:
|
|
2219
|
+
810: <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>)
|
|
2220
|
+
811:
|
|
2221
|
+
812: <span class="ruby-keyword kw">true</span>
|
|
2222
|
+
813: <span class="ruby-keyword kw">end</span></pre>
|
|
2162
2223
|
</div>
|
|
2163
2224
|
|
|
2164
2225
|
</div>
|
|
@@ -2189,19 +2250,19 @@ defined and the slot lies within a defined working time period.
|
|
|
2189
2250
|
<div class="method-source-code"
|
|
2190
2251
|
id="list-eports-source">
|
|
2191
2252
|
<pre>
|
|
2192
|
-
<span class="ruby-comment cmt"># File lib/Project.rb, line
|
|
2193
|
-
|
|
2194
|
-
|
|
2195
|
-
|
|
2196
|
-
|
|
2197
|
-
|
|
2198
|
-
|
|
2199
|
-
|
|
2200
|
-
|
|
2201
|
-
|
|
2202
|
-
|
|
2203
|
-
|
|
2204
|
-
|
|
2253
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 734</span>
|
|
2254
|
+
734: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">listReports</span>(<span class="ruby-identifier">reportId</span>, <span class="ruby-identifier">regExpMode</span>)
|
|
2255
|
+
735: <span class="ruby-identifier">reportList</span> = <span class="ruby-identifier">regExpMode</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">reportList</span> = <span class="ruby-identifier">matchingReports</span>(<span class="ruby-identifier">reportId</span>) <span class="ruby-operator">:</span>
|
|
2256
|
+
736: <span class="ruby-ivar">@reports</span>[<span class="ruby-identifier">reportId</span>] <span class="ruby-operator">?</span> [ <span class="ruby-identifier">reportId</span> ] <span class="ruby-operator">:</span> []
|
|
2257
|
+
737: <span class="ruby-identifier">puts</span> <span class="ruby-node">"No match for #{reportId}"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">reportList</span>.<span class="ruby-identifier">empty?</span>
|
|
2258
|
+
738: <span class="ruby-identifier">reportList</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">id</span><span class="ruby-operator">|</span>
|
|
2259
|
+
739: <span class="ruby-identifier">report</span> = <span class="ruby-ivar">@reports</span>[<span class="ruby-identifier">id</span>]
|
|
2260
|
+
740: <span class="ruby-identifier">formats</span> = <span class="ruby-identifier">report</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value str">'formats'</span>)
|
|
2261
|
+
741: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">formats</span>.<span class="ruby-identifier">empty?</span>
|
|
2262
|
+
742:
|
|
2263
|
+
743: <span class="ruby-identifier">puts</span> <span class="ruby-identifier">sprintf</span>(<span class="ruby-value str">"%s\t%s\t%s"</span>, <span class="ruby-identifier">id</span>, <span class="ruby-identifier">formats</span>.<span class="ruby-identifier">join</span>(<span class="ruby-value str">', '</span>), <span class="ruby-identifier">report</span>.<span class="ruby-identifier">name</span>)
|
|
2264
|
+
744: <span class="ruby-keyword kw">end</span>
|
|
2265
|
+
745: <span class="ruby-keyword kw">end</span></pre>
|
|
2205
2266
|
</div>
|
|
2206
2267
|
|
|
2207
2268
|
</div>
|
|
@@ -2234,10 +2295,10 @@ Return the average number of working days per month.
|
|
|
2234
2295
|
<div class="method-source-code"
|
|
2235
2296
|
id="monthly-orking-ays-source">
|
|
2236
2297
|
<pre>
|
|
2237
|
-
<span class="ruby-comment cmt"># File lib/Project.rb, line
|
|
2238
|
-
|
|
2239
|
-
|
|
2240
|
-
|
|
2298
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 513</span>
|
|
2299
|
+
513: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">monthlyWorkingDays</span>
|
|
2300
|
+
514: <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>
|
|
2301
|
+
515: <span class="ruby-keyword kw">end</span></pre>
|
|
2241
2302
|
</div>
|
|
2242
2303
|
|
|
2243
2304
|
</div>
|
|
@@ -2271,10 +2332,10 @@ return nil if it does not exist.
|
|
|
2271
2332
|
<div class="method-source-code"
|
|
2272
2333
|
id="report-source">
|
|
2273
2334
|
<pre>
|
|
2274
|
-
<span class="ruby-comment cmt"># File lib/Project.rb, line
|
|
2275
|
-
|
|
2276
|
-
|
|
2277
|
-
|
|
2335
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 579</span>
|
|
2336
|
+
579: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">report</span>(<span class="ruby-identifier">id</span>)
|
|
2337
|
+
580: <span class="ruby-ivar">@reports</span>[<span class="ruby-identifier">id</span>]
|
|
2338
|
+
581: <span class="ruby-keyword kw">end</span></pre>
|
|
2278
2339
|
</div>
|
|
2279
2340
|
|
|
2280
2341
|
</div>
|
|
@@ -2308,13 +2369,13 @@ return nil if it does not exist.
|
|
|
2308
2369
|
<div class="method-source-code"
|
|
2309
2370
|
id="report-y-ame-source">
|
|
2310
2371
|
<pre>
|
|
2311
|
-
<span class="ruby-comment cmt"># File lib/Project.rb, line
|
|
2312
|
-
|
|
2313
|
-
|
|
2314
|
-
|
|
2315
|
-
|
|
2316
|
-
|
|
2317
|
-
|
|
2372
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 585</span>
|
|
2373
|
+
585: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">reportByName</span>(<span class="ruby-identifier">name</span>)
|
|
2374
|
+
586: <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>
|
|
2375
|
+
587: <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>
|
|
2376
|
+
588: <span class="ruby-keyword kw">end</span>
|
|
2377
|
+
589: <span class="ruby-keyword kw">nil</span>
|
|
2378
|
+
590: <span class="ruby-keyword kw">end</span></pre>
|
|
2318
2379
|
</div>
|
|
2319
2380
|
|
|
2320
2381
|
</div>
|
|
@@ -2348,10 +2409,10 @@ return nil if it does not exist.
|
|
|
2348
2409
|
<div class="method-source-code"
|
|
2349
2410
|
id="resource-source">
|
|
2350
2411
|
<pre>
|
|
2351
|
-
<span class="ruby-comment cmt"># File lib/Project.rb, line
|
|
2352
|
-
|
|
2353
|
-
|
|
2354
|
-
|
|
2412
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 574</span>
|
|
2413
|
+
574: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">resource</span>(<span class="ruby-identifier">id</span>)
|
|
2414
|
+
575: <span class="ruby-ivar">@resources</span>[<span class="ruby-identifier">id</span>]
|
|
2415
|
+
576: <span class="ruby-keyword kw">end</span></pre>
|
|
2355
2416
|
</div>
|
|
2356
2417
|
|
|
2357
2418
|
</div>
|
|
@@ -2385,17 +2446,17 @@ or <em>index</em>.
|
|
|
2385
2446
|
<div class="method-source-code"
|
|
2386
2447
|
id="scenario-source">
|
|
2387
2448
|
<pre>
|
|
2388
|
-
<span class="ruby-comment cmt"># File lib/Project.rb, line
|
|
2389
|
-
|
|
2390
|
-
|
|
2391
|
-
|
|
2392
|
-
|
|
2393
|
-
|
|
2394
|
-
|
|
2395
|
-
|
|
2396
|
-
|
|
2397
|
-
|
|
2398
|
-
|
|
2449
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 532</span>
|
|
2450
|
+
532: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">scenario</span>(<span class="ruby-identifier">arg</span>)
|
|
2451
|
+
533: <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>)
|
|
2452
|
+
534: <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>
|
|
2453
|
+
535: <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>
|
|
2454
|
+
536: <span class="ruby-keyword kw">end</span>
|
|
2455
|
+
537: <span class="ruby-keyword kw">else</span>
|
|
2456
|
+
538: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@scenarios</span>[<span class="ruby-identifier">arg</span>]
|
|
2457
|
+
539: <span class="ruby-keyword kw">end</span>
|
|
2458
|
+
540: <span class="ruby-keyword kw">nil</span>
|
|
2459
|
+
541: <span class="ruby-keyword kw">end</span></pre>
|
|
2399
2460
|
</div>
|
|
2400
2461
|
|
|
2401
2462
|
</div>
|
|
@@ -2428,10 +2489,10 @@ Return the number of defined scenarios for the project.
|
|
|
2428
2489
|
<div class="method-source-code"
|
|
2429
2490
|
id="scenario-ount-source">
|
|
2430
2491
|
<pre>
|
|
2431
|
-
<span class="ruby-comment cmt"># File lib/Project.rb, line
|
|
2432
|
-
|
|
2433
|
-
|
|
2434
|
-
|
|
2492
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 464</span>
|
|
2493
|
+
464: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">scenarioCount</span>
|
|
2494
|
+
465: <span class="ruby-ivar">@scenarios</span>.<span class="ruby-identifier">items</span>
|
|
2495
|
+
466: <span class="ruby-keyword kw">end</span></pre>
|
|
2435
2496
|
</div>
|
|
2436
2497
|
|
|
2437
2498
|
</div>
|
|
@@ -2465,16 +2526,16 @@ specified by <em>scenario</em> or <em>id</em>.
|
|
|
2465
2526
|
<div class="method-source-code"
|
|
2466
2527
|
id="scenario-dx-source">
|
|
2467
2528
|
<pre>
|
|
2468
|
-
<span class="ruby-comment cmt"># File lib/Project.rb, line
|
|
2469
|
-
|
|
2470
|
-
|
|
2471
|
-
|
|
2472
|
-
|
|
2473
|
-
|
|
2474
|
-
|
|
2475
|
-
|
|
2476
|
-
|
|
2477
|
-
|
|
2529
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 548</span>
|
|
2530
|
+
548: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">scenarioIdx</span>(<span class="ruby-identifier">sc</span>)
|
|
2531
|
+
549: <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>)
|
|
2532
|
+
550: <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>
|
|
2533
|
+
551: <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>
|
|
2534
|
+
552: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
|
|
2535
|
+
553: <span class="ruby-keyword kw">else</span>
|
|
2536
|
+
554: <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>
|
|
2537
|
+
555: <span class="ruby-keyword kw">end</span>
|
|
2538
|
+
556: <span class="ruby-keyword kw">end</span></pre>
|
|
2478
2539
|
</div>
|
|
2479
2540
|
|
|
2480
2541
|
</div>
|
|
@@ -2509,44 +2570,45 @@ stores the result in the data structures again.
|
|
|
2509
2570
|
<div class="method-source-code"
|
|
2510
2571
|
id="schedule-source">
|
|
2511
2572
|
<pre>
|
|
2512
|
-
<span class="ruby-comment cmt"># File lib/Project.rb, line
|
|
2513
|
-
|
|
2514
|
-
|
|
2515
|
-
|
|
2516
|
-
|
|
2517
|
-
|
|
2518
|
-
|
|
2519
|
-
|
|
2520
|
-
|
|
2521
|
-
|
|
2522
|
-
|
|
2523
|
-
|
|
2524
|
-
|
|
2525
|
-
|
|
2526
|
-
|
|
2527
|
-
|
|
2528
|
-
|
|
2529
|
-
|
|
2530
|
-
|
|
2531
|
-
|
|
2532
|
-
|
|
2533
|
-
|
|
2534
|
-
|
|
2535
|
-
|
|
2536
|
-
|
|
2537
|
-
|
|
2538
|
-
|
|
2539
|
-
|
|
2540
|
-
|
|
2541
|
-
|
|
2542
|
-
|
|
2543
|
-
|
|
2544
|
-
|
|
2545
|
-
|
|
2546
|
-
|
|
2547
|
-
|
|
2548
|
-
|
|
2549
|
-
|
|
2573
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 595</span>
|
|
2574
|
+
595: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">schedule</span>
|
|
2575
|
+
596: <span class="ruby-identifier">initScoreboards</span>
|
|
2576
|
+
597:
|
|
2577
|
+
598: [ <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>
|
|
2578
|
+
599: <span class="ruby-comment cmt"># Set all index counters to their proper values.</span>
|
|
2579
|
+
600: <span class="ruby-identifier">p</span>.<span class="ruby-identifier">index</span>
|
|
2580
|
+
601: <span class="ruby-keyword kw">end</span>
|
|
2581
|
+
602:
|
|
2582
|
+
603: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@tasks</span>.<span class="ruby-identifier">empty?</span>
|
|
2583
|
+
604: <span class="ruby-ivar">@messageHandler</span>.<span class="ruby-identifier">error</span>(<span class="ruby-value str">'no_tasks'</span>, <span class="ruby-value str">"No tasks defined"</span>)
|
|
2584
|
+
605: <span class="ruby-keyword kw">end</span>
|
|
2585
|
+
606:
|
|
2586
|
+
607: <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>
|
|
2587
|
+
608: <span class="ruby-comment cmt"># Skip disabled scenarios</span>
|
|
2588
|
+
609: <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>)
|
|
2589
|
+
610:
|
|
2590
|
+
611: <span class="ruby-identifier">scIdx</span> = <span class="ruby-identifier">scenarioIdx</span>(<span class="ruby-identifier">sc</span>)
|
|
2591
|
+
612:
|
|
2592
|
+
613: <span class="ruby-comment cmt"># All user provided values are set now. The next step is to</span>
|
|
2593
|
+
614: <span class="ruby-comment cmt"># propagate inherited values. These values must be marked as</span>
|
|
2594
|
+
615: <span class="ruby-comment cmt"># inherited by setting the mode to 1. As we always call</span>
|
|
2595
|
+
616: <span class="ruby-comment cmt"># PropertyTreeNode#inherit this is just a safeguard.</span>
|
|
2596
|
+
617: <span class="ruby-constant">AttributeBase</span>.<span class="ruby-identifier">setMode</span>(<span class="ruby-value">1</span>)
|
|
2597
|
+
618: <span class="ruby-identifier">prepareScenario</span>(<span class="ruby-identifier">scIdx</span>)
|
|
2598
|
+
619:
|
|
2599
|
+
620: <span class="ruby-comment cmt"># Now change to mode 2 so all values that are modified are marked</span>
|
|
2600
|
+
621: <span class="ruby-comment cmt"># as computed.</span>
|
|
2601
|
+
622: <span class="ruby-constant">AttributeBase</span>.<span class="ruby-identifier">setMode</span>(<span class="ruby-value">2</span>)
|
|
2602
|
+
623: <span class="ruby-comment cmt"># Schedule the scenario.</span>
|
|
2603
|
+
624: <span class="ruby-identifier">scheduleScenario</span>(<span class="ruby-identifier">scIdx</span>)
|
|
2604
|
+
625:
|
|
2605
|
+
626: <span class="ruby-comment cmt"># Complete the data sets, and check the result.</span>
|
|
2606
|
+
627: <span class="ruby-identifier">finishScenario</span>(<span class="ruby-identifier">scIdx</span>)
|
|
2607
|
+
628: <span class="ruby-keyword kw">end</span>
|
|
2608
|
+
629:
|
|
2609
|
+
630: <span class="ruby-ivar">@timeSheets</span>.<span class="ruby-identifier">warnOnDelta</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@warnTsDeltas</span>
|
|
2610
|
+
631: <span class="ruby-keyword kw">true</span>
|
|
2611
|
+
632: <span class="ruby-keyword kw">end</span></pre>
|
|
2550
2612
|
</div>
|
|
2551
2613
|
|
|
2552
2614
|
</div>
|
|
@@ -2582,11 +2644,11 @@ number of entries in the scoreboards.
|
|
|
2582
2644
|
<div class="method-source-code"
|
|
2583
2645
|
id="scoreboard-ize-source">
|
|
2584
2646
|
<pre>
|
|
2585
|
-
<span class="ruby-comment cmt"># File lib/Project.rb, line
|
|
2586
|
-
|
|
2587
|
-
|
|
2588
|
-
|
|
2589
|
-
|
|
2647
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 825</span>
|
|
2648
|
+
825: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">scoreboardSize</span>
|
|
2649
|
+
826: ((<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>
|
|
2650
|
+
827: <span class="ruby-ivar">@attributes</span>[<span class="ruby-value str">'scheduleGranularity'</span>]).<span class="ruby-identifier">to_i</span>
|
|
2651
|
+
828: <span class="ruby-keyword kw">end</span></pre>
|
|
2590
2652
|
</div>
|
|
2591
2653
|
|
|
2592
2654
|
</div>
|
|
@@ -2620,10 +2682,10 @@ nil if it does not exist.
|
|
|
2620
2682
|
<div class="method-source-code"
|
|
2621
2683
|
id="shift-source">
|
|
2622
2684
|
<pre>
|
|
2623
|
-
<span class="ruby-comment cmt"># File lib/Project.rb, line
|
|
2624
|
-
|
|
2625
|
-
|
|
2626
|
-
|
|
2685
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 559</span>
|
|
2686
|
+
559: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">shift</span>(<span class="ruby-identifier">id</span>)
|
|
2687
|
+
560: <span class="ruby-ivar">@shifts</span>[<span class="ruby-identifier">id</span>]
|
|
2688
|
+
561: <span class="ruby-keyword kw">end</span></pre>
|
|
2627
2689
|
</div>
|
|
2628
2690
|
|
|
2629
2691
|
</div>
|
|
@@ -2656,10 +2718,10 @@ Convert timeSlots to working days.
|
|
|
2656
2718
|
<div class="method-source-code"
|
|
2657
2719
|
id="slots-o-ays-source">
|
|
2658
2720
|
<pre>
|
|
2659
|
-
<span class="ruby-comment cmt"># File lib/Project.rb, line
|
|
2660
|
-
|
|
2661
|
-
|
|
2662
|
-
|
|
2721
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 523</span>
|
|
2722
|
+
523: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">slotsToDays</span>(<span class="ruby-identifier">slots</span>)
|
|
2723
|
+
524: <span class="ruby-identifier">slots</span> * <span class="ruby-ivar">@attributes</span>[<span class="ruby-value str">'scheduleGranularity'</span>] <span class="ruby-operator">/</span> (<span class="ruby-value">60</span> * <span class="ruby-value">60</span> * <span class="ruby-identifier">dailyWorkingHours</span>)
|
|
2724
|
+
525: <span class="ruby-keyword kw">end</span></pre>
|
|
2663
2725
|
</div>
|
|
2664
2726
|
|
|
2665
2727
|
</div>
|
|
@@ -2693,10 +2755,10 @@ nil if it does not exist.
|
|
|
2693
2755
|
<div class="method-source-code"
|
|
2694
2756
|
id="task-source">
|
|
2695
2757
|
<pre>
|
|
2696
|
-
<span class="ruby-comment cmt"># File lib/Project.rb, line
|
|
2697
|
-
|
|
2698
|
-
|
|
2699
|
-
|
|
2758
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 569</span>
|
|
2759
|
+
569: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">task</span>(<span class="ruby-identifier">id</span>)
|
|
2760
|
+
570: <span class="ruby-ivar">@tasks</span>[<span class="ruby-identifier">id</span>]
|
|
2761
|
+
571: <span class="ruby-keyword kw">end</span></pre>
|
|
2700
2762
|
</div>
|
|
2701
2763
|
|
|
2702
2764
|
</div>
|
|
@@ -2729,18 +2791,18 @@ Print the attribute values. It’s used for debugging only.
|
|
|
2729
2791
|
<div class="method-source-code"
|
|
2730
2792
|
id="to-s-source">
|
|
2731
2793
|
<pre>
|
|
2732
|
-
<span class="ruby-comment cmt"># File lib/Project.rb, line
|
|
2733
|
-
|
|
2734
|
-
|
|
2735
|
-
|
|
2736
|
-
|
|
2737
|
-
|
|
2738
|
-
|
|
2739
|
-
|
|
2740
|
-
|
|
2741
|
-
|
|
2742
|
-
|
|
2743
|
-
|
|
2794
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 910</span>
|
|
2795
|
+
910: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_s</span>
|
|
2796
|
+
911: <span class="ruby-comment cmt">#raise "STOP!"</span>
|
|
2797
|
+
912: <span class="ruby-identifier">str</span> = <span class="ruby-value str">''</span>
|
|
2798
|
+
913: <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>
|
|
2799
|
+
914: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">value</span>
|
|
2800
|
+
915: <span class="ruby-identifier">str</span> <span class="ruby-operator">+=</span> <span class="ruby-node">"#{attribute}: "</span> <span class="ruby-operator">+</span>
|
|
2801
|
+
916: <span class="ruby-node">"#{value.is_a?(PropertyTreeNode) ? value.fullId : value}"</span>
|
|
2802
|
+
917: <span class="ruby-keyword kw">end</span>
|
|
2803
|
+
918: <span class="ruby-keyword kw">end</span>
|
|
2804
|
+
919: <span class="ruby-identifier">str</span>
|
|
2805
|
+
920: <span class="ruby-keyword kw">end</span></pre>
|
|
2744
2806
|
</div>
|
|
2745
2807
|
|
|
2746
2808
|
</div>
|
|
@@ -2773,10 +2835,53 @@ Return the average number of working days per week.
|
|
|
2773
2835
|
<div class="method-source-code"
|
|
2774
2836
|
id="weekly-orking-ays-source">
|
|
2775
2837
|
<pre>
|
|
2776
|
-
<span class="ruby-comment cmt"># File lib/Project.rb, line
|
|
2777
|
-
|
|
2778
|
-
|
|
2779
|
-
|
|
2838
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 508</span>
|
|
2839
|
+
508: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">weeklyWorkingDays</span>
|
|
2840
|
+
509: <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>
|
|
2841
|
+
510: <span class="ruby-keyword kw">end</span></pre>
|
|
2842
|
+
</div>
|
|
2843
|
+
|
|
2844
|
+
</div>
|
|
2845
|
+
|
|
2846
|
+
|
|
2847
|
+
|
|
2848
|
+
|
|
2849
|
+
</div>
|
|
2850
|
+
|
|
2851
|
+
|
|
2852
|
+
<div id="working-ays-method" class="method-detail ">
|
|
2853
|
+
<a name="method-i-workingDays"></a>
|
|
2854
|
+
|
|
2855
|
+
<div class="method-heading">
|
|
2856
|
+
|
|
2857
|
+
<span class="method-name">workingDays</span><span
|
|
2858
|
+
class="method-args">(interval)</span>
|
|
2859
|
+
<span class="method-click-advice">click to toggle source</span>
|
|
2860
|
+
|
|
2861
|
+
</div>
|
|
2862
|
+
|
|
2863
|
+
<div class="method-description">
|
|
2864
|
+
|
|
2865
|
+
<p>
|
|
2866
|
+
Return the number of working days (ignoring global vacations) during the
|
|
2867
|
+
given <em>interval</em>.
|
|
2868
|
+
</p>
|
|
2869
|
+
|
|
2870
|
+
|
|
2871
|
+
|
|
2872
|
+
<div class="method-source-code"
|
|
2873
|
+
id="working-ays-source">
|
|
2874
|
+
<pre>
|
|
2875
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 866</span>
|
|
2876
|
+
866: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">workingDays</span>(<span class="ruby-identifier">interval</span>)
|
|
2877
|
+
867: <span class="ruby-identifier">startIdx</span> = <span class="ruby-identifier">dateToIdx</span>(<span class="ruby-identifier">interval</span>.<span class="ruby-identifier">start</span>, <span class="ruby-keyword kw">true</span>)
|
|
2878
|
+
868: <span class="ruby-identifier">endIdx</span> = <span class="ruby-identifier">dateToIdx</span>(<span class="ruby-identifier">interval</span>.<span class="ruby-identifier">end</span>, <span class="ruby-keyword kw">true</span>)
|
|
2879
|
+
869: <span class="ruby-identifier">slots</span> = <span class="ruby-value">0</span>
|
|
2880
|
+
870: <span class="ruby-identifier">startIdx</span>.<span class="ruby-identifier">upto</span>(<span class="ruby-identifier">endIdx</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">idx</span><span class="ruby-operator">|</span>
|
|
2881
|
+
871: <span class="ruby-identifier">slots</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@scoreboardNoVacations</span>[<span class="ruby-identifier">idx</span>]
|
|
2882
|
+
872: <span class="ruby-keyword kw">end</span>
|
|
2883
|
+
873: <span class="ruby-identifier">slotsToDays</span>(<span class="ruby-identifier">slots</span>)
|
|
2884
|
+
874: <span class="ruby-keyword kw">end</span></pre>
|
|
2780
2885
|
</div>
|
|
2781
2886
|
|
|
2782
2887
|
</div>
|
|
@@ -2809,10 +2914,10 @@ Return the average number of working days per year.
|
|
|
2809
2914
|
<div class="method-source-code"
|
|
2810
2915
|
id="yearly-orking-ays-source">
|
|
2811
2916
|
<pre>
|
|
2812
|
-
<span class="ruby-comment cmt"># File lib/Project.rb, line
|
|
2813
|
-
|
|
2814
|
-
|
|
2815
|
-
|
|
2917
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 518</span>
|
|
2918
|
+
518: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">yearlyWorkingDays</span>
|
|
2919
|
+
519: <span class="ruby-ivar">@attributes</span>[<span class="ruby-value str">'yearlyworkingdays'</span>].<span class="ruby-identifier">to_f</span>
|
|
2920
|
+
520: <span class="ruby-keyword kw">end</span></pre>
|
|
2816
2921
|
</div>
|
|
2817
2922
|
|
|
2818
2923
|
</div>
|
|
@@ -2849,34 +2954,34 @@ Return the average number of working days per year.
|
|
|
2849
2954
|
<div class="method-source-code"
|
|
2850
2955
|
id="finish-cenario-source">
|
|
2851
2956
|
<pre>
|
|
2852
|
-
|
|
2853
|
-
|
|
2854
|
-
|
|
2855
|
-
|
|
2856
|
-
|
|
2857
|
-
|
|
2858
|
-
|
|
2859
|
-
|
|
2860
|
-
|
|
2861
|
-
|
|
2862
|
-
|
|
2863
|
-
|
|
2864
|
-
|
|
2865
|
-
|
|
2866
|
-
|
|
2867
|
-
|
|
2868
|
-
|
|
2869
|
-
|
|
2870
|
-
|
|
2871
|
-
|
|
2872
|
-
|
|
2873
|
-
|
|
2874
|
-
|
|
2875
|
-
|
|
2876
|
-
|
|
2877
|
-
|
|
2878
|
-
|
|
2879
|
-
|
|
2957
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 996</span>
|
|
2958
|
+
996: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">finishScenario</span>(<span class="ruby-identifier">scIdx</span>)
|
|
2959
|
+
997: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">startProgressMeter</span>(<span class="ruby-node">"Checking scenario #{scenario(scIdx).get('name')}"</span>)
|
|
2960
|
+
998: <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>
|
|
2961
|
+
999: <span class="ruby-comment cmt"># Recursively traverse the top-level tasks to finish all tasks.</span>
|
|
2962
|
+
1000: <span class="ruby-identifier">task</span>.<span class="ruby-identifier">finishScheduling</span>(<span class="ruby-identifier">scIdx</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">task</span>.<span class="ruby-identifier">parent</span>
|
|
2963
|
+
1001: <span class="ruby-keyword kw">end</span>
|
|
2964
|
+
1002:
|
|
2965
|
+
1003: <span class="ruby-ivar">@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>
|
|
2966
|
+
1004: <span class="ruby-comment cmt"># Recursively traverse the top-level resources to finish them all.</span>
|
|
2967
|
+
1005: <span class="ruby-identifier">resource</span>.<span class="ruby-identifier">finishScheduling</span>(<span class="ruby-identifier">scIdx</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">resource</span>.<span class="ruby-identifier">parent</span>
|
|
2968
|
+
1006: <span class="ruby-keyword kw">end</span>
|
|
2969
|
+
1007:
|
|
2970
|
+
1008: <span class="ruby-identifier">i</span> = <span class="ruby-value">0</span>
|
|
2971
|
+
1009: <span class="ruby-identifier">total</span> = <span class="ruby-ivar">@tasks</span>.<span class="ruby-identifier">items</span>
|
|
2972
|
+
1010: <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>
|
|
2973
|
+
1011: <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>
|
|
2974
|
+
1012: <span class="ruby-identifier">i</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
|
|
2975
|
+
1013: <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>)
|
|
2976
|
+
1014: <span class="ruby-keyword kw">end</span>
|
|
2977
|
+
1015:
|
|
2978
|
+
1016: <span class="ruby-comment cmt"># This should be really fast so we don't log progess.</span>
|
|
2979
|
+
1017: <span class="ruby-ivar">@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>
|
|
2980
|
+
1018: <span class="ruby-identifier">resource</span>.<span class="ruby-identifier">postScheduleCheck</span>(<span class="ruby-identifier">scIdx</span>)
|
|
2981
|
+
1019: <span class="ruby-keyword kw">end</span>
|
|
2982
|
+
1020:
|
|
2983
|
+
1021: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">stopProgressMeter</span>
|
|
2984
|
+
1022: <span class="ruby-keyword kw">end</span></pre>
|
|
2880
2985
|
</div>
|
|
2881
2986
|
|
|
2882
2987
|
</div>
|
|
@@ -2907,73 +3012,73 @@ Return the average number of working days per year.
|
|
|
2907
3012
|
<div class="method-source-code"
|
|
2908
3013
|
id="prepare-cenario-source">
|
|
2909
3014
|
<pre>
|
|
2910
|
-
<span class="ruby-comment cmt"># File lib/Project.rb, line
|
|
2911
|
-
|
|
2912
|
-
|
|
2913
|
-
|
|
2914
|
-
|
|
2915
|
-
|
|
2916
|
-
|
|
2917
|
-
|
|
2918
|
-
|
|
2919
|
-
|
|
2920
|
-
|
|
2921
|
-
|
|
2922
|
-
|
|
2923
|
-
|
|
2924
|
-
|
|
2925
|
-
|
|
2926
|
-
|
|
2927
|
-
|
|
2928
|
-
|
|
2929
|
-
|
|
2930
|
-
|
|
2931
|
-
|
|
2932
|
-
|
|
2933
|
-
|
|
2934
|
-
|
|
2935
|
-
|
|
2936
|
-
|
|
2937
|
-
|
|
2938
|
-
|
|
2939
|
-
|
|
2940
|
-
|
|
2941
|
-
|
|
2942
|
-
|
|
2943
|
-
|
|
2944
|
-
|
|
2945
|
-
|
|
2946
|
-
|
|
2947
|
-
|
|
2948
|
-
|
|
2949
|
-
|
|
2950
|
-
|
|
2951
|
-
|
|
2952
|
-
|
|
2953
|
-
|
|
2954
|
-
|
|
2955
|
-
|
|
2956
|
-
|
|
2957
|
-
|
|
2958
|
-
|
|
2959
|
-
|
|
2960
|
-
|
|
2961
|
-
|
|
2962
|
-
|
|
2963
|
-
|
|
2964
|
-
|
|
2965
|
-
|
|
2966
|
-
|
|
2967
|
-
|
|
2968
|
-
|
|
2969
|
-
|
|
2970
|
-
|
|
2971
|
-
|
|
2972
|
-
|
|
2973
|
-
|
|
2974
|
-
|
|
2975
|
-
|
|
2976
|
-
|
|
3015
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 929</span>
|
|
3016
|
+
929: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">prepareScenario</span>(<span class="ruby-identifier">scIdx</span>)
|
|
3017
|
+
930: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">startProgressMeter</span>(<span class="ruby-value str">"Preparing scenario "</span> <span class="ruby-operator">+</span>
|
|
3018
|
+
931: <span class="ruby-node">"#{scenario(scIdx).get('name')}"</span>)
|
|
3019
|
+
932: <span class="ruby-identifier">resources</span> = <span class="ruby-constant">PropertyList</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@resources</span>)
|
|
3020
|
+
933: <span class="ruby-identifier">tasks</span> = <span class="ruby-constant">PropertyList</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@tasks</span>)
|
|
3021
|
+
934:
|
|
3022
|
+
935: <span class="ruby-comment cmt"># Compile a list of leaf resources that are actually used in this</span>
|
|
3023
|
+
936: <span class="ruby-comment cmt"># project.</span>
|
|
3024
|
+
937: <span class="ruby-identifier">usedResources</span> = []
|
|
3025
|
+
938: <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>
|
|
3026
|
+
939: <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>
|
|
3027
|
+
940: <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>)
|
|
3028
|
+
941: <span class="ruby-keyword kw">end</span>
|
|
3029
|
+
942: <span class="ruby-keyword kw">end</span>
|
|
3030
|
+
943: <span class="ruby-identifier">total</span> = <span class="ruby-identifier">usedResources</span>.<span class="ruby-identifier">length</span>
|
|
3031
|
+
944: <span class="ruby-identifier">i</span> = <span class="ruby-value">0</span>
|
|
3032
|
+
945: <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>
|
|
3033
|
+
946: <span class="ruby-identifier">resource</span>.<span class="ruby-identifier">prepareScheduling</span>(<span class="ruby-identifier">scIdx</span>)
|
|
3034
|
+
947: <span class="ruby-identifier">resource</span>.<span class="ruby-identifier">preScheduleCheck</span>(<span class="ruby-identifier">scIdx</span>)
|
|
3035
|
+
948: <span class="ruby-identifier">i</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
|
|
3036
|
+
949: <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-value">0.8</span>)
|
|
3037
|
+
950: <span class="ruby-keyword kw">end</span>
|
|
3038
|
+
951:
|
|
3039
|
+
952: <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">setDirectReports</span>(<span class="ruby-identifier">scIdx</span>) }
|
|
3040
|
+
953: <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">setReports</span>(<span class="ruby-identifier">scIdx</span>) }
|
|
3041
|
+
954:
|
|
3042
|
+
955: <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>) }
|
|
3043
|
+
956: <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>) }
|
|
3044
|
+
957: <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>) }
|
|
3045
|
+
958: <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>) }
|
|
3046
|
+
959:
|
|
3047
|
+
960: <span class="ruby-comment cmt"># Check for dependency loops in the task graph.</span>
|
|
3048
|
+
961: <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>) }
|
|
3049
|
+
962: <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>
|
|
3050
|
+
963: <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">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>
|
|
3051
|
+
964: <span class="ruby-keyword kw">end</span>
|
|
3052
|
+
965: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">progress</span>(<span class="ruby-value">0.85</span>)
|
|
3053
|
+
966: <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>) }
|
|
3054
|
+
967: <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>
|
|
3055
|
+
968: <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">false</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>
|
|
3056
|
+
969: <span class="ruby-keyword kw">end</span>
|
|
3057
|
+
970: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">progress</span>(<span class="ruby-value">0.87</span>)
|
|
3058
|
+
971:
|
|
3059
|
+
972: <span class="ruby-comment cmt"># Compute the criticalness of the tasks and their pathes.</span>
|
|
3060
|
+
973: <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>) }
|
|
3061
|
+
974: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">progress</span>(<span class="ruby-value">0.88</span>)
|
|
3062
|
+
975: <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>) }
|
|
3063
|
+
976: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">progress</span>(<span class="ruby-value">0.9</span>)
|
|
3064
|
+
977: <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>) }
|
|
3065
|
+
978: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">progress</span>(<span class="ruby-value">0.95</span>)
|
|
3066
|
+
979: <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>) }
|
|
3067
|
+
980: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">progress</span>(<span class="ruby-value">0.99</span>)
|
|
3068
|
+
981: <span class="ruby-ivar">@timeSheets</span>.<span class="ruby-identifier">check</span>
|
|
3069
|
+
982: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">progress</span>(<span class="ruby-value">1.0</span>)
|
|
3070
|
+
983:
|
|
3071
|
+
984: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">stopProgressMeter</span>
|
|
3072
|
+
985: <span class="ruby-comment cmt"># This is used for debugging only</span>
|
|
3073
|
+
986: <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">false</span>
|
|
3074
|
+
987: <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>
|
|
3075
|
+
988: <span class="ruby-identifier">puts</span> <span class="ruby-node">"#{resource}"</span>
|
|
3076
|
+
989: <span class="ruby-keyword kw">end</span>
|
|
3077
|
+
990: <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>
|
|
3078
|
+
991: <span class="ruby-identifier">puts</span> <span class="ruby-node">"#{task}"</span>
|
|
3079
|
+
992: <span class="ruby-keyword kw">end</span>
|
|
3080
|
+
993: <span class="ruby-keyword kw">end</span>
|
|
3081
|
+
994: <span class="ruby-keyword kw">end</span></pre>
|
|
2977
3082
|
</div>
|
|
2978
3083
|
|
|
2979
3084
|
</div>
|
|
@@ -3007,85 +3112,85 @@ index <tt>scIdx</tt>.
|
|
|
3007
3112
|
<div class="method-source-code"
|
|
3008
3113
|
id="schedule-cenario-source">
|
|
3009
3114
|
<pre>
|
|
3010
|
-
<span class="ruby-comment cmt"># File lib/Project.rb, line
|
|
3011
|
-
|
|
3012
|
-
|
|
3013
|
-
|
|
3014
|
-
995:
|
|
3015
|
-
996: <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>)
|
|
3016
|
-
997: <span class="ruby-comment cmt"># The sorting of the work item list determines which tasks will get their</span>
|
|
3017
|
-
998: <span class="ruby-comment cmt"># resources first. The first sorting criterium is the user specified task</span>
|
|
3018
|
-
999: <span class="ruby-comment cmt"># priority. The second criterium is the scheduler determined priority</span>
|
|
3019
|
-
1000: <span class="ruby-comment cmt"># stored in the pathcriticalness attribute. That way, the user can always</span>
|
|
3020
|
-
1001: <span class="ruby-comment cmt"># override the scheduler determined priority. To always have a defined</span>
|
|
3021
|
-
1002: <span class="ruby-comment cmt"># order, the third criterium is the sequence number.</span>
|
|
3022
|
-
1003: <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> ],
|
|
3023
|
-
1004: [ <span class="ruby-value str">'pathcriticalness'</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-identifier">scIdx</span> ],
|
|
3024
|
-
1005: [ <span class="ruby-value str">'seqno'</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-value">1</span> ] ])
|
|
3025
|
-
1006: <span class="ruby-identifier">tasks</span>.<span class="ruby-identifier">sort!</span>
|
|
3026
|
-
1007: <span class="ruby-identifier">totalTasks</span> = <span class="ruby-identifier">tasks</span>.<span class="ruby-identifier">length</span>
|
|
3027
|
-
1008:
|
|
3028
|
-
1009: <span class="ruby-comment cmt"># Enter the main scheduling loop. This loop is only terminated when all</span>
|
|
3029
|
-
1010: <span class="ruby-comment cmt"># tasks have been scheduled or another thread has set the breakFlag to</span>
|
|
3030
|
-
1011: <span class="ruby-comment cmt"># true.</span>
|
|
3031
|
-
1012: <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>
|
|
3032
|
-
1013: <span class="ruby-node">"#{scenario(scIdx).get('name')}"</span>)
|
|
3033
|
-
1014: <span class="ruby-identifier">loop</span> <span class="ruby-keyword kw">do</span>
|
|
3034
|
-
1015: <span class="ruby-comment cmt"># The main scheduler loop only needs to look at the first task that is</span>
|
|
3035
|
-
1016: <span class="ruby-comment cmt"># ready to be scheduled.</span>
|
|
3036
|
-
1017: <span class="ruby-identifier">workItems</span> = <span class="ruby-identifier">tasks</span>.<span class="ruby-identifier">to_ary</span>
|
|
3037
|
-
1018:
|
|
3038
|
-
1019: <span class="ruby-comment cmt"># Count the already completed tasks.</span>
|
|
3039
|
-
1020: <span class="ruby-identifier">completedTasks</span> = <span class="ruby-value">0</span>
|
|
3040
|
-
1021: <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>
|
|
3041
|
-
1022: <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>]
|
|
3042
|
-
1023: <span class="ruby-keyword kw">end</span>
|
|
3043
|
-
1024:
|
|
3044
|
-
1025: <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>)
|
|
3045
|
-
1026: <span class="ruby-comment cmt"># Remove all tasks that are not ready for scheduling yet.</span>
|
|
3046
|
-
1027: <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>) }
|
|
3115
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 1025</span>
|
|
3116
|
+
1025: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">scheduleScenario</span>(<span class="ruby-identifier">scIdx</span>)
|
|
3117
|
+
1026: <span class="ruby-identifier">tasks</span> = <span class="ruby-constant">PropertyList</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@tasks</span>)
|
|
3118
|
+
1027: <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> }
|
|
3047
3119
|
1028:
|
|
3048
|
-
1029:
|
|
3049
|
-
1030:
|
|
3050
|
-
1031:
|
|
3051
|
-
1032:
|
|
3052
|
-
1033:
|
|
3053
|
-
1034:
|
|
3054
|
-
1035:
|
|
3055
|
-
1036:
|
|
3056
|
-
1037:
|
|
3057
|
-
1038:
|
|
3058
|
-
1039:
|
|
3059
|
-
1040: <span class="ruby-
|
|
3060
|
-
1041:
|
|
3061
|
-
1042: <span class="ruby-
|
|
3062
|
-
1043:
|
|
3063
|
-
1044: <span class="ruby-comment cmt">#
|
|
3064
|
-
1045: <span class="ruby-
|
|
3065
|
-
1046:
|
|
3066
|
-
1047:
|
|
3067
|
-
1048:
|
|
3068
|
-
1049:
|
|
3069
|
-
1050: <span class="ruby-identifier">
|
|
3070
|
-
1051:
|
|
3071
|
-
1052:
|
|
3072
|
-
1053:
|
|
3073
|
-
1054:
|
|
3074
|
-
1055:
|
|
3075
|
-
1056:
|
|
3076
|
-
1057:
|
|
3077
|
-
1058:
|
|
3078
|
-
1059:
|
|
3079
|
-
1060:
|
|
3080
|
-
1061:
|
|
3081
|
-
1062: <span class="ruby-
|
|
3082
|
-
1063: <span class="ruby-keyword kw">
|
|
3083
|
-
1064:
|
|
3084
|
-
1065:
|
|
3085
|
-
1066:
|
|
3086
|
-
1067:
|
|
3087
|
-
1068:
|
|
3088
|
-
1069:
|
|
3120
|
+
1029: <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>)
|
|
3121
|
+
1030: <span class="ruby-comment cmt"># The sorting of the work item list determines which tasks will get their</span>
|
|
3122
|
+
1031: <span class="ruby-comment cmt"># resources first. The first sorting criterium is the user specified task</span>
|
|
3123
|
+
1032: <span class="ruby-comment cmt"># priority. The second criterium is the scheduler determined priority</span>
|
|
3124
|
+
1033: <span class="ruby-comment cmt"># stored in the pathcriticalness attribute. That way, the user can always</span>
|
|
3125
|
+
1034: <span class="ruby-comment cmt"># override the scheduler determined priority. To always have a defined</span>
|
|
3126
|
+
1035: <span class="ruby-comment cmt"># order, the third criterium is the sequence number.</span>
|
|
3127
|
+
1036: <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> ],
|
|
3128
|
+
1037: [ <span class="ruby-value str">'pathcriticalness'</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-identifier">scIdx</span> ],
|
|
3129
|
+
1038: [ <span class="ruby-value str">'seqno'</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-value">1</span> ] ])
|
|
3130
|
+
1039: <span class="ruby-identifier">tasks</span>.<span class="ruby-identifier">sort!</span>
|
|
3131
|
+
1040: <span class="ruby-identifier">totalTasks</span> = <span class="ruby-identifier">tasks</span>.<span class="ruby-identifier">length</span>
|
|
3132
|
+
1041:
|
|
3133
|
+
1042: <span class="ruby-comment cmt"># Enter the main scheduling loop. This loop is only terminated when all</span>
|
|
3134
|
+
1043: <span class="ruby-comment cmt"># tasks have been scheduled or another thread has set the breakFlag to</span>
|
|
3135
|
+
1044: <span class="ruby-comment cmt"># true.</span>
|
|
3136
|
+
1045: <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>
|
|
3137
|
+
1046: <span class="ruby-node">"#{scenario(scIdx).get('name')}"</span>)
|
|
3138
|
+
1047: <span class="ruby-identifier">loop</span> <span class="ruby-keyword kw">do</span>
|
|
3139
|
+
1048: <span class="ruby-comment cmt"># The main scheduler loop only needs to look at the first task that is</span>
|
|
3140
|
+
1049: <span class="ruby-comment cmt"># ready to be scheduled.</span>
|
|
3141
|
+
1050: <span class="ruby-identifier">workItems</span> = <span class="ruby-identifier">tasks</span>.<span class="ruby-identifier">to_ary</span>
|
|
3142
|
+
1051:
|
|
3143
|
+
1052: <span class="ruby-comment cmt"># Count the already completed tasks.</span>
|
|
3144
|
+
1053: <span class="ruby-identifier">completedTasks</span> = <span class="ruby-value">0</span>
|
|
3145
|
+
1054: <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>
|
|
3146
|
+
1055: <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>]
|
|
3147
|
+
1056: <span class="ruby-keyword kw">end</span>
|
|
3148
|
+
1057:
|
|
3149
|
+
1058: <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>)
|
|
3150
|
+
1059: <span class="ruby-comment cmt"># Remove all tasks that are not ready for scheduling yet.</span>
|
|
3151
|
+
1060: <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>) }
|
|
3152
|
+
1061:
|
|
3153
|
+
1062: <span class="ruby-comment cmt"># Check if we are done.</span>
|
|
3154
|
+
1063: <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>
|
|
3155
|
+
1064:
|
|
3156
|
+
1065: <span class="ruby-comment cmt"># The first task in the list is the one with the highes priority and</span>
|
|
3157
|
+
1066: <span class="ruby-comment cmt"># the largest path criticalness that is ready to be scheduled.</span>
|
|
3158
|
+
1067: <span class="ruby-identifier">task</span> = <span class="ruby-identifier">workItems</span>[<span class="ruby-value">0</span>]
|
|
3159
|
+
1068: <span class="ruby-comment cmt"># Schedule it.</span>
|
|
3160
|
+
1069: <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>)
|
|
3161
|
+
1070: <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>
|
|
3162
|
+
1071: <span class="ruby-node">"#{task['end', scIdx]}"</span>
|
|
3163
|
+
1072: <span class="ruby-keyword kw">end</span>
|
|
3164
|
+
1073: <span class="ruby-keyword kw">end</span>
|
|
3165
|
+
1074: <span class="ruby-identifier">unscheduledTasks</span> = []
|
|
3166
|
+
1075: <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>] }
|
|
3167
|
+
1076:
|
|
3168
|
+
1077: <span class="ruby-comment cmt"># Check for unscheduled tasks and report the first 10 of them as</span>
|
|
3169
|
+
1078: <span class="ruby-comment cmt"># warnings.</span>
|
|
3170
|
+
1079: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">unscheduledTasks</span>.<span class="ruby-identifier">empty?</span>
|
|
3171
|
+
1080: <span class="ruby-ivar">@messageHandler</span>.<span class="ruby-identifier">warning</span>(
|
|
3172
|
+
1081: <span class="ruby-value str">'unscheduled_tasks'</span>,
|
|
3173
|
+
1082: <span class="ruby-node">"#{unscheduledTasks.length} tasks could not be scheduled"</span>)
|
|
3174
|
+
1083: <span class="ruby-identifier">i</span> = <span class="ruby-value">0</span>
|
|
3175
|
+
1084: <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>
|
|
3176
|
+
1085: <span class="ruby-ivar">@messageHandler</span>.<span class="ruby-identifier">warning</span>(
|
|
3177
|
+
1086: <span class="ruby-value str">'unscheduled_task'</span>,
|
|
3178
|
+
1087: <span class="ruby-node">"Task #{t.fullId}: "</span> <span class="ruby-operator">+</span>
|
|
3179
|
+
1088: <span class="ruby-node">"#{t['start', scIdx] ? t['start', scIdx] : '<?>'} -> "</span> <span class="ruby-operator">+</span>
|
|
3180
|
+
1089: <span class="ruby-node">"#{t['end', scIdx] ? t['end', scIdx] : '<?>'}"</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">t</span>,
|
|
3181
|
+
1090: <span class="ruby-identifier">scenario</span>(<span class="ruby-identifier">scIdx</span>))
|
|
3182
|
+
1091:
|
|
3183
|
+
1092: <span class="ruby-identifier">i</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
|
|
3184
|
+
1093: <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>
|
|
3185
|
+
1094: <span class="ruby-keyword kw">end</span>
|
|
3186
|
+
1095: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">stopProgressMeter</span>
|
|
3187
|
+
1096: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
|
|
3188
|
+
1097: <span class="ruby-keyword kw">end</span>
|
|
3189
|
+
1098:
|
|
3190
|
+
1099: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">stopProgressMeter</span>
|
|
3191
|
+
1100: <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>)
|
|
3192
|
+
1101: <span class="ruby-keyword kw">true</span>
|
|
3193
|
+
1102: <span class="ruby-keyword kw">end</span></pre>
|
|
3089
3194
|
</div>
|
|
3090
3195
|
|
|
3091
3196
|
</div>
|
|
@@ -3102,6 +3207,70 @@ index <tt>scIdx</tt>.
|
|
|
3102
3207
|
<h3 class="section-header">Private Instance Methods</h3>
|
|
3103
3208
|
|
|
3104
3209
|
|
|
3210
|
+
<div id="init-coreboards-method" class="method-detail ">
|
|
3211
|
+
<a name="method-i-initScoreboards"></a>
|
|
3212
|
+
|
|
3213
|
+
<div class="method-heading">
|
|
3214
|
+
|
|
3215
|
+
<span class="method-name">initScoreboards</span><span
|
|
3216
|
+
class="method-args">()</span>
|
|
3217
|
+
<span class="method-click-advice">click to toggle source</span>
|
|
3218
|
+
|
|
3219
|
+
</div>
|
|
3220
|
+
|
|
3221
|
+
<div class="method-description">
|
|
3222
|
+
|
|
3223
|
+
|
|
3224
|
+
|
|
3225
|
+
|
|
3226
|
+
|
|
3227
|
+
<div class="method-source-code"
|
|
3228
|
+
id="init-coreboards-source">
|
|
3229
|
+
<pre>
|
|
3230
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 1106</span>
|
|
3231
|
+
1106: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initScoreboards</span>
|
|
3232
|
+
1107: <span class="ruby-comment cmt"># Create scoreboard and mark all slots as unavailable</span>
|
|
3233
|
+
1108: <span class="ruby-ivar">@scoreboard</span> = <span class="ruby-constant">Scoreboard</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@attributes</span>[<span class="ruby-value str">'start'</span>], <span class="ruby-ivar">@attributes</span>[<span class="ruby-value str">'end'</span>],
|
|
3234
|
+
1109: <span class="ruby-ivar">@attributes</span>[<span class="ruby-value str">'scheduleGranularity'</span>], <span class="ruby-value">2</span>)
|
|
3235
|
+
1110: <span class="ruby-comment cmt"># And the same for another scoreboard.</span>
|
|
3236
|
+
1111: <span class="ruby-ivar">@scoreboardNoVacations</span> =
|
|
3237
|
+
1112: <span class="ruby-constant">Scoreboard</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@attributes</span>[<span class="ruby-value str">'start'</span>], <span class="ruby-ivar">@attributes</span>[<span class="ruby-value str">'end'</span>],
|
|
3238
|
+
1113: <span class="ruby-ivar">@attributes</span>[<span class="ruby-value str">'scheduleGranularity'</span>], <span class="ruby-value">2</span>)
|
|
3239
|
+
1114:
|
|
3240
|
+
1115: <span class="ruby-identifier">workinghours</span> = <span class="ruby-ivar">@attributes</span>[<span class="ruby-value str">'workinghours'</span>]
|
|
3241
|
+
1116:
|
|
3242
|
+
1117: <span class="ruby-comment cmt"># Change all work time slots to nil (available) again.</span>
|
|
3243
|
+
1118: <span class="ruby-identifier">date</span> = <span class="ruby-ivar">@scoreboard</span>.<span class="ruby-identifier">idxToDate</span>(<span class="ruby-value">0</span>)
|
|
3244
|
+
1119: <span class="ruby-identifier">delta</span> = <span class="ruby-ivar">@attributes</span>[<span class="ruby-value str">'scheduleGranularity'</span>]
|
|
3245
|
+
1120: <span class="ruby-identifier">scoreboardSize</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
|
|
3246
|
+
1121: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">workinghours</span>.<span class="ruby-identifier">onShift?</span>(<span class="ruby-identifier">date</span>)
|
|
3247
|
+
1122: <span class="ruby-ivar">@scoreboard</span>[<span class="ruby-identifier">i</span>] = <span class="ruby-keyword kw">nil</span>
|
|
3248
|
+
1123: <span class="ruby-ivar">@scoreboardNoVacations</span>[<span class="ruby-identifier">i</span>] = <span class="ruby-keyword kw">nil</span>
|
|
3249
|
+
1124: <span class="ruby-keyword kw">end</span>
|
|
3250
|
+
1125: <span class="ruby-identifier">date</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">delta</span>
|
|
3251
|
+
1126: <span class="ruby-keyword kw">end</span>
|
|
3252
|
+
1127:
|
|
3253
|
+
1128: <span class="ruby-comment cmt"># Mark all global vacation slots as such</span>
|
|
3254
|
+
1129: <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>
|
|
3255
|
+
1130: <span class="ruby-identifier">startIdx</span> = <span class="ruby-ivar">@scoreboard</span>.<span class="ruby-identifier">dateToIdx</span>(<span class="ruby-identifier">vacation</span>.<span class="ruby-identifier">start</span>, <span class="ruby-keyword kw">true</span>)
|
|
3256
|
+
1131: <span class="ruby-identifier">endIdx</span> = <span class="ruby-ivar">@scoreboard</span>.<span class="ruby-identifier">dateToIdx</span>(<span class="ruby-identifier">vacation</span>.<span class="ruby-identifier">end</span>, <span class="ruby-keyword kw">true</span>)
|
|
3257
|
+
1132: <span class="ruby-identifier">startIdx</span>.<span class="ruby-identifier">upto</span>(<span class="ruby-identifier">endIdx</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
|
|
3258
|
+
1133: <span class="ruby-comment cmt"># If the slot is nil or set to 4 then don't set the time-off bit.</span>
|
|
3259
|
+
1134: <span class="ruby-identifier">sb</span> = <span class="ruby-ivar">@scoreboard</span>[<span class="ruby-identifier">i</span>]
|
|
3260
|
+
1135: <span class="ruby-ivar">@scoreboard</span>[<span class="ruby-identifier">i</span>] = ((<span class="ruby-identifier">sb</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">sb</span> <span class="ruby-operator">==</span> <span class="ruby-value">4</span>) <span class="ruby-operator">?</span> <span class="ruby-value">0</span> <span class="ruby-operator">:</span> <span class="ruby-value">2</span>) <span class="ruby-operator">|</span> (<span class="ruby-value">1</span> <span class="ruby-operator"><<</span> <span class="ruby-value">2</span>)
|
|
3261
|
+
1136: <span class="ruby-keyword kw">end</span>
|
|
3262
|
+
1137: <span class="ruby-keyword kw">end</span>
|
|
3263
|
+
1138: <span class="ruby-keyword kw">end</span></pre>
|
|
3264
|
+
</div>
|
|
3265
|
+
|
|
3266
|
+
</div>
|
|
3267
|
+
|
|
3268
|
+
|
|
3269
|
+
|
|
3270
|
+
|
|
3271
|
+
</div>
|
|
3272
|
+
|
|
3273
|
+
|
|
3105
3274
|
<div id="matching-eports-method" class="method-detail ">
|
|
3106
3275
|
<a name="method-i-matchingReports"></a>
|
|
3107
3276
|
|
|
@@ -3122,15 +3291,15 @@ index <tt>scIdx</tt>.
|
|
|
3122
3291
|
<div class="method-source-code"
|
|
3123
3292
|
id="matching-eports-source">
|
|
3124
3293
|
<pre>
|
|
3125
|
-
<span class="ruby-comment cmt"># File lib/Project.rb, line
|
|
3126
|
-
|
|
3127
|
-
|
|
3128
|
-
|
|
3129
|
-
|
|
3130
|
-
|
|
3131
|
-
|
|
3132
|
-
|
|
3133
|
-
|
|
3294
|
+
<span class="ruby-comment cmt"># File lib/Project.rb, line 1140</span>
|
|
3295
|
+
1140: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">matchingReports</span>(<span class="ruby-identifier">reportId</span>)
|
|
3296
|
+
1141: <span class="ruby-identifier">list</span> = []
|
|
3297
|
+
1142: <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>
|
|
3298
|
+
1143: <span class="ruby-identifier">id</span> = <span class="ruby-identifier">report</span>.<span class="ruby-identifier">fullId</span>
|
|
3299
|
+
1144: <span class="ruby-identifier">list</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">id</span> <span class="ruby-keyword kw">if</span> <span class="ruby-constant">Regexp</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">reportId</span>) <span class="ruby-operator">=~</span> <span class="ruby-identifier">id</span>
|
|
3300
|
+
1145: <span class="ruby-keyword kw">end</span>
|
|
3301
|
+
1146: <span class="ruby-identifier">list</span>
|
|
3302
|
+
1147: <span class="ruby-keyword kw">end</span></pre>
|
|
3134
3303
|
</div>
|
|
3135
3304
|
|
|
3136
3305
|
</div>
|