taskjuggler 0.0.5 → 0.0.6
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 +2086 -0
- data/benchmarks/666tasks.tjp +3183 -0
- data/benchmarks/booking.tjp +14 -10
- data/doc/AppConfig.html +95 -73
- data/doc/Arguments.html +22 -2
- data/doc/CHANGELOG.html +2587 -0
- data/doc/COPYING.html +21 -1
- data/doc/Object.html +161 -122
- data/doc/README.html +21 -1
- data/doc/RuntimeConfig.html +26 -6
- data/doc/String.html +38 -18
- data/doc/StringIO.html +579 -0
- data/doc/TaskJuggler.html +251 -143
- data/doc/TaskJuggler/Account.html +26 -6
- data/doc/TaskJuggler/AccountAttribute.html +28 -8
- data/doc/TaskJuggler/AccountScenario.html +24 -4
- data/doc/TaskJuggler/Allocation.html +30 -10
- data/doc/TaskJuggler/AllocationAttribute.html +28 -8
- data/doc/TaskJuggler/AttributeBase.html +46 -26
- data/doc/TaskJuggler/AttributeDefinition.html +22 -2
- data/doc/TaskJuggler/BatchProcessor.html +40 -20
- data/doc/TaskJuggler/Booking.html +26 -6
- data/doc/TaskJuggler/BookingListAttribute.html +28 -8
- data/doc/TaskJuggler/BooleanAttribute.html +28 -8
- data/doc/TaskJuggler/CSVFile.html +308 -146
- data/doc/TaskJuggler/CellSettingPattern.html +22 -2
- data/doc/TaskJuggler/CellSettingPatternList.html +26 -6
- data/doc/TaskJuggler/Charge.html +26 -6
- data/doc/TaskJuggler/ChargeListAttribute.html +26 -6
- data/doc/TaskJuggler/ChargeSet.html +33 -13
- data/doc/TaskJuggler/ChargeSetListAttribute.html +28 -8
- data/doc/TaskJuggler/ColumnListAttribute.html +26 -6
- data/doc/TaskJuggler/ColumnTable.html +24 -4
- data/doc/TaskJuggler/Daemon.html +26 -6
- data/doc/TaskJuggler/DateAttribute.html +26 -6
- data/doc/TaskJuggler/DefinitionListAttribute.html +22 -2
- data/doc/TaskJuggler/DependencyListAttribute.html +28 -8
- data/doc/TaskJuggler/DurationAttribute.html +28 -8
- data/doc/TaskJuggler/FixnumAttribute.html +24 -4
- data/doc/TaskJuggler/FlagListAttribute.html +28 -8
- data/doc/TaskJuggler/FloatAttribute.html +26 -6
- data/doc/TaskJuggler/FormatListAttribute.html +24 -4
- data/doc/TaskJuggler/GanttChart.html +147 -126
- data/doc/TaskJuggler/GanttContainer.html +34 -14
- data/doc/TaskJuggler/GanttHeader.html +28 -8
- data/doc/TaskJuggler/GanttHeaderScaleItem.html +24 -4
- data/doc/TaskJuggler/GanttLine.html +38 -18
- data/doc/TaskJuggler/GanttLoadStack.html +26 -6
- data/doc/TaskJuggler/GanttMilestone.html +34 -14
- data/doc/TaskJuggler/GanttRouter.html +50 -30
- data/doc/TaskJuggler/GanttTaskBar.html +34 -14
- data/doc/TaskJuggler/HTMLDocument.html +26 -6
- data/doc/TaskJuggler/HTMLGraphics.html +30 -10
- data/doc/TaskJuggler/Interval.html +40 -22
- data/doc/TaskJuggler/IntervalListAttribute.html +28 -8
- data/doc/TaskJuggler/JobInfo.html +24 -4
- data/doc/TaskJuggler/Journal.html +226 -147
- data/doc/TaskJuggler/JournalEntry.html +22 -2
- data/doc/TaskJuggler/JournalEntryList.html +129 -112
- data/doc/TaskJuggler/KeywordArray.html +26 -6
- data/doc/TaskJuggler/KeywordDocumentation.html +46 -26
- data/doc/TaskJuggler/Limits.html +152 -123
- data/doc/TaskJuggler/Limits/Limit.html +149 -70
- data/doc/TaskJuggler/LimitsAttribute.html +36 -51
- data/doc/TaskJuggler/ListAttributeBase.html +24 -4
- data/doc/TaskJuggler/Log.html +50 -32
- data/doc/TaskJuggler/LogFile.html +37 -17
- data/doc/TaskJuggler/LogicalAttribute.html +53 -33
- data/doc/TaskJuggler/LogicalExpression.html +26 -6
- data/doc/TaskJuggler/LogicalExpressionAttribute.html +32 -12
- data/doc/TaskJuggler/LogicalFlag.html +42 -22
- data/doc/TaskJuggler/LogicalFunction.html +204 -140
- data/doc/TaskJuggler/LogicalOperation.html +135 -111
- data/doc/TaskJuggler/Macro.html +22 -2
- data/doc/TaskJuggler/MacroParser.html +32 -12
- data/doc/TaskJuggler/MacroTable.html +32 -12
- data/doc/TaskJuggler/ManagerResponsibilities.html +24 -4
- data/doc/TaskJuggler/ManagerStatusRecord.html +24 -4
- data/doc/TaskJuggler/Message.html +24 -4
- data/doc/TaskJuggler/MessageHandler.html +24 -4
- data/doc/TaskJuggler/Navigator.html +104 -71
- data/doc/TaskJuggler/NavigatorElement.html +32 -12
- data/doc/TaskJuggler/NikuProject.html +22 -2
- data/doc/TaskJuggler/NikuReport.html +310 -228
- data/doc/TaskJuggler/NikuResource.html +22 -2
- data/doc/TaskJuggler/NodeListAttribute.html +615 -0
- data/doc/TaskJuggler/OnShiftCache.html +32 -12
- data/doc/TaskJuggler/ProcessIntercom.html +205 -78
- data/doc/TaskJuggler/ProcessIntercomIface.html +26 -6
- data/doc/TaskJuggler/Project.html +708 -660
- data/doc/TaskJuggler/ProjectBroker.html +506 -304
- data/doc/TaskJuggler/ProjectBrokerIface.html +61 -41
- data/doc/TaskJuggler/ProjectFileParser.html +429 -373
- data/doc/TaskJuggler/ProjectFileScanner.html +1790 -0
- data/doc/TaskJuggler/ProjectRecord.html +80 -60
- data/doc/TaskJuggler/ProjectServer.html +312 -237
- data/doc/TaskJuggler/ProjectServerIface.html +101 -43
- data/doc/TaskJuggler/PropertyAttribute.html +32 -12
- data/doc/TaskJuggler/PropertyList.html +166 -145
- data/doc/TaskJuggler/PropertySet.html +254 -224
- data/doc/TaskJuggler/PropertyTreeNode.html +670 -536
- data/doc/TaskJuggler/Query.html +169 -148
- data/doc/TaskJuggler/RTFHandlers.html +622 -0
- data/doc/TaskJuggler/RTFNavigator.html +28 -8
- data/doc/TaskJuggler/RTFQuery.html +40 -20
- data/doc/TaskJuggler/RTFReport.html +62 -25
- data/doc/TaskJuggler/RTFReportLink.html +765 -0
- data/doc/TaskJuggler/RealFormat.html +26 -6
- data/doc/TaskJuggler/RealFormatAttribute.html +26 -6
- data/doc/TaskJuggler/ReferenceAttribute.html +59 -39
- data/doc/TaskJuggler/Report.html +402 -251
- data/doc/TaskJuggler/ReportBase.html +162 -137
- data/doc/TaskJuggler/ReportContext.html +112 -29
- data/doc/TaskJuggler/ReportServer.html +89 -64
- data/doc/TaskJuggler/ReportServerIface.html +75 -55
- data/doc/TaskJuggler/ReportServerRecord.html +54 -31
- data/doc/TaskJuggler/ReportServlet.html +980 -0
- data/doc/TaskJuggler/ReportTable.html +41 -21
- data/doc/TaskJuggler/ReportTableCell.html +214 -170
- data/doc/TaskJuggler/ReportTableColumn.html +30 -10
- data/doc/TaskJuggler/ReportTableLegend.html +36 -16
- data/doc/TaskJuggler/ReportTableLine.html +32 -12
- data/doc/TaskJuggler/Resource.html +99 -87
- data/doc/TaskJuggler/ResourceListAttribute.html +59 -39
- data/doc/TaskJuggler/ResourceListRE.html +47 -26
- data/doc/TaskJuggler/ResourceScenario.html +403 -437
- data/doc/TaskJuggler/RichText.html +26 -6
- data/doc/TaskJuggler/RichTextAttribute.html +50 -30
- data/doc/TaskJuggler/RichTextDocument.html +37 -17
- data/doc/TaskJuggler/RichTextElement.html +475 -413
- data/doc/TaskJuggler/RichTextException.html +22 -2
- data/doc/TaskJuggler/RichTextFunctionExample.html +28 -8
- data/doc/TaskJuggler/RichTextFunctionHandler.html +24 -4
- data/doc/TaskJuggler/RichTextImage.html +22 -2
- data/doc/TaskJuggler/RichTextIntermediate.html +38 -18
- data/doc/TaskJuggler/RichTextParser.html +56 -34
- data/doc/TaskJuggler/RichTextScanner.html +82 -61
- data/doc/TaskJuggler/RichTextSnip.html +34 -14
- data/doc/TaskJuggler/RichTextSyntaxRules.html +507 -353
- data/doc/TaskJuggler/Scenario.html +22 -2
- data/doc/TaskJuggler/ScenarioData.html +30 -46
- data/doc/TaskJuggler/ScenarioListAttribute.html +38 -18
- data/doc/TaskJuggler/Scoreboard.html +42 -22
- data/doc/TaskJuggler/SheetHandlerBase.html +40 -20
- data/doc/TaskJuggler/SheetReceiver.html +333 -295
- data/doc/TaskJuggler/SheetSender.html +253 -230
- data/doc/TaskJuggler/Shift.html +26 -6
- data/doc/TaskJuggler/ShiftAssignment.html +89 -73
- data/doc/TaskJuggler/ShiftAssignments.html +226 -234
- data/doc/TaskJuggler/ShiftAssignmentsAttribute.html +39 -54
- data/doc/TaskJuggler/ShiftScenario.html +28 -8
- data/doc/TaskJuggler/SortListAttribute.html +34 -14
- data/doc/TaskJuggler/SourceFileInfo.html +24 -4
- data/doc/TaskJuggler/StatusSheetReceiver.html +24 -3
- data/doc/TaskJuggler/StatusSheetReport.html +168 -153
- data/doc/TaskJuggler/StatusSheetSender.html +24 -3
- data/doc/TaskJuggler/StringAttribute.html +38 -18
- data/doc/TaskJuggler/SymbolAttribute.html +32 -12
- data/doc/TaskJuggler/SyntaxReference.html +40 -20
- data/doc/TaskJuggler/TOCEntry.html +26 -6
- data/doc/TaskJuggler/TSResourceRecord.html +22 -2
- data/doc/TaskJuggler/TSTaskRecord.html +22 -2
- data/doc/TaskJuggler/TableColumnDefinition.html +59 -22
- data/doc/TaskJuggler/TableOfContents.html +26 -6
- data/doc/TaskJuggler/TableReport.html +937 -904
- data/doc/TaskJuggler/Task.html +55 -36
- data/doc/TaskJuggler/TaskDependency.html +24 -4
- data/doc/TaskJuggler/TaskListAttribute.html +50 -30
- data/doc/TaskJuggler/TaskListRE.html +27 -7
- data/doc/TaskJuggler/TaskScenario.html +1273 -1153
- data/doc/TaskJuggler/TextFormatter.html +28 -8
- data/doc/TaskJuggler/TextParser.html +585 -338
- data/doc/TaskJuggler/TextParser/Pattern.html +54 -34
- data/doc/TaskJuggler/TextParser/Rule.html +95 -73
- data/doc/TaskJuggler/TextParser/StackElement.html +39 -17
- data/doc/TaskJuggler/TextParser/TextParserResultArray.html +24 -4
- data/doc/TaskJuggler/TextParser/TokenDoc.html +22 -2
- data/doc/TaskJuggler/TextReport.html +28 -8
- data/doc/TaskJuggler/TextScanner.html +400 -1404
- data/doc/TaskJuggler/TextScanner/BufferStreamHandle.html +28 -240
- data/doc/TaskJuggler/TextScanner/FileStreamHandle.html +37 -184
- data/doc/TaskJuggler/TextScanner/MacroStackEntry.html +682 -0
- data/doc/TaskJuggler/TextScanner/StreamHandle.html +342 -67
- data/doc/TaskJuggler/TimeSheet.html +48 -28
- data/doc/TaskJuggler/TimeSheetReceiver.html +24 -3
- data/doc/TaskJuggler/TimeSheetRecord.html +47 -27
- data/doc/TaskJuggler/TimeSheetReport.html +154 -133
- data/doc/TaskJuggler/TimeSheetSender.html +24 -3
- data/doc/TaskJuggler/TimeSheetSummary.html +137 -91
- data/doc/TaskJuggler/TimeSheets.html +26 -6
- data/doc/TaskJuggler/Tj3AppBase.html +85 -58
- data/doc/TaskJuggler/Tj3Client.html +292 -238
- data/doc/TaskJuggler/Tj3Daemon.html +159 -74
- data/doc/TaskJuggler/Tj3SheetAppBase.html +26 -6
- data/doc/TaskJuggler/Tj3SsReceiver.html +26 -6
- data/doc/TaskJuggler/Tj3SsSender.html +53 -26
- data/doc/TaskJuggler/Tj3TsReceiver.html +28 -7
- data/doc/TaskJuggler/Tj3TsSender.html +26 -6
- data/doc/TaskJuggler/Tj3TsSummary.html +26 -6
- data/doc/TaskJuggler/TjException.html +22 -2
- data/doc/TaskJuggler/TjTime.html +216 -160
- data/doc/TaskJuggler/TjpExample.html +34 -14
- data/doc/TaskJuggler/TjpExportRE.html +403 -407
- data/doc/TaskJuggler/TjpSyntaxRules.html +4805 -4408
- data/doc/TaskJuggler/URLParameter.html +649 -0
- data/doc/TaskJuggler/UserManual.html +42 -22
- data/doc/TaskJuggler/WebServer.html +702 -0
- data/doc/TaskJuggler/WorkingHours.html +38 -18
- data/doc/TaskJuggler/WorkingHoursAttribute.html +61 -41
- data/doc/TaskJuggler/XMLBlob.html +24 -4
- data/doc/TaskJuggler/XMLComment.html +24 -4
- data/doc/TaskJuggler/XMLDocument.html +30 -10
- data/doc/TaskJuggler/XMLElement.html +34 -14
- data/doc/TaskJuggler/XMLNamedText.html +22 -2
- data/doc/TaskJuggler/XMLText.html +24 -4
- data/doc/index.html +1841 -1666
- data/doc/lib/AccountScenario_rb.html +1 -1
- data/doc/lib/Account_rb.html +1 -1
- data/doc/lib/Allocation_rb.html +1 -1
- data/doc/lib/AppConfig_rb.html +2 -2
- data/doc/lib/AttributeBase_rb.html +1 -1
- data/doc/lib/AttributeDefinition_rb.html +1 -1
- data/doc/lib/Attributes_rb.html +2 -2
- data/doc/lib/BatchProcessor_rb.html +1 -1
- data/doc/lib/Booking_rb.html +1 -1
- data/doc/lib/ChargeSet_rb.html +1 -1
- data/doc/lib/Charge_rb.html +1 -1
- data/doc/lib/HTMLDocument_rb.html +1 -1
- data/doc/lib/Interval_rb.html +1 -1
- data/doc/lib/Journal_rb.html +2 -2
- data/doc/lib/KeywordArray_rb.html +1 -1
- data/doc/lib/KeywordDocumentation_rb.html +1 -1
- data/doc/lib/Limits_rb.html +2 -2
- data/doc/lib/LogFile_rb.html +2 -2
- data/doc/lib/Log_rb.html +1 -1
- data/doc/lib/LogicalExpression_rb.html +1 -1
- data/doc/lib/LogicalFunction_rb.html +2 -2
- data/doc/lib/LogicalOperation_rb.html +2 -2
- data/doc/lib/MacroParser_rb.html +1 -1
- data/doc/lib/MacroTable_rb.html +1 -1
- data/doc/lib/MessageHandler_rb.html +1 -1
- data/doc/lib/Message_rb.html +1 -1
- data/doc/lib/ProjectFileParser_rb.html +4 -8
- data/doc/lib/ProjectFileScanner_rb.html +67 -0
- data/doc/lib/Project_rb.html +2 -2
- data/doc/lib/PropertyList_rb.html +2 -2
- data/doc/lib/PropertySet_rb.html +2 -2
- data/doc/lib/PropertyTreeNode_rb.html +2 -2
- data/doc/lib/Query_rb.html +2 -2
- data/doc/lib/RTFHandlers_rb.html +73 -0
- data/doc/lib/RTFNavigator_rb.html +1 -1
- data/doc/lib/RTFQuery_rb.html +1 -1
- data/doc/lib/RTFReportLink_rb.html +71 -0
- data/doc/lib/RTFReport_rb.html +2 -2
- data/doc/lib/RealFormat_rb.html +1 -1
- data/doc/lib/ResourceScenario_rb.html +2 -2
- data/doc/lib/Resource_rb.html +2 -2
- data/doc/lib/RichTextDocument_rb.html +1 -1
- data/doc/lib/RichTextElement_rb.html +2 -2
- data/doc/lib/RichTextFunctionExample_rb.html +1 -1
- data/doc/lib/RichTextFunctionHandler_rb.html +1 -1
- data/doc/lib/RichTextParser_rb.html +2 -2
- data/doc/lib/RichTextScanner_rb.html +2 -2
- data/doc/lib/RichTextSnip_rb.html +1 -1
- data/doc/lib/RichTextSyntaxRules_rb.html +2 -2
- data/doc/lib/RichText_rb.html +1 -1
- data/doc/lib/RuntimeConfig_rb.html +1 -1
- data/doc/lib/ScenarioData_rb.html +2 -2
- data/doc/lib/Scenario_rb.html +1 -1
- data/doc/lib/Scoreboard_rb.html +1 -1
- data/doc/lib/SheetHandlerBase_rb.html +1 -1
- data/doc/lib/SheetReceiver_rb.html +2 -2
- data/doc/lib/SheetSender_rb.html +4 -2
- data/doc/lib/ShiftAssignments_rb.html +4 -2
- data/doc/lib/ShiftScenario_rb.html +1 -1
- data/doc/lib/Shift_rb.html +1 -1
- data/doc/lib/SourceFileInfo_rb.html +1 -1
- data/doc/lib/StatusSheetReceiver_rb.html +2 -2
- data/doc/lib/StatusSheetSender_rb.html +2 -2
- data/doc/lib/SyntaxReference_rb.html +1 -1
- data/doc/lib/TOCEntry_rb.html +1 -1
- data/doc/lib/TableColumnDefinition_rb.html +2 -2
- data/doc/lib/TableOfContents_rb.html +1 -1
- data/doc/lib/TaskDependency_rb.html +1 -1
- data/doc/lib/TaskJuggler_rb.html +2 -2
- data/doc/lib/TaskScenario_rb.html +2 -2
- data/doc/lib/Task_rb.html +2 -2
- data/doc/lib/TextFormatter_rb.html +1 -1
- data/doc/lib/TextParser/Pattern_rb.html +1 -1
- data/doc/lib/TextParser/Rule_rb.html +2 -2
- data/doc/lib/TextParser/StackElement_rb.html +2 -2
- data/doc/lib/TextParser/TokenDoc_rb.html +1 -1
- data/doc/lib/TextParser_rb.html +2 -2
- data/doc/lib/TextScanner_rb.html +6 -2
- data/doc/lib/TimeSheetReceiver_rb.html +2 -2
- data/doc/lib/TimeSheetSender_rb.html +2 -2
- data/doc/lib/TimeSheetSummary_rb.html +2 -2
- data/doc/lib/TimeSheets_rb.html +2 -2
- data/doc/lib/Tj3AppBase_rb.html +2 -2
- data/doc/lib/Tj3Config_rb.html +2 -2
- data/doc/lib/Tj3SheetAppBase_rb.html +2 -2
- data/doc/lib/TjException_rb.html +1 -1
- data/doc/lib/TjTime_rb.html +2 -2
- data/doc/lib/TjpExample_rb.html +1 -1
- data/doc/lib/TjpSyntaxRules_rb.html +2 -2
- data/doc/lib/URLParameter_rb.html +67 -0
- data/doc/lib/UTF8String_rb.html +1 -1
- data/doc/lib/UserManual_rb.html +1 -1
- data/doc/lib/WorkingHours_rb.html +1 -1
- data/doc/lib/XMLDocument_rb.html +2 -2
- data/doc/lib/XMLElement_rb.html +1 -1
- data/doc/lib/daemon/Daemon_rb.html +1 -1
- data/doc/lib/daemon/ProcessIntercom_rb.html +2 -2
- data/doc/lib/daemon/ProjectBroker_rb.html +4 -2
- data/doc/lib/daemon/ProjectServer_rb.html +2 -2
- data/doc/lib/daemon/ReportServer_rb.html +2 -2
- data/doc/lib/daemon/WebServer_rb.html +75 -0
- data/doc/lib/deep_copy_rb.html +2 -2
- data/doc/lib/reports/CSVFile_rb.html +2 -2
- data/doc/lib/reports/ColumnTable_rb.html +1 -1
- data/doc/lib/reports/GanttChart_rb.html +2 -2
- data/doc/lib/reports/GanttContainer_rb.html +1 -1
- data/doc/lib/reports/GanttHeaderScaleItem_rb.html +1 -1
- data/doc/lib/reports/GanttHeader_rb.html +1 -1
- data/doc/lib/reports/GanttLine_rb.html +1 -1
- data/doc/lib/reports/GanttLoadStack_rb.html +1 -1
- data/doc/lib/reports/GanttMilestone_rb.html +1 -1
- data/doc/lib/reports/GanttRouter_rb.html +1 -1
- data/doc/lib/reports/GanttTaskBar_rb.html +1 -1
- data/doc/lib/reports/HTMLGraphics_rb.html +1 -1
- data/doc/lib/reports/Navigator_rb.html +2 -2
- data/doc/lib/reports/NikuReport_rb.html +2 -2
- data/doc/lib/reports/ReportBase_rb.html +2 -2
- data/doc/lib/reports/ReportContext_rb.html +2 -2
- data/doc/lib/reports/ReportTableCell_rb.html +2 -2
- data/doc/lib/reports/ReportTableColumn_rb.html +1 -1
- data/doc/lib/reports/ReportTableLegend_rb.html +1 -1
- data/doc/lib/reports/ReportTableLine_rb.html +1 -1
- data/doc/lib/reports/ReportTable_rb.html +2 -2
- data/doc/lib/reports/Report_rb.html +2 -2
- data/doc/lib/reports/ResourceListRE_rb.html +2 -2
- data/doc/lib/reports/StatusSheetReport_rb.html +2 -2
- data/doc/lib/reports/TableReport_rb.html +2 -2
- data/doc/lib/reports/TaskListRE_rb.html +2 -2
- data/doc/lib/reports/TextReport_rb.html +1 -1
- data/doc/lib/reports/TimeSheetReport_rb.html +2 -2
- data/doc/lib/reports/TjpExportRE_rb.html +2 -2
- data/doc/lib/ruby-signal-bug_rb.html +1 -1
- data/doc/lib/taskjuggler3_rb.html +2 -2
- data/doc/lib/tj3client_rb.html +2 -2
- data/doc/lib/tj3d_rb.html +2 -2
- data/doc/lib/tj3man_rb.html +1 -1
- data/doc/lib/tj3ss_receiver_rb.html +1 -1
- data/doc/lib/tj3ss_sender_rb.html +2 -2
- data/doc/lib/tj3ts_receiver_rb.html +2 -2
- data/doc/lib/tj3ts_sender_rb.html +1 -1
- data/doc/lib/tj3ts_summary_rb.html +1 -1
- data/doc/rdoc.css +9 -4
- data/examples/tutorial.tjp +17 -15
- data/gem_spec.rb +3 -0
- data/lib/AppConfig.rb +3 -1
- data/lib/Attributes.rb +10 -8
- data/lib/Journal.rb +55 -20
- data/lib/Limits.rb +72 -46
- data/lib/LogFile.rb +3 -3
- data/lib/LogicalFunction.rb +19 -6
- data/lib/LogicalOperation.rb +5 -1
- data/lib/Project.rb +37 -9
- data/lib/ProjectFileParser.rb +25 -22
- data/lib/ProjectFileScanner.rb +365 -0
- data/lib/PropertyList.rb +2 -1
- data/lib/PropertySet.rb +14 -4
- data/lib/PropertyTreeNode.rb +42 -29
- data/lib/Query.rb +3 -1
- data/lib/RTFHandlers.rb +35 -0
- data/lib/RTFReport.rb +23 -6
- data/lib/RTFReportLink.rb +72 -0
- data/lib/Resource.rb +8 -16
- data/lib/ResourceScenario.rb +1 -22
- data/lib/RichTextElement.rb +42 -0
- data/lib/RichTextParser.rb +6 -4
- data/lib/RichTextScanner.rb +5 -5
- data/lib/RichTextSyntaxRules.rb +48 -10
- data/lib/ScenarioData.rb +5 -3
- data/lib/SheetReceiver.rb +24 -6
- data/lib/SheetSender.rb +17 -13
- data/lib/ShiftAssignments.rb +56 -52
- data/lib/StatusSheetReceiver.rb +1 -0
- data/lib/StatusSheetSender.rb +1 -0
- data/lib/TableColumnDefinition.rb +4 -2
- data/lib/Task.rb +8 -9
- data/lib/TaskJuggler.rb +21 -11
- data/lib/TaskScenario.rb +61 -26
- data/lib/TextParser.rb +268 -106
- data/lib/TextParser/Rule.rb +4 -2
- data/lib/TextParser/StackElement.rb +6 -4
- data/lib/TextScanner.rb +283 -700
- data/lib/TimeSheetReceiver.rb +1 -0
- data/lib/TimeSheetSender.rb +1 -0
- data/lib/TimeSheetSummary.rb +51 -26
- data/lib/TimeSheets.rb +1 -1
- data/lib/Tj3AppBase.rb +8 -1
- data/lib/Tj3Config.rb +1 -1
- data/lib/TjTime.rb +5 -0
- data/lib/TjpSyntaxRules.rb +360 -144
- data/lib/URLParameter.rb +30 -0
- data/lib/XMLDocument.rb +2 -2
- data/lib/daemon/ProcessIntercom.rb +50 -9
- data/lib/daemon/ProjectBroker.rb +63 -10
- data/lib/daemon/ProjectServer.rb +47 -16
- data/lib/daemon/ReportServer.rb +9 -4
- data/lib/daemon/WebServer.rb +204 -0
- data/lib/deep_copy.rb +4 -1
- data/lib/reports/CSVFile.rb +150 -66
- data/lib/reports/GanttChart.rb +2 -1
- data/lib/reports/Navigator.rb +18 -5
- data/lib/reports/NikuReport.rb +32 -2
- data/lib/reports/Report.rb +65 -37
- data/lib/reports/ReportBase.rb +14 -9
- data/lib/reports/ReportContext.rb +19 -4
- data/lib/reports/ReportTable.rb +2 -2
- data/lib/reports/ReportTableCell.rb +54 -30
- data/lib/reports/ResourceListRE.rb +4 -3
- data/lib/reports/StatusSheetReport.rb +8 -13
- data/lib/reports/TableReport.rb +47 -32
- data/lib/reports/TaskListRE.rb +3 -3
- data/lib/reports/TimeSheetReport.rb +14 -5
- data/lib/reports/TjpExportRE.rb +14 -19
- data/lib/taskjuggler3.rb +15 -0
- data/lib/tj3client.rb +9 -7
- data/lib/tj3d.rb +38 -10
- data/lib/tj3ss_sender.rb +7 -0
- data/lib/tj3ts_receiver.rb +1 -0
- data/manual/Day_To_Day_Juggling +1 -1
- data/manual/Rich_Text_Attributes +8 -0
- data/manual/TaskJuggler_2x_Migration +7 -0
- data/manual/The_TaskJuggler_Syntax +20 -6
- data/prj_cfg.rb +3 -2
- data/tasks/changelog.rake +36 -0
- data/tasks/csts.rake +2 -3
- data/tasks/gem.rake +10 -0
- data/tasks/missing.rake +0 -17
- data/test/TestSuite/ReportGenerator/Correct/Journal.html +63 -0
- data/test/TestSuite/ReportGenerator/Correct/Journal.tjp +14 -0
- data/test/TestSuite/{HTML-Reports/LogicalFunctions.tjp → ReportGenerator/Correct/LogicalFunctions1.tjp} +2 -2
- data/test/TestSuite/ReportGenerator/Correct/LogicalFunctions2.csv +3 -0
- data/test/TestSuite/ReportGenerator/Correct/LogicalFunctions2.tjp +19 -0
- data/test/TestSuite/ReportGenerator/Correct/css/tjmanual.css +66 -0
- data/test/TestSuite/ReportGenerator/Correct/css/tjreport.css +407 -0
- data/test/TestSuite/ReportGenerator/Correct/icons/details.png +0 -0
- data/test/TestSuite/ReportGenerator/Correct/icons/flag-green.png +0 -0
- data/test/TestSuite/ReportGenerator/Correct/icons/flag-red.png +0 -0
- data/test/TestSuite/ReportGenerator/Correct/icons/flag-yellow.png +0 -0
- data/test/TestSuite/ReportGenerator/Correct/icons/resource.png +0 -0
- data/test/TestSuite/ReportGenerator/Correct/icons/resourcegroup.png +0 -0
- data/test/TestSuite/ReportGenerator/Correct/icons/task.png +0 -0
- data/test/TestSuite/ReportGenerator/Correct/icons/taskgroup.png +0 -0
- data/test/TestSuite/ReportGenerator/Correct/icons/trend-down.png +0 -0
- data/test/TestSuite/ReportGenerator/Correct/icons/trend-flat.png +0 -0
- data/test/TestSuite/ReportGenerator/Correct/icons/trend-up.png +0 -0
- data/test/TestSuite/ReportGenerator/Correct/opennodes.csv +2 -0
- data/test/TestSuite/ReportGenerator/Correct/opennodes.tjp +26 -0
- data/test/TestSuite/ReportGenerator/Correct/refs/Journal-1.csv +6 -0
- data/test/TestSuite/ReportGenerator/Correct/refs/LogicalFunctions1-1.csv +7 -0
- data/test/TestSuite/ReportGenerator/Correct/refs/LogicalFunctions2-1.csv +2 -0
- data/test/TestSuite/ReportGenerator/Correct/refs/opennodes-1.csv +2 -0
- data/test/TestSuite/ReportGenerator/Correct/scripts/wz_tooltip.js +1301 -0
- data/test/TestSuite/ReportGenerator/Errors/rtp_report_recursion.tjp +20 -0
- data/test/TestSuite/Scheduler/Correct/Container.html +349 -0
- data/test/TestSuite/Scheduler/Correct/Limits.tjp +11 -4
- data/test/TestSuite/Scheduler/Correct/Shift2.html +464 -150
- data/test/TestSuite/Scheduler/Correct/TimeSheet2.html +108 -0
- data/test/TestSuite/Scheduler/Correct/TimeSheet2.tjp +7 -0
- data/test/TestSuite/Scheduler/Correct/css/tjmanual.css +14 -0
- data/test/TestSuite/Scheduler/Correct/css/tjreport.css +233 -21
- data/test/TestSuite/Scheduler/Correct/scripts/wz_tooltip.js +20 -20
- data/test/TestSuite/StatusSheetTemplates/project.tji +35 -0
- data/test/TestSuite/StatusSheetTemplates/project.tjp +56 -0
- data/test/TestSuite/StatusSheets/run +3 -2
- data/test/TestSuite/Syntax/Correct/Include.tjp +1 -1
- data/test/TestSuite/Syntax/Correct/Macro-1.tjp +1 -1
- data/test/TestSuite/Syntax/Correct/Macro-2.tjp +6 -0
- data/test/TestSuite/Syntax/Correct/Macro-3.tjp +14 -0
- data/test/TestSuite/Syntax/Correct/ResourcePrefix.html +32 -0
- data/test/TestSuite/Syntax/Correct/css/tjmanual.css +66 -0
- data/test/TestSuite/Syntax/Correct/css/tjreport.css +407 -0
- data/test/TestSuite/Syntax/Correct/icons/details.png +0 -0
- data/test/TestSuite/Syntax/Correct/icons/flag-green.png +0 -0
- data/test/TestSuite/Syntax/Correct/icons/flag-red.png +0 -0
- data/test/TestSuite/Syntax/Correct/icons/flag-yellow.png +0 -0
- data/test/TestSuite/Syntax/Correct/icons/resource.png +0 -0
- data/test/TestSuite/Syntax/Correct/icons/resourcegroup.png +0 -0
- data/test/TestSuite/Syntax/Correct/icons/task.png +0 -0
- data/test/TestSuite/Syntax/Correct/icons/taskgroup.png +0 -0
- data/test/TestSuite/Syntax/Correct/icons/trend-down.png +0 -0
- data/test/TestSuite/Syntax/Correct/icons/trend-flat.png +0 -0
- data/test/TestSuite/Syntax/Correct/icons/trend-up.png +0 -0
- data/test/TestSuite/Syntax/Correct/include/dir1/file2.tji +3 -0
- data/test/TestSuite/Syntax/Correct/include/dir1/file5.tji +2 -0
- data/test/TestSuite/Syntax/Correct/include/dir3/all.tji +3 -0
- data/test/TestSuite/Syntax/Correct/include/dir3/file1.tji +2 -0
- data/test/TestSuite/Syntax/Correct/include/dir3/file2.tji +1 -0
- data/test/TestSuite/Syntax/Correct/scripts/wz_tooltip.js +1301 -0
- data/test/TestSuite/Syntax/Correct/tutorial.tjp +13 -13
- data/test/TestSuite/Syntax/Errors/empty.tjp +1 -1
- data/test/TestSuite/Syntax/Errors/include_recursion.tjp +1 -0
- data/test/TestSuite/Syntax/Errors/macro_stack_overflow.tjp +2 -1
- data/test/TestSuite/Syntax/Errors/{eof_in_istring1.tjp → no_token_match1.tjp} +2 -2
- data/test/TestSuite/Syntax/Errors/{eof_in_istring2.tjp → no_token_match2.tjp} +2 -2
- data/test/TestSuite/Syntax/Errors/{eof_in_istring3.tjp → no_token_match3.tjp} +1 -1
- data/test/TestSuite/Syntax/Errors/{eof_in_istring4.tjp → no_token_match4.tjp} +1 -1
- data/test/TestSuite/Syntax/Errors/{eof_in_istring5.tjp → no_token_match5.tjp} +1 -1
- data/test/TestSuite/Syntax/Errors/not_scheduled.tjp +13 -0
- data/test/TestSuite/Syntax/Errors/unsupported_token.tjp +1 -1
- data/test/TestSuite/TimeSheets/run +5 -5
- data/test/test_CSVFile.rb +75 -0
- data/test/test_Limits.rb +63 -5
- data/test/test_ProjectFileScanner.rb +163 -0
- data/test/test_ReportGenerator.rb +81 -0
- data/test/test_RichText.rb +21 -3
- data/test/test_Scheduler.rb +1 -1
- data/test/test_ShiftAssignments.rb +4 -4
- data/test/test_Syntax.rb +1 -1
- data/test/test_URLParameter.rb +30 -0
- metadata +126 -32
- data/test/TestSuite/Scheduler/Errors/not_scheduled.tjp +0 -8
- data/test/TestSuite/Syntax/Errors/bad_comment.tjp +0 -7
- data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/boss_2002-03-01.tji +0 -36
- data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/dev1_2002-03-01.tji +0 -48
- data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/dev2_2002-03-01.tji +0 -67
- data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/dev3_2002-03-01.tji +0 -67
- data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/doc_2002-03-01.tji +0 -48
- data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/resources.yml +0 -31
- data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/test_2002-03-01.tji +0 -36
- data/test/TestSuite/TimeSheets/TimeSheetTemplates/acceptable_intervals +0 -1
- data/test/TestSuite/TimeSheets/TimeSheets/2002-03-01/all.tji +0 -1
- data/test/TestSuite/TimeSheets/TimeSheets/2002-03-01/dev2_2002-03-01.tji +0 -54
- data/test/TestSuite/TimeSheets/TimeSheets/all.tji +0 -2
- data/test/TestSuite/TimeSheets/receiver.log +0 -102
- data/test/TestSuite/TimeSheets/sender.log +0 -794
- data/test/TestSuite/TimeSheets/summary.log +0 -884
- data/test/TestSuite/TimeSheets/timesheets.log +0 -45
- data/test/TestSuite/TimeSheets/tj3d.log +0 -292
- data/test/test_TextScanner.rb +0 -95
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
<div id="parent-class-section" class="section">
|
|
56
56
|
<h3 class="section-header">Parent</h3>
|
|
57
57
|
|
|
58
|
-
<p class="link"
|
|
58
|
+
<p class="link">Monitor</p>
|
|
59
59
|
|
|
60
60
|
</div>
|
|
61
61
|
|
|
@@ -69,37 +69,35 @@
|
|
|
69
69
|
<h3 class="section-header">Methods</h3>
|
|
70
70
|
<ul class="link-list">
|
|
71
71
|
|
|
72
|
-
<li><a href="#
|
|
72
|
+
<li><a href="#method-c-deleteScoreboard">::deleteScoreboard</a></li>
|
|
73
73
|
|
|
74
|
-
<li><a href="#
|
|
74
|
+
<li><a href="#method-c-new">::new</a></li>
|
|
75
75
|
|
|
76
|
-
<li><a href="#
|
|
76
|
+
<li><a href="#method-c-sbClear">::sbClear</a></li>
|
|
77
77
|
|
|
78
|
-
<li><a href="#
|
|
78
|
+
<li><a href="#method-c-scoreboards">::scoreboards</a></li>
|
|
79
79
|
|
|
80
|
-
<li><a href="#
|
|
80
|
+
<li><a href="#method-i-addAssignment">#addAssignment</a></li>
|
|
81
81
|
|
|
82
|
-
<li><a href="#
|
|
82
|
+
<li><a href="#method-i-assigned%3F">#assigned?</a></li>
|
|
83
83
|
|
|
84
|
-
<li><a href="#
|
|
84
|
+
<li><a href="#method-i-collectTimeOffIntervals">#collectTimeOffIntervals</a></li>
|
|
85
85
|
|
|
86
|
-
<li><a href="#
|
|
86
|
+
<li><a href="#method-i-getSbSlot">#getSbSlot</a></li>
|
|
87
87
|
|
|
88
|
-
<li><a href="#
|
|
88
|
+
<li><a href="#method-i-hashKey">#hashKey</a></li>
|
|
89
89
|
|
|
90
|
-
<li><a href="#
|
|
90
|
+
<li><a href="#method-i-newScoreboard">#newScoreboard</a></li>
|
|
91
91
|
|
|
92
|
-
<li><a href="#
|
|
92
|
+
<li><a href="#method-i-onShift%3F">#onShift?</a></li>
|
|
93
93
|
|
|
94
|
-
<li><a href="#
|
|
94
|
+
<li><a href="#method-i-onVacation%3F">#onVacation?</a></li>
|
|
95
95
|
|
|
96
|
-
<li><a href="#
|
|
96
|
+
<li><a href="#method-i-overlaps%3F">#overlaps?</a></li>
|
|
97
97
|
|
|
98
|
-
<li><a href="#
|
|
98
|
+
<li><a href="#method-i-timeOff%3F">#timeOff?</a></li>
|
|
99
99
|
|
|
100
|
-
<li><a href="#
|
|
101
|
-
|
|
102
|
-
<li><a href="#M000056">#to_s</a></li>
|
|
100
|
+
<li><a href="#method-i-to_s">#to_s</a></li>
|
|
103
101
|
|
|
104
102
|
</ul>
|
|
105
103
|
</div>
|
|
@@ -127,6 +125,8 @@
|
|
|
127
125
|
<h3 class="section-header">Files</h3>
|
|
128
126
|
<ul>
|
|
129
127
|
|
|
128
|
+
<li class="file"><a href="../CHANGELOG.html">CHANGELOG</a></li>
|
|
129
|
+
|
|
130
130
|
<li class="file"><a href="../COPYING.html">COPYING</a></li>
|
|
131
131
|
|
|
132
132
|
<li class="file"><a href="../README.html">README</a></li>
|
|
@@ -296,6 +296,8 @@
|
|
|
296
296
|
|
|
297
297
|
<li><a href="../TaskJuggler/NikuResource.html">TaskJuggler::NikuResource</a></li>
|
|
298
298
|
|
|
299
|
+
<li><a href="../TaskJuggler/NodeListAttribute.html">TaskJuggler::NodeListAttribute</a></li>
|
|
300
|
+
|
|
299
301
|
<li><a href="../TaskJuggler/OnShiftCache.html">TaskJuggler::OnShiftCache</a></li>
|
|
300
302
|
|
|
301
303
|
<li><a href="../TaskJuggler/ProcessIntercom.html">TaskJuggler::ProcessIntercom</a></li>
|
|
@@ -310,6 +312,8 @@
|
|
|
310
312
|
|
|
311
313
|
<li><a href="../TaskJuggler/ProjectFileParser.html">TaskJuggler::ProjectFileParser</a></li>
|
|
312
314
|
|
|
315
|
+
<li><a href="../TaskJuggler/ProjectFileScanner.html">TaskJuggler::ProjectFileScanner</a></li>
|
|
316
|
+
|
|
313
317
|
<li><a href="../TaskJuggler/ProjectRecord.html">TaskJuggler::ProjectRecord</a></li>
|
|
314
318
|
|
|
315
319
|
<li><a href="../TaskJuggler/ProjectServer.html">TaskJuggler::ProjectServer</a></li>
|
|
@@ -326,12 +330,16 @@
|
|
|
326
330
|
|
|
327
331
|
<li><a href="../TaskJuggler/Query.html">TaskJuggler::Query</a></li>
|
|
328
332
|
|
|
333
|
+
<li><a href="../TaskJuggler/RTFHandlers.html">TaskJuggler::RTFHandlers</a></li>
|
|
334
|
+
|
|
329
335
|
<li><a href="../TaskJuggler/RTFNavigator.html">TaskJuggler::RTFNavigator</a></li>
|
|
330
336
|
|
|
331
337
|
<li><a href="../TaskJuggler/RTFQuery.html">TaskJuggler::RTFQuery</a></li>
|
|
332
338
|
|
|
333
339
|
<li><a href="../TaskJuggler/RTFReport.html">TaskJuggler::RTFReport</a></li>
|
|
334
340
|
|
|
341
|
+
<li><a href="../TaskJuggler/RTFReportLink.html">TaskJuggler::RTFReportLink</a></li>
|
|
342
|
+
|
|
335
343
|
<li><a href="../TaskJuggler/RealFormat.html">TaskJuggler::RealFormat</a></li>
|
|
336
344
|
|
|
337
345
|
<li><a href="../TaskJuggler/RealFormatAttribute.html">TaskJuggler::RealFormatAttribute</a></li>
|
|
@@ -350,6 +358,8 @@
|
|
|
350
358
|
|
|
351
359
|
<li><a href="../TaskJuggler/ReportServerRecord.html">TaskJuggler::ReportServerRecord</a></li>
|
|
352
360
|
|
|
361
|
+
<li><a href="../TaskJuggler/ReportServlet.html">TaskJuggler::ReportServlet</a></li>
|
|
362
|
+
|
|
353
363
|
<li><a href="../TaskJuggler/ReportTable.html">TaskJuggler::ReportTable</a></li>
|
|
354
364
|
|
|
355
365
|
<li><a href="../TaskJuggler/ReportTableCell.html">TaskJuggler::ReportTableCell</a></li>
|
|
@@ -478,6 +488,8 @@
|
|
|
478
488
|
|
|
479
489
|
<li><a href="../TaskJuggler/TextScanner/FileStreamHandle.html">TaskJuggler::TextScanner::FileStreamHandle</a></li>
|
|
480
490
|
|
|
491
|
+
<li><a href="../TaskJuggler/TextScanner/MacroStackEntry.html">TaskJuggler::TextScanner::MacroStackEntry</a></li>
|
|
492
|
+
|
|
481
493
|
<li><a href="../TaskJuggler/TextScanner/StreamHandle.html">TaskJuggler::TextScanner::StreamHandle</a></li>
|
|
482
494
|
|
|
483
495
|
<li><a href="../TaskJuggler/TimeSheet.html">TaskJuggler::TimeSheet</a></li>
|
|
@@ -522,8 +534,12 @@
|
|
|
522
534
|
|
|
523
535
|
<li><a href="../TaskJuggler/TjpSyntaxRules.html">TaskJuggler::TjpSyntaxRules</a></li>
|
|
524
536
|
|
|
537
|
+
<li><a href="../TaskJuggler/URLParameter.html">TaskJuggler::URLParameter</a></li>
|
|
538
|
+
|
|
525
539
|
<li><a href="../TaskJuggler/UserManual.html">TaskJuggler::UserManual</a></li>
|
|
526
540
|
|
|
541
|
+
<li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
|
|
542
|
+
|
|
527
543
|
<li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
|
|
528
544
|
|
|
529
545
|
<li><a href="../TaskJuggler/WorkingHoursAttribute.html">TaskJuggler::WorkingHoursAttribute</a></li>
|
|
@@ -550,6 +566,8 @@
|
|
|
550
566
|
|
|
551
567
|
<li><a href="../String.html">String</a></li>
|
|
552
568
|
|
|
569
|
+
<li><a href="../StringIO.html">StringIO</a></li>
|
|
570
|
+
|
|
553
571
|
</ul>
|
|
554
572
|
<div id="no-class-search-results" style="display: none;">No matching classes.</div>
|
|
555
573
|
</div>
|
|
@@ -618,9 +636,11 @@ Bit 6: Reserved Bit 7: 0: No global override
|
|
|
618
636
|
<div id="project-attribute-method" class="method-detail">
|
|
619
637
|
<a name="project"></a>
|
|
620
638
|
|
|
639
|
+
<a name="project="></a>
|
|
640
|
+
|
|
621
641
|
<div class="method-heading attribute-method-heading">
|
|
622
642
|
<span class="method-name">project</span><span
|
|
623
|
-
class="attribute-access-type">[
|
|
643
|
+
class="attribute-access-type">[RW]</span>
|
|
624
644
|
</div>
|
|
625
645
|
|
|
626
646
|
<div class="method-description">
|
|
@@ -655,7 +675,7 @@ Bit 6: Reserved Bit 7: 0: No global override
|
|
|
655
675
|
|
|
656
676
|
|
|
657
677
|
<div id="new-method" class="method-detail ">
|
|
658
|
-
<a name="
|
|
678
|
+
<a name="method-c-new"></a>
|
|
659
679
|
|
|
660
680
|
<div class="method-heading">
|
|
661
681
|
|
|
@@ -678,18 +698,28 @@ Bit 6: Reserved Bit 7: 0: No global override
|
|
|
678
698
|
107: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">sa</span> = <span class="ruby-keyword kw">nil</span>)
|
|
679
699
|
108: <span class="ruby-identifier">define_finalizer</span>(<span class="ruby-keyword kw">self</span>, <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">method</span>(<span class="ruby-value">:deleteScoreboard</span>).<span class="ruby-identifier">to_proc</span>)
|
|
680
700
|
109:
|
|
681
|
-
110: <span class="ruby-
|
|
682
|
-
111: <span class="ruby-
|
|
683
|
-
112:
|
|
684
|
-
113:
|
|
685
|
-
114:
|
|
686
|
-
115:
|
|
687
|
-
116:
|
|
688
|
-
117: <span class="ruby-keyword kw">
|
|
689
|
-
118: <span class="ruby-
|
|
690
|
-
119: <span class="ruby-
|
|
691
|
-
120:
|
|
692
|
-
121:
|
|
701
|
+
110: <span class="ruby-comment cmt"># An Array of ShiftAssignment objects.</span>
|
|
702
|
+
111: <span class="ruby-ivar">@assignments</span> = []
|
|
703
|
+
112:
|
|
704
|
+
113: <span class="ruby-comment cmt"># A String that uniquely identifies the content of this ShiftAssignment</span>
|
|
705
|
+
114: <span class="ruby-comment cmt"># object.</span>
|
|
706
|
+
115: <span class="ruby-ivar">@hashKey</span> = <span class="ruby-keyword kw">nil</span>
|
|
707
|
+
116:
|
|
708
|
+
117: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">sa</span>
|
|
709
|
+
118: <span class="ruby-comment cmt"># A ShiftAssignments object was passed to the contructor. We create a</span>
|
|
710
|
+
119: <span class="ruby-comment cmt"># deep copy of it.</span>
|
|
711
|
+
120: <span class="ruby-ivar">@project</span> = <span class="ruby-identifier">sa</span>.<span class="ruby-identifier">project</span>
|
|
712
|
+
121: <span class="ruby-identifier">sa</span>.<span class="ruby-identifier">assignments</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">assignment</span><span class="ruby-operator">|</span>
|
|
713
|
+
122: <span class="ruby-ivar">@assignments</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">assignment</span>.<span class="ruby-identifier">copy</span>
|
|
714
|
+
123: <span class="ruby-keyword kw">end</span>
|
|
715
|
+
124: <span class="ruby-comment cmt"># Create a new ScoreBoard or share one with a ShiftAssignments object</span>
|
|
716
|
+
125: <span class="ruby-comment cmt"># that has the same set of shift assignments.</span>
|
|
717
|
+
126: <span class="ruby-ivar">@scoreboard</span> = <span class="ruby-identifier">newScoreboard</span>
|
|
718
|
+
127: <span class="ruby-keyword kw">else</span>
|
|
719
|
+
128: <span class="ruby-ivar">@project</span> = <span class="ruby-keyword kw">nil</span>
|
|
720
|
+
129: <span class="ruby-ivar">@scoreboard</span> = <span class="ruby-keyword kw">nil</span>
|
|
721
|
+
130: <span class="ruby-keyword kw">end</span>
|
|
722
|
+
131: <span class="ruby-keyword kw">end</span></pre>
|
|
693
723
|
</div>
|
|
694
724
|
|
|
695
725
|
</div>
|
|
@@ -701,7 +731,7 @@ Bit 6: Reserved Bit 7: 0: No global override
|
|
|
701
731
|
|
|
702
732
|
|
|
703
733
|
<div id="sb-lear-method" class="method-detail ">
|
|
704
|
-
<a name="
|
|
734
|
+
<a name="method-c-sbClear"></a>
|
|
705
735
|
|
|
706
736
|
<div class="method-heading">
|
|
707
737
|
|
|
@@ -720,10 +750,10 @@ Bit 6: Reserved Bit 7: 0: No global override
|
|
|
720
750
|
<div class="method-source-code"
|
|
721
751
|
id="sb-lear-source">
|
|
722
752
|
<pre>
|
|
723
|
-
<span class="ruby-comment cmt"># File lib/ShiftAssignments.rb, line
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
753
|
+
<span class="ruby-comment cmt"># File lib/ShiftAssignments.rb, line 212</span>
|
|
754
|
+
212: <span class="ruby-keyword kw">def</span> <span class="ruby-constant">ShiftAssignments</span>.<span class="ruby-identifier">sbClear</span>
|
|
755
|
+
213: <span class="ruby-identifier">@@scoreboards</span> = {}
|
|
756
|
+
214: <span class="ruby-keyword kw">end</span></pre>
|
|
727
757
|
</div>
|
|
728
758
|
|
|
729
759
|
</div>
|
|
@@ -735,7 +765,7 @@ Bit 6: Reserved Bit 7: 0: No global override
|
|
|
735
765
|
|
|
736
766
|
|
|
737
767
|
<div id="scoreboards-method" class="method-detail ">
|
|
738
|
-
<a name="
|
|
768
|
+
<a name="method-c-scoreboards"></a>
|
|
739
769
|
|
|
740
770
|
<div class="method-heading">
|
|
741
771
|
|
|
@@ -754,10 +784,10 @@ Bit 6: Reserved Bit 7: 0: No global override
|
|
|
754
784
|
<div class="method-source-code"
|
|
755
785
|
id="scoreboards-source">
|
|
756
786
|
<pre>
|
|
757
|
-
<span class="ruby-comment cmt"># File lib/ShiftAssignments.rb, line
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
787
|
+
<span class="ruby-comment cmt"># File lib/ShiftAssignments.rb, line 208</span>
|
|
788
|
+
208: <span class="ruby-keyword kw">def</span> <span class="ruby-constant">ShiftAssignments</span>.<span class="ruby-identifier">scoreboards</span>
|
|
789
|
+
209: <span class="ruby-identifier">@@scoreboards</span>
|
|
790
|
+
210: <span class="ruby-keyword kw">end</span></pre>
|
|
761
791
|
</div>
|
|
762
792
|
|
|
763
793
|
</div>
|
|
@@ -775,7 +805,7 @@ Bit 6: Reserved Bit 7: 0: No global override
|
|
|
775
805
|
|
|
776
806
|
|
|
777
807
|
<div id="delete-coreboard-method" class="method-detail ">
|
|
778
|
-
<a name="
|
|
808
|
+
<a name="method-c-deleteScoreboard"></a>
|
|
779
809
|
|
|
780
810
|
<div class="method-heading">
|
|
781
811
|
|
|
@@ -800,22 +830,26 @@ the GC.
|
|
|
800
830
|
<pre>
|
|
801
831
|
<span class="ruby-comment cmt"># File lib/ShiftAssignments.rb, line 270</span>
|
|
802
832
|
270: <span class="ruby-keyword kw">def</span> <span class="ruby-constant">ShiftAssignments</span>.<span class="ruby-identifier">deleteScoreboard</span>(<span class="ruby-identifier">objId</span>)
|
|
803
|
-
271: <span class="ruby-comment cmt"># Attention: Due to the way this class is called, there will be no
|
|
804
|
-
272: <span class="ruby-comment cmt"># exceptions here. All runtime errors will go unnoticed!</span>
|
|
833
|
+
271: <span class="ruby-comment cmt"># Attention: Due to the way this class is called, there will be no</span>
|
|
834
|
+
272: <span class="ruby-comment cmt"># visible exceptions here. All runtime errors will go unnoticed!</span>
|
|
805
835
|
273: <span class="ruby-comment cmt">#</span>
|
|
806
|
-
274: <span class="ruby-comment cmt">#
|
|
807
|
-
275: <span class="ruby-comment cmt"># deleted ShiftAssignments object. If it's the last in the record
|
|
808
|
-
276: <span class="ruby-comment cmt"># delete the whole record. If not, we'll just remove
|
|
809
|
-
277: <span class="ruby-
|
|
810
|
-
278:
|
|
811
|
-
279: <span class="ruby-
|
|
812
|
-
280:
|
|
813
|
-
281:
|
|
814
|
-
282:
|
|
815
|
-
283:
|
|
816
|
-
284:
|
|
817
|
-
285:
|
|
818
|
-
286:
|
|
836
|
+
274: <span class="ruby-comment cmt"># We'll search the @@scoreboards for an entry that holds a reference to</span>
|
|
837
|
+
275: <span class="ruby-comment cmt"># the deleted ShiftAssignments object. If it's the last in the record,</span>
|
|
838
|
+
276: <span class="ruby-comment cmt"># we delete the whole record. If not, we'll just remove the reference</span>
|
|
839
|
+
277: <span class="ruby-comment cmt"># form the record.</span>
|
|
840
|
+
278: <span class="ruby-identifier">@@scoreboards</span>.<span class="ruby-identifier">each_value</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">record</span><span class="ruby-operator">|</span>
|
|
841
|
+
279: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">record</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">objId</span>)
|
|
842
|
+
280: <span class="ruby-comment cmt"># Remove the ShiftAssignments object as user of this Scoreboard</span>
|
|
843
|
+
281: <span class="ruby-comment cmt"># object.</span>
|
|
844
|
+
282: <span class="ruby-identifier">record</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">objId</span>)
|
|
845
|
+
283: <span class="ruby-comment cmt"># We've found what we were looking for.</span>
|
|
846
|
+
284: <span class="ruby-keyword kw">break</span>
|
|
847
|
+
285: <span class="ruby-keyword kw">end</span>
|
|
848
|
+
286: <span class="ruby-keyword kw">end</span>
|
|
849
|
+
287:
|
|
850
|
+
288: <span class="ruby-comment cmt"># Delete all entries which have empty reference lists.</span>
|
|
851
|
+
289: <span class="ruby-identifier">@@scoreboards</span>.<span class="ruby-identifier">delete_if</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">key</span>, <span class="ruby-identifier">record</span><span class="ruby-operator">|</span> <span class="ruby-identifier">record</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">empty?</span> }
|
|
852
|
+
290: <span class="ruby-keyword kw">end</span></pre>
|
|
819
853
|
</div>
|
|
820
854
|
|
|
821
855
|
</div>
|
|
@@ -832,51 +866,8 @@ the GC.
|
|
|
832
866
|
<h3 class="section-header">Public Instance Methods</h3>
|
|
833
867
|
|
|
834
868
|
|
|
835
|
-
<div id="--method" class="method-detail ">
|
|
836
|
-
<a name="M000053"></a>
|
|
837
|
-
|
|
838
|
-
<div class="method-heading">
|
|
839
|
-
|
|
840
|
-
<span class="method-name">==</span><span
|
|
841
|
-
class="method-args">(shiftAssignments)</span>
|
|
842
|
-
<span class="method-click-advice">click to toggle source</span>
|
|
843
|
-
|
|
844
|
-
</div>
|
|
845
|
-
|
|
846
|
-
<div class="method-description">
|
|
847
|
-
|
|
848
|
-
<p>
|
|
849
|
-
Returns true if two <a href="ShiftAssignments.html">ShiftAssignments</a>
|
|
850
|
-
object have the same assignment pattern.
|
|
851
|
-
</p>
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
<div class="method-source-code"
|
|
856
|
-
id="--source">
|
|
857
|
-
<pre>
|
|
858
|
-
<span class="ruby-comment cmt"># File lib/ShiftAssignments.rb, line 205</span>
|
|
859
|
-
205: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">==</span>(<span class="ruby-identifier">shiftAssignments</span>)
|
|
860
|
-
206: <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">@assignments</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">shiftAssignments</span>.<span class="ruby-identifier">assignments</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">||</span>
|
|
861
|
-
207: <span class="ruby-ivar">@project</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">shiftAssignments</span>.<span class="ruby-identifier">project</span>
|
|
862
|
-
208:
|
|
863
|
-
209: <span class="ruby-ivar">@assignments</span>.<span class="ruby-identifier">size</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>
|
|
864
|
-
210: <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">@assignments</span>[<span class="ruby-identifier">i</span>] <span class="ruby-operator">!=</span> <span class="ruby-identifier">shiftAssignments</span>.<span class="ruby-identifier">assignments</span>[<span class="ruby-identifier">i</span>]
|
|
865
|
-
211: <span class="ruby-keyword kw">end</span>
|
|
866
|
-
212: <span class="ruby-keyword kw">true</span>
|
|
867
|
-
213: <span class="ruby-keyword kw">end</span></pre>
|
|
868
|
-
</div>
|
|
869
|
-
|
|
870
|
-
</div>
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
</div>
|
|
876
|
-
|
|
877
|
-
|
|
878
869
|
<div id="add-ssignment-method" class="method-detail ">
|
|
879
|
-
<a name="
|
|
870
|
+
<a name="method-i-addAssignment"></a>
|
|
880
871
|
|
|
881
872
|
<div class="method-heading">
|
|
882
873
|
|
|
@@ -898,15 +889,15 @@ returns true. Otherwise false.
|
|
|
898
889
|
<div class="method-source-code"
|
|
899
890
|
id="add-ssignment-source">
|
|
900
891
|
<pre>
|
|
901
|
-
<span class="ruby-comment cmt"># File lib/ShiftAssignments.rb, line
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
892
|
+
<span class="ruby-comment cmt"># File lib/ShiftAssignments.rb, line 135</span>
|
|
893
|
+
135: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">addAssignment</span>(<span class="ruby-identifier">shiftAssignment</span>)
|
|
894
|
+
136: <span class="ruby-comment cmt"># Make sure we don't insert overlapping assignments.</span>
|
|
895
|
+
137: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">overlaps?</span>(<span class="ruby-identifier">shiftAssignment</span>.<span class="ruby-identifier">interval</span>)
|
|
896
|
+
138:
|
|
897
|
+
139: <span class="ruby-ivar">@assignments</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">shiftAssignment</span>
|
|
898
|
+
140: <span class="ruby-ivar">@scoreboard</span> = <span class="ruby-identifier">newScoreboard</span>
|
|
899
|
+
141: <span class="ruby-keyword kw">true</span>
|
|
900
|
+
142: <span class="ruby-keyword kw">end</span></pre>
|
|
910
901
|
</div>
|
|
911
902
|
|
|
912
903
|
</div>
|
|
@@ -918,7 +909,7 @@ returns true. Otherwise false.
|
|
|
918
909
|
|
|
919
910
|
|
|
920
911
|
<div id="assigned--method" class="method-detail ">
|
|
921
|
-
<a name="
|
|
912
|
+
<a name="method-i-assigned%3F"></a>
|
|
922
913
|
|
|
923
914
|
<div class="method-heading">
|
|
924
915
|
|
|
@@ -940,10 +931,10 @@ interval specified by <em>date</em>.
|
|
|
940
931
|
<div class="method-source-code"
|
|
941
932
|
id="assigned--source">
|
|
942
933
|
<pre>
|
|
943
|
-
<span class="ruby-comment cmt"># File lib/ShiftAssignments.rb, line
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
934
|
+
<span class="ruby-comment cmt"># File lib/ShiftAssignments.rb, line 178</span>
|
|
935
|
+
178: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">assigned?</span>(<span class="ruby-identifier">date</span>)
|
|
936
|
+
179: (<span class="ruby-identifier">getSbSlot</span>(<span class="ruby-identifier">date</span>) & <span class="ruby-value">1</span>) <span class="ruby-operator">==</span> <span class="ruby-value">1</span>
|
|
937
|
+
180: <span class="ruby-keyword kw">end</span></pre>
|
|
947
938
|
</div>
|
|
948
939
|
|
|
949
940
|
</div>
|
|
@@ -955,7 +946,7 @@ interval specified by <em>date</em>.
|
|
|
955
946
|
|
|
956
947
|
|
|
957
948
|
<div id="collect-ime-ff-ntervals-method" class="method-detail ">
|
|
958
|
-
<a name="
|
|
949
|
+
<a name="method-i-collectTimeOffIntervals"></a>
|
|
959
950
|
|
|
960
951
|
<div class="method-heading">
|
|
961
952
|
|
|
@@ -977,12 +968,12 @@ minDuration long and contain no working time.
|
|
|
977
968
|
<div class="method-source-code"
|
|
978
969
|
id="collect-ime-ff-ntervals-source">
|
|
979
970
|
<pre>
|
|
980
|
-
<span class="ruby-comment cmt"># File lib/ShiftAssignments.rb, line
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
971
|
+
<span class="ruby-comment cmt"># File lib/ShiftAssignments.rb, line 202</span>
|
|
972
|
+
202: <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>)
|
|
973
|
+
203: <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>
|
|
974
|
+
204: (<span class="ruby-identifier">val</span> & <span class="ruby-value">0x3E</span>) <span class="ruby-operator">!=</span> <span class="ruby-value">0</span>
|
|
975
|
+
205: <span class="ruby-keyword kw">end</span>
|
|
976
|
+
206: <span class="ruby-keyword kw">end</span></pre>
|
|
986
977
|
</div>
|
|
987
978
|
|
|
988
979
|
</div>
|
|
@@ -994,7 +985,7 @@ minDuration long and contain no working time.
|
|
|
994
985
|
|
|
995
986
|
|
|
996
987
|
<div id="get-b-lot-method" class="method-detail ">
|
|
997
|
-
<a name="
|
|
988
|
+
<a name="method-i-getSbSlot"></a>
|
|
998
989
|
|
|
999
990
|
<div class="method-heading">
|
|
1000
991
|
|
|
@@ -1017,36 +1008,36 @@ calculated first.
|
|
|
1017
1008
|
<div class="method-source-code"
|
|
1018
1009
|
id="get-b-lot-source">
|
|
1019
1010
|
<pre>
|
|
1020
|
-
<span class="ruby-comment cmt"># File lib/ShiftAssignments.rb, line
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
145:
|
|
1026
|
-
146:
|
|
1027
|
-
147: <span class="ruby-comment cmt"># If not, compute it.</span>
|
|
1028
|
-
148: <span class="ruby-ivar">@assignments</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">sa</span><span class="ruby-operator">|</span>
|
|
1029
|
-
149: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">sa</span>.<span class="ruby-identifier">assigned?</span>(<span class="ruby-identifier">date</span>)
|
|
1011
|
+
<span class="ruby-comment cmt"># File lib/ShiftAssignments.rb, line 146</span>
|
|
1012
|
+
146: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">getSbSlot</span>(<span class="ruby-identifier">date</span>)
|
|
1013
|
+
147: <span class="ruby-identifier">idx</span> = <span class="ruby-ivar">@scoreboard</span>.<span class="ruby-identifier">dateToIdx</span>(<span class="ruby-identifier">date</span>)
|
|
1014
|
+
148: <span class="ruby-comment cmt"># Check if we have a value already for this slot.</span>
|
|
1015
|
+
149: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@scoreboard</span>[<span class="ruby-identifier">idx</span>] <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@scoreboard</span>[<span class="ruby-identifier">idx</span>].<span class="ruby-identifier">nil?</span>
|
|
1030
1016
|
150:
|
|
1031
|
-
151:
|
|
1032
|
-
152:
|
|
1033
|
-
153:
|
|
1034
|
-
154:
|
|
1035
|
-
155:
|
|
1036
|
-
156: <span class="ruby-
|
|
1037
|
-
157:
|
|
1038
|
-
158: <span class="ruby-
|
|
1039
|
-
159:
|
|
1040
|
-
160:
|
|
1041
|
-
161: <span class="ruby-
|
|
1042
|
-
162:
|
|
1043
|
-
163:
|
|
1044
|
-
164: <span class="ruby-keyword kw">
|
|
1045
|
-
165:
|
|
1046
|
-
166:
|
|
1047
|
-
167:
|
|
1048
|
-
168:
|
|
1049
|
-
169:
|
|
1017
|
+
151:
|
|
1018
|
+
152: <span class="ruby-comment cmt"># If not, compute it.</span>
|
|
1019
|
+
153: <span class="ruby-ivar">@assignments</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">sa</span><span class="ruby-operator">|</span>
|
|
1020
|
+
154: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">sa</span>.<span class="ruby-identifier">assigned?</span>(<span class="ruby-identifier">date</span>)
|
|
1021
|
+
155:
|
|
1022
|
+
156: <span class="ruby-comment cmt"># Mark the slot as 'assigned'. Meaning, the rest of the bits are valid</span>
|
|
1023
|
+
157: <span class="ruby-comment cmt"># for this time slot.</span>
|
|
1024
|
+
158: <span class="ruby-ivar">@scoreboard</span>[<span class="ruby-identifier">idx</span>] = <span class="ruby-value">1</span>
|
|
1025
|
+
159:
|
|
1026
|
+
160: <span class="ruby-comment cmt"># Set bit 1 if the shift is not active</span>
|
|
1027
|
+
161: <span class="ruby-ivar">@scoreboard</span>[<span class="ruby-identifier">idx</span>] <span class="ruby-operator">|=</span> <span class="ruby-value">1</span> <span class="ruby-operator"><<</span> <span class="ruby-value">1</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">sa</span>.<span class="ruby-identifier">onShift?</span>(<span class="ruby-identifier">date</span>)
|
|
1028
|
+
162:
|
|
1029
|
+
163: <span class="ruby-comment cmt"># Set bits 2 - 5 to 1 if it's a vacation slot.</span>
|
|
1030
|
+
164: <span class="ruby-ivar">@scoreboard</span>[<span class="ruby-identifier">idx</span>] <span class="ruby-operator">|=</span> <span class="ruby-value">1</span> <span class="ruby-operator"><<</span> <span class="ruby-value">3</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">sa</span>.<span class="ruby-identifier">onVacation?</span>(<span class="ruby-identifier">date</span>)
|
|
1031
|
+
165:
|
|
1032
|
+
166: <span class="ruby-comment cmt"># Set the 8th bit if the shift replaces global vacations.</span>
|
|
1033
|
+
167: <span class="ruby-ivar">@scoreboard</span>[<span class="ruby-identifier">idx</span>] <span class="ruby-operator">|=</span> <span class="ruby-value">1</span> <span class="ruby-operator"><<</span> <span class="ruby-value">8</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">sa</span>.<span class="ruby-identifier">replace?</span>(<span class="ruby-identifier">date</span>)
|
|
1034
|
+
168:
|
|
1035
|
+
169: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@scoreboard</span>[<span class="ruby-identifier">idx</span>]
|
|
1036
|
+
170: <span class="ruby-keyword kw">end</span>
|
|
1037
|
+
171:
|
|
1038
|
+
172: <span class="ruby-comment cmt"># The slot is not covered by any assignment.</span>
|
|
1039
|
+
173: <span class="ruby-ivar">@scoreboard</span>[<span class="ruby-identifier">idx</span>] = <span class="ruby-value">0</span>
|
|
1040
|
+
174: <span class="ruby-keyword kw">end</span></pre>
|
|
1050
1041
|
</div>
|
|
1051
1042
|
|
|
1052
1043
|
</div>
|
|
@@ -1057,33 +1048,35 @@ calculated first.
|
|
|
1057
1048
|
</div>
|
|
1058
1049
|
|
|
1059
1050
|
|
|
1060
|
-
<div id="
|
|
1061
|
-
<a name="
|
|
1051
|
+
<div id="hash-ey-method" class="method-detail ">
|
|
1052
|
+
<a name="method-i-hashKey"></a>
|
|
1062
1053
|
|
|
1063
1054
|
<div class="method-heading">
|
|
1064
1055
|
|
|
1065
|
-
<span class="method-name">
|
|
1066
|
-
class="method-args">(
|
|
1056
|
+
<span class="method-name">hashKey</span><span
|
|
1057
|
+
class="method-args">()</span>
|
|
1067
1058
|
<span class="method-click-advice">click to toggle source</span>
|
|
1068
1059
|
|
|
1069
1060
|
</div>
|
|
1070
1061
|
|
|
1071
1062
|
<div class="method-description">
|
|
1072
1063
|
|
|
1073
|
-
|
|
1074
|
-
Returns true if any of the defined shift periods contains the <em>date</em>
|
|
1075
|
-
and the shift has working hours defined for that <em>date</em>.
|
|
1076
|
-
</p>
|
|
1064
|
+
|
|
1077
1065
|
|
|
1078
1066
|
|
|
1079
1067
|
|
|
1080
1068
|
<div class="method-source-code"
|
|
1081
|
-
id="
|
|
1069
|
+
id="hash-ey-source">
|
|
1082
1070
|
<pre>
|
|
1083
|
-
<span class="ruby-comment cmt"># File lib/ShiftAssignments.rb, line
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1071
|
+
<span class="ruby-comment cmt"># File lib/ShiftAssignments.rb, line 233</span>
|
|
1072
|
+
233: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">hashKey</span>
|
|
1073
|
+
234: <span class="ruby-ivar">@hashKey</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@hashKey</span>
|
|
1074
|
+
235:
|
|
1075
|
+
236: <span class="ruby-ivar">@hashKey</span> = <span class="ruby-node">"#{@project.object_id}|"</span>
|
|
1076
|
+
237: <span class="ruby-ivar">@assignments</span>.<span class="ruby-identifier">sort!</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">a</span>, <span class="ruby-identifier">b</span><span class="ruby-operator">|</span> <span class="ruby-identifier">a</span>.<span class="ruby-identifier">interval</span>.<span class="ruby-identifier">start</span> <span class="ruby-operator"><=></span> <span class="ruby-identifier">b</span>.<span class="ruby-identifier">interval</span>.<span class="ruby-identifier">start</span> }
|
|
1077
|
+
238: <span class="ruby-ivar">@assignments</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">@hashKey</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">a</span>.<span class="ruby-identifier">hashKey</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'||'</span> }
|
|
1078
|
+
239: <span class="ruby-ivar">@hashKey</span>
|
|
1079
|
+
240: <span class="ruby-keyword kw">end</span></pre>
|
|
1087
1080
|
</div>
|
|
1088
1081
|
|
|
1089
1082
|
</div>
|
|
@@ -1094,12 +1087,12 @@ and the shift has working hours defined for that <em>date</em>.
|
|
|
1094
1087
|
</div>
|
|
1095
1088
|
|
|
1096
1089
|
|
|
1097
|
-
<div id="on-
|
|
1098
|
-
<a name="
|
|
1090
|
+
<div id="on-hift--method" class="method-detail ">
|
|
1091
|
+
<a name="method-i-onShift%3F"></a>
|
|
1099
1092
|
|
|
1100
1093
|
<div class="method-heading">
|
|
1101
1094
|
|
|
1102
|
-
<span class="method-name">
|
|
1095
|
+
<span class="method-name">onShift?</span><span
|
|
1103
1096
|
class="method-args">(date)</span>
|
|
1104
1097
|
<span class="method-click-advice">click to toggle source</span>
|
|
1105
1098
|
|
|
@@ -1109,18 +1102,18 @@ and the shift has working hours defined for that <em>date</em>.
|
|
|
1109
1102
|
|
|
1110
1103
|
<p>
|
|
1111
1104
|
Returns true if any of the defined shift periods contains the <em>date</em>
|
|
1112
|
-
and
|
|
1105
|
+
and the shift has working hours defined for that <em>date</em>.
|
|
1113
1106
|
</p>
|
|
1114
1107
|
|
|
1115
1108
|
|
|
1116
1109
|
|
|
1117
1110
|
<div class="method-source-code"
|
|
1118
|
-
id="on-
|
|
1111
|
+
id="on-hift--source">
|
|
1119
1112
|
<pre>
|
|
1120
|
-
<span class="ruby-comment cmt"># File lib/ShiftAssignments.rb, line
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1113
|
+
<span class="ruby-comment cmt"># File lib/ShiftAssignments.rb, line 184</span>
|
|
1114
|
+
184: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">onShift?</span>(<span class="ruby-identifier">date</span>)
|
|
1115
|
+
185: (<span class="ruby-identifier">getSbSlot</span>(<span class="ruby-identifier">date</span>) & (<span class="ruby-value">1</span> <span class="ruby-operator"><<</span> <span class="ruby-value">1</span>)) <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
|
|
1116
|
+
186: <span class="ruby-keyword kw">end</span></pre>
|
|
1124
1117
|
</div>
|
|
1125
1118
|
|
|
1126
1119
|
</div>
|
|
@@ -1131,13 +1124,13 @@ and if the shift has a vacation defined for the <em>date</em>.
|
|
|
1131
1124
|
</div>
|
|
1132
1125
|
|
|
1133
1126
|
|
|
1134
|
-
<div id="
|
|
1135
|
-
<a name="
|
|
1127
|
+
<div id="on-acation--method" class="method-detail ">
|
|
1128
|
+
<a name="method-i-onVacation%3F"></a>
|
|
1136
1129
|
|
|
1137
1130
|
<div class="method-heading">
|
|
1138
1131
|
|
|
1139
|
-
<span class="method-name">
|
|
1140
|
-
class="method-args">(
|
|
1132
|
+
<span class="method-name">onVacation?</span><span
|
|
1133
|
+
class="method-args">(date)</span>
|
|
1141
1134
|
<span class="method-click-advice">click to toggle source</span>
|
|
1142
1135
|
|
|
1143
1136
|
</div>
|
|
@@ -1145,18 +1138,19 @@ and if the shift has a vacation defined for the <em>date</em>.
|
|
|
1145
1138
|
<div class="method-description">
|
|
1146
1139
|
|
|
1147
1140
|
<p>
|
|
1148
|
-
|
|
1141
|
+
Returns true if any of the defined shift periods contains the <em>date</em>
|
|
1142
|
+
and if the shift has a vacation defined for the <em>date</em>.
|
|
1149
1143
|
</p>
|
|
1150
1144
|
|
|
1151
1145
|
|
|
1152
1146
|
|
|
1153
1147
|
<div class="method-source-code"
|
|
1154
|
-
id="
|
|
1148
|
+
id="on-acation--source">
|
|
1155
1149
|
<pre>
|
|
1156
|
-
<span class="ruby-comment cmt"># File lib/ShiftAssignments.rb, line
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
|
|
1150
|
+
<span class="ruby-comment cmt"># File lib/ShiftAssignments.rb, line 196</span>
|
|
1151
|
+
196: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">onVacation?</span>(<span class="ruby-identifier">date</span>)
|
|
1152
|
+
197: (<span class="ruby-identifier">getSbSlot</span>(<span class="ruby-identifier">date</span>) & <span class="ruby-value">0x3C</span>) <span class="ruby-operator">!=</span> <span class="ruby-value">0</span>
|
|
1153
|
+
198: <span class="ruby-keyword kw">end</span></pre>
|
|
1160
1154
|
</div>
|
|
1161
1155
|
|
|
1162
1156
|
</div>
|
|
@@ -1168,7 +1162,7 @@ Some operations require access to the whole project.
|
|
|
1168
1162
|
|
|
1169
1163
|
|
|
1170
1164
|
<div id="time-ff--method" class="method-detail ">
|
|
1171
|
-
<a name="
|
|
1165
|
+
<a name="method-i-timeOff%3F"></a>
|
|
1172
1166
|
|
|
1173
1167
|
<div class="method-heading">
|
|
1174
1168
|
|
|
@@ -1191,10 +1185,10 @@ and the shift has a vacation defined or all off hours defined for that
|
|
|
1191
1185
|
<div class="method-source-code"
|
|
1192
1186
|
id="time-ff--source">
|
|
1193
1187
|
<pre>
|
|
1194
|
-
<span class="ruby-comment cmt"># File lib/ShiftAssignments.rb, line
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
|
|
1188
|
+
<span class="ruby-comment cmt"># File lib/ShiftAssignments.rb, line 190</span>
|
|
1189
|
+
190: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">timeOff?</span>(<span class="ruby-identifier">date</span>)
|
|
1190
|
+
191: (<span class="ruby-identifier">getSbSlot</span>(<span class="ruby-identifier">date</span>) & <span class="ruby-value">0x3E</span>) <span class="ruby-operator">!=</span> <span class="ruby-value">0</span>
|
|
1191
|
+
192: <span class="ruby-keyword kw">end</span></pre>
|
|
1198
1192
|
</div>
|
|
1199
1193
|
|
|
1200
1194
|
</div>
|
|
@@ -1206,7 +1200,7 @@ and the shift has a vacation defined or all off hours defined for that
|
|
|
1206
1200
|
|
|
1207
1201
|
|
|
1208
1202
|
<div id="to-s-method" class="method-detail ">
|
|
1209
|
-
<a name="
|
|
1203
|
+
<a name="method-i-to_s"></a>
|
|
1210
1204
|
|
|
1211
1205
|
<div class="method-heading">
|
|
1212
1206
|
|
|
@@ -1227,22 +1221,22 @@ This function is primarily used for debugging purposes.
|
|
|
1227
1221
|
<div class="method-source-code"
|
|
1228
1222
|
id="to-s-source">
|
|
1229
1223
|
<pre>
|
|
1230
|
-
<span class="ruby-comment cmt"># File lib/ShiftAssignments.rb, line
|
|
1231
|
-
|
|
1232
|
-
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
|
|
1224
|
+
<span class="ruby-comment cmt"># File lib/ShiftAssignments.rb, line 217</span>
|
|
1225
|
+
217: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_s</span>
|
|
1226
|
+
218: <span class="ruby-keyword kw">return</span> <span class="ruby-value str">''</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@assignments</span>.<span class="ruby-identifier">empty?</span>
|
|
1227
|
+
219:
|
|
1228
|
+
220: <span class="ruby-identifier">out</span> = <span class="ruby-value str">"shifts "</span>
|
|
1229
|
+
221: <span class="ruby-identifier">first</span> = <span class="ruby-keyword kw">true</span>
|
|
1230
|
+
222: <span class="ruby-ivar">@assignments</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">sa</span><span class="ruby-operator">|</span>
|
|
1231
|
+
223: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">first</span>
|
|
1232
|
+
224: <span class="ruby-identifier">first</span> = <span class="ruby-keyword kw">false</span>
|
|
1233
|
+
225: <span class="ruby-keyword kw">else</span>
|
|
1234
|
+
226: <span class="ruby-identifier">out</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">', '</span>
|
|
1235
|
+
227: <span class="ruby-keyword kw">end</span>
|
|
1236
|
+
228: <span class="ruby-identifier">out</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">sa</span>.<span class="ruby-identifier">to_s</span>
|
|
1237
|
+
229: <span class="ruby-keyword kw">end</span>
|
|
1238
|
+
230: <span class="ruby-identifier">out</span>
|
|
1239
|
+
231: <span class="ruby-keyword kw">end</span></pre>
|
|
1246
1240
|
</div>
|
|
1247
1241
|
|
|
1248
1242
|
</div>
|
|
@@ -1260,7 +1254,7 @@ This function is primarily used for debugging purposes.
|
|
|
1260
1254
|
|
|
1261
1255
|
|
|
1262
1256
|
<div id="new-coreboard-method" class="method-detail ">
|
|
1263
|
-
<a name="
|
|
1257
|
+
<a name="method-i-newScoreboard"></a>
|
|
1264
1258
|
|
|
1265
1259
|
<div class="method-heading">
|
|
1266
1260
|
|
|
@@ -1283,28 +1277,26 @@ assigment patterns.
|
|
|
1283
1277
|
<div class="method-source-code"
|
|
1284
1278
|
id="new-coreboard-source">
|
|
1285
1279
|
<pre>
|
|
1286
|
-
<span class="ruby-comment cmt"># File lib/ShiftAssignments.rb, line
|
|
1287
|
-
|
|
1288
|
-
|
|
1289
|
-
|
|
1290
|
-
|
|
1291
|
-
|
|
1292
|
-
|
|
1293
|
-
|
|
1294
|
-
|
|
1295
|
-
|
|
1296
|
-
|
|
1297
|
-
|
|
1298
|
-
255: <span class="ruby-keyword kw">end</span>
|
|
1299
|
-
256: <span class="ruby-keyword kw">end</span>
|
|
1280
|
+
<span class="ruby-comment cmt"># File lib/ShiftAssignments.rb, line 246</span>
|
|
1281
|
+
246: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">newScoreboard</span>
|
|
1282
|
+
247: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">record</span> = <span class="ruby-identifier">@@scoreboards</span>[<span class="ruby-identifier">hashKey</span>])
|
|
1283
|
+
248: <span class="ruby-comment cmt"># If we already have a Scoreboard object for the hashKey of this</span>
|
|
1284
|
+
249: <span class="ruby-comment cmt"># ShiftAssignments object, we can re-use this. We just need to</span>
|
|
1285
|
+
250: <span class="ruby-comment cmt"># register the object as a user of it.</span>
|
|
1286
|
+
251: <span class="ruby-identifier">record</span>[<span class="ruby-value">0</span>] <span class="ruby-operator"><<</span> <span class="ruby-identifier">object_id</span>
|
|
1287
|
+
252:
|
|
1288
|
+
253: <span class="ruby-comment cmt"># Return the re-used Scoreboard object.</span>
|
|
1289
|
+
254: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">record</span>[<span class="ruby-value">1</span>]
|
|
1290
|
+
255: <span class="ruby-keyword kw">end</span>
|
|
1291
|
+
256:
|
|
1300
1292
|
257: <span class="ruby-comment cmt"># We have not found a matching scoreboard, so we have to create a new one.</span>
|
|
1301
1293
|
258: <span class="ruby-identifier">newSb</span> = <span class="ruby-constant">Scoreboard</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@project</span>[<span class="ruby-value str">'start'</span>], <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'end'</span>],
|
|
1302
1294
|
259: <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'scheduleGranularity'</span>])
|
|
1303
1295
|
260: <span class="ruby-comment cmt"># Create a new record for it and register the ShiftAssignments object as</span>
|
|
1304
|
-
261: <span class="ruby-comment cmt"># first user.</span>
|
|
1305
|
-
262: <span class="ruby-identifier">
|
|
1306
|
-
263:
|
|
1307
|
-
264: <span class="ruby-
|
|
1296
|
+
261: <span class="ruby-comment cmt"># first user. Add the record to the @@scoreboards list.</span>
|
|
1297
|
+
262: <span class="ruby-identifier">@@scoreboards</span>[<span class="ruby-identifier">hashKey</span>] = [ [ <span class="ruby-identifier">object_id</span> ], <span class="ruby-identifier">newSb</span> ]
|
|
1298
|
+
263:
|
|
1299
|
+
264: <span class="ruby-comment cmt"># Append the new record to the list.</span>
|
|
1308
1300
|
265: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">newSb</span>
|
|
1309
1301
|
266: <span class="ruby-keyword kw">end</span></pre>
|
|
1310
1302
|
</div>
|
|
@@ -1318,7 +1310,7 @@ assigment patterns.
|
|
|
1318
1310
|
|
|
1319
1311
|
|
|
1320
1312
|
<div id="overlaps--method" class="method-detail ">
|
|
1321
|
-
<a name="
|
|
1313
|
+
<a name="method-i-overlaps%3F"></a>
|
|
1322
1314
|
|
|
1323
1315
|
<div class="method-heading">
|
|
1324
1316
|
|
|
@@ -1339,13 +1331,13 @@ Returns true if the interval overlaps with any of the assignment periods.
|
|
|
1339
1331
|
<div class="method-source-code"
|
|
1340
1332
|
id="overlaps--source">
|
|
1341
1333
|
<pre>
|
|
1342
|
-
<span class="ruby-comment cmt"># File lib/ShiftAssignments.rb, line
|
|
1343
|
-
|
|
1344
|
-
|
|
1345
|
-
|
|
1346
|
-
|
|
1347
|
-
|
|
1348
|
-
|
|
1334
|
+
<span class="ruby-comment cmt"># File lib/ShiftAssignments.rb, line 293</span>
|
|
1335
|
+
293: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">overlaps?</span>(<span class="ruby-identifier">iv</span>)
|
|
1336
|
+
294: <span class="ruby-ivar">@assignments</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">sa</span><span class="ruby-operator">|</span>
|
|
1337
|
+
295: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">sa</span>.<span class="ruby-identifier">overlaps?</span>(<span class="ruby-identifier">iv</span>)
|
|
1338
|
+
296: <span class="ruby-keyword kw">end</span>
|
|
1339
|
+
297: <span class="ruby-keyword kw">false</span>
|
|
1340
|
+
298: <span class="ruby-keyword kw">end</span></pre>
|
|
1349
1341
|
</div>
|
|
1350
1342
|
|
|
1351
1343
|
</div>
|