taskjuggler 0.1.1 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG +37 -5
- data/README.rdoc +4 -2
- data/benchmarks/UTF-8-Strings.rb +58 -0
- data/benchmarks/css/tjmanual.css +0 -1
- data/benchmarks/htmltaskreport-1.html +47702 -0
- data/benchmarks/htmltaskreport-2.html +23345 -0
- data/benchmarks/htmltaskreport-3.html +23265 -0
- data/benchmarks/htmltaskreport-4.html +22135 -0
- data/benchmarks/profile.clt +36082 -0
- data/benchmarks/tj3.profile +0 -0
- data/benchmarks/tj3.profile.grind +6185 -0
- data/benchmarks/tj3.profile.symbols +432 -0
- data/benchmarks/tj3.profile.txt +448 -0
- data/data/tjp.vim +689 -0
- data/doc/AppConfig.html +26 -2
- data/doc/CHANGELOG.html +60 -8
- data/doc/COPYING.html +26 -2
- data/doc/Diff/Hunk.html +26 -2
- data/doc/Diff.html +26 -2
- data/doc/Diffable.html +26 -2
- data/doc/DiffableString.html +26 -2
- data/doc/Object.html +26 -104
- data/doc/README_rdoc.html +39 -7
- data/doc/RuntimeConfig.html +26 -2
- data/doc/String.html +26 -2
- data/doc/TaskJuggler/Account.html +27 -3
- data/doc/TaskJuggler/AccountAttribute.html +30 -6
- data/doc/TaskJuggler/AccountScenario.html +28 -4
- data/doc/TaskJuggler/Allocation.html +33 -9
- data/doc/TaskJuggler/AllocationAttribute.html +31 -7
- data/doc/TaskJuggler/AttributeBase.html +162 -111
- data/doc/TaskJuggler/AttributeDefinition.html +26 -2
- data/doc/TaskJuggler/AttributeOverwrite.html +26 -2
- data/doc/TaskJuggler/BatchProcessor.html +26 -2
- data/doc/TaskJuggler/Booking.html +29 -5
- data/doc/TaskJuggler/BookingListAttribute.html +29 -5
- data/doc/TaskJuggler/BooleanAttribute.html +30 -6
- data/doc/TaskJuggler/CSVFile.html +26 -2
- data/doc/TaskJuggler/CellSettingPattern.html +26 -2
- data/doc/TaskJuggler/CellSettingPatternList.html +26 -2
- data/doc/TaskJuggler/Charge.html +30 -6
- data/doc/TaskJuggler/ChargeListAttribute.html +29 -5
- data/doc/TaskJuggler/ChargeSet.html +26 -2
- data/doc/TaskJuggler/ChargeSetListAttribute.html +30 -6
- data/doc/TaskJuggler/CollisionDetector.html +26 -2
- data/doc/TaskJuggler/ColumnListAttribute.html +28 -4
- data/doc/TaskJuggler/ColumnTable.html +26 -2
- data/doc/TaskJuggler/Daemon.html +26 -2
- data/doc/TaskJuggler/DataCache.html +26 -2
- data/doc/TaskJuggler/DataCacheEntry.html +26 -2
- data/doc/TaskJuggler/DateAttribute.html +30 -6
- data/doc/TaskJuggler/DefinitionListAttribute.html +28 -4
- data/doc/TaskJuggler/DependencyListAttribute.html +30 -6
- data/doc/TaskJuggler/DurationAttribute.html +31 -7
- data/doc/TaskJuggler/FileList.html +26 -2
- data/doc/TaskJuggler/FileRecord.html +26 -2
- data/doc/TaskJuggler/FixnumAttribute.html +28 -4
- data/doc/TaskJuggler/FlagListAttribute.html +30 -6
- data/doc/TaskJuggler/FloatAttribute.html +29 -5
- data/doc/TaskJuggler/FormatListAttribute.html +29 -5
- data/doc/TaskJuggler/GanttChart.html +26 -2
- data/doc/TaskJuggler/GanttContainer.html +26 -2
- data/doc/TaskJuggler/GanttHeader.html +26 -2
- data/doc/TaskJuggler/GanttHeaderScaleItem.html +26 -2
- data/doc/TaskJuggler/GanttLine.html +27 -3
- data/doc/TaskJuggler/GanttLoadStack.html +26 -2
- data/doc/TaskJuggler/GanttMilestone.html +26 -2
- data/doc/TaskJuggler/GanttRouter.html +26 -2
- data/doc/TaskJuggler/GanttTaskBar.html +26 -2
- data/doc/TaskJuggler/HTMLDocument.html +26 -2
- data/doc/TaskJuggler/HTMLElements.html +623 -0
- data/doc/TaskJuggler/HTMLGraphics.html +26 -2
- data/doc/TaskJuggler/ICalReport.html +864 -0
- data/doc/TaskJuggler/ICalendar/Component.html +969 -0
- data/doc/TaskJuggler/ICalendar/Event.html +742 -0
- data/doc/TaskJuggler/ICalendar/Journal.html +722 -0
- data/doc/TaskJuggler/ICalendar/Person.html +633 -0
- data/doc/TaskJuggler/ICalendar/Todo.html +789 -0
- data/doc/TaskJuggler/ICalendar.html +1035 -0
- data/doc/TaskJuggler/Interval.html +99 -172
- data/doc/TaskJuggler/IntervalList.html +31 -7
- data/doc/TaskJuggler/JobInfo.html +26 -2
- data/doc/TaskJuggler/Journal.html +26 -2
- data/doc/TaskJuggler/JournalEntry.html +26 -2
- data/doc/TaskJuggler/JournalEntryList.html +26 -2
- data/doc/TaskJuggler/KeywordArray.html +26 -2
- data/doc/TaskJuggler/KeywordDocumentation.html +26 -2
- data/doc/TaskJuggler/Limits/Limit.html +124 -49
- data/doc/TaskJuggler/Limits.html +139 -156
- data/doc/TaskJuggler/LimitsAttribute.html +39 -14
- data/doc/TaskJuggler/ListAttributeBase.html +35 -11
- data/doc/TaskJuggler/Log.html +26 -2
- data/doc/TaskJuggler/LogFile.html +26 -2
- data/doc/TaskJuggler/LogicalAttribute.html +26 -2
- data/doc/TaskJuggler/LogicalExpression.html +26 -2
- data/doc/TaskJuggler/LogicalExpressionAttribute.html +35 -11
- data/doc/TaskJuggler/LogicalExpressionListAttribute.html +35 -11
- data/doc/TaskJuggler/LogicalFlag.html +26 -2
- data/doc/TaskJuggler/LogicalFunction.html +28 -4
- data/doc/TaskJuggler/LogicalOperation.html +26 -2
- data/doc/TaskJuggler/ManagerResponsibilities.html +26 -2
- data/doc/TaskJuggler/ManagerStatusRecord.html +26 -2
- data/doc/TaskJuggler/Message.html +26 -2
- data/doc/TaskJuggler/MessageHandler.html +108 -62
- data/doc/TaskJuggler/Navigator.html +26 -2
- data/doc/TaskJuggler/NavigatorElement.html +26 -2
- data/doc/TaskJuggler/NikuProject.html +26 -2
- data/doc/TaskJuggler/NikuReport.html +27 -3
- data/doc/TaskJuggler/NikuResource.html +26 -2
- data/doc/TaskJuggler/NodeListAttribute.html +31 -7
- data/doc/TaskJuggler/PlaceHolderCell.html +26 -2
- data/doc/TaskJuggler/ProcessIntercom.html +26 -2
- data/doc/TaskJuggler/ProcessIntercomIface.html +26 -2
- data/doc/TaskJuggler/Project.html +1236 -973
- data/doc/TaskJuggler/ProjectBroker.html +26 -2
- data/doc/TaskJuggler/ProjectBrokerIface.html +26 -2
- data/doc/TaskJuggler/ProjectFileParser.html +29 -4
- data/doc/TaskJuggler/ProjectFileScanner.html +56 -31
- data/doc/TaskJuggler/ProjectRecord.html +26 -2
- data/doc/TaskJuggler/ProjectServer.html +26 -2
- data/doc/TaskJuggler/ProjectServerIface.html +26 -2
- data/doc/TaskJuggler/PropertyAttribute.html +35 -11
- data/doc/TaskJuggler/PropertyList.html +26 -2
- data/doc/TaskJuggler/PropertySet.html +126 -106
- data/doc/TaskJuggler/PropertyTreeNode.html +595 -551
- data/doc/TaskJuggler/Query.html +127 -100
- data/doc/TaskJuggler/RTFHandlers.html +26 -2
- data/doc/TaskJuggler/RTFNavigator.html +26 -2
- data/doc/TaskJuggler/RTFQuery.html +28 -4
- data/doc/TaskJuggler/RTFReport.html +26 -2
- data/doc/TaskJuggler/RTFReportLink.html +26 -2
- data/doc/TaskJuggler/RTFWithQuerySupport.html +26 -2
- data/doc/TaskJuggler/RealFormat.html +26 -2
- data/doc/TaskJuggler/RealFormatAttribute.html +31 -7
- data/doc/TaskJuggler/ReferenceAttribute.html +58 -34
- data/doc/TaskJuggler/Report.html +427 -284
- data/doc/TaskJuggler/ReportBase.html +28 -102
- data/doc/TaskJuggler/ReportContext.html +26 -2
- data/doc/TaskJuggler/ReportScenario.html +633 -0
- data/doc/TaskJuggler/ReportServer.html +26 -2
- data/doc/TaskJuggler/ReportServerIface.html +26 -2
- data/doc/TaskJuggler/ReportServerRecord.html +26 -2
- data/doc/TaskJuggler/ReportServlet.html +26 -2
- data/doc/TaskJuggler/ReportTable.html +26 -2
- data/doc/TaskJuggler/ReportTableCell.html +26 -2
- data/doc/TaskJuggler/ReportTableColumn.html +26 -2
- data/doc/TaskJuggler/ReportTableLegend.html +26 -2
- data/doc/TaskJuggler/ReportTableLine.html +26 -2
- data/doc/TaskJuggler/Resource.html +225 -163
- data/doc/TaskJuggler/ResourceListAttribute.html +71 -47
- data/doc/TaskJuggler/ResourceListRE.html +26 -2
- data/doc/TaskJuggler/ResourceScenario.html +645 -603
- data/doc/TaskJuggler/RichText.html +26 -2
- data/doc/TaskJuggler/RichTextAttribute.html +53 -29
- data/doc/TaskJuggler/RichTextDocument.html +26 -2
- data/doc/TaskJuggler/RichTextElement.html +26 -2
- data/doc/TaskJuggler/RichTextFunctionExample.html +26 -2
- data/doc/TaskJuggler/RichTextFunctionHandler.html +26 -2
- data/doc/TaskJuggler/RichTextImage.html +26 -2
- data/doc/TaskJuggler/RichTextIntermediate.html +29 -5
- data/doc/TaskJuggler/RichTextParser.html +26 -2
- data/doc/TaskJuggler/RichTextScanner.html +26 -2
- data/doc/TaskJuggler/RichTextSnip.html +26 -2
- data/doc/TaskJuggler/RichTextSyntaxRules.html +26 -2
- data/doc/TaskJuggler/Scenario.html +26 -2
- data/doc/TaskJuggler/ScenarioData.html +95 -28
- data/doc/TaskJuggler/ScenarioListAttribute.html +39 -15
- data/doc/TaskJuggler/Scoreboard.html +137 -73
- data/doc/TaskJuggler/ScoreboardInterval.html +1116 -0
- data/doc/TaskJuggler/SheetHandlerBase.html +26 -2
- data/doc/TaskJuggler/SheetReceiver.html +26 -2
- data/doc/TaskJuggler/SheetSender.html +26 -2
- data/doc/TaskJuggler/Shift.html +27 -3
- data/doc/TaskJuggler/ShiftAssignment.html +27 -3
- data/doc/TaskJuggler/ShiftAssignments.html +174 -149
- data/doc/TaskJuggler/ShiftAssignmentsAttribute.html +41 -16
- data/doc/TaskJuggler/ShiftScenario.html +26 -2
- data/doc/TaskJuggler/SimpleQueryExpander.html +26 -2
- data/doc/TaskJuggler/SortListAttribute.html +35 -11
- data/doc/TaskJuggler/StatusSheetReceiver.html +26 -2
- data/doc/TaskJuggler/StatusSheetReport.html +26 -2
- data/doc/TaskJuggler/StatusSheetSender.html +26 -2
- data/doc/TaskJuggler/StdIoWrapper.html +26 -2
- data/doc/TaskJuggler/StringAttribute.html +39 -15
- data/doc/TaskJuggler/SymbolAttribute.html +35 -11
- data/doc/TaskJuggler/SyntaxReference.html +26 -2
- data/doc/TaskJuggler/TOCEntry.html +26 -2
- data/doc/TaskJuggler/TSResourceRecord.html +26 -2
- data/doc/TaskJuggler/TSTaskRecord.html +26 -2
- data/doc/TaskJuggler/TableColumnDefinition.html +26 -2
- data/doc/TaskJuggler/TableOfContents.html +26 -2
- data/doc/TaskJuggler/TableReport.html +239 -214
- data/doc/TaskJuggler/TagFile/TagFileEntry.html +841 -0
- data/doc/TaskJuggler/TagFile.html +817 -0
- data/doc/TaskJuggler/Task.html +27 -3
- data/doc/TaskJuggler/TaskDepListAttribute.html +47 -23
- data/doc/TaskJuggler/TaskDependency.html +26 -2
- data/doc/TaskJuggler/TaskListAttribute.html +47 -23
- data/doc/TaskJuggler/TaskListRE.html +26 -2
- data/doc/TaskJuggler/TaskScenario.html +2235 -2178
- data/doc/TaskJuggler/TernarySearchTree.html +26 -2
- data/doc/TaskJuggler/TextFormatter.html +26 -2
- data/doc/TaskJuggler/TextParser/Macro.html +26 -2
- data/doc/TaskJuggler/TextParser/MacroTable.html +26 -2
- data/doc/TaskJuggler/TextParser/Pattern.html +26 -2
- data/doc/TaskJuggler/TextParser/Rule.html +26 -2
- data/doc/TaskJuggler/TextParser/Scanner/BufferStreamHandle.html +32 -8
- data/doc/TaskJuggler/TextParser/Scanner/FileStreamHandle.html +39 -15
- data/doc/TaskJuggler/TextParser/Scanner/MacroStackEntry.html +26 -2
- data/doc/TaskJuggler/TextParser/Scanner/StreamHandle.html +119 -86
- data/doc/TaskJuggler/TextParser/Scanner.html +317 -291
- data/doc/TaskJuggler/TextParser/SourceFileInfo.html +26 -2
- data/doc/TaskJuggler/TextParser/StackElement.html +26 -2
- data/doc/TaskJuggler/TextParser/State.html +26 -2
- data/doc/TaskJuggler/TextParser/StateTransition.html +26 -2
- data/doc/TaskJuggler/TextParser/TextParserResultArray.html +26 -2
- data/doc/TaskJuggler/TextParser/TokenDoc.html +26 -2
- data/doc/TaskJuggler/TextParser.html +85 -61
- data/doc/TaskJuggler/TextReport.html +26 -2
- data/doc/TaskJuggler/TimeInterval.html +841 -0
- data/doc/TaskJuggler/{IntervalListAttribute.html → TimeIntervalListAttribute.html} +33 -9
- data/doc/TaskJuggler/TimeSheet.html +26 -2
- data/doc/TaskJuggler/TimeSheetReceiver.html +26 -2
- data/doc/TaskJuggler/TimeSheetRecord.html +27 -3
- data/doc/TaskJuggler/TimeSheetReport.html +29 -5
- data/doc/TaskJuggler/TimeSheetSender.html +26 -2
- data/doc/TaskJuggler/TimeSheetSummary.html +26 -2
- data/doc/TaskJuggler/TimeSheets.html +26 -2
- data/doc/TaskJuggler/Tj3.html +150 -111
- data/doc/TaskJuggler/Tj3AppBase.html +26 -2
- data/doc/TaskJuggler/Tj3Client.html +26 -2
- data/doc/TaskJuggler/Tj3Daemon.html +26 -2
- data/doc/TaskJuggler/Tj3Man.html +26 -2
- data/doc/TaskJuggler/Tj3SheetAppBase.html +26 -2
- data/doc/TaskJuggler/Tj3SsReceiver.html +26 -2
- data/doc/TaskJuggler/Tj3SsSender.html +26 -2
- data/doc/TaskJuggler/Tj3TsReceiver.html +26 -2
- data/doc/TaskJuggler/Tj3TsSender.html +26 -2
- data/doc/TaskJuggler/Tj3TsSummary.html +26 -2
- data/doc/TaskJuggler/TjException.html +26 -2
- data/doc/TaskJuggler/TjRuntimeError.html +26 -2
- data/doc/TaskJuggler/TjTime.html +539 -477
- data/doc/TaskJuggler/TjpExample.html +26 -2
- data/doc/TaskJuggler/TjpExportRE.html +240 -161
- data/doc/TaskJuggler/TjpSyntaxRules.html +4236 -3844
- data/doc/TaskJuggler/URLParameter.html +26 -2
- data/doc/TaskJuggler/UserManual.html +26 -2
- data/doc/TaskJuggler/VimSyntax.html +31 -7
- data/doc/TaskJuggler/WebServer.html +26 -2
- data/doc/TaskJuggler/WelcomePage.html +26 -2
- data/doc/TaskJuggler/WorkingHours.html +227 -152
- data/doc/TaskJuggler/WorkingHoursAttribute.html +62 -38
- data/doc/TaskJuggler/XMLBlob.html +26 -2
- data/doc/TaskJuggler/XMLComment.html +26 -2
- data/doc/TaskJuggler/XMLDocument.html +26 -2
- data/doc/TaskJuggler/XMLElement.html +26 -2
- data/doc/TaskJuggler/XMLNamedText.html +26 -2
- data/doc/TaskJuggler/XMLText.html +26 -2
- data/doc/TaskJuggler.html +486 -427
- data/doc/index.html +801 -659
- data/doc/lib/taskjuggler/AccountScenario_rb.html +1 -1
- data/doc/lib/taskjuggler/Account_rb.html +1 -1
- data/doc/lib/taskjuggler/AlgorithmDiff_rb.html +1 -1
- data/doc/lib/taskjuggler/Allocation_rb.html +1 -1
- data/doc/lib/taskjuggler/AppConfig_rb.html +1 -1
- data/doc/lib/taskjuggler/AttributeBase_rb.html +1 -1
- data/doc/lib/taskjuggler/AttributeDefinition_rb.html +1 -1
- data/doc/lib/taskjuggler/Attributes_rb.html +1 -1
- data/doc/lib/taskjuggler/BatchProcessor_rb.html +1 -1
- data/doc/lib/taskjuggler/Booking_rb.html +1 -1
- data/doc/lib/taskjuggler/ChargeSet_rb.html +1 -1
- data/doc/lib/taskjuggler/Charge_rb.html +1 -1
- data/doc/lib/taskjuggler/DataCache_rb.html +1 -1
- data/doc/lib/taskjuggler/FileList_rb.html +1 -1
- data/doc/lib/taskjuggler/HTMLDocument_rb.html +1 -1
- data/doc/lib/{ruby-signal-bug_rb.html → taskjuggler/HTMLElements_rb.html} +9 -9
- data/doc/lib/{exchangebug_rb.html → taskjuggler/ICalendar_rb.html} +9 -9
- data/doc/lib/taskjuggler/IntervalList_rb.html +1 -1
- data/doc/lib/taskjuggler/Interval_rb.html +1 -1
- data/doc/lib/taskjuggler/Journal_rb.html +1 -1
- data/doc/lib/taskjuggler/KeywordArray_rb.html +1 -1
- data/doc/lib/taskjuggler/KeywordDocumentation_rb.html +1 -1
- data/doc/lib/taskjuggler/Limits_rb.html +1 -1
- data/doc/lib/taskjuggler/LogFile_rb.html +1 -1
- data/doc/lib/taskjuggler/Log_rb.html +1 -1
- data/doc/lib/taskjuggler/LogicalExpression_rb.html +1 -1
- data/doc/lib/taskjuggler/LogicalFunction_rb.html +1 -1
- data/doc/lib/taskjuggler/LogicalOperation_rb.html +1 -1
- data/doc/lib/taskjuggler/MessageHandler_rb.html +1 -1
- data/doc/lib/taskjuggler/ProjectFileParser_rb.html +1 -1
- data/doc/lib/taskjuggler/ProjectFileScanner_rb.html +1 -1
- data/doc/lib/taskjuggler/Project_rb.html +1 -1
- data/doc/lib/taskjuggler/PropertyList_rb.html +1 -1
- data/doc/lib/taskjuggler/PropertySet_rb.html +1 -1
- data/doc/lib/taskjuggler/PropertyTreeNode_rb.html +1 -1
- data/doc/lib/taskjuggler/Query_rb.html +1 -1
- data/doc/lib/taskjuggler/RealFormat_rb.html +1 -1
- data/doc/lib/taskjuggler/ResourceScenario_rb.html +1 -1
- data/doc/lib/taskjuggler/Resource_rb.html +1 -1
- data/doc/lib/taskjuggler/RichText/Document_rb.html +1 -1
- data/doc/lib/taskjuggler/RichText/Element_rb.html +1 -1
- data/doc/lib/taskjuggler/RichText/FunctionExample_rb.html +1 -1
- data/doc/lib/taskjuggler/RichText/FunctionHandler_rb.html +1 -1
- data/doc/lib/taskjuggler/RichText/Parser_rb.html +1 -1
- data/doc/lib/taskjuggler/RichText/RTFHandlers_rb.html +1 -1
- data/doc/lib/taskjuggler/RichText/RTFNavigator_rb.html +1 -1
- data/doc/lib/taskjuggler/RichText/RTFQuery_rb.html +1 -1
- data/doc/lib/taskjuggler/RichText/RTFReportLink_rb.html +1 -1
- data/doc/lib/taskjuggler/RichText/RTFReport_rb.html +1 -1
- data/doc/lib/taskjuggler/RichText/RTFWithQuerySupport_rb.html +1 -1
- data/doc/lib/taskjuggler/RichText/Scanner_rb.html +1 -1
- data/doc/lib/taskjuggler/RichText/Snip_rb.html +1 -1
- data/doc/lib/taskjuggler/RichText/SyntaxRules_rb.html +1 -1
- data/doc/lib/taskjuggler/RichText/TOCEntry_rb.html +1 -1
- data/doc/lib/taskjuggler/RichText/TableOfContents_rb.html +1 -1
- data/doc/lib/taskjuggler/RichText_rb.html +1 -1
- data/doc/lib/taskjuggler/RuntimeConfig_rb.html +1 -1
- data/doc/lib/taskjuggler/ScenarioData_rb.html +1 -1
- data/doc/lib/taskjuggler/Scenario_rb.html +1 -1
- data/doc/lib/taskjuggler/Scoreboard_rb.html +1 -1
- data/doc/lib/taskjuggler/SheetHandlerBase_rb.html +1 -1
- data/doc/lib/taskjuggler/SheetReceiver_rb.html +1 -1
- data/doc/lib/taskjuggler/SheetSender_rb.html +1 -1
- data/doc/lib/taskjuggler/ShiftAssignments_rb.html +1 -1
- data/doc/lib/taskjuggler/ShiftScenario_rb.html +1 -1
- data/doc/lib/taskjuggler/Shift_rb.html +1 -1
- data/doc/lib/taskjuggler/SimpleQueryExpander_rb.html +1 -1
- data/doc/lib/taskjuggler/StatusSheetReceiver_rb.html +1 -1
- data/doc/lib/taskjuggler/StatusSheetSender_rb.html +1 -1
- data/doc/lib/taskjuggler/StdIoWrapper_rb.html +1 -1
- data/doc/lib/taskjuggler/SyntaxReference_rb.html +1 -1
- data/doc/lib/taskjuggler/TableColumnDefinition_rb.html +1 -1
- data/doc/lib/taskjuggler/TaskDependency_rb.html +1 -1
- data/doc/lib/taskjuggler/TaskJuggler_rb.html +1 -1
- data/doc/lib/taskjuggler/TaskScenario_rb.html +1 -1
- data/doc/lib/taskjuggler/Task_rb.html +1 -1
- data/doc/lib/taskjuggler/TernarySearchTree_rb.html +1 -1
- data/doc/lib/taskjuggler/TextFormatter_rb.html +1 -1
- data/doc/lib/taskjuggler/TextParser/MacroTable_rb.html +1 -1
- data/doc/lib/taskjuggler/TextParser/Pattern_rb.html +1 -1
- data/doc/lib/taskjuggler/TextParser/Rule_rb.html +1 -1
- data/doc/lib/taskjuggler/TextParser/Scanner_rb.html +1 -1
- data/doc/lib/taskjuggler/TextParser/SourceFileInfo_rb.html +1 -1
- data/doc/lib/taskjuggler/TextParser/StackElement_rb.html +1 -1
- data/doc/lib/taskjuggler/TextParser/State_rb.html +1 -1
- data/doc/lib/taskjuggler/TextParser/TokenDoc_rb.html +1 -1
- data/doc/lib/taskjuggler/TextParser_rb.html +1 -1
- data/doc/lib/taskjuggler/TimeSheetReceiver_rb.html +1 -1
- data/doc/lib/taskjuggler/TimeSheetSender_rb.html +1 -1
- data/doc/lib/taskjuggler/TimeSheetSummary_rb.html +1 -1
- data/doc/lib/taskjuggler/TimeSheets_rb.html +1 -1
- data/doc/lib/taskjuggler/Tj3AppBase_rb.html +1 -1
- data/doc/lib/taskjuggler/Tj3Config_rb.html +1 -1
- data/doc/lib/taskjuggler/Tj3SheetAppBase_rb.html +1 -1
- data/doc/lib/taskjuggler/TjException_rb.html +1 -1
- data/doc/lib/taskjuggler/TjTime_rb.html +1 -1
- data/doc/lib/taskjuggler/TjpExample_rb.html +1 -1
- data/doc/lib/taskjuggler/TjpSyntaxRules_rb.html +1 -1
- data/doc/lib/taskjuggler/URLParameter_rb.html +1 -1
- data/doc/lib/taskjuggler/UTF8String_rb.html +1 -1
- data/doc/lib/taskjuggler/UserManual_rb.html +1 -1
- data/doc/lib/taskjuggler/VimSyntax_rb.html +1 -1
- data/doc/lib/taskjuggler/WorkingHours_rb.html +1 -1
- data/doc/lib/taskjuggler/XMLDocument_rb.html +1 -1
- data/doc/lib/taskjuggler/XMLElement_rb.html +1 -1
- data/doc/lib/taskjuggler/apps/Tj3Client_rb.html +1 -1
- data/doc/lib/taskjuggler/apps/Tj3Daemon_rb.html +1 -1
- data/doc/lib/taskjuggler/apps/Tj3Man_rb.html +1 -1
- data/doc/lib/taskjuggler/apps/Tj3SsReceiver_rb.html +1 -1
- data/doc/lib/taskjuggler/apps/Tj3SsSender_rb.html +1 -1
- data/doc/lib/taskjuggler/apps/Tj3TsReceiver_rb.html +1 -1
- data/doc/lib/taskjuggler/apps/Tj3TsSender_rb.html +1 -1
- data/doc/lib/taskjuggler/apps/Tj3TsSummary_rb.html +1 -1
- data/doc/lib/taskjuggler/apps/Tj3_rb.html +1 -1
- data/doc/lib/taskjuggler/daemon/Daemon_rb.html +1 -1
- data/doc/lib/taskjuggler/daemon/ProcessIntercom_rb.html +1 -1
- data/doc/lib/taskjuggler/daemon/ProjectBroker_rb.html +1 -1
- data/doc/lib/taskjuggler/daemon/ProjectServer_rb.html +1 -1
- data/doc/lib/taskjuggler/daemon/ReportServer_rb.html +1 -1
- data/doc/lib/taskjuggler/daemon/ReportServlet_rb.html +1 -1
- data/doc/lib/taskjuggler/daemon/WebServer_rb.html +1 -1
- data/doc/lib/taskjuggler/daemon/WelcomePage_rb.html +1 -1
- data/doc/lib/taskjuggler/deep_copy_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/CSVFile_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/CollisionDetector_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/ColumnTable_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/GanttChart_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/GanttContainer_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/GanttHeaderScaleItem_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/GanttHeader_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/GanttLine_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/GanttLoadStack_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/GanttMilestone_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/GanttRouter_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/GanttTaskBar_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/HTMLGraphics_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/ICalReport_rb.html +71 -0
- data/doc/lib/taskjuggler/reports/Navigator_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/NikuReport_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/ReportBase_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/ReportContext_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/ReportTableCell_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/ReportTableColumn_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/ReportTableLegend_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/ReportTableLine_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/ReportTable_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/Report_rb.html +5 -1
- data/doc/lib/taskjuggler/reports/ResourceListRE_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/StatusSheetReport_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/TableReport_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/TagFile_rb.html +71 -0
- data/doc/lib/taskjuggler/reports/TaskListRE_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/TextReport_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/TimeSheetReport_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/TjpExportRE_rb.html +1 -1
- data/doc/lib/tj3_rb.html +1 -1
- data/doc/lib/tj3client_rb.html +1 -1
- data/doc/lib/tj3d_rb.html +1 -1
- data/doc/lib/tj3man_rb.html +1 -1
- data/doc/lib/tj3ss_receiver_rb.html +1 -1
- data/doc/lib/tj3ss_sender_rb.html +1 -1
- data/doc/lib/tj3ts_receiver_rb.html +1 -1
- data/doc/lib/tj3ts_sender_rb.html +1 -1
- data/doc/lib/tj3ts_summary_rb.html +1 -1
- data/lib/taskjuggler/Account.rb +1 -1
- data/lib/taskjuggler/AccountScenario.rb +1 -1
- data/lib/taskjuggler/Allocation.rb +5 -5
- data/lib/taskjuggler/AttributeBase.rb +30 -22
- data/lib/taskjuggler/Attributes.rb +80 -78
- data/lib/taskjuggler/Booking.rb +2 -2
- data/lib/taskjuggler/Charge.rb +3 -3
- data/lib/taskjuggler/ICalendar.rb +251 -0
- data/lib/taskjuggler/Interval.rb +215 -53
- data/lib/taskjuggler/IntervalList.rb +5 -5
- data/lib/taskjuggler/Limits.rb +79 -69
- data/lib/taskjuggler/LogicalFunction.rb +2 -2
- data/lib/taskjuggler/MessageHandler.rb +11 -6
- data/lib/taskjuggler/Project.rb +208 -95
- data/lib/taskjuggler/ProjectFileParser.rb +2 -2
- data/lib/taskjuggler/ProjectFileScanner.rb +7 -6
- data/lib/taskjuggler/PropertySet.rb +1 -5
- data/lib/taskjuggler/PropertyTreeNode.rb +21 -16
- data/lib/taskjuggler/Query.rb +10 -7
- data/lib/taskjuggler/Resource.rb +6 -1
- data/lib/taskjuggler/ResourceScenario.rb +85 -69
- data/lib/taskjuggler/RichText/RTFQuery.rb +2 -2
- data/lib/taskjuggler/ScenarioData.rb +11 -1
- data/lib/taskjuggler/Scoreboard.rb +8 -1
- data/lib/taskjuggler/Shift.rb +1 -1
- data/lib/taskjuggler/ShiftAssignments.rb +22 -20
- data/lib/taskjuggler/Task.rb +1 -1
- data/lib/taskjuggler/TaskJuggler.rb +65 -51
- data/lib/taskjuggler/TaskScenario.rb +486 -419
- data/lib/taskjuggler/TextParser/Scanner.rb +22 -11
- data/lib/taskjuggler/TimeSheets.rb +1 -1
- data/lib/taskjuggler/Tj3Config.rb +1 -1
- data/lib/taskjuggler/TjTime.rb +7 -3
- data/lib/taskjuggler/TjpSyntaxRules.rb +157 -23
- data/lib/taskjuggler/VimSyntax.rb +18 -0
- data/lib/taskjuggler/WorkingHours.rb +20 -4
- data/lib/taskjuggler/apps/Tj3.rb +16 -1
- data/lib/taskjuggler/reports/GanttLine.rb +1 -1
- data/lib/taskjuggler/reports/ICalReport.rb +136 -0
- data/lib/taskjuggler/reports/NikuReport.rb +1 -1
- data/lib/taskjuggler/reports/Report.rb +59 -0
- data/lib/taskjuggler/reports/ReportBase.rb +2 -67
- data/lib/taskjuggler/reports/TableReport.rb +9 -8
- data/lib/taskjuggler/reports/TagFile.rb +120 -0
- data/lib/taskjuggler/reports/TimeSheetReport.rb +3 -3
- data/lib/taskjuggler/reports/TjpExportRE.rb +33 -9
- data/manual/Installation +126 -0
- data/spec/ICalendar_spec.rb +45 -0
- data/spec/IntervalList_spec.rb +11 -11
- data/tasks/changelog.rake +150 -60
- data/tasks/gem.rake +1 -0
- data/tasks/vim.rake +2 -2
- data/test/TestSuite/Export-Reports/refs/Booking.tjp +1 -1
- data/test/TestSuite/Export-Reports/refs/CompletedWork.tji.tjp +40 -0
- data/test/TestSuite/Export-Reports/refs/Macro-2.tjp +10 -1
- data/test/TestSuite/Export-Reports/refs/TaskPrefix.tjp +1 -1
- data/test/TestSuite/HTML-Reports/Alerts.html +160 -412
- data/test/TestSuite/HTML-Reports/CellText.html +758 -0
- data/test/TestSuite/HTML-Reports/ColumnPeriods.html +156 -0
- data/test/TestSuite/HTML-Reports/IsOngoing.html +172 -0
- data/test/TestSuite/HTML-Reports/LogicalFunctions.html +245 -0
- data/test/TestSuite/HTML-Reports/Query.html +31 -0
- data/test/TestSuite/HTML-Reports/css/tjmanual.css +0 -20
- data/test/TestSuite/HTML-Reports/css/tjreport.css +6 -7
- data/test/TestSuite/HTML-Reports/depArrows.html +851 -0
- data/test/TestSuite/HTML-Reports/profile.html +37581 -0
- data/test/TestSuite/{Scheduler/Correct → HTML-Reports/scripts}/scripts/wz_tooltip.js +20 -20
- data/test/TestSuite/Scheduler/Correct/Booking.tjp +3 -3
- data/test/TestSuite/Scheduler/Correct/Duration.tjp +3 -3
- data/test/TestSuite/Scheduler/Errors/R.html +113 -0
- data/test/TestSuite/Scheduler/Errors/allocate_no_assigned.tjp +15 -0
- data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/css/tjmanual.css +0 -1
- data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/css/tjreport.css +0 -0
- data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/details.png +0 -0
- data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/flag-green.png +0 -0
- data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/flag-red.png +0 -0
- data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/flag-yellow.png +0 -0
- data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/resource.png +0 -0
- data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/resourcegroup.png +0 -0
- data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/task.png +0 -0
- data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/taskgroup.png +0 -0
- data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/trend-down.png +0 -0
- data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/trend-flat.png +0 -0
- data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/trend-up.png +0 -0
- data/test/TestSuite/Scheduler/Errors/overbooked_duration.tjp +11 -0
- data/test/TestSuite/Scheduler/Errors/overbooked_effort.tjp +11 -0
- data/test/TestSuite/Scheduler/Errors/overbooked_length.tjp +13 -0
- data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/scripts/wz_tooltip.js +0 -0
- data/test/TestSuite/StatusSheets/dev2.tji +22 -0
- data/test/TestSuite/Syntax/Correct/CompletedWork.tji.tjp +38 -0
- data/test/TestSuite/Syntax/Correct/Macro-2.tjp +5 -2
- data/test/TestSuite/Syntax/Errors/scenario_after_tracking.tjp +8 -0
- data/test/TestSuite/TimeSheets/resrep.tji +7 -0
- data/test/TestSuite/TimeSheets/ts.tji +351 -0
- data/test/TestSuite/TimeSheets/tsdef.tji +2 -0
- data/test/test_Limits.rb +38 -30
- data/test/test_Scheduler.rb +2 -2
- data/test/test_ShiftAssignments.rb +8 -8
- data/test/test_WorkingHours.rb +4 -4
- metadata +1015 -1005
- data/lib/exchangebug.rb +0 -42
- data/lib/ruby-signal-bug.rb +0 -55
- data/test/TestSuite/Export-Reports/refs/DST.tjp +0 -60
- data/test/TestSuite/Export-Reports/refs/ReleasePlan.tjp +0 -80
- data/test/TestSuite/HTML-Reports/TimeSheet.html +0 -79
- data/test/TestSuite/HTML-Reports/reference.html +0 -51
- data/test/TestSuite/ReportGenerator/Correct/Alerts-1.csv +0 -412
- data/test/TestSuite/ReportGenerator/Correct/Alerts-1.html +0 -680
- data/test/TestSuite/ReportGenerator/Correct/DependencyList.csv +0 -4
- data/test/TestSuite/ReportGenerator/Correct/DependencyList.tjp +0 -25
- data/test/TestSuite/ReportGenerator/Correct/Journal-1.csv +0 -8
- data/test/TestSuite/ReportGenerator/Correct/Journal-2.csv +0 -8
- data/test/TestSuite/ReportGenerator/Correct/Journal-3.html +0 -28
- data/test/TestSuite/ReportGenerator/Correct/LogicalFunctions2.csv +0 -3
- data/test/TestSuite/ReportGenerator/Correct/opennodes-1.csv +0 -2
- data/test/TestSuite/ReportGenerator/Correct/opennodes.csv +0 -2
- data/test/TestSuite/ReportGenerator/Correct/opennodes.tjp +0 -26
- data/test/TestSuite/ReportGenerator/Correct/refs/opennodes-1.csv +0 -2
- data/test/TestSuite/Scheduler/' +0 -23
- data/test/TestSuite/Scheduler/Correct/css/tjmanual.css +0 -86
- data/test/TestSuite/Scheduler/Correct/css/tjreport.css +0 -413
- data/test/TestSuite/Scheduler/Correct/icons/details.png +0 -0
- data/test/TestSuite/Scheduler/Correct/icons/flag-green.png +0 -0
- data/test/TestSuite/Scheduler/Correct/icons/flag-red.png +0 -0
- data/test/TestSuite/Scheduler/Correct/icons/flag-yellow.png +0 -0
- data/test/TestSuite/Scheduler/Correct/icons/resource.png +0 -0
- data/test/TestSuite/Scheduler/Correct/icons/resourcegroup.png +0 -0
- data/test/TestSuite/Scheduler/Correct/icons/task.png +0 -0
- data/test/TestSuite/Scheduler/Correct/icons/taskgroup.png +0 -0
- data/test/TestSuite/Scheduler/Correct/icons/trend-down.png +0 -0
- data/test/TestSuite/Scheduler/Correct/icons/trend-flat.png +0 -0
- data/test/TestSuite/Scheduler/Correct/icons/trend-up.png +0 -0
- data/test/TestSuite/StatusSheetTemplates/project.tji +0 -35
- data/test/TestSuite/StatusSheetTemplates/project.tjp +0 -56
- data/test/TestSuite/StatusSheets/TimeSheets/2002-03-01/resource1_2002-03-01.tji +0 -0
- data/test/TestSuite/Syntax/Correct/DST.tjp +0 -11
- data/test/TestSuite/Syntax/Correct/ReleasePlan.tjp +0 -32
- data/test/TestSuite/TimeSheets/receiver.log.mod +0 -1056
- data/test/TestSuite/TimeSheets/uu.txt +0 -29
|
@@ -87,6 +87,8 @@
|
|
|
87
87
|
|
|
88
88
|
<li><a href="#method-i-alertLevelName">#alertLevelName</a></li>
|
|
89
89
|
|
|
90
|
+
<li><a href="#method-i-anyResourceAvailable%3F">#anyResourceAvailable?</a></li>
|
|
91
|
+
|
|
90
92
|
<li><a href="#method-i-attributeName">#attributeName</a></li>
|
|
91
93
|
|
|
92
94
|
<li><a href="#method-i-checkReports">#checkReports</a></li>
|
|
@@ -95,6 +97,8 @@
|
|
|
95
97
|
|
|
96
98
|
<li><a href="#method-i-collectTimeOffIntervals">#collectTimeOffIntervals</a></li>
|
|
97
99
|
|
|
100
|
+
<li><a href="#method-i-computeResourceAvailabilities">#computeResourceAvailabilities</a></li>
|
|
101
|
+
|
|
98
102
|
<li><a href="#method-i-convertToDailyLoad">#convertToDailyLoad</a></li>
|
|
99
103
|
|
|
100
104
|
<li><a href="#method-i-dailyWorkingHours">#dailyWorkingHours</a></li>
|
|
@@ -111,6 +115,8 @@
|
|
|
111
115
|
|
|
112
116
|
<li><a href="#method-i-generateReports">#generateReports</a></li>
|
|
113
117
|
|
|
118
|
+
<li><a href="#method-i-hasWorkingTime">#hasWorkingTime</a></li>
|
|
119
|
+
|
|
114
120
|
<li><a href="#method-i-idxToDate">#idxToDate</a></li>
|
|
115
121
|
|
|
116
122
|
<li><a href="#method-i-initScoreboards">#initScoreboards</a></li>
|
|
@@ -155,6 +161,8 @@
|
|
|
155
161
|
|
|
156
162
|
<li><a href="#method-i-to_s">#to_s</a></li>
|
|
157
163
|
|
|
164
|
+
<li><a href="#method-i-warning">#warning</a></li>
|
|
165
|
+
|
|
158
166
|
<li><a href="#method-i-weeklyWorkingDays">#weeklyWorkingDays</a></li>
|
|
159
167
|
|
|
160
168
|
<li><a href="#method-i-workingDays">#workingDays</a></li>
|
|
@@ -297,12 +305,24 @@
|
|
|
297
305
|
|
|
298
306
|
<li><a href="../TaskJuggler/HTMLGraphics.html">TaskJuggler::HTMLGraphics</a></li>
|
|
299
307
|
|
|
308
|
+
<li><a href="../TaskJuggler/ICalReport.html">TaskJuggler::ICalReport</a></li>
|
|
309
|
+
|
|
310
|
+
<li><a href="../TaskJuggler/ICalendar.html">TaskJuggler::ICalendar</a></li>
|
|
311
|
+
|
|
312
|
+
<li><a href="../TaskJuggler/ICalendar/Component.html">TaskJuggler::ICalendar::Component</a></li>
|
|
313
|
+
|
|
314
|
+
<li><a href="../TaskJuggler/ICalendar/Event.html">TaskJuggler::ICalendar::Event</a></li>
|
|
315
|
+
|
|
316
|
+
<li><a href="../TaskJuggler/ICalendar/Journal.html">TaskJuggler::ICalendar::Journal</a></li>
|
|
317
|
+
|
|
318
|
+
<li><a href="../TaskJuggler/ICalendar/Person.html">TaskJuggler::ICalendar::Person</a></li>
|
|
319
|
+
|
|
320
|
+
<li><a href="../TaskJuggler/ICalendar/Todo.html">TaskJuggler::ICalendar::Todo</a></li>
|
|
321
|
+
|
|
300
322
|
<li><a href="../TaskJuggler/Interval.html">TaskJuggler::Interval</a></li>
|
|
301
323
|
|
|
302
324
|
<li><a href="../TaskJuggler/IntervalList.html">TaskJuggler::IntervalList</a></li>
|
|
303
325
|
|
|
304
|
-
<li><a href="../TaskJuggler/IntervalListAttribute.html">TaskJuggler::IntervalListAttribute</a></li>
|
|
305
|
-
|
|
306
326
|
<li><a href="../TaskJuggler/JobInfo.html">TaskJuggler::JobInfo</a></li>
|
|
307
327
|
|
|
308
328
|
<li><a href="../TaskJuggler/Journal.html">TaskJuggler::Journal</a></li>
|
|
@@ -417,6 +437,8 @@
|
|
|
417
437
|
|
|
418
438
|
<li><a href="../TaskJuggler/ReportContext.html">TaskJuggler::ReportContext</a></li>
|
|
419
439
|
|
|
440
|
+
<li><a href="../TaskJuggler/ReportScenario.html">TaskJuggler::ReportScenario</a></li>
|
|
441
|
+
|
|
420
442
|
<li><a href="../TaskJuggler/ReportServer.html">TaskJuggler::ReportServer</a></li>
|
|
421
443
|
|
|
422
444
|
<li><a href="../TaskJuggler/ReportServerIface.html">TaskJuggler::ReportServerIface</a></li>
|
|
@@ -475,6 +497,8 @@
|
|
|
475
497
|
|
|
476
498
|
<li><a href="../TaskJuggler/Scoreboard.html">TaskJuggler::Scoreboard</a></li>
|
|
477
499
|
|
|
500
|
+
<li><a href="../TaskJuggler/ScoreboardInterval.html">TaskJuggler::ScoreboardInterval</a></li>
|
|
501
|
+
|
|
478
502
|
<li><a href="../TaskJuggler/SheetHandlerBase.html">TaskJuggler::SheetHandlerBase</a></li>
|
|
479
503
|
|
|
480
504
|
<li><a href="../TaskJuggler/SheetReceiver.html">TaskJuggler::SheetReceiver</a></li>
|
|
@@ -521,6 +545,10 @@
|
|
|
521
545
|
|
|
522
546
|
<li><a href="../TaskJuggler/TableReport.html">TaskJuggler::TableReport</a></li>
|
|
523
547
|
|
|
548
|
+
<li><a href="../TaskJuggler/TagFile.html">TaskJuggler::TagFile</a></li>
|
|
549
|
+
|
|
550
|
+
<li><a href="../TaskJuggler/TagFile/TagFileEntry.html">TaskJuggler::TagFile::TagFileEntry</a></li>
|
|
551
|
+
|
|
524
552
|
<li><a href="../TaskJuggler/Task.html">TaskJuggler::Task</a></li>
|
|
525
553
|
|
|
526
554
|
<li><a href="../TaskJuggler/TaskDepListAttribute.html">TaskJuggler::TaskDepListAttribute</a></li>
|
|
@@ -571,6 +599,10 @@
|
|
|
571
599
|
|
|
572
600
|
<li><a href="../TaskJuggler/TextReport.html">TaskJuggler::TextReport</a></li>
|
|
573
601
|
|
|
602
|
+
<li><a href="../TaskJuggler/TimeInterval.html">TaskJuggler::TimeInterval</a></li>
|
|
603
|
+
|
|
604
|
+
<li><a href="../TaskJuggler/TimeIntervalListAttribute.html">TaskJuggler::TimeIntervalListAttribute</a></li>
|
|
605
|
+
|
|
574
606
|
<li><a href="../TaskJuggler/TimeSheet.html">TaskJuggler::TimeSheet</a></li>
|
|
575
607
|
|
|
576
608
|
<li><a href="../TaskJuggler/TimeSheetReceiver.html">TaskJuggler::TimeSheetReceiver</a></li>
|
|
@@ -923,24 +955,24 @@ granularity is reduced.
|
|
|
923
955
|
<div class="method-source-code"
|
|
924
956
|
id="max-chedule-ranularity-source">
|
|
925
957
|
<pre>
|
|
926
|
-
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
958
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line 962</span>
|
|
959
|
+
962: <span class="ruby-keyword kw">def</span> <span class="ruby-constant">Project</span>.<span class="ruby-identifier">maxScheduleGranularity</span>
|
|
960
|
+
963: <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>)
|
|
961
|
+
964: <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>)
|
|
962
|
+
965: <span class="ruby-keyword kw">when</span> <span class="ruby-value">0</span>
|
|
963
|
+
966: <span class="ruby-comment cmt"># We are hour-aligned to UTC; scheduleGranularity is 1 hour</span>
|
|
964
|
+
967: <span class="ruby-value">60</span> * <span class="ruby-value">60</span>
|
|
965
|
+
968: <span class="ruby-keyword kw">when</span> <span class="ruby-value">30</span>
|
|
966
|
+
969: <span class="ruby-comment cmt"># We are half-hour off from UTC; scheduleGranularity is 30 minutes</span>
|
|
967
|
+
970: <span class="ruby-value">30</span> * <span class="ruby-value">60</span>
|
|
968
|
+
971: <span class="ruby-keyword kw">when</span> <span class="ruby-value">15</span>, <span class="ruby-value">45</span>
|
|
969
|
+
972: <span class="ruby-comment cmt"># We are 15 or 45 minutes off from UTC; scheduleGranularity is 15</span>
|
|
970
|
+
973: <span class="ruby-comment cmt"># minutes</span>
|
|
971
|
+
974: <span class="ruby-value">15</span> * <span class="ruby-value">60</span>
|
|
972
|
+
975: <span class="ruby-keyword kw">else</span>
|
|
973
|
+
976: <span class="ruby-identifier">raise</span> <span class="ruby-node">"Unknown Time zone alignment #{min}"</span>
|
|
974
|
+
977: <span class="ruby-keyword kw">end</span>
|
|
975
|
+
978: <span class="ruby-keyword kw">end</span></pre>
|
|
944
976
|
</div>
|
|
945
977
|
|
|
946
978
|
</div>
|
|
@@ -1037,307 +1069,339 @@ The constructor will set default values for all project attributes.
|
|
|
1037
1069
|
117: <span class="ruby-comment cmt"># Inh. Inh.Prj Scen. Default</span>
|
|
1038
1070
|
118: [ <span class="ruby-value str">'active'</span>, <span class="ruby-value str">'Enabled'</span>, <span class="ruby-constant">BooleanAttribute</span>,
|
|
1039
1071
|
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> ],
|
|
1040
|
-
120: [ <span class="ruby-value str">'
|
|
1041
|
-
121: <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">
|
|
1042
|
-
122: [ <span class="ruby-value str">'
|
|
1043
|
-
123: <span class="ruby-keyword kw">
|
|
1044
|
-
124:
|
|
1045
|
-
125:
|
|
1046
|
-
126:
|
|
1047
|
-
127:
|
|
1048
|
-
128:
|
|
1049
|
-
129:
|
|
1050
|
-
130:
|
|
1051
|
-
131:
|
|
1052
|
-
132:
|
|
1053
|
-
133:
|
|
1054
|
-
134:
|
|
1055
|
-
135:
|
|
1056
|
-
136:
|
|
1057
|
-
137: [ <span class="ruby-value str">'
|
|
1072
|
+
120: [ <span class="ruby-value str">'id'</span>, <span class="ruby-value str">'ID'</span>, <span class="ruby-constant">StringAttribute</span>,
|
|
1073
|
+
121: <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> ],
|
|
1074
|
+
122: [ <span class="ruby-value str">'name'</span>, <span class="ruby-value str">'Name'</span>, <span class="ruby-constant">StringAttribute</span>,
|
|
1075
|
+
123: <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> ],
|
|
1076
|
+
124: [ <span class="ruby-value str">'ownbookings'</span>, <span class="ruby-value str">'Own Bookings'</span>, <span class="ruby-constant">BooleanAttribute</span>,
|
|
1077
|
+
125: <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">true</span> ],
|
|
1078
|
+
126: [ <span class="ruby-value str">'projection'</span>, <span class="ruby-value str">'Projection Mode'</span>, <span class="ruby-constant">BooleanAttribute</span>,
|
|
1079
|
+
127: <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> ],
|
|
1080
|
+
128: [ <span class="ruby-value str">'seqno'</span>, <span class="ruby-value str">'No'</span>, <span class="ruby-constant">FixnumAttribute</span>,
|
|
1081
|
+
129: <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> ],
|
|
1082
|
+
130: ]
|
|
1083
|
+
131: <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>)) }
|
|
1084
|
+
132:
|
|
1085
|
+
133: <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>)
|
|
1086
|
+
134: <span class="ruby-identifier">attrs</span> = [
|
|
1087
|
+
135: <span class="ruby-comment cmt"># ID Name Type</span>
|
|
1088
|
+
136: <span class="ruby-comment cmt"># Inh. Inh.Prj Scen. Default</span>
|
|
1089
|
+
137: [ <span class="ruby-value str">'bsi'</span>, <span class="ruby-value str">'BSI'</span>, <span class="ruby-constant">StringAttribute</span>,
|
|
1058
1090
|
138: <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> ],
|
|
1059
|
-
139: [ <span class="ruby-value str">'
|
|
1060
|
-
140: <span class="ruby-keyword kw">
|
|
1061
|
-
141: [ <span class="ruby-value str">'
|
|
1062
|
-
142: <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
|
|
1063
|
-
143: [ <span class="ruby-value str">'
|
|
1064
|
-
144: <span class="ruby-keyword kw">
|
|
1065
|
-
145:
|
|
1066
|
-
146:
|
|
1067
|
-
147:
|
|
1068
|
-
148:
|
|
1069
|
-
149:
|
|
1070
|
-
150:
|
|
1071
|
-
151: <span class="ruby-
|
|
1072
|
-
152:
|
|
1073
|
-
153:
|
|
1074
|
-
154:
|
|
1075
|
-
155:
|
|
1076
|
-
156:
|
|
1077
|
-
157:
|
|
1078
|
-
158:
|
|
1079
|
-
159:
|
|
1080
|
-
160:
|
|
1081
|
-
161: <span class="ruby-identifier">attrs</span
|
|
1082
|
-
162:
|
|
1083
|
-
163:
|
|
1084
|
-
164: <span class="ruby-
|
|
1085
|
-
165:
|
|
1086
|
-
166: <span class="ruby-
|
|
1087
|
-
167:
|
|
1088
|
-
168:
|
|
1089
|
-
169:
|
|
1090
|
-
170:
|
|
1091
|
-
171:
|
|
1092
|
-
172:
|
|
1093
|
-
173:
|
|
1094
|
-
174:
|
|
1095
|
-
175:
|
|
1096
|
-
176:
|
|
1097
|
-
177:
|
|
1098
|
-
178:
|
|
1099
|
-
179:
|
|
1100
|
-
180:
|
|
1101
|
-
181:
|
|
1102
|
-
182:
|
|
1103
|
-
183:
|
|
1104
|
-
184:
|
|
1105
|
-
185: [ <span class="ruby-value str">'
|
|
1106
|
-
186: <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">
|
|
1107
|
-
187: [ <span class="ruby-value str">'
|
|
1108
|
-
188: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">
|
|
1109
|
-
189: [ <span class="ruby-value str">'
|
|
1110
|
-
190: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">
|
|
1111
|
-
191: [ <span class="ruby-value str">'
|
|
1112
|
-
192: <span class="ruby-keyword kw">
|
|
1113
|
-
193: [ <span class="ruby-value str">'
|
|
1114
|
-
194: <span class="ruby-keyword kw">
|
|
1115
|
-
195: [ <span class="ruby-value str">'
|
|
1116
|
-
196: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">
|
|
1117
|
-
197: [ <span class="ruby-value str">'
|
|
1118
|
-
198: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>,
|
|
1119
|
-
199: [ <span class="ruby-value str">'
|
|
1120
|
-
200: <span class="ruby-keyword kw">
|
|
1121
|
-
201: [ <span class="ruby-value str">'
|
|
1122
|
-
202: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>,
|
|
1123
|
-
203: [ <span class="ruby-value str">'
|
|
1124
|
-
204: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">
|
|
1125
|
-
205: [ <span class="ruby-value str">'
|
|
1126
|
-
206: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">
|
|
1127
|
-
207: [ <span class="ruby-value str">'
|
|
1128
|
-
208: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">
|
|
1129
|
-
209: [ <span class="ruby-value str">'
|
|
1130
|
-
210: <span class="ruby-keyword kw">
|
|
1131
|
-
211:
|
|
1132
|
-
212:
|
|
1133
|
-
213:
|
|
1134
|
-
214:
|
|
1135
|
-
215:
|
|
1136
|
-
216:
|
|
1137
|
-
217: <span class="ruby-
|
|
1138
|
-
218:
|
|
1139
|
-
219:
|
|
1140
|
-
220:
|
|
1141
|
-
221:
|
|
1142
|
-
222:
|
|
1143
|
-
223:
|
|
1144
|
-
224:
|
|
1145
|
-
225:
|
|
1146
|
-
226:
|
|
1147
|
-
227:
|
|
1148
|
-
228:
|
|
1149
|
-
229:
|
|
1150
|
-
230:
|
|
1151
|
-
231:
|
|
1152
|
-
232:
|
|
1153
|
-
233:
|
|
1154
|
-
234:
|
|
1155
|
-
235:
|
|
1156
|
-
236:
|
|
1157
|
-
237:
|
|
1158
|
-
238: [ <span class="ruby-value str">'
|
|
1159
|
-
239: <span class="ruby-keyword kw">
|
|
1160
|
-
240: [ <span class="ruby-value str">'
|
|
1091
|
+
139: [ <span class="ruby-value str">'id'</span>, <span class="ruby-value str">'ID'</span>, <span class="ruby-constant">StringAttribute</span>,
|
|
1092
|
+
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-keyword kw">nil</span> ],
|
|
1093
|
+
141: [ <span class="ruby-value str">'index'</span>, <span class="ruby-value str">'Index'</span>, <span class="ruby-constant">FixnumAttribute</span>,
|
|
1094
|
+
142: <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> ],
|
|
1095
|
+
143: [ <span class="ruby-value str">'name'</span>, <span class="ruby-value str">'Name'</span>, <span class="ruby-constant">StringAttribute</span>,
|
|
1096
|
+
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-keyword kw">nil</span> ],
|
|
1097
|
+
145: [ <span class="ruby-value str">'replace'</span>, <span class="ruby-value str">'Replace'</span>, <span class="ruby-constant">BooleanAttribute</span>,
|
|
1098
|
+
146: <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> ],
|
|
1099
|
+
147: [ <span class="ruby-value str">'seqno'</span>, <span class="ruby-value str">'No'</span>, <span class="ruby-constant">FixnumAttribute</span>,
|
|
1100
|
+
148: <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> ],
|
|
1101
|
+
149: [ <span class="ruby-value str">'timezone'</span>, <span class="ruby-value str">'Time Zone'</span>, <span class="ruby-constant">StringAttribute</span>,
|
|
1102
|
+
150: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">timeZone</span> ],
|
|
1103
|
+
151: [ <span class="ruby-value str">'tree'</span>, <span class="ruby-value str">'Tree Index'</span>, <span class="ruby-constant">StringAttribute</span>,
|
|
1104
|
+
152: <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> ],
|
|
1105
|
+
153: [ <span class="ruby-value str">'vacations'</span>, <span class="ruby-value str">'Vacations'</span>, <span class="ruby-constant">TimeIntervalListAttribute</span>,
|
|
1106
|
+
154: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">true</span>, [] ],
|
|
1107
|
+
155: [ <span class="ruby-value str">'workinghours'</span>, <span class="ruby-value str">'Working Hours'</span>, <span class="ruby-constant">WorkingHoursAttribute</span>,
|
|
1108
|
+
156: <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> ]
|
|
1109
|
+
157: ]
|
|
1110
|
+
158: <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>)) }
|
|
1111
|
+
159:
|
|
1112
|
+
160: <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>)
|
|
1113
|
+
161: <span class="ruby-identifier">attrs</span> = [
|
|
1114
|
+
162: <span class="ruby-comment cmt"># ID Name Type</span>
|
|
1115
|
+
163: <span class="ruby-comment cmt"># Inh. Inh.Prj Scen. Default</span>
|
|
1116
|
+
164: [ <span class="ruby-value str">'bsi'</span>, <span class="ruby-value str">'BSI'</span>, <span class="ruby-constant">StringAttribute</span>,
|
|
1117
|
+
165: <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> ],
|
|
1118
|
+
166: [ <span class="ruby-value str">'id'</span>, <span class="ruby-value str">'ID'</span>, <span class="ruby-constant">StringAttribute</span>,
|
|
1119
|
+
167: <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> ],
|
|
1120
|
+
168: [ <span class="ruby-value str">'index'</span>, <span class="ruby-value str">'Index'</span>, <span class="ruby-constant">FixnumAttribute</span>,
|
|
1121
|
+
169: <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> ],
|
|
1122
|
+
170: [ <span class="ruby-value str">'flags'</span>, <span class="ruby-value str">'Flags'</span>, <span class="ruby-constant">FlagListAttribute</span>,
|
|
1123
|
+
171: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, [] ],
|
|
1124
|
+
172: [ <span class="ruby-value str">'name'</span>, <span class="ruby-value str">'Name'</span>, <span class="ruby-constant">StringAttribute</span>,
|
|
1125
|
+
173: <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> ],
|
|
1126
|
+
174: [ <span class="ruby-value str">'seqno'</span>, <span class="ruby-value str">'No'</span>, <span class="ruby-constant">FixnumAttribute</span>,
|
|
1127
|
+
175: <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> ],
|
|
1128
|
+
176: [ <span class="ruby-value str">'tree'</span>, <span class="ruby-value str">'Tree Index'</span>, <span class="ruby-constant">StringAttribute</span>,
|
|
1129
|
+
177: <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> ]
|
|
1130
|
+
178: ]
|
|
1131
|
+
179: <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>)) }
|
|
1132
|
+
180:
|
|
1133
|
+
181: <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>)
|
|
1134
|
+
182: <span class="ruby-identifier">attrs</span> = [
|
|
1135
|
+
183: <span class="ruby-comment cmt"># ID Name Type</span>
|
|
1136
|
+
184: <span class="ruby-comment cmt"># Inh. Inh.Prj Scen. Default</span>
|
|
1137
|
+
185: [ <span class="ruby-value str">'alloctdeffort'</span>, <span class="ruby-value str">'Alloctd. Effort'</span>, <span class="ruby-constant">FloatAttribute</span>,
|
|
1138
|
+
186: <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> ],
|
|
1139
|
+
187: [ <span class="ruby-value str">'bsi'</span>, <span class="ruby-value str">'BSI'</span>, <span class="ruby-constant">StringAttribute</span>,
|
|
1140
|
+
188: <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> ],
|
|
1141
|
+
189: [ <span class="ruby-value str">'criticalness'</span>, <span class="ruby-value str">'Criticalness'</span>, <span class="ruby-constant">FloatAttribute</span>,
|
|
1142
|
+
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">0.0</span> ],
|
|
1143
|
+
191: [ <span class="ruby-value str">'duties'</span>, <span class="ruby-value str">'Duties'</span>, <span class="ruby-constant">TaskListAttribute</span>,
|
|
1144
|
+
192: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, [] ],
|
|
1145
|
+
193: [ <span class="ruby-value str">'directreports'</span>, <span class="ruby-value str">'Direct Reports'</span>, <span class="ruby-constant">ResourceListAttribute</span>,
|
|
1146
|
+
194: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, [] ],
|
|
1147
|
+
195: [ <span class="ruby-value str">'efficiency'</span>,<span class="ruby-value str">'Efficiency'</span>, <span class="ruby-constant">FloatAttribute</span>,
|
|
1148
|
+
196: <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> ],
|
|
1149
|
+
197: [ <span class="ruby-value str">'effort'</span>, <span class="ruby-value str">'Total Effort'</span>, <span class="ruby-constant">FixnumAttribute</span>,
|
|
1150
|
+
198: <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> ],
|
|
1151
|
+
199: [ <span class="ruby-value str">'email'</span>, <span class="ruby-value str">'Email'</span>, <span class="ruby-constant">StringAttribute</span>,
|
|
1152
|
+
200: <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> ],
|
|
1153
|
+
201: [ <span class="ruby-value str">'fail'</span>, <span class="ruby-value str">'Failure Conditions'</span>, <span class="ruby-constant">LogicalExpressionListAttribute</span>,
|
|
1154
|
+
202: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, [] ],
|
|
1155
|
+
203: [ <span class="ruby-value str">'flags'</span>, <span class="ruby-value str">'Flags'</span>, <span class="ruby-constant">FlagListAttribute</span>,
|
|
1156
|
+
204: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, [] ],
|
|
1157
|
+
205: [ <span class="ruby-value str">'fte'</span>, <span class="ruby-value str">'FTE'</span>, <span class="ruby-constant">FloatAttribute</span>,
|
|
1158
|
+
206: <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> ],
|
|
1159
|
+
207: [ <span class="ruby-value str">'headcount'</span>, <span class="ruby-value str">'Headcount'</span>, <span class="ruby-constant">FixnumAttribute</span>,
|
|
1160
|
+
208: <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> ],
|
|
1161
|
+
209: [ <span class="ruby-value str">'index'</span>, <span class="ruby-value str">'Index'</span>, <span class="ruby-constant">FixnumAttribute</span>,
|
|
1162
|
+
210: <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> ],
|
|
1163
|
+
211: [ <span class="ruby-value str">'limits'</span>, <span class="ruby-value str">'Limits'</span>, <span class="ruby-constant">LimitsAttribute</span>,
|
|
1164
|
+
212: <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> ],
|
|
1165
|
+
213: [ <span class="ruby-value str">'managers'</span>, <span class="ruby-value str">'Managers'</span>, <span class="ruby-constant">ResourceListAttribute</span>,
|
|
1166
|
+
214: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, [] ],
|
|
1167
|
+
215: [ <span class="ruby-value str">'rate'</span>, <span class="ruby-value str">'Rate'</span>, <span class="ruby-constant">FloatAttribute</span>,
|
|
1168
|
+
216: <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> ],
|
|
1169
|
+
217: [ <span class="ruby-value str">'reports'</span>, <span class="ruby-value str">'Reports'</span>, <span class="ruby-constant">ResourceListAttribute</span>,
|
|
1170
|
+
218: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, [] ],
|
|
1171
|
+
219: [ <span class="ruby-value str">'seqno'</span>, <span class="ruby-value str">'No'</span>, <span class="ruby-constant">FixnumAttribute</span>,
|
|
1172
|
+
220: <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> ],
|
|
1173
|
+
221: [ <span class="ruby-value str">'shifts'</span>, <span class="ruby-value str">'Shifts'</span>, <span class="ruby-constant">ShiftAssignmentsAttribute</span>,
|
|
1174
|
+
222: <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> ],
|
|
1175
|
+
223: [ <span class="ruby-value str">'tree'</span>, <span class="ruby-value str">'Tree Index'</span>, <span class="ruby-constant">StringAttribute</span>,
|
|
1176
|
+
224: <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> ],
|
|
1177
|
+
225: [ <span class="ruby-value str">'vacations'</span>, <span class="ruby-value str">'Vacations'</span>, <span class="ruby-constant">TimeIntervalListAttribute</span>,
|
|
1178
|
+
226: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">true</span>, [] ],
|
|
1179
|
+
227: [ <span class="ruby-value str">'warn'</span>, <span class="ruby-value str">'Warning Condition'</span>, <span class="ruby-constant">LogicalExpressionListAttribute</span>,
|
|
1180
|
+
228: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, [] ],
|
|
1181
|
+
229: [ <span class="ruby-value str">'workinghours'</span>, <span class="ruby-value str">'Working Hours'</span>, <span class="ruby-constant">WorkingHoursAttribute</span>,
|
|
1182
|
+
230: <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> ]
|
|
1183
|
+
231: ]
|
|
1184
|
+
232: <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>)) }
|
|
1185
|
+
233:
|
|
1186
|
+
234: <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>)
|
|
1187
|
+
235: <span class="ruby-identifier">attrs</span> = [
|
|
1188
|
+
236: <span class="ruby-comment cmt"># ID Name Type</span>
|
|
1189
|
+
237: <span class="ruby-comment cmt"># Inh. Inh.Prj Scen. Default</span>
|
|
1190
|
+
238: [ <span class="ruby-value str">'allocate'</span>, <span class="ruby-value str">'Allocations'</span>, <span class="ruby-constant">AllocationAttribute</span>,
|
|
1191
|
+
239: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, [] ],
|
|
1192
|
+
240: [ <span class="ruby-value str">'assignedresources'</span>, <span class="ruby-value str">'Assigned Resources'</span>, <span class="ruby-constant">ResourceListAttribute</span>,
|
|
1161
1193
|
241: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, [] ],
|
|
1162
|
-
242: [ <span class="ruby-value str">'
|
|
1194
|
+
242: [ <span class="ruby-value str">'booking'</span>, <span class="ruby-value str">'Bookings'</span>, <span class="ruby-constant">BookingListAttribute</span>,
|
|
1163
1195
|
243: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, [] ],
|
|
1164
|
-
244: [ <span class="ruby-value str">'
|
|
1165
|
-
245: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>,
|
|
1166
|
-
246: [ <span class="ruby-value str">'
|
|
1167
|
-
247: <span class="ruby-keyword kw">
|
|
1168
|
-
248: [ <span class="ruby-value str">'
|
|
1169
|
-
249: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>,
|
|
1170
|
-
250: [ <span class="ruby-value str">'
|
|
1171
|
-
251: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">
|
|
1172
|
-
252: [ <span class="ruby-value str">'
|
|
1173
|
-
253: <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> ],
|
|
1174
|
-
254: [ <span class="ruby-value str">'
|
|
1175
|
-
255: <span class="ruby-keyword kw">
|
|
1176
|
-
256: [ <span class="ruby-value str">'
|
|
1177
|
-
257: <span class="ruby-keyword kw">
|
|
1178
|
-
258: [ <span class="ruby-value str">'
|
|
1179
|
-
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-
|
|
1180
|
-
260: [ <span class="ruby-value str">'
|
|
1181
|
-
261: <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">
|
|
1182
|
-
262: [ <span class="ruby-value str">'
|
|
1183
|
-
263: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>,
|
|
1184
|
-
264: [ <span class="ruby-value str">'
|
|
1185
|
-
265: <span class="ruby-keyword kw">
|
|
1186
|
-
266: [ <span class="ruby-value str">'
|
|
1187
|
-
267: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>,
|
|
1188
|
-
268: [ <span class="ruby-value str">'
|
|
1189
|
-
269: <span class="ruby-keyword kw">
|
|
1190
|
-
270: [ <span class="ruby-value str">'
|
|
1191
|
-
271: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>,
|
|
1192
|
-
272: [ <span class="ruby-value str">'
|
|
1193
|
-
273: <span class="ruby-keyword kw">
|
|
1194
|
-
274: [ <span class="ruby-value str">'
|
|
1195
|
-
275: <span class="ruby-keyword kw">
|
|
1196
|
-
276: [ <span class="ruby-value str">'
|
|
1197
|
-
277: <span class="ruby-keyword kw">
|
|
1198
|
-
278: [ <span class="ruby-value str">'
|
|
1199
|
-
279: <span class="ruby-keyword kw">
|
|
1200
|
-
280: [ <span class="ruby-value str">'
|
|
1201
|
-
281: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>,
|
|
1202
|
-
282: [ <span class="ruby-value str">'
|
|
1196
|
+
244: [ <span class="ruby-value str">'bsi'</span>, <span class="ruby-value str">'BSI'</span>, <span class="ruby-constant">StringAttribute</span>,
|
|
1197
|
+
245: <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> ],
|
|
1198
|
+
246: [ <span class="ruby-value str">'charge'</span>, <span class="ruby-value str">'Charges'</span>, <span class="ruby-constant">ChargeListAttribute</span>,
|
|
1199
|
+
247: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, [] ],
|
|
1200
|
+
248: [ <span class="ruby-value str">'chargeset'</span>, <span class="ruby-value str">'Charge Sets'</span>, <span class="ruby-constant">ChargeSetListAttribute</span>,
|
|
1201
|
+
249: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, [] ],
|
|
1202
|
+
250: [ <span class="ruby-value str">'complete'</span>, <span class="ruby-value str">'Completion'</span>, <span class="ruby-constant">FloatAttribute</span>,
|
|
1203
|
+
251: <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> ],
|
|
1204
|
+
252: [ <span class="ruby-value str">'criticalness'</span>, <span class="ruby-value str">'Criticalness'</span>, <span class="ruby-constant">FloatAttribute</span>,
|
|
1205
|
+
253: <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> ],
|
|
1206
|
+
254: [ <span class="ruby-value str">'depends'</span>, <span class="ruby-value str">'Preceding tasks'</span>, <span class="ruby-constant">DependencyListAttribute</span>,
|
|
1207
|
+
255: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, [] ],
|
|
1208
|
+
256: [ <span class="ruby-value str">'duration'</span>, <span class="ruby-value str">'Duration'</span>, <span class="ruby-constant">DurationAttribute</span>,
|
|
1209
|
+
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> ],
|
|
1210
|
+
258: [ <span class="ruby-value str">'effort'</span>, <span class="ruby-value str">'Effort'</span>, <span class="ruby-constant">DurationAttribute</span>,
|
|
1211
|
+
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-value">0</span> ],
|
|
1212
|
+
260: [ <span class="ruby-value str">'end'</span>, <span class="ruby-value str">'End'</span>, <span class="ruby-constant">DateAttribute</span>,
|
|
1213
|
+
261: <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> ],
|
|
1214
|
+
262: [ <span class="ruby-value str">'endpreds'</span>, <span class="ruby-value str">'End Preds.'</span>, <span class="ruby-constant">TaskDepListAttribute</span>,
|
|
1215
|
+
263: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, [] ],
|
|
1216
|
+
264: [ <span class="ruby-value str">'endsuccs'</span>, <span class="ruby-value str">'End Succs.'</span>, <span class="ruby-constant">TaskDepListAttribute</span>,
|
|
1217
|
+
265: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, [] ],
|
|
1218
|
+
266: [ <span class="ruby-value str">'fail'</span>, <span class="ruby-value str">'Failure Conditions'</span>, <span class="ruby-constant">LogicalExpressionListAttribute</span>,
|
|
1219
|
+
267: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, [] ],
|
|
1220
|
+
268: [ <span class="ruby-value str">'flags'</span>, <span class="ruby-value str">'Flags'</span>, <span class="ruby-constant">FlagListAttribute</span>,
|
|
1221
|
+
269: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, [] ],
|
|
1222
|
+
270: [ <span class="ruby-value str">'forward'</span>, <span class="ruby-value str">'Scheduling'</span>, <span class="ruby-constant">BooleanAttribute</span>,
|
|
1223
|
+
271: <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> ],
|
|
1224
|
+
272: [ <span class="ruby-value str">'id'</span>, <span class="ruby-value str">'ID'</span>, <span class="ruby-constant">StringAttribute</span>,
|
|
1225
|
+
273: <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> ],
|
|
1226
|
+
274: [ <span class="ruby-value str">'index'</span>, <span class="ruby-value str">'Index'</span>, <span class="ruby-constant">FixnumAttribute</span>,
|
|
1227
|
+
275: <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> ],
|
|
1228
|
+
276: [ <span class="ruby-value str">'length'</span>, <span class="ruby-value str">'Length'</span>, <span class="ruby-constant">DurationAttribute</span>,
|
|
1229
|
+
277: <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> ],
|
|
1230
|
+
278: [ <span class="ruby-value str">'limits'</span>, <span class="ruby-value str">'Limits'</span>, <span class="ruby-constant">LimitsAttribute</span>,
|
|
1231
|
+
279: <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> ],
|
|
1232
|
+
280: [ <span class="ruby-value str">'maxend'</span>, <span class="ruby-value str">'Max. End'</span>, <span class="ruby-constant">DateAttribute</span>,
|
|
1233
|
+
281: <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> ],
|
|
1234
|
+
282: [ <span class="ruby-value str">'maxstart'</span>, <span class="ruby-value str">'Max. Start'</span>, <span class="ruby-constant">DateAttribute</span>,
|
|
1203
1235
|
283: <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> ],
|
|
1204
|
-
284: [ <span class="ruby-value str">'
|
|
1205
|
-
285: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>,
|
|
1206
|
-
286: [ <span class="ruby-value str">'
|
|
1207
|
-
287: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>,
|
|
1208
|
-
288: [ <span class="ruby-value str">'
|
|
1209
|
-
289: <span class="ruby-keyword kw">
|
|
1210
|
-
290: [ <span class="ruby-value str">'
|
|
1211
|
-
291: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-
|
|
1212
|
-
292: [ <span class="ruby-value str">'
|
|
1213
|
-
293: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>,
|
|
1214
|
-
294: [ <span class="ruby-value str">'
|
|
1215
|
-
295: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">
|
|
1216
|
-
296:
|
|
1217
|
-
297:
|
|
1218
|
-
298:
|
|
1219
|
-
299:
|
|
1220
|
-
300:
|
|
1221
|
-
301:
|
|
1222
|
-
302: <span class="ruby-
|
|
1223
|
-
303:
|
|
1224
|
-
304:
|
|
1225
|
-
305:
|
|
1226
|
-
306:
|
|
1227
|
-
307:
|
|
1228
|
-
308:
|
|
1229
|
-
309:
|
|
1230
|
-
310:
|
|
1231
|
-
311:
|
|
1232
|
-
312:
|
|
1233
|
-
313:
|
|
1234
|
-
314:
|
|
1235
|
-
315:
|
|
1236
|
-
316:
|
|
1237
|
-
317:
|
|
1238
|
-
318:
|
|
1239
|
-
319:
|
|
1240
|
-
320:
|
|
1241
|
-
321:
|
|
1242
|
-
322:
|
|
1243
|
-
323:
|
|
1244
|
-
324:
|
|
1245
|
-
325:
|
|
1246
|
-
326:
|
|
1247
|
-
327:
|
|
1248
|
-
328:
|
|
1249
|
-
329: [ <span class="ruby-value str">'
|
|
1250
|
-
330: <span class="ruby-keyword kw">
|
|
1251
|
-
331: [ <span class="ruby-value str">'
|
|
1236
|
+
284: [ <span class="ruby-value str">'milestone'</span>, <span class="ruby-value str">'Milestone'</span>, <span class="ruby-constant">BooleanAttribute</span>,
|
|
1237
|
+
285: <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> ],
|
|
1238
|
+
286: [ <span class="ruby-value str">'minend'</span>, <span class="ruby-value str">'Min. End'</span>, <span class="ruby-constant">DateAttribute</span>,
|
|
1239
|
+
287: <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> ],
|
|
1240
|
+
288: [ <span class="ruby-value str">'minstart'</span>, <span class="ruby-value str">'Min. Start'</span>, <span class="ruby-constant">DateAttribute</span>,
|
|
1241
|
+
289: <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> ],
|
|
1242
|
+
290: [ <span class="ruby-value str">'name'</span>, <span class="ruby-value str">'Name'</span>, <span class="ruby-constant">StringAttribute</span>,
|
|
1243
|
+
291: <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> ],
|
|
1244
|
+
292: [ <span class="ruby-value str">'note'</span>, <span class="ruby-value str">'Note'</span>, <span class="ruby-constant">RichTextAttribute</span>,
|
|
1245
|
+
293: <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> ],
|
|
1246
|
+
294: [ <span class="ruby-value str">'pathcriticalness'</span>, <span class="ruby-value str">'Path Criticalness'</span>, <span class="ruby-constant">FloatAttribute</span>,
|
|
1247
|
+
295: <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> ],
|
|
1248
|
+
296: [ <span class="ruby-value str">'precedes'</span>, <span class="ruby-value str">'Following tasks'</span>, <span class="ruby-constant">DependencyListAttribute</span>,
|
|
1249
|
+
297: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, [] ],
|
|
1250
|
+
298: [ <span class="ruby-value str">'priority'</span>, <span class="ruby-value str">'Priority'</span>, <span class="ruby-constant">FixnumAttribute</span>,
|
|
1251
|
+
299: <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> ],
|
|
1252
|
+
300: [ <span class="ruby-value str">'projectid'</span>, <span class="ruby-value str">'Project ID'</span>, <span class="ruby-constant">SymbolAttribute</span>,
|
|
1253
|
+
301: <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> ],
|
|
1254
|
+
302: [ <span class="ruby-value str">'responsible'</span>, <span class="ruby-value str">'Responsible'</span>, <span class="ruby-constant">ResourceListAttribute</span>,
|
|
1255
|
+
303: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, [] ],
|
|
1256
|
+
304: [ <span class="ruby-value str">'scheduled'</span>, <span class="ruby-value str">'Scheduled'</span>, <span class="ruby-constant">BooleanAttribute</span>,
|
|
1257
|
+
305: <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> ],
|
|
1258
|
+
306: [ <span class="ruby-value str">'seqno'</span>, <span class="ruby-value str">'No'</span>, <span class="ruby-constant">FixnumAttribute</span>,
|
|
1259
|
+
307: <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> ],
|
|
1260
|
+
308: [ <span class="ruby-value str">'shifts'</span>, <span class="ruby-value str">'Shifts'</span>, <span class="ruby-constant">ShiftAssignmentsAttribute</span>,
|
|
1261
|
+
309: <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> ],
|
|
1262
|
+
310: [ <span class="ruby-value str">'start'</span>, <span class="ruby-value str">'Start'</span>, <span class="ruby-constant">DateAttribute</span>,
|
|
1263
|
+
311: <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> ],
|
|
1264
|
+
312: [ <span class="ruby-value str">'startpreds'</span>, <span class="ruby-value str">'Start Preds.'</span>, <span class="ruby-constant">TaskDepListAttribute</span>,
|
|
1265
|
+
313: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, [] ],
|
|
1266
|
+
314: [ <span class="ruby-value str">'startsuccs'</span>, <span class="ruby-value str">'Start Succs.'</span>, <span class="ruby-constant">TaskDepListAttribute</span>,
|
|
1267
|
+
315: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, [] ],
|
|
1268
|
+
316: [ <span class="ruby-value str">'status'</span>, <span class="ruby-value str">'Task Status'</span>, <span class="ruby-constant">StringAttribute</span>,
|
|
1269
|
+
317: <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> ],
|
|
1270
|
+
318: [ <span class="ruby-value str">'tree'</span>, <span class="ruby-value str">'Tree Index'</span>, <span class="ruby-constant">StringAttribute</span>,
|
|
1271
|
+
319: <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> ],
|
|
1272
|
+
320: [ <span class="ruby-value str">'warn'</span>, <span class="ruby-value str">'Warning Condition'</span>, <span class="ruby-constant">LogicalExpressionListAttribute</span>,
|
|
1273
|
+
321: <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, [] ]
|
|
1274
|
+
322: ]
|
|
1275
|
+
323: <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>)) }
|
|
1276
|
+
324:
|
|
1277
|
+
325: <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>)
|
|
1278
|
+
326: <span class="ruby-identifier">attrs</span> = [
|
|
1279
|
+
327: <span class="ruby-comment cmt"># ID Name Type</span>
|
|
1280
|
+
328: <span class="ruby-comment cmt"># Inh. Inh.Prj Scen. Default</span>
|
|
1281
|
+
329: [ <span class="ruby-value str">'bsi'</span>, <span class="ruby-value str">'BSI'</span>, <span class="ruby-constant">StringAttribute</span>,
|
|
1282
|
+
330: <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> ],
|
|
1283
|
+
331: [ <span class="ruby-value str">'caption'</span>, <span class="ruby-value str">'Caption'</span>, <span class="ruby-constant">RichTextAttribute</span>,
|
|
1252
1284
|
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> ],
|
|
1253
|
-
333: [ <span class="ruby-value str">'
|
|
1285
|
+
333: [ <span class="ruby-value str">'center'</span>, <span class="ruby-value str">'Center'</span>, <span class="ruby-constant">RichTextAttribute</span>,
|
|
1254
1286
|
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> ],
|
|
1255
|
-
335: [ <span class="ruby-value str">'
|
|
1256
|
-
336: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>,
|
|
1257
|
-
337: [ <span class="ruby-value str">'
|
|
1258
|
-
338: <span class="ruby-keyword kw">
|
|
1259
|
-
339: [ <span class="ruby-value str">'
|
|
1260
|
-
340: <span class="ruby-keyword kw">
|
|
1261
|
-
341: [ <span class="ruby-value str">'
|
|
1262
|
-
342: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-
|
|
1263
|
-
343: [ <span class="ruby-value str">'
|
|
1287
|
+
335: [ <span class="ruby-value str">'columns'</span>, <span class="ruby-value str">'Columns'</span>, <span class="ruby-constant">ColumnListAttribute</span>,
|
|
1288
|
+
336: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, [] ],
|
|
1289
|
+
337: [ <span class="ruby-value str">'costAccount'</span>, <span class="ruby-value str">'Cost Account'</span>, <span class="ruby-constant">AccountAttribute</span>,
|
|
1290
|
+
338: <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> ],
|
|
1291
|
+
339: [ <span class="ruby-value str">'currencyFormat'</span>, <span class="ruby-value str">'Currency Format'</span>, <span class="ruby-constant">RealFormatAttribute</span>,
|
|
1292
|
+
340: <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> ],
|
|
1293
|
+
341: [ <span class="ruby-value str">'definitions'</span>, <span class="ruby-value str">'Definitions'</span>, <span class="ruby-constant">DefinitionListAttribute</span>,
|
|
1294
|
+
342: <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> ]) ],
|
|
1295
|
+
343: [ <span class="ruby-value str">'end'</span>, <span class="ruby-value str">'End'</span>, <span class="ruby-constant">DateAttribute</span>,
|
|
1264
1296
|
344: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">nil</span> ],
|
|
1265
|
-
345: [ <span class="ruby-value str">'
|
|
1266
|
-
346: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">
|
|
1267
|
-
347: [ <span class="ruby-value str">'
|
|
1268
|
-
348: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">
|
|
1269
|
-
349: [ <span class="ruby-value str">'
|
|
1270
|
-
350: <span class="ruby-keyword kw">
|
|
1271
|
-
351: [ <span class="ruby-value str">'
|
|
1272
|
-
352: <span class="ruby-keyword kw">true</span>,
|
|
1273
|
-
353: [ <span class="ruby-value str">'
|
|
1274
|
-
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-
|
|
1275
|
-
355: [ <span class="ruby-value str">'
|
|
1297
|
+
345: [ <span class="ruby-value str">'epilog'</span>, <span class="ruby-value str">'Epilog'</span>, <span class="ruby-constant">RichTextAttribute</span>,
|
|
1298
|
+
346: <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> ],
|
|
1299
|
+
347: [ <span class="ruby-value str">'flags'</span>, <span class="ruby-value str">'Flags'</span>, <span class="ruby-constant">FlagListAttribute</span>,
|
|
1300
|
+
348: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>, [] ],
|
|
1301
|
+
349: [ <span class="ruby-value str">'footer'</span>, <span class="ruby-value str">'Footer'</span>, <span class="ruby-constant">RichTextAttribute</span>,
|
|
1302
|
+
350: <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> ],
|
|
1303
|
+
351: [ <span class="ruby-value str">'formats'</span>, <span class="ruby-value str">'Formats'</span>, <span class="ruby-constant">FormatListAttribute</span>,
|
|
1304
|
+
352: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, [] ],
|
|
1305
|
+
353: [ <span class="ruby-value str">'ganttBars'</span>, <span class="ruby-value str">'Gantt Bars'</span>, <span class="ruby-constant">BooleanAttribute</span>,
|
|
1306
|
+
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">true</span> ],
|
|
1307
|
+
355: [ <span class="ruby-value str">'header'</span>, <span class="ruby-value str">'Header'</span>, <span class="ruby-constant">RichTextAttribute</span>,
|
|
1276
1308
|
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-keyword kw">nil</span> ],
|
|
1277
|
-
357: [ <span class="ruby-value str">'
|
|
1278
|
-
358: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">
|
|
1279
|
-
359: [ <span class="ruby-value str">'
|
|
1309
|
+
357: [ <span class="ruby-value str">'headline'</span>, <span class="ruby-value str">'Headline'</span>, <span class="ruby-constant">RichTextAttribute</span>,
|
|
1310
|
+
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> ],
|
|
1311
|
+
359: [ <span class="ruby-value str">'hideJournalEntry'</span>, <span class="ruby-value str">'Hide JournalEntry'</span>, <span class="ruby-constant">LogicalExpressionAttribute</span>,
|
|
1280
1312
|
360: <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> ],
|
|
1281
|
-
361: [ <span class="ruby-value str">'
|
|
1313
|
+
361: [ <span class="ruby-value str">'hideResource'</span>, <span class="ruby-value str">'Hide Resource'</span>, <span class="ruby-constant">LogicalExpressionAttribute</span>,
|
|
1282
1314
|
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> ],
|
|
1283
|
-
363: [ <span class="ruby-value str">'
|
|
1284
|
-
364: <span class="ruby-keyword kw">true</span>,
|
|
1285
|
-
365: [ <span class="ruby-value str">'
|
|
1286
|
-
366: <span class="ruby-keyword kw">
|
|
1287
|
-
367: [ <span class="ruby-value str">'
|
|
1288
|
-
368: <span class="ruby-keyword kw">
|
|
1289
|
-
369: [ <span class="ruby-value str">'
|
|
1290
|
-
370: <span class="ruby-keyword kw">
|
|
1291
|
-
371: [ <span class="ruby-value str">'
|
|
1292
|
-
372: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>,
|
|
1293
|
-
373: [ <span class="ruby-value str">'
|
|
1294
|
-
374: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">
|
|
1295
|
-
375: [ <span class="ruby-value str">'
|
|
1296
|
-
376: <span class="ruby-keyword kw">
|
|
1297
|
-
377: [ <span class="ruby-value str">'
|
|
1298
|
-
378: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">
|
|
1299
|
-
379: [ <span class="ruby-value str">'
|
|
1300
|
-
380: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">
|
|
1301
|
-
381: [ <span class="ruby-value str">'
|
|
1302
|
-
382: <span class="ruby-keyword kw">
|
|
1303
|
-
383: [ <span class="ruby-value str">'
|
|
1304
|
-
384: <span class="ruby-keyword kw">
|
|
1305
|
-
385: [ <span class="ruby-value str">'
|
|
1306
|
-
386: <span class="ruby-keyword kw">
|
|
1307
|
-
387: [ <span class="ruby-value str">'
|
|
1308
|
-
388: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">
|
|
1309
|
-
389: [ <span class="ruby-value str">'
|
|
1310
|
-
390: <span class="ruby-keyword kw">true</span>,
|
|
1311
|
-
391: [ <span class="ruby-value str">'
|
|
1312
|
-
392: <span class="ruby-keyword kw">
|
|
1313
|
-
393: [ <span class="ruby-value str">'
|
|
1314
|
-
394: <span class="ruby-keyword kw">
|
|
1315
|
-
395: [ <span class="ruby-value str">'
|
|
1316
|
-
396: <span class="ruby-keyword kw">true</span>,
|
|
1317
|
-
397:
|
|
1318
|
-
398:
|
|
1319
|
-
399:
|
|
1320
|
-
400:
|
|
1321
|
-
401:
|
|
1322
|
-
402:
|
|
1323
|
-
403:
|
|
1324
|
-
404:
|
|
1325
|
-
405:
|
|
1326
|
-
406:
|
|
1327
|
-
407:
|
|
1328
|
-
408:
|
|
1329
|
-
409:
|
|
1330
|
-
410:
|
|
1331
|
-
411:
|
|
1332
|
-
412:
|
|
1333
|
-
413:
|
|
1334
|
-
414:
|
|
1335
|
-
415:
|
|
1336
|
-
416:
|
|
1337
|
-
417:
|
|
1338
|
-
418:
|
|
1339
|
-
419:
|
|
1340
|
-
420:
|
|
1315
|
+
363: [ <span class="ruby-value str">'hideTask'</span>, <span class="ruby-value str">'Hide Task'</span>, <span class="ruby-constant">LogicalExpressionAttribute</span>,
|
|
1316
|
+
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> ],
|
|
1317
|
+
365: [ <span class="ruby-value str">'id'</span>, <span class="ruby-value str">'ID'</span>, <span class="ruby-constant">StringAttribute</span>,
|
|
1318
|
+
366: <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> ],
|
|
1319
|
+
367: [ <span class="ruby-value str">'index'</span>, <span class="ruby-value str">'Index'</span>, <span class="ruby-constant">FixnumAttribute</span>,
|
|
1320
|
+
368: <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> ],
|
|
1321
|
+
369: [ <span class="ruby-value str">'interactive'</span>, <span class="ruby-value str">'Interactive'</span>, <span class="ruby-constant">BooleanAttribute</span>,
|
|
1322
|
+
370: <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> ],
|
|
1323
|
+
371: [ <span class="ruby-value str">'left'</span>, <span class="ruby-value str">'Left'</span>, <span class="ruby-constant">RichTextAttribute</span>,
|
|
1324
|
+
372: <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> ],
|
|
1325
|
+
373: [ <span class="ruby-value str">'loadUnit'</span>, <span class="ruby-value str">'Load Unit'</span>, <span class="ruby-constant">StringAttribute</span>,
|
|
1326
|
+
374: <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> ],
|
|
1327
|
+
375: [ <span class="ruby-value str">'name'</span>, <span class="ruby-value str">'Name'</span>, <span class="ruby-constant">StringAttribute</span>,
|
|
1328
|
+
376: <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> ],
|
|
1329
|
+
377: [ <span class="ruby-value str">'now'</span>, <span class="ruby-value str">'Now'</span>, <span class="ruby-constant">DateAttribute</span>,
|
|
1330
|
+
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> ],
|
|
1331
|
+
379: [ <span class="ruby-value str">'numberFormat'</span>, <span class="ruby-value str">'Number Format'</span>, <span class="ruby-constant">RealFormatAttribute</span>,
|
|
1332
|
+
380: <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> ],
|
|
1333
|
+
381: [ <span class="ruby-value str">'openNodes'</span>, <span class="ruby-value str">'Open Nodes'</span>, <span class="ruby-constant">NodeListAttribute</span>,
|
|
1334
|
+
382: <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> ],
|
|
1335
|
+
383: [ <span class="ruby-value str">'prolog'</span>, <span class="ruby-value str">'Prolog'</span>, <span class="ruby-constant">RichTextAttribute</span>,
|
|
1336
|
+
384: <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>],
|
|
1337
|
+
385: [ <span class="ruby-value str">'resourceAttributes'</span>, <span class="ruby-value str">'Resource Attributes'</span>, <span class="ruby-constant">FormatListAttribute</span>,
|
|
1338
|
+
386: <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> ]) ],
|
|
1339
|
+
387: [ <span class="ruby-value str">'resourceRoot'</span>, <span class="ruby-value str">'resource Root'</span>, <span class="ruby-constant">PropertyAttribute</span>,
|
|
1340
|
+
388: <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> ],
|
|
1341
|
+
389: [ <span class="ruby-value str">'revenueAccount'</span>, <span class="ruby-value str">'Revenue Account'</span>, <span class="ruby-constant">AccountAttribute</span>,
|
|
1342
|
+
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> ],
|
|
1343
|
+
391: [ <span class="ruby-value str">'right'</span>, <span class="ruby-value str">'Right'</span>, <span class="ruby-constant">RichTextAttribute</span>,
|
|
1344
|
+
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> ],
|
|
1345
|
+
393: [ <span class="ruby-value str">'rollupResource'</span>, <span class="ruby-value str">'Rollup Resource'</span>, <span class="ruby-constant">LogicalExpressionAttribute</span>,
|
|
1346
|
+
394: <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> ],
|
|
1347
|
+
395: [ <span class="ruby-value str">'rollupTask'</span>, <span class="ruby-value str">'Rollup Task'</span>, <span class="ruby-constant">LogicalExpressionAttribute</span>,
|
|
1348
|
+
396: <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> ],
|
|
1349
|
+
397: [ <span class="ruby-value str">'scenarios'</span>, <span class="ruby-value str">'Scenarios'</span>, <span class="ruby-constant">ScenarioListAttribute</span>,
|
|
1350
|
+
398: <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> ] ],
|
|
1351
|
+
399: [ <span class="ruby-value str">'selfcontained'</span>, <span class="ruby-value str">'Selfcontained'</span>, <span class="ruby-constant">BooleanAttribute</span>,
|
|
1352
|
+
400: <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> ],
|
|
1353
|
+
401: [ <span class="ruby-value str">'seqno'</span>, <span class="ruby-value str">'No'</span>, <span class="ruby-constant">FixnumAttribute</span>,
|
|
1354
|
+
402: <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> ],
|
|
1355
|
+
403: [ <span class="ruby-value str">'shortTimeFormat'</span>, <span class="ruby-value str">'Short Time Format'</span>, <span class="ruby-constant">StringAttribute</span>,
|
|
1356
|
+
404: <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> ],
|
|
1357
|
+
405: [ <span class="ruby-value str">'sortResources'</span>, <span class="ruby-value str">'Sort Resources'</span>, <span class="ruby-constant">SortListAttribute</span>,
|
|
1358
|
+
406: <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> ]] ],
|
|
1359
|
+
407: [ <span class="ruby-value str">'sortTasks'</span>, <span class="ruby-value str">'Sort Tasks'</span>, <span class="ruby-constant">SortListAttribute</span>,
|
|
1360
|
+
408: <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> ]] ],
|
|
1361
|
+
409: [ <span class="ruby-value str">'start'</span>, <span class="ruby-value str">'Start'</span>, <span class="ruby-constant">DateAttribute</span>,
|
|
1362
|
+
410: <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> ],
|
|
1363
|
+
411: [ <span class="ruby-value str">'taskAttributes'</span>, <span class="ruby-value str">'Task Attributes'</span>, <span class="ruby-constant">FormatListAttribute</span>,
|
|
1364
|
+
412: <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> ]) ],
|
|
1365
|
+
413: [ <span class="ruby-value str">'taskRoot'</span>, <span class="ruby-value str">'Task Root'</span>, <span class="ruby-constant">PropertyAttribute</span>,
|
|
1366
|
+
414: <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> ],
|
|
1367
|
+
415: [ <span class="ruby-value str">'timeFormat'</span>, <span class="ruby-value str">'Time Format'</span>, <span class="ruby-constant">StringAttribute</span>,
|
|
1368
|
+
416: <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> ],
|
|
1369
|
+
417: [ <span class="ruby-value str">'timeOffId'</span>, <span class="ruby-value str">'Time Off ID'</span>, <span class="ruby-constant">StringAttribute</span>,
|
|
1370
|
+
418: <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> ],
|
|
1371
|
+
419: [ <span class="ruby-value str">'timeOffName'</span>, <span class="ruby-value str">'Time Off Name'</span>, <span class="ruby-constant">StringAttribute</span>,
|
|
1372
|
+
420: <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> ],
|
|
1373
|
+
421: [ <span class="ruby-value str">'timezone'</span>, <span class="ruby-value str">'Time Zone'</span>, <span class="ruby-constant">StringAttribute</span>,
|
|
1374
|
+
422: <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">timeZone</span> ],
|
|
1375
|
+
423: [ <span class="ruby-value str">'title'</span>, <span class="ruby-value str">'Title'</span>, <span class="ruby-constant">StringAttribute</span>,
|
|
1376
|
+
424: <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> ],
|
|
1377
|
+
425: [ <span class="ruby-value str">'tree'</span>, <span class="ruby-value str">'Tree Index'</span>, <span class="ruby-constant">StringAttribute</span>,
|
|
1378
|
+
426: <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> ],
|
|
1379
|
+
427: [ <span class="ruby-value str">'weekStartsMonday'</span>, <span class="ruby-value str">'Week Starts Monday'</span>, <span class="ruby-constant">BooleanAttribute</span>,
|
|
1380
|
+
428: <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> ]
|
|
1381
|
+
429: ]
|
|
1382
|
+
430: <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>)) }
|
|
1383
|
+
431:
|
|
1384
|
+
432: <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>)
|
|
1385
|
+
433:
|
|
1386
|
+
434: <span class="ruby-comment cmt"># A list of files that contained the project data.</span>
|
|
1387
|
+
435: <span class="ruby-ivar">@inputFiles</span> = <span class="ruby-constant">FileList</span>.<span class="ruby-identifier">new</span>
|
|
1388
|
+
436:
|
|
1389
|
+
437: <span class="ruby-ivar">@timeSheets</span> = <span class="ruby-constant">TimeSheets</span>.<span class="ruby-identifier">new</span>
|
|
1390
|
+
438:
|
|
1391
|
+
439: <span class="ruby-comment cmt"># A scoreboard that reflects the global working hours and vacations.</span>
|
|
1392
|
+
440: <span class="ruby-ivar">@scoreboard</span> = <span class="ruby-keyword kw">nil</span>
|
|
1393
|
+
441: <span class="ruby-comment cmt"># A scoreboard that reflects the global working hours but no vacations.</span>
|
|
1394
|
+
442: <span class="ruby-ivar">@scoreboardNoVacations</span> = <span class="ruby-keyword kw">nil</span>
|
|
1395
|
+
443:
|
|
1396
|
+
444: <span class="ruby-comment cmt"># The ReportContext provides additional settings to the report that can</span>
|
|
1397
|
+
445: <span class="ruby-comment cmt"># complement or replace the report attributes. Reports can include other</span>
|
|
1398
|
+
446: <span class="ruby-comment cmt"># reports. During report generation, only one context is active, but the</span>
|
|
1399
|
+
447: <span class="ruby-comment cmt"># context of enclosing reports needs to be preserved. Therefor we use a</span>
|
|
1400
|
+
448: <span class="ruby-comment cmt"># stack to implement this.</span>
|
|
1401
|
+
449: <span class="ruby-ivar">@reportContexts</span> = []
|
|
1402
|
+
450: <span class="ruby-ivar">@outputDir</span> = <span class="ruby-value str">''</span>
|
|
1403
|
+
451: <span class="ruby-ivar">@warnTsDeltas</span> = <span class="ruby-keyword kw">false</span>
|
|
1404
|
+
452: <span class="ruby-keyword kw">end</span></pre>
|
|
1341
1405
|
</div>
|
|
1342
1406
|
|
|
1343
1407
|
</div>
|
|
@@ -1378,13 +1442,13 @@ attribute.
|
|
|
1378
1442
|
<div class="method-source-code"
|
|
1379
1443
|
id="--source">
|
|
1380
1444
|
<pre>
|
|
1381
|
-
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line
|
|
1382
|
-
|
|
1383
|
-
|
|
1384
|
-
|
|
1385
|
-
|
|
1386
|
-
|
|
1387
|
-
|
|
1445
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line 461</span>
|
|
1446
|
+
461: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">[]</span>(<span class="ruby-identifier">name</span>)
|
|
1447
|
+
462: <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>)
|
|
1448
|
+
463: <span class="ruby-identifier">raise</span> <span class="ruby-node">"Unknown project attribute #{name}"</span>
|
|
1449
|
+
464: <span class="ruby-keyword kw">end</span>
|
|
1450
|
+
465: <span class="ruby-ivar">@attributes</span>[<span class="ruby-identifier">name</span>]
|
|
1451
|
+
466: <span class="ruby-keyword kw">end</span></pre>
|
|
1388
1452
|
</div>
|
|
1389
1453
|
|
|
1390
1454
|
</div>
|
|
@@ -1418,32 +1482,26 @@ to <em>value</em>.
|
|
|
1418
1482
|
<div class="method-source-code"
|
|
1419
1483
|
id="--source">
|
|
1420
1484
|
<pre>
|
|
1421
|
-
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line
|
|
1422
|
-
|
|
1423
|
-
|
|
1424
|
-
|
|
1425
|
-
|
|
1426
|
-
|
|
1427
|
-
|
|
1428
|
-
|
|
1429
|
-
|
|
1430
|
-
|
|
1431
|
-
|
|
1432
|
-
|
|
1433
|
-
|
|
1434
|
-
|
|
1435
|
-
|
|
1436
|
-
|
|
1437
|
-
|
|
1438
|
-
|
|
1439
|
-
|
|
1440
|
-
|
|
1441
|
-
456: <span class="ruby-comment cmt"># Scoreboard that gets reused by the other instances.</span>
|
|
1442
|
-
457: <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>])
|
|
1443
|
-
458: <span class="ruby-keyword kw">end</span>
|
|
1444
|
-
459: <span class="ruby-keyword kw">end</span>
|
|
1445
|
-
460: <span class="ruby-identifier">value</span>
|
|
1446
|
-
461: <span class="ruby-keyword kw">end</span></pre>
|
|
1485
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line 469</span>
|
|
1486
|
+
469: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">[]=</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">value</span>)
|
|
1487
|
+
470: <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>)
|
|
1488
|
+
471: <span class="ruby-identifier">raise</span> <span class="ruby-node">"Unknown project attribute #{name}"</span>
|
|
1489
|
+
472: <span class="ruby-keyword kw">end</span>
|
|
1490
|
+
473: <span class="ruby-ivar">@attributes</span>[<span class="ruby-identifier">name</span>] = <span class="ruby-identifier">value</span>
|
|
1491
|
+
474:
|
|
1492
|
+
475: <span class="ruby-comment cmt"># If the start, end or schedule granularity have been changed, we have</span>
|
|
1493
|
+
476: <span class="ruby-comment cmt"># to reset the working hours.</span>
|
|
1494
|
+
477: <span class="ruby-keyword kw">if</span> <span class="ruby-node">%(start end scheduleGranularity timezone timingresolution)</span>.
|
|
1495
|
+
478: <span class="ruby-identifier">include?</span>(<span class="ruby-identifier">name</span>)
|
|
1496
|
+
479: <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>]
|
|
1497
|
+
480: <span class="ruby-ivar">@attributes</span>[<span class="ruby-value str">'workinghours'</span>] =
|
|
1498
|
+
481: <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>],
|
|
1499
|
+
482: <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>],
|
|
1500
|
+
483: <span class="ruby-ivar">@attributes</span>[<span class="ruby-value str">'timezone'</span>])
|
|
1501
|
+
484: <span class="ruby-keyword kw">end</span>
|
|
1502
|
+
485: <span class="ruby-keyword kw">end</span>
|
|
1503
|
+
486: <span class="ruby-identifier">value</span>
|
|
1504
|
+
487: <span class="ruby-keyword kw">end</span></pre>
|
|
1447
1505
|
</div>
|
|
1448
1506
|
|
|
1449
1507
|
</div>
|
|
@@ -1477,10 +1535,10 @@ return nil if it does not exist.
|
|
|
1477
1535
|
<div class="method-source-code"
|
|
1478
1536
|
id="account-source">
|
|
1479
1537
|
<pre>
|
|
1480
|
-
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line
|
|
1481
|
-
|
|
1482
|
-
|
|
1483
|
-
|
|
1538
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line 590</span>
|
|
1539
|
+
590: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">account</span>(<span class="ruby-identifier">id</span>)
|
|
1540
|
+
591: <span class="ruby-ivar">@accounts</span>[<span class="ruby-identifier">id</span>]
|
|
1541
|
+
592: <span class="ruby-keyword kw">end</span></pre>
|
|
1484
1542
|
</div>
|
|
1485
1543
|
|
|
1486
1544
|
</div>
|
|
@@ -1516,11 +1574,11 @@ pound sign.
|
|
|
1516
1574
|
<div class="method-source-code"
|
|
1517
1575
|
id="alert-evel-olor-source">
|
|
1518
1576
|
<pre>
|
|
1519
|
-
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line
|
|
1520
|
-
|
|
1521
|
-
|
|
1522
|
-
|
|
1523
|
-
|
|
1577
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line 522</span>
|
|
1578
|
+
522: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">alertLevelColor</span>(<span class="ruby-identifier">levelIndex</span>)
|
|
1579
|
+
523: <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>]
|
|
1580
|
+
524: <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>]
|
|
1581
|
+
525: <span class="ruby-keyword kw">end</span></pre>
|
|
1524
1582
|
</div>
|
|
1525
1583
|
|
|
1526
1584
|
</div>
|
|
@@ -1554,11 +1612,11 @@ Return the ID or keyword of the alert level with the given
|
|
|
1554
1612
|
<div class="method-source-code"
|
|
1555
1613
|
id="alert-evel-d-source">
|
|
1556
1614
|
<pre>
|
|
1557
|
-
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line
|
|
1558
|
-
|
|
1559
|
-
|
|
1560
|
-
|
|
1561
|
-
|
|
1615
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line 507</span>
|
|
1616
|
+
507: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">alertLevelId</span>(<span class="ruby-identifier">levelIndex</span>)
|
|
1617
|
+
508: <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>]
|
|
1618
|
+
509: <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>]
|
|
1619
|
+
510: <span class="ruby-keyword kw">end</span></pre>
|
|
1562
1620
|
</div>
|
|
1563
1621
|
|
|
1564
1622
|
</div>
|
|
@@ -1592,15 +1650,15 @@ the index of it. If no level is found, nil is returned.
|
|
|
1592
1650
|
<div class="method-source-code"
|
|
1593
1651
|
id="alert-evel-ndex-source">
|
|
1594
1652
|
<pre>
|
|
1595
|
-
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line
|
|
1596
|
-
|
|
1597
|
-
|
|
1598
|
-
|
|
1599
|
-
|
|
1600
|
-
|
|
1601
|
-
|
|
1602
|
-
|
|
1603
|
-
|
|
1653
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line 496</span>
|
|
1654
|
+
496: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">alertLevelIndex</span>(<span class="ruby-identifier">levelName</span>)
|
|
1655
|
+
497: <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>
|
|
1656
|
+
498: <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>
|
|
1657
|
+
499: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">i</span>
|
|
1658
|
+
500: <span class="ruby-keyword kw">end</span>
|
|
1659
|
+
501: <span class="ruby-keyword kw">end</span>
|
|
1660
|
+
502: <span class="ruby-keyword kw">nil</span>
|
|
1661
|
+
503: <span class="ruby-keyword kw">end</span></pre>
|
|
1604
1662
|
</div>
|
|
1605
1663
|
|
|
1606
1664
|
</div>
|
|
@@ -1634,11 +1692,48 @@ Return the user readable name of the alert level with the given
|
|
|
1634
1692
|
<div class="method-source-code"
|
|
1635
1693
|
id="alert-evel-ame-source">
|
|
1636
1694
|
<pre>
|
|
1637
|
-
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line
|
|
1638
|
-
|
|
1639
|
-
|
|
1640
|
-
|
|
1641
|
-
|
|
1695
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line 514</span>
|
|
1696
|
+
514: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">alertLevelName</span>(<span class="ruby-identifier">levelIndex</span>)
|
|
1697
|
+
515: <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>]
|
|
1698
|
+
516: <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>]
|
|
1699
|
+
517: <span class="ruby-keyword kw">end</span></pre>
|
|
1700
|
+
</div>
|
|
1701
|
+
|
|
1702
|
+
</div>
|
|
1703
|
+
|
|
1704
|
+
|
|
1705
|
+
|
|
1706
|
+
|
|
1707
|
+
</div>
|
|
1708
|
+
|
|
1709
|
+
|
|
1710
|
+
<div id="any-esource-vailable--method" class="method-detail ">
|
|
1711
|
+
<a name="method-i-anyResourceAvailable%3F"></a>
|
|
1712
|
+
|
|
1713
|
+
<div class="method-heading">
|
|
1714
|
+
|
|
1715
|
+
<span class="method-name">anyResourceAvailable?</span><span
|
|
1716
|
+
class="method-args">(sbIdx)</span>
|
|
1717
|
+
<span class="method-click-advice">click to toggle source</span>
|
|
1718
|
+
|
|
1719
|
+
</div>
|
|
1720
|
+
|
|
1721
|
+
<div class="method-description">
|
|
1722
|
+
|
|
1723
|
+
<p>
|
|
1724
|
+
Return true if for the date specified by the global scoreboard index
|
|
1725
|
+
<em>sbIdx</em> there is any resource that is available.
|
|
1726
|
+
</p>
|
|
1727
|
+
|
|
1728
|
+
|
|
1729
|
+
|
|
1730
|
+
<div class="method-source-code"
|
|
1731
|
+
id="any-esource-vailable--source">
|
|
1732
|
+
<pre>
|
|
1733
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line 954</span>
|
|
1734
|
+
954: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">anyResourceAvailable?</span>(<span class="ruby-identifier">sbIdx</span>)
|
|
1735
|
+
955: <span class="ruby-ivar">@resourceAvailability</span>[<span class="ruby-identifier">sbIdx</span>]
|
|
1736
|
+
956: <span class="ruby-keyword kw">end</span></pre>
|
|
1642
1737
|
</div>
|
|
1643
1738
|
|
|
1644
1739
|
</div>
|
|
@@ -1673,14 +1768,14 @@ tasks over resources here.
|
|
|
1673
1768
|
<div class="method-source-code"
|
|
1674
1769
|
id="attribute-ame-source">
|
|
1675
1770
|
<pre>
|
|
1676
|
-
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line
|
|
1677
|
-
|
|
1678
|
-
|
|
1679
|
-
|
|
1680
|
-
|
|
1681
|
-
|
|
1682
|
-
|
|
1683
|
-
|
|
1771
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line 983</span>
|
|
1772
|
+
983: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">attributeName</span>(<span class="ruby-identifier">id</span>)
|
|
1773
|
+
984: <span class="ruby-comment cmt"># We have to see if the attribute id is a task or resource attribute and</span>
|
|
1774
|
+
985: <span class="ruby-comment cmt"># return it's name.</span>
|
|
1775
|
+
986: (<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>
|
|
1776
|
+
987: (<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>
|
|
1777
|
+
988: <span class="ruby-identifier">name</span>
|
|
1778
|
+
989: <span class="ruby-keyword kw">end</span></pre>
|
|
1684
1779
|
</div>
|
|
1685
1780
|
|
|
1686
1781
|
</div>
|
|
@@ -1714,22 +1809,33 @@ format.
|
|
|
1714
1809
|
<div class="method-source-code"
|
|
1715
1810
|
id="check-eports-source">
|
|
1716
1811
|
<pre>
|
|
1717
|
-
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line
|
|
1718
|
-
|
|
1719
|
-
|
|
1720
|
-
|
|
1721
|
-
|
|
1722
|
-
|
|
1723
|
-
|
|
1724
|
-
|
|
1725
|
-
|
|
1726
|
-
|
|
1727
|
-
|
|
1728
|
-
|
|
1729
|
-
|
|
1730
|
-
|
|
1731
|
-
|
|
1732
|
-
|
|
1812
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line 670</span>
|
|
1813
|
+
670: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">checkReports</span>
|
|
1814
|
+
671: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@reports</span>.<span class="ruby-identifier">empty?</span>
|
|
1815
|
+
672: <span class="ruby-identifier">warning</span>(<span class="ruby-value str">'no_report_defined'</span>,
|
|
1816
|
+
673: <span class="ruby-value str">"This project has no reports defined. "</span> <span class="ruby-operator">+</span>
|
|
1817
|
+
674: <span class="ruby-value str">"No output data will be generated."</span>)
|
|
1818
|
+
675: <span class="ruby-keyword kw">end</span>
|
|
1819
|
+
676:
|
|
1820
|
+
677: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@accounts</span>.<span class="ruby-identifier">empty?</span>
|
|
1821
|
+
678: <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>
|
|
1822
|
+
679: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">report</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value str">'costAccount'</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">'revenueAccount'</span>).<span class="ruby-identifier">nil?</span>
|
|
1823
|
+
680: <span class="ruby-identifier">warning</span>(<span class="ruby-value str">'report_without_balance'</span>,
|
|
1824
|
+
681: <span class="ruby-node">"The report #{report.fullId} has no 'balance' defined. "</span> <span class="ruby-operator">+</span>
|
|
1825
|
+
682: <span class="ruby-value str">"No cost or revenue computation will be possible."</span>,
|
|
1826
|
+
683: <span class="ruby-identifier">report</span>.<span class="ruby-identifier">sourceFileInfo</span>)
|
|
1827
|
+
684: <span class="ruby-keyword kw">end</span>
|
|
1828
|
+
685: <span class="ruby-keyword kw">end</span>
|
|
1829
|
+
686: <span class="ruby-keyword kw">end</span>
|
|
1830
|
+
687:
|
|
1831
|
+
688: <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>
|
|
1832
|
+
689: <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>
|
|
1833
|
+
690: <span class="ruby-keyword kw">end</span>
|
|
1834
|
+
691:
|
|
1835
|
+
692: <span class="ruby-identifier">warning</span>(<span class="ruby-value str">'all_formats_empty'</span>,
|
|
1836
|
+
693: <span class="ruby-value str">"None of the reports has a 'formats' attribute. "</span> <span class="ruby-operator">+</span>
|
|
1837
|
+
694: <span class="ruby-value str">"No output data will be generated."</span>)
|
|
1838
|
+
695: <span class="ruby-keyword kw">end</span></pre>
|
|
1733
1839
|
</div>
|
|
1734
1840
|
|
|
1735
1841
|
</div>
|
|
@@ -1760,10 +1866,10 @@ format.
|
|
|
1760
1866
|
<div class="method-source-code"
|
|
1761
1867
|
id="check-ime-heets-source">
|
|
1762
1868
|
<pre>
|
|
1763
|
-
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line
|
|
1764
|
-
|
|
1765
|
-
|
|
1766
|
-
|
|
1869
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line 792</span>
|
|
1870
|
+
792: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">checkTimeSheets</span>
|
|
1871
|
+
793: <span class="ruby-ivar">@timeSheets</span>.<span class="ruby-identifier">check</span>
|
|
1872
|
+
794: <span class="ruby-keyword kw">end</span></pre>
|
|
1767
1873
|
</div>
|
|
1768
1874
|
|
|
1769
1875
|
</div>
|
|
@@ -1794,12 +1900,12 @@ format.
|
|
|
1794
1900
|
<div class="method-source-code"
|
|
1795
1901
|
id="collect-ime-ff-ntervals-source">
|
|
1796
1902
|
<pre>
|
|
1797
|
-
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line
|
|
1798
|
-
|
|
1799
|
-
|
|
1800
|
-
|
|
1801
|
-
|
|
1802
|
-
|
|
1903
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line 934</span>
|
|
1904
|
+
934: <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>)
|
|
1905
|
+
935: <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>
|
|
1906
|
+
936: <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>
|
|
1907
|
+
937: <span class="ruby-keyword kw">end</span>
|
|
1908
|
+
938: <span class="ruby-keyword kw">end</span></pre>
|
|
1803
1909
|
</div>
|
|
1804
1910
|
|
|
1805
1911
|
</div>
|
|
@@ -1833,10 +1939,10 @@ setting of the global ‘dailyworkinghours’ attribute.
|
|
|
1833
1939
|
<div class="method-source-code"
|
|
1834
1940
|
id="convert-o-aily-oad-source">
|
|
1835
1941
|
<pre>
|
|
1836
|
-
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line
|
|
1837
|
-
|
|
1838
|
-
|
|
1839
|
-
|
|
1942
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line 893</span>
|
|
1943
|
+
893: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">convertToDailyLoad</span>(<span class="ruby-identifier">seconds</span>)
|
|
1944
|
+
894: <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>)
|
|
1945
|
+
895: <span class="ruby-keyword kw">end</span></pre>
|
|
1840
1946
|
</div>
|
|
1841
1947
|
|
|
1842
1948
|
</div>
|
|
@@ -1870,10 +1976,10 @@ can be set to other values by the user.
|
|
|
1870
1976
|
<div class="method-source-code"
|
|
1871
1977
|
id="daily-orking-ours-source">
|
|
1872
1978
|
<pre>
|
|
1873
|
-
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line
|
|
1874
|
-
|
|
1875
|
-
|
|
1876
|
-
|
|
1979
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line 529</span>
|
|
1980
|
+
529: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">dailyWorkingHours</span>
|
|
1981
|
+
530: <span class="ruby-ivar">@attributes</span>[<span class="ruby-value str">'dailyworkinghours'</span>].<span class="ruby-identifier">to_f</span>
|
|
1982
|
+
531: <span class="ruby-keyword kw">end</span></pre>
|
|
1877
1983
|
</div>
|
|
1878
1984
|
|
|
1879
1985
|
</div>
|
|
@@ -1909,21 +2015,21 @@ time frame.
|
|
|
1909
2015
|
<div class="method-source-code"
|
|
1910
2016
|
id="date-o-dx-source">
|
|
1911
2017
|
<pre>
|
|
1912
|
-
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line
|
|
1913
|
-
|
|
1914
|
-
|
|
1915
|
-
|
|
1916
|
-
|
|
1917
|
-
|
|
1918
|
-
|
|
1919
|
-
|
|
1920
|
-
|
|
1921
|
-
|
|
1922
|
-
|
|
1923
|
-
|
|
1924
|
-
|
|
1925
|
-
|
|
1926
|
-
|
|
2018
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line 919</span>
|
|
2019
|
+
919: <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">true</span>)
|
|
2020
|
+
920: <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>])
|
|
2021
|
+
921: <span class="ruby-comment cmt"># Date is out of range.</span>
|
|
2022
|
+
922: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">forceIntoProject</span>
|
|
2023
|
+
923: <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>]
|
|
2024
|
+
924: <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>]
|
|
2025
|
+
925: <span class="ruby-keyword kw">else</span>
|
|
2026
|
+
926: <span class="ruby-identifier">raise</span> <span class="ruby-node">"Date #{date} is out of project time range "</span> <span class="ruby-operator">+</span>
|
|
2027
|
+
927: <span class="ruby-node">"(#{@attributes['start']} - #{@attributes['end']})"</span>
|
|
2028
|
+
928: <span class="ruby-keyword kw">end</span>
|
|
2029
|
+
929: <span class="ruby-keyword kw">end</span>
|
|
2030
|
+
930: <span class="ruby-comment cmt"># Calculate the corresponding index.</span>
|
|
2031
|
+
931: ((<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>
|
|
2032
|
+
932: <span class="ruby-keyword kw">end</span></pre>
|
|
1927
2033
|
</div>
|
|
1928
2034
|
|
|
1929
2035
|
</div>
|
|
@@ -1958,10 +2064,10 @@ of the whole project.
|
|
|
1958
2064
|
<div class="method-source-code"
|
|
1959
2065
|
id="deep-clone-source">
|
|
1960
2066
|
<pre>
|
|
1961
|
-
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line
|
|
1962
|
-
|
|
1963
|
-
|
|
1964
|
-
|
|
2067
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line 456</span>
|
|
2068
|
+
456: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">deep_clone</span>
|
|
2069
|
+
457: <span class="ruby-keyword kw">self</span>
|
|
2070
|
+
458: <span class="ruby-keyword kw">end</span></pre>
|
|
1965
2071
|
</div>
|
|
1966
2072
|
|
|
1967
2073
|
</div>
|
|
@@ -1978,7 +2084,7 @@ of the whole project.
|
|
|
1978
2084
|
<div class="method-heading">
|
|
1979
2085
|
|
|
1980
2086
|
<span class="method-name">error</span><span
|
|
1981
|
-
class="method-args">(id, text)</span>
|
|
2087
|
+
class="method-args">(id, text, sourceFileInfo = nil)</span>
|
|
1982
2088
|
<span class="method-click-advice">click to toggle source</span>
|
|
1983
2089
|
|
|
1984
2090
|
</div>
|
|
@@ -1986,7 +2092,7 @@ of the whole project.
|
|
|
1986
2092
|
<div class="method-description">
|
|
1987
2093
|
|
|
1988
2094
|
<p>
|
|
1989
|
-
|
|
2095
|
+
Generate an error message via the message handler.
|
|
1990
2096
|
</p>
|
|
1991
2097
|
|
|
1992
2098
|
|
|
@@ -1994,10 +2100,10 @@ This function sends an error message to the message handler.
|
|
|
1994
2100
|
<div class="method-source-code"
|
|
1995
2101
|
id="error-source">
|
|
1996
2102
|
<pre>
|
|
1997
|
-
|
|
1998
|
-
|
|
1999
|
-
|
|
2000
|
-
|
|
2103
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line 1061</span>
|
|
2104
|
+
1061: <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>, <span class="ruby-identifier">sourceFileInfo</span> = <span class="ruby-keyword kw">nil</span>)
|
|
2105
|
+
1062: <span class="ruby-ivar">@messageHandler</span>.<span class="ruby-identifier">error</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">sourceFileInfo</span>)
|
|
2106
|
+
1063: <span class="ruby-keyword kw">end</span></pre>
|
|
2001
2107
|
</div>
|
|
2002
2108
|
|
|
2003
2109
|
</div>
|
|
@@ -2028,46 +2134,46 @@ This function sends an error message to the message handler.
|
|
|
2028
2134
|
<div class="method-source-code"
|
|
2029
2135
|
id="generate-eport-source">
|
|
2030
2136
|
<pre>
|
|
2031
|
-
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line
|
|
2032
|
-
|
|
2033
|
-
|
|
2034
|
-
|
|
2035
|
-
|
|
2036
|
-
|
|
2037
|
-
|
|
2038
|
-
|
|
2039
|
-
|
|
2040
|
-
|
|
2041
|
-
|
|
2042
|
-
|
|
2043
|
-
|
|
2044
|
-
|
|
2045
|
-
|
|
2046
|
-
|
|
2047
|
-
|
|
2048
|
-
|
|
2049
|
-
|
|
2050
|
-
|
|
2051
|
-
|
|
2052
|
-
|
|
2053
|
-
|
|
2054
|
-
|
|
2055
|
-
|
|
2056
|
-
|
|
2057
|
-
|
|
2058
|
-
|
|
2059
|
-
|
|
2060
|
-
|
|
2061
|
-
|
|
2062
|
-
|
|
2063
|
-
|
|
2064
|
-
|
|
2065
|
-
|
|
2066
|
-
|
|
2067
|
-
|
|
2068
|
-
|
|
2069
|
-
|
|
2070
|
-
|
|
2137
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line 739</span>
|
|
2138
|
+
739: <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>,
|
|
2139
|
+
740: <span class="ruby-identifier">dynamicAttributes</span> = <span class="ruby-keyword kw">nil</span>)
|
|
2140
|
+
741: <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>
|
|
2141
|
+
742: [ <span class="ruby-identifier">reportId</span> ]
|
|
2142
|
+
743: <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>
|
|
2143
|
+
744: <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>])
|
|
2144
|
+
745: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'unknown_report_id'</span>,
|
|
2145
|
+
746: <span class="ruby-node">"Request to generate unknown report #{id}"</span>)
|
|
2146
|
+
747: <span class="ruby-keyword kw">end</span>
|
|
2147
|
+
748: <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>
|
|
2148
|
+
749: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'formats_empty'</span>,
|
|
2149
|
+
750: <span class="ruby-node">"The report #{report.fullId} has no 'formats' attribute. "</span> <span class="ruby-operator">+</span>
|
|
2150
|
+
751: <span class="ruby-value str">"No output data will be generated."</span>, <span class="ruby-identifier">report</span>.<span class="ruby-identifier">sourceFileInfo</span>)
|
|
2151
|
+
752: <span class="ruby-keyword kw">end</span>
|
|
2152
|
+
753:
|
|
2153
|
+
754: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">startProgressMeter</span>(<span class="ruby-node">"Report #{report.name}"</span>)
|
|
2154
|
+
755: <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>))
|
|
2155
|
+
756:
|
|
2156
|
+
757: <span class="ruby-comment cmt"># If we have dynamic attributes we need to backup the old attributes</span>
|
|
2157
|
+
758: <span class="ruby-comment cmt"># first, then parse the dynamicAttributes String replacing the</span>
|
|
2158
|
+
759: <span class="ruby-comment cmt"># original values.</span>
|
|
2159
|
+
760: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">dynamicAttributes</span>
|
|
2160
|
+
761: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">dynamicAttributes</span>.<span class="ruby-identifier">empty?</span>
|
|
2161
|
+
762: <span class="ruby-identifier">context</span>.<span class="ruby-identifier">attributeBackup</span> = <span class="ruby-identifier">report</span>.<span class="ruby-identifier">backupAttributes</span>
|
|
2162
|
+
763: <span class="ruby-identifier">parser</span> = <span class="ruby-constant">ProjectFileParser</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@messageHandler</span>)
|
|
2163
|
+
764: <span class="ruby-identifier">parser</span>.<span class="ruby-identifier">parseReportAttributes</span>(<span class="ruby-identifier">report</span>, <span class="ruby-identifier">dynamicAttributes</span>)
|
|
2164
|
+
765: <span class="ruby-keyword kw">end</span>
|
|
2165
|
+
766: <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>)
|
|
2166
|
+
767: <span class="ruby-keyword kw">end</span>
|
|
2167
|
+
768:
|
|
2168
|
+
769: <span class="ruby-identifier">report</span>.<span class="ruby-identifier">generate</span>(<span class="ruby-identifier">formats</span>)
|
|
2169
|
+
770:
|
|
2170
|
+
771: <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>
|
|
2171
|
+
772: <span class="ruby-identifier">report</span>.<span class="ruby-identifier">restoreAttributes</span>(<span class="ruby-identifier">context</span>.<span class="ruby-identifier">attributeBackup</span>)
|
|
2172
|
+
773: <span class="ruby-keyword kw">end</span>
|
|
2173
|
+
774: <span class="ruby-ivar">@reportContexts</span>.<span class="ruby-identifier">pop</span>
|
|
2174
|
+
775: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">stopProgressMeter</span>
|
|
2175
|
+
776: <span class="ruby-keyword kw">end</span>
|
|
2176
|
+
777: <span class="ruby-keyword kw">end</span></pre>
|
|
2071
2177
|
</div>
|
|
2072
2178
|
|
|
2073
2179
|
</div>
|
|
@@ -2102,46 +2208,101 @@ href="Project.html#method-i-schedule">Project#schedule</a> has been called.
|
|
|
2102
2208
|
<div class="method-source-code"
|
|
2103
2209
|
id="generate-eports-source">
|
|
2104
2210
|
<pre>
|
|
2105
|
-
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line
|
|
2106
|
-
|
|
2107
|
-
|
|
2108
|
-
|
|
2109
|
-
|
|
2110
|
-
|
|
2111
|
-
|
|
2112
|
-
|
|
2113
|
-
|
|
2114
|
-
|
|
2115
|
-
|
|
2116
|
-
|
|
2117
|
-
|
|
2118
|
-
|
|
2119
|
-
|
|
2120
|
-
|
|
2121
|
-
|
|
2122
|
-
|
|
2123
|
-
|
|
2124
|
-
|
|
2125
|
-
|
|
2126
|
-
|
|
2127
|
-
|
|
2128
|
-
|
|
2129
|
-
|
|
2130
|
-
|
|
2131
|
-
|
|
2132
|
-
|
|
2133
|
-
|
|
2134
|
-
|
|
2135
|
-
|
|
2136
|
-
|
|
2137
|
-
|
|
2138
|
-
|
|
2139
|
-
|
|
2140
|
-
|
|
2141
|
-
|
|
2142
|
-
|
|
2143
|
-
|
|
2144
|
-
|
|
2211
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line 699</span>
|
|
2212
|
+
699: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateReports</span>(<span class="ruby-identifier">maxCpuCores</span>)
|
|
2213
|
+
700: <span class="ruby-ivar">@reports</span>.<span class="ruby-identifier">index</span>
|
|
2214
|
+
701: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">maxCpuCores</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span>
|
|
2215
|
+
702: <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>
|
|
2216
|
+
703: <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>
|
|
2217
|
+
704: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">startProgressMeter</span>(<span class="ruby-node">"Report #{report.name}"</span>)
|
|
2218
|
+
705: <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>))
|
|
2219
|
+
706: <span class="ruby-identifier">report</span>.<span class="ruby-identifier">generate</span>
|
|
2220
|
+
707: <span class="ruby-ivar">@reportContexts</span>.<span class="ruby-identifier">pop</span>
|
|
2221
|
+
708: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">stopProgressMeter</span>
|
|
2222
|
+
709: <span class="ruby-keyword kw">end</span>
|
|
2223
|
+
710: <span class="ruby-keyword kw">else</span>
|
|
2224
|
+
711: <span class="ruby-comment cmt"># Kickoff the generation of all reports by pushing the jobs into the</span>
|
|
2225
|
+
712: <span class="ruby-comment cmt"># BatchProcessor queue.</span>
|
|
2226
|
+
713: <span class="ruby-identifier">bp</span> = <span class="ruby-constant">BatchProcessor</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">maxCpuCores</span>)
|
|
2227
|
+
714: <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>
|
|
2228
|
+
715: <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>
|
|
2229
|
+
716: <span class="ruby-identifier">bp</span>.<span class="ruby-identifier">queue</span>(<span class="ruby-identifier">report</span>) {
|
|
2230
|
+
717: <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>))
|
|
2231
|
+
718: <span class="ruby-identifier">res</span> = <span class="ruby-identifier">report</span>.<span class="ruby-identifier">generate</span>
|
|
2232
|
+
719: <span class="ruby-ivar">@reportContexts</span>.<span class="ruby-identifier">pop</span>
|
|
2233
|
+
720: <span class="ruby-identifier">res</span>
|
|
2234
|
+
721: }
|
|
2235
|
+
722: <span class="ruby-keyword kw">end</span>
|
|
2236
|
+
723: <span class="ruby-comment cmt"># Now wait for all the jobs to finish.</span>
|
|
2237
|
+
724: <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>
|
|
2238
|
+
725: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">startProgressMeter</span>(<span class="ruby-node">"Report #{report.tag.name}"</span>)
|
|
2239
|
+
726: <span class="ruby-identifier">$stdout</span>.<span class="ruby-identifier">print</span>(<span class="ruby-identifier">report</span>.<span class="ruby-identifier">stdout</span>)
|
|
2240
|
+
727: <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">print</span>(<span class="ruby-identifier">report</span>.<span class="ruby-identifier">stderr</span>)
|
|
2241
|
+
728: <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>
|
|
2242
|
+
729: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'rg_signal'</span>, <span class="ruby-value str">"Signal raised"</span>)
|
|
2243
|
+
730: <span class="ruby-keyword kw">end</span>
|
|
2244
|
+
731: <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>
|
|
2245
|
+
732: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'rg_abort'</span>, <span class="ruby-value str">"Process aborted"</span>)
|
|
2246
|
+
733: <span class="ruby-keyword kw">end</span>
|
|
2247
|
+
734: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">stopProgressMeter</span>
|
|
2248
|
+
735: <span class="ruby-keyword kw">end</span>
|
|
2249
|
+
736: <span class="ruby-keyword kw">end</span>
|
|
2250
|
+
737: <span class="ruby-keyword kw">end</span></pre>
|
|
2251
|
+
</div>
|
|
2252
|
+
|
|
2253
|
+
</div>
|
|
2254
|
+
|
|
2255
|
+
|
|
2256
|
+
|
|
2257
|
+
|
|
2258
|
+
</div>
|
|
2259
|
+
|
|
2260
|
+
|
|
2261
|
+
<div id="has-orking-ime-method" class="method-detail ">
|
|
2262
|
+
<a name="method-i-hasWorkingTime"></a>
|
|
2263
|
+
|
|
2264
|
+
<div class="method-heading">
|
|
2265
|
+
|
|
2266
|
+
<span class="method-callseq">hasWorkingTime(startTime, endTime) → true or false
|
|
2267
|
+
hasWorkingTime(interval) → true or false</span>
|
|
2268
|
+
<span class="method-click-advice">click to toggle source</span>
|
|
2269
|
+
|
|
2270
|
+
</div>
|
|
2271
|
+
|
|
2272
|
+
<div class="method-description">
|
|
2273
|
+
|
|
2274
|
+
<p>
|
|
2275
|
+
Return true if the interval overlaps with a globally defined working time
|
|
2276
|
+
or false if not. Global work time means, no global vacation defined and the
|
|
2277
|
+
slot lies within a defined global working time period.
|
|
2278
|
+
</p>
|
|
2279
|
+
|
|
2280
|
+
|
|
2281
|
+
|
|
2282
|
+
<div class="method-source-code"
|
|
2283
|
+
id="has-orking-ime-source">
|
|
2284
|
+
<pre>
|
|
2285
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line 870</span>
|
|
2286
|
+
870: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">hasWorkingTime</span>(*<span class="ruby-identifier">args</span>)
|
|
2287
|
+
871: <span class="ruby-comment cmt"># Normalize argument(s) to TimeInterval</span>
|
|
2288
|
+
872: <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>
|
|
2289
|
+
873: <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">TimeInterval</span>)
|
|
2290
|
+
874: <span class="ruby-identifier">startIdx</span> = <span class="ruby-identifier">dateToIdx</span>(<span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">start</span>)
|
|
2291
|
+
875: <span class="ruby-identifier">endIdx</span> = <span class="ruby-identifier">dateToIdx</span>(<span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">end</span>)
|
|
2292
|
+
876: <span class="ruby-keyword kw">else</span>
|
|
2293
|
+
877: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">"Unsupported argument type #{args[0].class}"</span>
|
|
2294
|
+
878: <span class="ruby-keyword kw">end</span>
|
|
2295
|
+
879: <span class="ruby-keyword kw">else</span>
|
|
2296
|
+
880: <span class="ruby-identifier">startIdx</span> = <span class="ruby-identifier">dateToIdx</span>(<span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>])
|
|
2297
|
+
881: <span class="ruby-identifier">endIdx</span> = <span class="ruby-identifier">dateToIdx</span>(<span class="ruby-identifier">args</span>[<span class="ruby-value">1</span>])
|
|
2298
|
+
882: <span class="ruby-keyword kw">end</span>
|
|
2299
|
+
883:
|
|
2300
|
+
884: <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>
|
|
2301
|
+
885: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@scoreboard</span>[<span class="ruby-identifier">idx</span>]
|
|
2302
|
+
886: <span class="ruby-keyword kw">end</span>
|
|
2303
|
+
887:
|
|
2304
|
+
888: <span class="ruby-keyword kw">false</span>
|
|
2305
|
+
889: <span class="ruby-keyword kw">end</span></pre>
|
|
2145
2306
|
</div>
|
|
2146
2307
|
|
|
2147
2308
|
</div>
|
|
@@ -2177,13 +2338,13 @@ raised.
|
|
|
2177
2338
|
<div class="method-source-code"
|
|
2178
2339
|
id="idx-o-ate-source">
|
|
2179
2340
|
<pre>
|
|
2180
|
-
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line
|
|
2181
|
-
|
|
2182
|
-
|
|
2183
|
-
|
|
2184
|
-
|
|
2185
|
-
|
|
2186
|
-
|
|
2341
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line 909</span>
|
|
2342
|
+
909: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">idxToDate</span>(<span class="ruby-identifier">idx</span>)
|
|
2343
|
+
910: <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>)
|
|
2344
|
+
911: <span class="ruby-identifier">raise</span> <span class="ruby-value str">"Scoreboard index out of range"</span>
|
|
2345
|
+
912: <span class="ruby-keyword kw">end</span>
|
|
2346
|
+
913: <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>]
|
|
2347
|
+
914: <span class="ruby-keyword kw">end</span></pre>
|
|
2187
2348
|
</div>
|
|
2188
2349
|
|
|
2189
2350
|
</div>
|
|
@@ -2199,7 +2360,8 @@ raised.
|
|
|
2199
2360
|
|
|
2200
2361
|
<div class="method-heading">
|
|
2201
2362
|
|
|
2202
|
-
<span class="method-callseq">isWorkingTime(
|
|
2363
|
+
<span class="method-callseq">isWorkingTime(slotIdx) → true or false
|
|
2364
|
+
isWorkingTime(slot) → true or false
|
|
2203
2365
|
isWorkingTime(startTime, endTime) → true or false
|
|
2204
2366
|
isWorkingTime(interval) → true or false</span>
|
|
2205
2367
|
<span class="method-click-advice">click to toggle source</span>
|
|
@@ -2209,11 +2371,12 @@ isWorkingTime(interval) → true or false</span>
|
|
|
2209
2371
|
<div class="method-description">
|
|
2210
2372
|
|
|
2211
2373
|
<p>
|
|
2212
|
-
Return true if the
|
|
2213
|
-
|
|
2214
|
-
|
|
2215
|
-
working time to return true as result. Global work time means, no
|
|
2216
|
-
defined and the slot lies within a defined working time
|
|
2374
|
+
Return true if the slot or interval is withing globally defined working
|
|
2375
|
+
time or false if not. If the argument is a <a
|
|
2376
|
+
href="TimeInterval.html">TimeInterval</a>, all slots of the interval must
|
|
2377
|
+
be working time to return true as result. Global work time means, no global
|
|
2378
|
+
vacation defined and the slot lies within a defined global working time
|
|
2379
|
+
period.
|
|
2217
2380
|
</p>
|
|
2218
2381
|
|
|
2219
2382
|
|
|
@@ -2221,29 +2384,31 @@ defined and the slot lies within a defined working time period.
|
|
|
2221
2384
|
<div class="method-source-code"
|
|
2222
2385
|
id="is-orking-ime-source">
|
|
2223
2386
|
<pre>
|
|
2224
|
-
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line
|
|
2225
|
-
|
|
2226
|
-
|
|
2227
|
-
|
|
2228
|
-
|
|
2229
|
-
|
|
2230
|
-
|
|
2231
|
-
|
|
2232
|
-
|
|
2233
|
-
|
|
2234
|
-
|
|
2235
|
-
|
|
2236
|
-
|
|
2237
|
-
|
|
2238
|
-
|
|
2239
|
-
|
|
2240
|
-
|
|
2241
|
-
|
|
2242
|
-
|
|
2243
|
-
|
|
2244
|
-
|
|
2245
|
-
|
|
2246
|
-
|
|
2387
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line 838</span>
|
|
2388
|
+
838: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">isWorkingTime</span>(*<span class="ruby-identifier">args</span>)
|
|
2389
|
+
839: <span class="ruby-comment cmt"># Normalize argument(s) to TimeInterval</span>
|
|
2390
|
+
840: <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>
|
|
2391
|
+
841: <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">Fixnum</span>) <span class="ruby-operator">||</span> <span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Bignum</span>)
|
|
2392
|
+
842: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@scoreboard</span>[<span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>]].<span class="ruby-identifier">nil?</span>
|
|
2393
|
+
843: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">TjTime</span>)
|
|
2394
|
+
844: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@scoreboard</span>[<span class="ruby-identifier">dateToIdx</span>(<span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>])].<span class="ruby-identifier">nil?</span>
|
|
2395
|
+
845: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">TimeInterval</span>)
|
|
2396
|
+
846: <span class="ruby-identifier">startIdx</span> = <span class="ruby-identifier">dateToIdx</span>(<span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">start</span>)
|
|
2397
|
+
847: <span class="ruby-identifier">endIdx</span> = <span class="ruby-identifier">dateToIdx</span>(<span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">end</span>)
|
|
2398
|
+
848: <span class="ruby-keyword kw">else</span>
|
|
2399
|
+
849: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">"Unsupported argument type #{args[0].class}"</span>
|
|
2400
|
+
850: <span class="ruby-keyword kw">end</span>
|
|
2401
|
+
851: <span class="ruby-keyword kw">else</span>
|
|
2402
|
+
852: <span class="ruby-identifier">startIdx</span> = <span class="ruby-identifier">dateToIdx</span>(<span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>])
|
|
2403
|
+
853: <span class="ruby-identifier">endIdx</span> = <span class="ruby-identifier">dateToIdx</span>(<span class="ruby-identifier">args</span>[<span class="ruby-value">1</span>])
|
|
2404
|
+
854: <span class="ruby-keyword kw">end</span>
|
|
2405
|
+
855:
|
|
2406
|
+
856: <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>
|
|
2407
|
+
857: <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">@scoreboard</span>[<span class="ruby-identifier">idx</span>]
|
|
2408
|
+
858: <span class="ruby-keyword kw">end</span>
|
|
2409
|
+
859:
|
|
2410
|
+
860: <span class="ruby-keyword kw">true</span>
|
|
2411
|
+
861: <span class="ruby-keyword kw">end</span></pre>
|
|
2247
2412
|
</div>
|
|
2248
2413
|
|
|
2249
2414
|
</div>
|
|
@@ -2274,23 +2439,23 @@ defined and the slot lies within a defined working time period.
|
|
|
2274
2439
|
<div class="method-source-code"
|
|
2275
2440
|
id="journal-source">
|
|
2276
2441
|
<pre>
|
|
2277
|
-
|
|
2278
|
-
|
|
2279
|
-
|
|
2280
|
-
|
|
2281
|
-
|
|
2282
|
-
|
|
2283
|
-
|
|
2284
|
-
|
|
2285
|
-
|
|
2286
|
-
|
|
2287
|
-
|
|
2288
|
-
|
|
2289
|
-
|
|
2290
|
-
|
|
2291
|
-
|
|
2292
|
-
|
|
2293
|
-
|
|
2442
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line 991</span>
|
|
2443
|
+
991: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">journal</span>(<span class="ruby-identifier">query</span>)
|
|
2444
|
+
992: <span class="ruby-identifier">entries</span> = <span class="ruby-constant">JournalEntryList</span>.<span class="ruby-identifier">new</span>
|
|
2445
|
+
993: <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>
|
|
2446
|
+
994: <span class="ruby-comment cmt"># We only care about top-level tasks.</span>
|
|
2447
|
+
995: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">task</span>.<span class="ruby-identifier">parent</span>
|
|
2448
|
+
996:
|
|
2449
|
+
997: <span class="ruby-identifier">entries</span> <span class="ruby-operator">+=</span> (<span class="ruby-identifier">e</span> = <span class="ruby-ivar">@attributes</span>[<span class="ruby-value str">'journal'</span>].
|
|
2450
|
+
998: <span class="ruby-identifier">currentEntriesR</span>(<span class="ruby-identifier">query</span>.<span class="ruby-identifier">end</span>, <span class="ruby-identifier">task</span>, <span class="ruby-value">0</span>, <span class="ruby-identifier">query</span>.<span class="ruby-identifier">start</span>,
|
|
2451
|
+
999: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">hideJournalEntry</span>))
|
|
2452
|
+
1000: <span class="ruby-keyword kw">end</span>
|
|
2453
|
+
1001:
|
|
2454
|
+
1002: <span class="ruby-comment cmt"># Eliminate duplicates due to entries from adopted tasks</span>
|
|
2455
|
+
1003: <span class="ruby-identifier">entries</span>.<span class="ruby-identifier">uniq!</span>
|
|
2456
|
+
1004:
|
|
2457
|
+
1005: <span class="ruby-identifier">journalMessages</span>(<span class="ruby-identifier">entries</span>, <span class="ruby-identifier">query</span>, <span class="ruby-keyword kw">true</span>)
|
|
2458
|
+
1006: <span class="ruby-keyword kw">end</span></pre>
|
|
2294
2459
|
</div>
|
|
2295
2460
|
|
|
2296
2461
|
</div>
|
|
@@ -2324,44 +2489,43 @@ href="Query.html">Query</a>.
|
|
|
2324
2489
|
<div class="method-source-code"
|
|
2325
2490
|
id="journal-essages-source">
|
|
2326
2491
|
<pre>
|
|
2327
|
-
|
|
2328
|
-
|
|
2329
|
-
|
|
2330
|
-
|
|
2331
|
-
|
|
2332
|
-
|
|
2333
|
-
|
|
2334
|
-
|
|
2335
|
-
|
|
2336
|
-
|
|
2337
|
-
|
|
2338
|
-
|
|
2339
|
-
|
|
2340
|
-
|
|
2341
|
-
|
|
2342
|
-
|
|
2343
|
-
|
|
2344
|
-
|
|
2345
|
-
|
|
2346
|
-
|
|
2347
|
-
|
|
2348
|
-
|
|
2349
|
-
|
|
2350
|
-
|
|
2351
|
-
|
|
2352
|
-
|
|
2353
|
-
|
|
2354
|
-
|
|
2355
|
-
|
|
2356
|
-
|
|
2357
|
-
|
|
2358
|
-
|
|
2359
|
-
|
|
2360
|
-
|
|
2361
|
-
|
|
2362
|
-
|
|
2363
|
-
|
|
2364
|
-
971: <span class="ruby-keyword kw">end</span></pre>
|
|
2492
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line 1009</span>
|
|
2493
|
+
1009: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">journalMessages</span>(<span class="ruby-identifier">entries</span>, <span class="ruby-identifier">query</span>, <span class="ruby-identifier">longVersion</span>)
|
|
2494
|
+
1010: <span class="ruby-comment cmt"># The components of the message are either UTF-8 text or RichText. For</span>
|
|
2495
|
+
1011: <span class="ruby-comment cmt"># the RichText components, we use the originally provided markup since</span>
|
|
2496
|
+
1012: <span class="ruby-comment cmt"># we compose the result as RichText markup first.</span>
|
|
2497
|
+
1013: <span class="ruby-identifier">rText</span> = <span class="ruby-value str">''</span>
|
|
2498
|
+
1014: <span class="ruby-identifier">entries</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">entry</span><span class="ruby-operator">|</span>
|
|
2499
|
+
1015: <span class="ruby-identifier">rText</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">"==== <nowiki>"</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">headline</span> <span class="ruby-operator">+</span> <span class="ruby-value str">"</nowiki> ====\n"</span>
|
|
2500
|
+
1016: <span class="ruby-comment cmt">#rText += "''Reported on #{entry.date.to_s(query.timeFormat)}'' "</span>
|
|
2501
|
+
1017: <span class="ruby-comment cmt">#if entry.author</span>
|
|
2502
|
+
1018: <span class="ruby-comment cmt"># rText += "''by <nowiki>#{entry.author.name}</nowiki>''"</span>
|
|
2503
|
+
1019: <span class="ruby-comment cmt">#end</span>
|
|
2504
|
+
1020: <span class="ruby-comment cmt">#rText += "\n\n"</span>
|
|
2505
|
+
1021: <span class="ruby-comment cmt">#unless entry.flags.empty?</span>
|
|
2506
|
+
1022: <span class="ruby-comment cmt"># rText += "''Flags:'' #{entry.flags.join(', ')}\n\n"</span>
|
|
2507
|
+
1023: <span class="ruby-comment cmt">#end</span>
|
|
2508
|
+
1024: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">summary</span>
|
|
2509
|
+
1025: <span class="ruby-identifier">rText</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">summary</span>.<span class="ruby-identifier">richText</span>.<span class="ruby-identifier">inputText</span> <span class="ruby-operator">+</span> <span class="ruby-value str">"\n\n"</span>
|
|
2510
|
+
1026: <span class="ruby-keyword kw">end</span>
|
|
2511
|
+
1027: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">longVersion</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">details</span>
|
|
2512
|
+
1028: <span class="ruby-identifier">rText</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">details</span>.<span class="ruby-identifier">richText</span>.<span class="ruby-identifier">inputText</span> <span class="ruby-operator">+</span> <span class="ruby-value str">"\n\n"</span>
|
|
2513
|
+
1029: <span class="ruby-keyword kw">end</span>
|
|
2514
|
+
1030: <span class="ruby-keyword kw">end</span>
|
|
2515
|
+
1031: <span class="ruby-comment cmt"># Now convert the RichText markup String into RichTextIntermediate</span>
|
|
2516
|
+
1032: <span class="ruby-comment cmt"># format.</span>
|
|
2517
|
+
1033: <span class="ruby-keyword kw">unless</span> (<span class="ruby-identifier">rti</span> = <span class="ruby-constant">RichText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">rText</span>, <span class="ruby-constant">RTFHandlers</span>.<span class="ruby-identifier">create</span>(<span class="ruby-keyword kw">self</span>),
|
|
2518
|
+
1034: <span class="ruby-ivar">@messageHandler</span>).
|
|
2519
|
+
1035: <span class="ruby-identifier">generateIntermediateFormat</span>)
|
|
2520
|
+
1036: <span class="ruby-identifier">warning</span>(<span class="ruby-value str">'ptn_journal'</span>, <span class="ruby-node">"Syntax error in journal message: #{rText}"</span>)
|
|
2521
|
+
1037: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
|
|
2522
|
+
1038: <span class="ruby-keyword kw">end</span>
|
|
2523
|
+
1039: <span class="ruby-comment cmt"># No section numbers, please!</span>
|
|
2524
|
+
1040: <span class="ruby-identifier">rti</span>.<span class="ruby-identifier">sectionNumbers</span> = <span class="ruby-keyword kw">false</span>
|
|
2525
|
+
1041: <span class="ruby-comment cmt"># We use a special class to allow CSS formating.</span>
|
|
2526
|
+
1042: <span class="ruby-identifier">rti</span>.<span class="ruby-identifier">cssClass</span> = <span class="ruby-value str">'tj_journal'</span>
|
|
2527
|
+
1043: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">rti</span> = <span class="ruby-identifier">rti</span>
|
|
2528
|
+
1044: <span class="ruby-keyword kw">end</span></pre>
|
|
2365
2529
|
</div>
|
|
2366
2530
|
|
|
2367
2531
|
</div>
|
|
@@ -2392,19 +2556,19 @@ href="Query.html">Query</a>.
|
|
|
2392
2556
|
<div class="method-source-code"
|
|
2393
2557
|
id="list-eports-source">
|
|
2394
2558
|
<pre>
|
|
2395
|
-
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line
|
|
2396
|
-
|
|
2397
|
-
|
|
2398
|
-
|
|
2399
|
-
|
|
2400
|
-
|
|
2401
|
-
|
|
2402
|
-
|
|
2403
|
-
|
|
2404
|
-
|
|
2405
|
-
|
|
2406
|
-
|
|
2407
|
-
|
|
2559
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line 779</span>
|
|
2560
|
+
779: <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>)
|
|
2561
|
+
780: <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>
|
|
2562
|
+
781: <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> []
|
|
2563
|
+
782: <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>
|
|
2564
|
+
783: <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>
|
|
2565
|
+
784: <span class="ruby-identifier">report</span> = <span class="ruby-ivar">@reports</span>[<span class="ruby-identifier">id</span>]
|
|
2566
|
+
785: <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>)
|
|
2567
|
+
786: <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>
|
|
2568
|
+
787:
|
|
2569
|
+
788: <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>)
|
|
2570
|
+
789: <span class="ruby-keyword kw">end</span>
|
|
2571
|
+
790: <span class="ruby-keyword kw">end</span></pre>
|
|
2408
2572
|
</div>
|
|
2409
2573
|
|
|
2410
2574
|
</div>
|
|
@@ -2437,10 +2601,10 @@ Return the average number of working days per month.
|
|
|
2437
2601
|
<div class="method-source-code"
|
|
2438
2602
|
id="monthly-orking-ays-source">
|
|
2439
2603
|
<pre>
|
|
2440
|
-
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line
|
|
2441
|
-
|
|
2442
|
-
|
|
2443
|
-
|
|
2604
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line 539</span>
|
|
2605
|
+
539: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">monthlyWorkingDays</span>
|
|
2606
|
+
540: <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>
|
|
2607
|
+
541: <span class="ruby-keyword kw">end</span></pre>
|
|
2444
2608
|
</div>
|
|
2445
2609
|
|
|
2446
2610
|
</div>
|
|
@@ -2474,10 +2638,10 @@ return nil if it does not exist.
|
|
|
2474
2638
|
<div class="method-source-code"
|
|
2475
2639
|
id="report-source">
|
|
2476
2640
|
<pre>
|
|
2477
|
-
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line
|
|
2478
|
-
|
|
2479
|
-
|
|
2480
|
-
|
|
2641
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line 605</span>
|
|
2642
|
+
605: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">report</span>(<span class="ruby-identifier">id</span>)
|
|
2643
|
+
606: <span class="ruby-ivar">@reports</span>[<span class="ruby-identifier">id</span>]
|
|
2644
|
+
607: <span class="ruby-keyword kw">end</span></pre>
|
|
2481
2645
|
</div>
|
|
2482
2646
|
|
|
2483
2647
|
</div>
|
|
@@ -2511,13 +2675,13 @@ return nil if it does not exist.
|
|
|
2511
2675
|
<div class="method-source-code"
|
|
2512
2676
|
id="report-y-ame-source">
|
|
2513
2677
|
<pre>
|
|
2514
|
-
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line
|
|
2515
|
-
|
|
2516
|
-
|
|
2517
|
-
|
|
2518
|
-
|
|
2519
|
-
|
|
2520
|
-
|
|
2678
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line 611</span>
|
|
2679
|
+
611: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">reportByName</span>(<span class="ruby-identifier">name</span>)
|
|
2680
|
+
612: <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>
|
|
2681
|
+
613: <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>
|
|
2682
|
+
614: <span class="ruby-keyword kw">end</span>
|
|
2683
|
+
615: <span class="ruby-keyword kw">nil</span>
|
|
2684
|
+
616: <span class="ruby-keyword kw">end</span></pre>
|
|
2521
2685
|
</div>
|
|
2522
2686
|
|
|
2523
2687
|
</div>
|
|
@@ -2551,10 +2715,10 @@ return nil if it does not exist.
|
|
|
2551
2715
|
<div class="method-source-code"
|
|
2552
2716
|
id="resource-source">
|
|
2553
2717
|
<pre>
|
|
2554
|
-
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line
|
|
2555
|
-
|
|
2556
|
-
|
|
2557
|
-
|
|
2718
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line 600</span>
|
|
2719
|
+
600: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">resource</span>(<span class="ruby-identifier">id</span>)
|
|
2720
|
+
601: <span class="ruby-ivar">@resources</span>[<span class="ruby-identifier">id</span>]
|
|
2721
|
+
602: <span class="ruby-keyword kw">end</span></pre>
|
|
2558
2722
|
</div>
|
|
2559
2723
|
|
|
2560
2724
|
</div>
|
|
@@ -2588,17 +2752,17 @@ or <em>index</em>.
|
|
|
2588
2752
|
<div class="method-source-code"
|
|
2589
2753
|
id="scenario-source">
|
|
2590
2754
|
<pre>
|
|
2591
|
-
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line
|
|
2592
|
-
|
|
2593
|
-
|
|
2594
|
-
|
|
2595
|
-
|
|
2596
|
-
|
|
2597
|
-
|
|
2598
|
-
|
|
2599
|
-
|
|
2600
|
-
|
|
2601
|
-
|
|
2755
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line 558</span>
|
|
2756
|
+
558: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">scenario</span>(<span class="ruby-identifier">arg</span>)
|
|
2757
|
+
559: <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>)
|
|
2758
|
+
560: <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>
|
|
2759
|
+
561: <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>
|
|
2760
|
+
562: <span class="ruby-keyword kw">end</span>
|
|
2761
|
+
563: <span class="ruby-keyword kw">else</span>
|
|
2762
|
+
564: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@scenarios</span>[<span class="ruby-identifier">arg</span>]
|
|
2763
|
+
565: <span class="ruby-keyword kw">end</span>
|
|
2764
|
+
566: <span class="ruby-keyword kw">nil</span>
|
|
2765
|
+
567: <span class="ruby-keyword kw">end</span></pre>
|
|
2602
2766
|
</div>
|
|
2603
2767
|
|
|
2604
2768
|
</div>
|
|
@@ -2631,10 +2795,10 @@ Return the number of defined scenarios for the project.
|
|
|
2631
2795
|
<div class="method-source-code"
|
|
2632
2796
|
id="scenario-ount-source">
|
|
2633
2797
|
<pre>
|
|
2634
|
-
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line
|
|
2635
|
-
|
|
2636
|
-
|
|
2637
|
-
|
|
2798
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line 490</span>
|
|
2799
|
+
490: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">scenarioCount</span>
|
|
2800
|
+
491: <span class="ruby-ivar">@scenarios</span>.<span class="ruby-identifier">items</span>
|
|
2801
|
+
492: <span class="ruby-keyword kw">end</span></pre>
|
|
2638
2802
|
</div>
|
|
2639
2803
|
|
|
2640
2804
|
</div>
|
|
@@ -2668,16 +2832,16 @@ specified by <em>scenario</em> or <em>id</em>.
|
|
|
2668
2832
|
<div class="method-source-code"
|
|
2669
2833
|
id="scenario-dx-source">
|
|
2670
2834
|
<pre>
|
|
2671
|
-
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line
|
|
2672
|
-
|
|
2673
|
-
|
|
2674
|
-
|
|
2675
|
-
|
|
2676
|
-
|
|
2677
|
-
|
|
2678
|
-
|
|
2679
|
-
|
|
2680
|
-
|
|
2835
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line 574</span>
|
|
2836
|
+
574: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">scenarioIdx</span>(<span class="ruby-identifier">sc</span>)
|
|
2837
|
+
575: <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>)
|
|
2838
|
+
576: <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>
|
|
2839
|
+
577: <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>
|
|
2840
|
+
578: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
|
|
2841
|
+
579: <span class="ruby-keyword kw">else</span>
|
|
2842
|
+
580: <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>
|
|
2843
|
+
581: <span class="ruby-keyword kw">end</span>
|
|
2844
|
+
582: <span class="ruby-keyword kw">end</span></pre>
|
|
2681
2845
|
</div>
|
|
2682
2846
|
|
|
2683
2847
|
</div>
|
|
@@ -2712,53 +2876,53 @@ stores the result in the data structures again.
|
|
|
2712
2876
|
<div class="method-source-code"
|
|
2713
2877
|
id="schedule-source">
|
|
2714
2878
|
<pre>
|
|
2715
|
-
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line
|
|
2716
|
-
|
|
2717
|
-
|
|
2718
|
-
|
|
2719
|
-
|
|
2720
|
-
|
|
2721
|
-
|
|
2722
|
-
|
|
2723
|
-
|
|
2724
|
-
|
|
2725
|
-
|
|
2726
|
-
|
|
2727
|
-
|
|
2728
|
-
|
|
2729
|
-
|
|
2730
|
-
|
|
2731
|
-
|
|
2732
|
-
|
|
2733
|
-
|
|
2734
|
-
|
|
2735
|
-
|
|
2736
|
-
|
|
2737
|
-
|
|
2738
|
-
|
|
2739
|
-
|
|
2740
|
-
|
|
2741
|
-
|
|
2742
|
-
|
|
2743
|
-
|
|
2744
|
-
|
|
2745
|
-
|
|
2746
|
-
|
|
2747
|
-
|
|
2748
|
-
|
|
2749
|
-
|
|
2750
|
-
|
|
2751
|
-
|
|
2752
|
-
|
|
2753
|
-
|
|
2754
|
-
|
|
2755
|
-
|
|
2756
|
-
|
|
2757
|
-
|
|
2758
|
-
|
|
2759
|
-
|
|
2760
|
-
|
|
2761
|
-
|
|
2879
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line 621</span>
|
|
2880
|
+
621: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">schedule</span>
|
|
2881
|
+
622: <span class="ruby-identifier">initScoreboards</span>
|
|
2882
|
+
623:
|
|
2883
|
+
624: [ <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>
|
|
2884
|
+
625: <span class="ruby-comment cmt"># Set all index counters to their proper values.</span>
|
|
2885
|
+
626: <span class="ruby-identifier">p</span>.<span class="ruby-identifier">index</span>
|
|
2886
|
+
627: <span class="ruby-keyword kw">end</span>
|
|
2887
|
+
628:
|
|
2888
|
+
629: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@tasks</span>.<span class="ruby-identifier">empty?</span>
|
|
2889
|
+
630: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'no_tasks'</span>, <span class="ruby-value str">"No tasks defined"</span>)
|
|
2890
|
+
631: <span class="ruby-keyword kw">end</span>
|
|
2891
|
+
632:
|
|
2892
|
+
633: <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>
|
|
2893
|
+
634: <span class="ruby-comment cmt"># Skip disabled scenarios</span>
|
|
2894
|
+
635: <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">'active'</span>)
|
|
2895
|
+
636:
|
|
2896
|
+
637: <span class="ruby-identifier">scIdx</span> = <span class="ruby-identifier">scenarioIdx</span>(<span class="ruby-identifier">sc</span>)
|
|
2897
|
+
638:
|
|
2898
|
+
639: <span class="ruby-comment cmt"># All user provided values are set now. The next step is to</span>
|
|
2899
|
+
640: <span class="ruby-comment cmt"># propagate inherited values. These values must be marked as</span>
|
|
2900
|
+
641: <span class="ruby-comment cmt"># inherited by setting the mode to 1. As we always call</span>
|
|
2901
|
+
642: <span class="ruby-comment cmt"># PropertyTreeNode#inherit this is just a safeguard.</span>
|
|
2902
|
+
643: <span class="ruby-constant">AttributeBase</span>.<span class="ruby-identifier">setMode</span>(<span class="ruby-value">1</span>)
|
|
2903
|
+
644: <span class="ruby-identifier">prepareScenario</span>(<span class="ruby-identifier">scIdx</span>)
|
|
2904
|
+
645:
|
|
2905
|
+
646: <span class="ruby-comment cmt"># Now change to mode 2 so all values that are modified are marked</span>
|
|
2906
|
+
647: <span class="ruby-comment cmt"># as computed.</span>
|
|
2907
|
+
648: <span class="ruby-constant">AttributeBase</span>.<span class="ruby-identifier">setMode</span>(<span class="ruby-value">2</span>)
|
|
2908
|
+
649: <span class="ruby-comment cmt"># Schedule the scenario.</span>
|
|
2909
|
+
650: <span class="ruby-identifier">scheduleScenario</span>(<span class="ruby-identifier">scIdx</span>)
|
|
2910
|
+
651:
|
|
2911
|
+
652: <span class="ruby-comment cmt"># Complete the data sets, and check the result.</span>
|
|
2912
|
+
653: <span class="ruby-identifier">finishScenario</span>(<span class="ruby-identifier">scIdx</span>)
|
|
2913
|
+
654: <span class="ruby-keyword kw">end</span>
|
|
2914
|
+
655:
|
|
2915
|
+
656: <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>
|
|
2916
|
+
657: <span class="ruby-identifier">resource</span>.<span class="ruby-identifier">checkFailsAndWarnings</span>
|
|
2917
|
+
658: <span class="ruby-keyword kw">end</span>
|
|
2918
|
+
659:
|
|
2919
|
+
660: <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>
|
|
2920
|
+
661: <span class="ruby-identifier">task</span>.<span class="ruby-identifier">checkFailsAndWarnings</span>
|
|
2921
|
+
662: <span class="ruby-keyword kw">end</span>
|
|
2922
|
+
663:
|
|
2923
|
+
664: <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>
|
|
2924
|
+
665: <span class="ruby-keyword kw">true</span>
|
|
2925
|
+
666: <span class="ruby-keyword kw">end</span></pre>
|
|
2762
2926
|
</div>
|
|
2763
2927
|
|
|
2764
2928
|
</div>
|
|
@@ -2794,11 +2958,11 @@ number of entries in the scoreboards.
|
|
|
2794
2958
|
<div class="method-source-code"
|
|
2795
2959
|
id="scoreboard-ize-source">
|
|
2796
2960
|
<pre>
|
|
2797
|
-
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line
|
|
2798
|
-
|
|
2799
|
-
|
|
2800
|
-
|
|
2801
|
-
|
|
2961
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line 901</span>
|
|
2962
|
+
901: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">scoreboardSize</span>
|
|
2963
|
+
902: ((<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>
|
|
2964
|
+
903: <span class="ruby-ivar">@attributes</span>[<span class="ruby-value str">'scheduleGranularity'</span>]).<span class="ruby-identifier">to_i</span>
|
|
2965
|
+
904: <span class="ruby-keyword kw">end</span></pre>
|
|
2802
2966
|
</div>
|
|
2803
2967
|
|
|
2804
2968
|
</div>
|
|
@@ -2832,10 +2996,10 @@ nil if it does not exist.
|
|
|
2832
2996
|
<div class="method-source-code"
|
|
2833
2997
|
id="shift-source">
|
|
2834
2998
|
<pre>
|
|
2835
|
-
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line
|
|
2836
|
-
|
|
2837
|
-
|
|
2838
|
-
|
|
2999
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line 585</span>
|
|
3000
|
+
585: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">shift</span>(<span class="ruby-identifier">id</span>)
|
|
3001
|
+
586: <span class="ruby-ivar">@shifts</span>[<span class="ruby-identifier">id</span>]
|
|
3002
|
+
587: <span class="ruby-keyword kw">end</span></pre>
|
|
2839
3003
|
</div>
|
|
2840
3004
|
|
|
2841
3005
|
</div>
|
|
@@ -2868,10 +3032,10 @@ Convert timeSlots to working days.
|
|
|
2868
3032
|
<div class="method-source-code"
|
|
2869
3033
|
id="slots-o-ays-source">
|
|
2870
3034
|
<pre>
|
|
2871
|
-
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line
|
|
2872
|
-
|
|
2873
|
-
|
|
2874
|
-
|
|
3035
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line 549</span>
|
|
3036
|
+
549: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">slotsToDays</span>(<span class="ruby-identifier">slots</span>)
|
|
3037
|
+
550: <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>)
|
|
3038
|
+
551: <span class="ruby-keyword kw">end</span></pre>
|
|
2875
3039
|
</div>
|
|
2876
3040
|
|
|
2877
3041
|
</div>
|
|
@@ -2905,10 +3069,10 @@ nil if it does not exist.
|
|
|
2905
3069
|
<div class="method-source-code"
|
|
2906
3070
|
id="task-source">
|
|
2907
3071
|
<pre>
|
|
2908
|
-
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line
|
|
2909
|
-
|
|
2910
|
-
|
|
2911
|
-
|
|
3072
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line 595</span>
|
|
3073
|
+
595: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">task</span>(<span class="ruby-identifier">id</span>)
|
|
3074
|
+
596: <span class="ruby-ivar">@tasks</span>[<span class="ruby-identifier">id</span>]
|
|
3075
|
+
597: <span class="ruby-keyword kw">end</span></pre>
|
|
2912
3076
|
</div>
|
|
2913
3077
|
|
|
2914
3078
|
</div>
|
|
@@ -2941,18 +3105,54 @@ Print the attribute values. It’s used for debugging only.
|
|
|
2941
3105
|
<div class="method-source-code"
|
|
2942
3106
|
id="to-s-source">
|
|
2943
3107
|
<pre>
|
|
2944
|
-
|
|
2945
|
-
|
|
2946
|
-
|
|
2947
|
-
|
|
2948
|
-
|
|
2949
|
-
|
|
2950
|
-
|
|
2951
|
-
|
|
2952
|
-
|
|
2953
|
-
|
|
2954
|
-
|
|
2955
|
-
|
|
3108
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line 1048</span>
|
|
3109
|
+
1048: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_s</span>
|
|
3110
|
+
1049: <span class="ruby-comment cmt">#raise "STOP!"</span>
|
|
3111
|
+
1050: <span class="ruby-identifier">str</span> = <span class="ruby-value str">''</span>
|
|
3112
|
+
1051: <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>
|
|
3113
|
+
1052: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">value</span>
|
|
3114
|
+
1053: <span class="ruby-identifier">str</span> <span class="ruby-operator">+=</span> <span class="ruby-node">"#{attribute}: "</span> <span class="ruby-operator">+</span>
|
|
3115
|
+
1054: <span class="ruby-node">"#{value.is_a?(PropertyTreeNode) ? value.fullId : value}"</span>
|
|
3116
|
+
1055: <span class="ruby-keyword kw">end</span>
|
|
3117
|
+
1056: <span class="ruby-keyword kw">end</span>
|
|
3118
|
+
1057: <span class="ruby-identifier">str</span>
|
|
3119
|
+
1058: <span class="ruby-keyword kw">end</span></pre>
|
|
3120
|
+
</div>
|
|
3121
|
+
|
|
3122
|
+
</div>
|
|
3123
|
+
|
|
3124
|
+
|
|
3125
|
+
|
|
3126
|
+
|
|
3127
|
+
</div>
|
|
3128
|
+
|
|
3129
|
+
|
|
3130
|
+
<div id="warning-method" class="method-detail ">
|
|
3131
|
+
<a name="method-i-warning"></a>
|
|
3132
|
+
|
|
3133
|
+
<div class="method-heading">
|
|
3134
|
+
|
|
3135
|
+
<span class="method-name">warning</span><span
|
|
3136
|
+
class="method-args">(id, text, sourceFileInfo = nil)</span>
|
|
3137
|
+
<span class="method-click-advice">click to toggle source</span>
|
|
3138
|
+
|
|
3139
|
+
</div>
|
|
3140
|
+
|
|
3141
|
+
<div class="method-description">
|
|
3142
|
+
|
|
3143
|
+
<p>
|
|
3144
|
+
Generate a warning message via the message handle.
|
|
3145
|
+
</p>
|
|
3146
|
+
|
|
3147
|
+
|
|
3148
|
+
|
|
3149
|
+
<div class="method-source-code"
|
|
3150
|
+
id="warning-source">
|
|
3151
|
+
<pre>
|
|
3152
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line 1066</span>
|
|
3153
|
+
1066: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">warning</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">sourceFileInfo</span> = <span class="ruby-keyword kw">nil</span>)
|
|
3154
|
+
1067: <span class="ruby-ivar">@messageHandler</span>.<span class="ruby-identifier">warning</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">sourceFileInfo</span>)
|
|
3155
|
+
1068: <span class="ruby-keyword kw">end</span></pre>
|
|
2956
3156
|
</div>
|
|
2957
3157
|
|
|
2958
3158
|
</div>
|
|
@@ -2985,10 +3185,10 @@ Return the average number of working days per week.
|
|
|
2985
3185
|
<div class="method-source-code"
|
|
2986
3186
|
id="weekly-orking-ays-source">
|
|
2987
3187
|
<pre>
|
|
2988
|
-
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line
|
|
2989
|
-
|
|
2990
|
-
|
|
2991
|
-
|
|
3188
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line 534</span>
|
|
3189
|
+
534: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">weeklyWorkingDays</span>
|
|
3190
|
+
535: <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>
|
|
3191
|
+
536: <span class="ruby-keyword kw">end</span></pre>
|
|
2992
3192
|
</div>
|
|
2993
3193
|
|
|
2994
3194
|
</div>
|
|
@@ -3022,16 +3222,16 @@ given <em>interval</em>.
|
|
|
3022
3222
|
<div class="method-source-code"
|
|
3023
3223
|
id="working-ays-source">
|
|
3024
3224
|
<pre>
|
|
3025
|
-
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line
|
|
3026
|
-
|
|
3027
|
-
|
|
3028
|
-
|
|
3029
|
-
|
|
3030
|
-
|
|
3031
|
-
|
|
3032
|
-
|
|
3033
|
-
|
|
3034
|
-
|
|
3225
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line 942</span>
|
|
3226
|
+
942: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">workingDays</span>(<span class="ruby-identifier">interval</span>)
|
|
3227
|
+
943: <span class="ruby-identifier">startIdx</span> = <span class="ruby-identifier">dateToIdx</span>(<span class="ruby-identifier">interval</span>.<span class="ruby-identifier">start</span>)
|
|
3228
|
+
944: <span class="ruby-identifier">endIdx</span> = <span class="ruby-identifier">dateToIdx</span>(<span class="ruby-identifier">interval</span>.<span class="ruby-identifier">end</span>)
|
|
3229
|
+
945: <span class="ruby-identifier">slots</span> = <span class="ruby-value">0</span>
|
|
3230
|
+
946: <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>
|
|
3231
|
+
947: <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>]
|
|
3232
|
+
948: <span class="ruby-keyword kw">end</span>
|
|
3233
|
+
949: <span class="ruby-identifier">slotsToDays</span>(<span class="ruby-identifier">slots</span>)
|
|
3234
|
+
950: <span class="ruby-keyword kw">end</span></pre>
|
|
3035
3235
|
</div>
|
|
3036
3236
|
|
|
3037
3237
|
</div>
|
|
@@ -3064,10 +3264,10 @@ Return the average number of working days per year.
|
|
|
3064
3264
|
<div class="method-source-code"
|
|
3065
3265
|
id="yearly-orking-ays-source">
|
|
3066
3266
|
<pre>
|
|
3067
|
-
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line
|
|
3068
|
-
|
|
3069
|
-
|
|
3070
|
-
|
|
3267
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line 544</span>
|
|
3268
|
+
544: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">yearlyWorkingDays</span>
|
|
3269
|
+
545: <span class="ruby-ivar">@attributes</span>[<span class="ruby-value str">'yearlyworkingdays'</span>].<span class="ruby-identifier">to_f</span>
|
|
3270
|
+
546: <span class="ruby-keyword kw">end</span></pre>
|
|
3071
3271
|
</div>
|
|
3072
3272
|
|
|
3073
3273
|
</div>
|
|
@@ -3104,29 +3304,29 @@ Return the average number of working days per year.
|
|
|
3104
3304
|
<div class="method-source-code"
|
|
3105
3305
|
id="finish-cenario-source">
|
|
3106
3306
|
<pre>
|
|
3107
|
-
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line
|
|
3108
|
-
|
|
3109
|
-
|
|
3110
|
-
|
|
3111
|
-
|
|
3112
|
-
|
|
3113
|
-
|
|
3114
|
-
|
|
3115
|
-
|
|
3116
|
-
|
|
3117
|
-
|
|
3118
|
-
|
|
3119
|
-
|
|
3120
|
-
|
|
3121
|
-
|
|
3122
|
-
|
|
3123
|
-
|
|
3124
|
-
|
|
3125
|
-
|
|
3126
|
-
|
|
3127
|
-
|
|
3128
|
-
|
|
3129
|
-
|
|
3307
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line 1146</span>
|
|
3308
|
+
1146: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">finishScenario</span>(<span class="ruby-identifier">scIdx</span>)
|
|
3309
|
+
1147: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">startProgressMeter</span>(<span class="ruby-node">"Checking scenario #{scenario(scIdx).get('name')}"</span>)
|
|
3310
|
+
1148: <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>
|
|
3311
|
+
1149: <span class="ruby-comment cmt"># Recursively traverse the top-level tasks to finish all tasks.</span>
|
|
3312
|
+
1150: <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>
|
|
3313
|
+
1151: <span class="ruby-keyword kw">end</span>
|
|
3314
|
+
1152:
|
|
3315
|
+
1153: <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>
|
|
3316
|
+
1154: <span class="ruby-comment cmt"># Recursively traverse the top-level resources to finish them all.</span>
|
|
3317
|
+
1155: <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>
|
|
3318
|
+
1156: <span class="ruby-keyword kw">end</span>
|
|
3319
|
+
1157:
|
|
3320
|
+
1158: <span class="ruby-identifier">i</span> = <span class="ruby-value">0</span>
|
|
3321
|
+
1159: <span class="ruby-identifier">total</span> = <span class="ruby-ivar">@tasks</span>.<span class="ruby-identifier">items</span>
|
|
3322
|
+
1160: <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>
|
|
3323
|
+
1161: <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>
|
|
3324
|
+
1162: <span class="ruby-identifier">i</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
|
|
3325
|
+
1163: <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>)
|
|
3326
|
+
1164: <span class="ruby-keyword kw">end</span>
|
|
3327
|
+
1165:
|
|
3328
|
+
1166: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">stopProgressMeter</span>
|
|
3329
|
+
1167: <span class="ruby-keyword kw">end</span></pre>
|
|
3130
3330
|
</div>
|
|
3131
3331
|
|
|
3132
3332
|
</div>
|
|
@@ -3157,73 +3357,79 @@ Return the average number of working days per year.
|
|
|
3157
3357
|
<div class="method-source-code"
|
|
3158
3358
|
id="prepare-cenario-source">
|
|
3159
3359
|
<pre>
|
|
3160
|
-
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line
|
|
3161
|
-
|
|
3162
|
-
|
|
3163
|
-
|
|
3164
|
-
|
|
3165
|
-
|
|
3166
|
-
|
|
3167
|
-
|
|
3168
|
-
|
|
3169
|
-
|
|
3170
|
-
|
|
3171
|
-
|
|
3172
|
-
|
|
3173
|
-
|
|
3174
|
-
|
|
3175
|
-
|
|
3176
|
-
|
|
3177
|
-
|
|
3178
|
-
|
|
3179
|
-
|
|
3180
|
-
|
|
3181
|
-
|
|
3182
|
-
|
|
3183
|
-
|
|
3184
|
-
|
|
3185
|
-
|
|
3186
|
-
|
|
3187
|
-
|
|
3188
|
-
|
|
3189
|
-
|
|
3190
|
-
|
|
3191
|
-
|
|
3192
|
-
|
|
3193
|
-
|
|
3194
|
-
|
|
3195
|
-
|
|
3196
|
-
|
|
3197
|
-
|
|
3198
|
-
|
|
3199
|
-
|
|
3200
|
-
|
|
3201
|
-
|
|
3202
|
-
|
|
3203
|
-
|
|
3204
|
-
|
|
3205
|
-
|
|
3206
|
-
|
|
3207
|
-
|
|
3208
|
-
|
|
3209
|
-
|
|
3210
|
-
|
|
3211
|
-
|
|
3212
|
-
|
|
3213
|
-
|
|
3214
|
-
|
|
3215
|
-
|
|
3216
|
-
|
|
3217
|
-
|
|
3218
|
-
|
|
3219
|
-
|
|
3220
|
-
|
|
3221
|
-
|
|
3222
|
-
|
|
3223
|
-
|
|
3224
|
-
|
|
3225
|
-
|
|
3226
|
-
|
|
3360
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line 1073</span>
|
|
3361
|
+
1073: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">prepareScenario</span>(<span class="ruby-identifier">scIdx</span>)
|
|
3362
|
+
1074: <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>
|
|
3363
|
+
1075: <span class="ruby-node">"#{scenario(scIdx).get('name')}"</span>)
|
|
3364
|
+
1076: <span class="ruby-identifier">resources</span> = <span class="ruby-constant">PropertyList</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@resources</span>)
|
|
3365
|
+
1077: <span class="ruby-identifier">tasks</span> = <span class="ruby-constant">PropertyList</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@tasks</span>)
|
|
3366
|
+
1078:
|
|
3367
|
+
1079: <span class="ruby-comment cmt"># Compile a list of leaf resources that are actually used in this</span>
|
|
3368
|
+
1080: <span class="ruby-comment cmt"># project.</span>
|
|
3369
|
+
1081: <span class="ruby-identifier">usedResources</span> = []
|
|
3370
|
+
1082: <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>
|
|
3371
|
+
1083: <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>
|
|
3372
|
+
1084: <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>)
|
|
3373
|
+
1085: <span class="ruby-keyword kw">end</span>
|
|
3374
|
+
1086: <span class="ruby-keyword kw">end</span>
|
|
3375
|
+
1087: <span class="ruby-identifier">total</span> = <span class="ruby-identifier">usedResources</span>.<span class="ruby-identifier">length</span>
|
|
3376
|
+
1088: <span class="ruby-identifier">i</span> = <span class="ruby-value">0</span>
|
|
3377
|
+
1089: <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>
|
|
3378
|
+
1090: <span class="ruby-identifier">resource</span>.<span class="ruby-identifier">prepareScheduling</span>(<span class="ruby-identifier">scIdx</span>)
|
|
3379
|
+
1091: <span class="ruby-identifier">resource</span>.<span class="ruby-identifier">preScheduleCheck</span>(<span class="ruby-identifier">scIdx</span>)
|
|
3380
|
+
1092: <span class="ruby-identifier">i</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
|
|
3381
|
+
1093: <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>)
|
|
3382
|
+
1094: <span class="ruby-keyword kw">end</span>
|
|
3383
|
+
1095:
|
|
3384
|
+
1096: <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>) }
|
|
3385
|
+
1097: <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>) }
|
|
3386
|
+
1098:
|
|
3387
|
+
1099: <span class="ruby-identifier">computeResourceAvailabilities</span>(<span class="ruby-identifier">scIdx</span>, <span class="ruby-identifier">usedResources</span>)
|
|
3388
|
+
1100:
|
|
3389
|
+
1101: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">progress</span>(<span class="ruby-value">0.81</span>)
|
|
3390
|
+
1102: <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>) }
|
|
3391
|
+
1103: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">progress</span>(<span class="ruby-value">0.82</span>)
|
|
3392
|
+
1104: <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>) }
|
|
3393
|
+
1105: <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>) }
|
|
3394
|
+
1106: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">progress</span>(<span class="ruby-value">0.83</span>)
|
|
3395
|
+
1107: <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>) }
|
|
3396
|
+
1108:
|
|
3397
|
+
1109: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">progress</span>(<span class="ruby-value">0.84</span>)
|
|
3398
|
+
1110: <span class="ruby-comment cmt"># Check for dependency loops in the task graph.</span>
|
|
3399
|
+
1111: <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>) }
|
|
3400
|
+
1112: <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>
|
|
3401
|
+
1113: <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>
|
|
3402
|
+
1114: <span class="ruby-keyword kw">end</span>
|
|
3403
|
+
1115: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">progress</span>(<span class="ruby-value">0.85</span>)
|
|
3404
|
+
1116: <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>) }
|
|
3405
|
+
1117: <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>
|
|
3406
|
+
1118: <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>
|
|
3407
|
+
1119: <span class="ruby-keyword kw">end</span>
|
|
3408
|
+
1120: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">progress</span>(<span class="ruby-value">0.87</span>)
|
|
3409
|
+
1121:
|
|
3410
|
+
1122: <span class="ruby-comment cmt"># Compute the criticalness of the tasks and their pathes.</span>
|
|
3411
|
+
1123: <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>) }
|
|
3412
|
+
1124: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">progress</span>(<span class="ruby-value">0.88</span>)
|
|
3413
|
+
1125: <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>) }
|
|
3414
|
+
1126: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">progress</span>(<span class="ruby-value">0.9</span>)
|
|
3415
|
+
1127: <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>) }
|
|
3416
|
+
1128: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">progress</span>(<span class="ruby-value">0.95</span>)
|
|
3417
|
+
1129: <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>) }
|
|
3418
|
+
1130: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">progress</span>(<span class="ruby-value">0.99</span>)
|
|
3419
|
+
1131: <span class="ruby-ivar">@timeSheets</span>.<span class="ruby-identifier">check</span>
|
|
3420
|
+
1132: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">progress</span>(<span class="ruby-value">1.0</span>)
|
|
3421
|
+
1133:
|
|
3422
|
+
1134: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">stopProgressMeter</span>
|
|
3423
|
+
1135: <span class="ruby-comment cmt"># This is used for debugging only</span>
|
|
3424
|
+
1136: <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">false</span>
|
|
3425
|
+
1137: <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>
|
|
3426
|
+
1138: <span class="ruby-identifier">puts</span> <span class="ruby-node">"#{resource}"</span>
|
|
3427
|
+
1139: <span class="ruby-keyword kw">end</span>
|
|
3428
|
+
1140: <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>
|
|
3429
|
+
1141: <span class="ruby-identifier">puts</span> <span class="ruby-node">"#{task}"</span>
|
|
3430
|
+
1142: <span class="ruby-keyword kw">end</span>
|
|
3431
|
+
1143: <span class="ruby-keyword kw">end</span>
|
|
3432
|
+
1144: <span class="ruby-keyword kw">end</span></pre>
|
|
3227
3433
|
</div>
|
|
3228
3434
|
|
|
3229
3435
|
</div>
|
|
@@ -3257,85 +3463,97 @@ index <tt>scIdx</tt>.
|
|
|
3257
3463
|
<div class="method-source-code"
|
|
3258
3464
|
id="schedule-cenario-source">
|
|
3259
3465
|
<pre>
|
|
3260
|
-
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line
|
|
3261
|
-
|
|
3262
|
-
|
|
3263
|
-
|
|
3264
|
-
|
|
3265
|
-
|
|
3266
|
-
|
|
3267
|
-
|
|
3268
|
-
|
|
3269
|
-
|
|
3270
|
-
|
|
3271
|
-
|
|
3272
|
-
|
|
3273
|
-
|
|
3274
|
-
|
|
3275
|
-
|
|
3276
|
-
|
|
3277
|
-
|
|
3278
|
-
|
|
3279
|
-
|
|
3280
|
-
|
|
3281
|
-
|
|
3282
|
-
|
|
3283
|
-
|
|
3284
|
-
|
|
3285
|
-
|
|
3286
|
-
|
|
3287
|
-
|
|
3288
|
-
|
|
3289
|
-
|
|
3290
|
-
|
|
3291
|
-
|
|
3292
|
-
|
|
3293
|
-
|
|
3294
|
-
|
|
3295
|
-
|
|
3296
|
-
|
|
3297
|
-
|
|
3298
|
-
|
|
3299
|
-
|
|
3300
|
-
|
|
3301
|
-
|
|
3302
|
-
|
|
3303
|
-
|
|
3304
|
-
|
|
3305
|
-
|
|
3306
|
-
|
|
3307
|
-
|
|
3308
|
-
|
|
3309
|
-
|
|
3310
|
-
|
|
3311
|
-
|
|
3312
|
-
|
|
3313
|
-
|
|
3314
|
-
|
|
3315
|
-
|
|
3316
|
-
|
|
3317
|
-
|
|
3318
|
-
|
|
3319
|
-
|
|
3320
|
-
|
|
3321
|
-
|
|
3322
|
-
|
|
3323
|
-
|
|
3324
|
-
|
|
3325
|
-
|
|
3326
|
-
|
|
3327
|
-
|
|
3328
|
-
|
|
3329
|
-
|
|
3330
|
-
|
|
3331
|
-
|
|
3332
|
-
|
|
3333
|
-
|
|
3334
|
-
|
|
3335
|
-
|
|
3336
|
-
|
|
3337
|
-
|
|
3338
|
-
|
|
3466
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line 1170</span>
|
|
3467
|
+
1170: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">scheduleScenario</span>(<span class="ruby-identifier">scIdx</span>)
|
|
3468
|
+
1171: <span class="ruby-identifier">tasks</span> = <span class="ruby-constant">PropertyList</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@tasks</span>)
|
|
3469
|
+
1172: <span class="ruby-comment cmt"># Only care about leaf tasks that are not milestones are aren't</span>
|
|
3470
|
+
1173: <span class="ruby-comment cmt"># scheduled already (due to bookings).</span>
|
|
3471
|
+
1174: <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> <span class="ruby-operator">||</span>
|
|
3472
|
+
1175: <span class="ruby-identifier">task</span>[<span class="ruby-value str">'milestone'</span>, <span class="ruby-identifier">scIdx</span>] <span class="ruby-operator">||</span>
|
|
3473
|
+
1176: <span class="ruby-identifier">task</span>[<span class="ruby-value str">'scheduled'</span>, <span class="ruby-identifier">scIdx</span>] }
|
|
3474
|
+
1177:
|
|
3475
|
+
1178: <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>)
|
|
3476
|
+
1179: <span class="ruby-comment cmt"># The sorting of the work item list determines which tasks will get their</span>
|
|
3477
|
+
1180: <span class="ruby-comment cmt"># resources first. The first sorting criterium is the user specified task</span>
|
|
3478
|
+
1181: <span class="ruby-comment cmt"># priority. The second criterium is the scheduler determined priority</span>
|
|
3479
|
+
1182: <span class="ruby-comment cmt"># stored in the pathcriticalness attribute. That way, the user can always</span>
|
|
3480
|
+
1183: <span class="ruby-comment cmt"># override the scheduler determined priority. To always have a defined</span>
|
|
3481
|
+
1184: <span class="ruby-comment cmt"># order, the third criterium is the sequence number.</span>
|
|
3482
|
+
1185: <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> ],
|
|
3483
|
+
1186: [ <span class="ruby-value str">'pathcriticalness'</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-identifier">scIdx</span> ],
|
|
3484
|
+
1187: [ <span class="ruby-value str">'seqno'</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-value">1</span> ] ])
|
|
3485
|
+
1188: <span class="ruby-identifier">tasks</span>.<span class="ruby-identifier">sort!</span>
|
|
3486
|
+
1189: <span class="ruby-identifier">totalTasks</span> = <span class="ruby-identifier">tasks</span>.<span class="ruby-identifier">length</span>
|
|
3487
|
+
1190:
|
|
3488
|
+
1191: <span class="ruby-comment cmt"># Enter the main scheduling loop. This loop is only terminated when all</span>
|
|
3489
|
+
1192: <span class="ruby-comment cmt"># tasks have been scheduled or another thread has set the breakFlag to</span>
|
|
3490
|
+
1193: <span class="ruby-comment cmt"># true.</span>
|
|
3491
|
+
1194: <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>
|
|
3492
|
+
1195: <span class="ruby-node">"#{scenario(scIdx).get('name')}"</span>)
|
|
3493
|
+
1196: <span class="ruby-identifier">failedTasks</span> = []
|
|
3494
|
+
1197: <span class="ruby-keyword kw">while</span> <span class="ruby-operator">!</span><span class="ruby-identifier">tasks</span>.<span class="ruby-identifier">empty?</span>
|
|
3495
|
+
1198: <span class="ruby-comment cmt"># Only update the progress bar every 10 completed tasks.</span>
|
|
3496
|
+
1199: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">tasks</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">%</span> <span class="ruby-value">10</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
|
|
3497
|
+
1200: <span class="ruby-identifier">percentComplete</span> = (<span class="ruby-identifier">totalTasks</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">tasks</span>.<span class="ruby-identifier">length</span>).<span class="ruby-identifier">to_f</span> <span class="ruby-operator">/</span> <span class="ruby-identifier">totalTasks</span>
|
|
3498
|
+
1201: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">progress</span>(<span class="ruby-identifier">percentComplete</span>)
|
|
3499
|
+
1202: <span class="ruby-keyword kw">end</span>
|
|
3500
|
+
1203:
|
|
3501
|
+
1204: <span class="ruby-comment cmt"># Now find the task with the highest priority that can be scheduled</span>
|
|
3502
|
+
1205: <span class="ruby-comment cmt"># and schedule it.</span>
|
|
3503
|
+
1206: <span class="ruby-identifier">taskToRemove</span> = <span class="ruby-keyword kw">nil</span>
|
|
3504
|
+
1207: <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>
|
|
3505
|
+
1208: <span class="ruby-comment cmt"># Task not ready? Ignore it.</span>
|
|
3506
|
+
1209: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">task</span>.<span class="ruby-identifier">readyForScheduling?</span>(<span class="ruby-identifier">scIdx</span>)
|
|
3507
|
+
1210:
|
|
3508
|
+
1211: <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>)
|
|
3509
|
+
1212: <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>
|
|
3510
|
+
1213: <span class="ruby-node">"#{task['end', scIdx]}"</span>
|
|
3511
|
+
1214: <span class="ruby-keyword kw">else</span>
|
|
3512
|
+
1215: <span class="ruby-identifier">failedTasks</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">task</span>
|
|
3513
|
+
1216: <span class="ruby-keyword kw">end</span>
|
|
3514
|
+
1217: <span class="ruby-comment cmt"># The tasks has been completed or failed. But we can remove it from</span>
|
|
3515
|
+
1218: <span class="ruby-comment cmt"># the todo list.</span>
|
|
3516
|
+
1219: <span class="ruby-identifier">taskToRemove</span> = <span class="ruby-identifier">task</span>
|
|
3517
|
+
1220: <span class="ruby-comment cmt"># The scheduling of this task may cause other higher priority tasks</span>
|
|
3518
|
+
1221: <span class="ruby-comment cmt"># to be ready now. So we terminate the inner loop and start at the</span>
|
|
3519
|
+
1222: <span class="ruby-comment cmt"># top of the list again.</span>
|
|
3520
|
+
1223: <span class="ruby-keyword kw">break</span>
|
|
3521
|
+
1224: <span class="ruby-keyword kw">end</span>
|
|
3522
|
+
1225:
|
|
3523
|
+
1226: <span class="ruby-comment cmt"># There should always be a task to be removed. If not, the scheduler</span>
|
|
3524
|
+
1227: <span class="ruby-comment cmt"># has found a set of tasks that deadlock each other.</span>
|
|
3525
|
+
1228: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">taskToRemove</span>
|
|
3526
|
+
1229: <span class="ruby-identifier">tasks</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">taskToRemove</span>)
|
|
3527
|
+
1230: <span class="ruby-keyword kw">else</span>
|
|
3528
|
+
1231: <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">puts</span> <span class="ruby-identifier">t</span>.<span class="ruby-identifier">fullId</span> }
|
|
3529
|
+
1232: <span class="ruby-identifier">raise</span> <span class="ruby-value str">'Scheduler deadlock: Cannot schedule any further tasks'</span>
|
|
3530
|
+
1233: <span class="ruby-keyword kw">end</span>
|
|
3531
|
+
1234: <span class="ruby-keyword kw">end</span>
|
|
3532
|
+
1235:
|
|
3533
|
+
1236: <span class="ruby-comment cmt"># Check for failed tasks and report the first 10 of them as</span>
|
|
3534
|
+
1237: <span class="ruby-comment cmt"># warnings.</span>
|
|
3535
|
+
1238: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">failedTasks</span>.<span class="ruby-identifier">empty?</span>
|
|
3536
|
+
1239: <span class="ruby-identifier">warning</span>(<span class="ruby-value str">'unscheduled_tasks'</span>,
|
|
3537
|
+
1240: <span class="ruby-node">"#{failedTasks.length} tasks could not be scheduled"</span>)
|
|
3538
|
+
1241: <span class="ruby-identifier">i</span> = <span class="ruby-value">0</span>
|
|
3539
|
+
1242: <span class="ruby-identifier">failedTasks</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>
|
|
3540
|
+
1243: <span class="ruby-identifier">warning</span>(<span class="ruby-value str">'unscheduled_task'</span>,
|
|
3541
|
+
1244: <span class="ruby-node">"Task #{t.fullId}: "</span> <span class="ruby-operator">+</span>
|
|
3542
|
+
1245: <span class="ruby-node">"#{t['start', scIdx] ? t['start', scIdx] : '<?>'} -> "</span> <span class="ruby-operator">+</span>
|
|
3543
|
+
1246: <span class="ruby-node">"#{t['end', scIdx] ? t['end', scIdx] : '<?>'}"</span>,
|
|
3544
|
+
1247: <span class="ruby-identifier">t</span>.<span class="ruby-identifier">sourceFileInfo</span>)
|
|
3545
|
+
1248:
|
|
3546
|
+
1249: <span class="ruby-identifier">i</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
|
|
3547
|
+
1250: <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>
|
|
3548
|
+
1251: <span class="ruby-keyword kw">end</span>
|
|
3549
|
+
1252: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">stopProgressMeter</span>
|
|
3550
|
+
1253: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
|
|
3551
|
+
1254: <span class="ruby-keyword kw">end</span>
|
|
3552
|
+
1255:
|
|
3553
|
+
1256: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">stopProgressMeter</span>
|
|
3554
|
+
1257: <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>)
|
|
3555
|
+
1258: <span class="ruby-keyword kw">true</span>
|
|
3556
|
+
1259: <span class="ruby-keyword kw">end</span></pre>
|
|
3339
3557
|
</div>
|
|
3340
3558
|
|
|
3341
3559
|
</div>
|
|
@@ -3352,6 +3570,51 @@ index <tt>scIdx</tt>.
|
|
|
3352
3570
|
<h3 class="section-header">Private Instance Methods</h3>
|
|
3353
3571
|
|
|
3354
3572
|
|
|
3573
|
+
<div id="compute-esource-vailabilities-method" class="method-detail ">
|
|
3574
|
+
<a name="method-i-computeResourceAvailabilities"></a>
|
|
3575
|
+
|
|
3576
|
+
<div class="method-heading">
|
|
3577
|
+
|
|
3578
|
+
<span class="method-name">computeResourceAvailabilities</span><span
|
|
3579
|
+
class="method-args">(scIdx, usedResources)</span>
|
|
3580
|
+
<span class="method-click-advice">click to toggle source</span>
|
|
3581
|
+
|
|
3582
|
+
</div>
|
|
3583
|
+
|
|
3584
|
+
<div class="method-description">
|
|
3585
|
+
|
|
3586
|
+
|
|
3587
|
+
|
|
3588
|
+
|
|
3589
|
+
|
|
3590
|
+
<div class="method-source-code"
|
|
3591
|
+
id="compute-esource-vailabilities-source">
|
|
3592
|
+
<pre>
|
|
3593
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line 1297</span>
|
|
3594
|
+
1297: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">computeResourceAvailabilities</span>(<span class="ruby-identifier">scIdx</span>, <span class="ruby-identifier">usedResources</span>)
|
|
3595
|
+
1298: <span class="ruby-ivar">@resourceAvailability</span> =
|
|
3596
|
+
1299: <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>],
|
|
3597
|
+
1300: <span class="ruby-ivar">@attributes</span>[<span class="ruby-value str">'scheduleGranularity'</span>])
|
|
3598
|
+
1301:
|
|
3599
|
+
1302: <span class="ruby-ivar">@resourceAvailability</span>.<span class="ruby-identifier">each_index</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">idx</span><span class="ruby-operator">|</span>
|
|
3600
|
+
1303: <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>
|
|
3601
|
+
1304: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">resource</span>.<span class="ruby-identifier">available?</span>(<span class="ruby-identifier">scIdx</span>, <span class="ruby-identifier">idx</span>)
|
|
3602
|
+
1305: <span class="ruby-ivar">@resourceAvailability</span>[<span class="ruby-identifier">idx</span>] = <span class="ruby-keyword kw">true</span>
|
|
3603
|
+
1306: <span class="ruby-keyword kw">break</span>
|
|
3604
|
+
1307: <span class="ruby-keyword kw">end</span>
|
|
3605
|
+
1308: <span class="ruby-keyword kw">end</span>
|
|
3606
|
+
1309: <span class="ruby-keyword kw">end</span>
|
|
3607
|
+
1310: <span class="ruby-keyword kw">end</span></pre>
|
|
3608
|
+
</div>
|
|
3609
|
+
|
|
3610
|
+
</div>
|
|
3611
|
+
|
|
3612
|
+
|
|
3613
|
+
|
|
3614
|
+
|
|
3615
|
+
</div>
|
|
3616
|
+
|
|
3617
|
+
|
|
3355
3618
|
<div id="init-coreboards-method" class="method-detail ">
|
|
3356
3619
|
<a name="method-i-initScoreboards"></a>
|
|
3357
3620
|
|
|
@@ -3372,40 +3635,40 @@ index <tt>scIdx</tt>.
|
|
|
3372
3635
|
<div class="method-source-code"
|
|
3373
3636
|
id="init-coreboards-source">
|
|
3374
3637
|
<pre>
|
|
3375
|
-
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line
|
|
3376
|
-
|
|
3377
|
-
|
|
3378
|
-
|
|
3379
|
-
|
|
3380
|
-
|
|
3381
|
-
|
|
3382
|
-
|
|
3383
|
-
|
|
3384
|
-
|
|
3385
|
-
|
|
3386
|
-
|
|
3387
|
-
|
|
3388
|
-
|
|
3389
|
-
|
|
3390
|
-
|
|
3391
|
-
|
|
3392
|
-
|
|
3393
|
-
|
|
3394
|
-
|
|
3395
|
-
|
|
3396
|
-
|
|
3397
|
-
|
|
3398
|
-
|
|
3399
|
-
|
|
3400
|
-
|
|
3401
|
-
|
|
3402
|
-
|
|
3403
|
-
|
|
3404
|
-
|
|
3405
|
-
|
|
3406
|
-
|
|
3407
|
-
|
|
3408
|
-
|
|
3638
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line 1263</span>
|
|
3639
|
+
1263: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initScoreboards</span>
|
|
3640
|
+
1264: <span class="ruby-comment cmt"># Create scoreboard and mark all slots as unavailable</span>
|
|
3641
|
+
1265: <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>],
|
|
3642
|
+
1266: <span class="ruby-ivar">@attributes</span>[<span class="ruby-value str">'scheduleGranularity'</span>], <span class="ruby-value">2</span>)
|
|
3643
|
+
1267: <span class="ruby-comment cmt"># And the same for another scoreboard.</span>
|
|
3644
|
+
1268: <span class="ruby-ivar">@scoreboardNoVacations</span> =
|
|
3645
|
+
1269: <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>],
|
|
3646
|
+
1270: <span class="ruby-ivar">@attributes</span>[<span class="ruby-value str">'scheduleGranularity'</span>], <span class="ruby-value">2</span>)
|
|
3647
|
+
1271:
|
|
3648
|
+
1272: <span class="ruby-identifier">workinghours</span> = <span class="ruby-ivar">@attributes</span>[<span class="ruby-value str">'workinghours'</span>]
|
|
3649
|
+
1273:
|
|
3650
|
+
1274: <span class="ruby-comment cmt"># Change all work time slots to nil (available) again.</span>
|
|
3651
|
+
1275: <span class="ruby-identifier">date</span> = <span class="ruby-ivar">@scoreboard</span>.<span class="ruby-identifier">idxToDate</span>(<span class="ruby-value">0</span>)
|
|
3652
|
+
1276: <span class="ruby-identifier">delta</span> = <span class="ruby-ivar">@attributes</span>[<span class="ruby-value str">'scheduleGranularity'</span>]
|
|
3653
|
+
1277: <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>
|
|
3654
|
+
1278: <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>)
|
|
3655
|
+
1279: <span class="ruby-ivar">@scoreboard</span>[<span class="ruby-identifier">i</span>] = <span class="ruby-keyword kw">nil</span>
|
|
3656
|
+
1280: <span class="ruby-ivar">@scoreboardNoVacations</span>[<span class="ruby-identifier">i</span>] = <span class="ruby-keyword kw">nil</span>
|
|
3657
|
+
1281: <span class="ruby-keyword kw">end</span>
|
|
3658
|
+
1282: <span class="ruby-identifier">date</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">delta</span>
|
|
3659
|
+
1283: <span class="ruby-keyword kw">end</span>
|
|
3660
|
+
1284:
|
|
3661
|
+
1285: <span class="ruby-comment cmt"># Mark all global vacation slots as such</span>
|
|
3662
|
+
1286: <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>
|
|
3663
|
+
1287: <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>)
|
|
3664
|
+
1288: <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>)
|
|
3665
|
+
1289: <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>
|
|
3666
|
+
1290: <span class="ruby-comment cmt"># If the slot is nil or set to 4 then don't set the time-off bit.</span>
|
|
3667
|
+
1291: <span class="ruby-identifier">sb</span> = <span class="ruby-ivar">@scoreboard</span>[<span class="ruby-identifier">i</span>]
|
|
3668
|
+
1292: <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>)
|
|
3669
|
+
1293: <span class="ruby-keyword kw">end</span>
|
|
3670
|
+
1294: <span class="ruby-keyword kw">end</span>
|
|
3671
|
+
1295: <span class="ruby-keyword kw">end</span></pre>
|
|
3409
3672
|
</div>
|
|
3410
3673
|
|
|
3411
3674
|
</div>
|
|
@@ -3436,15 +3699,15 @@ index <tt>scIdx</tt>.
|
|
|
3436
3699
|
<div class="method-source-code"
|
|
3437
3700
|
id="matching-eports-source">
|
|
3438
3701
|
<pre>
|
|
3439
|
-
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line
|
|
3440
|
-
|
|
3441
|
-
|
|
3442
|
-
|
|
3443
|
-
|
|
3444
|
-
|
|
3445
|
-
|
|
3446
|
-
|
|
3447
|
-
|
|
3702
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/Project.rb, line 1313</span>
|
|
3703
|
+
1313: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">matchingReports</span>(<span class="ruby-identifier">reportId</span>)
|
|
3704
|
+
1314: <span class="ruby-identifier">list</span> = []
|
|
3705
|
+
1315: <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>
|
|
3706
|
+
1316: <span class="ruby-identifier">id</span> = <span class="ruby-identifier">report</span>.<span class="ruby-identifier">fullId</span>
|
|
3707
|
+
1317: <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>
|
|
3708
|
+
1318: <span class="ruby-keyword kw">end</span>
|
|
3709
|
+
1319: <span class="ruby-identifier">list</span>
|
|
3710
|
+
1320: <span class="ruby-keyword kw">end</span></pre>
|
|
3448
3711
|
</div>
|
|
3449
3712
|
|
|
3450
3713
|
</div>
|