taskjuggler 0.0.7 → 0.0.8
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 +119 -0
- data/benchmarks/allocatedSlots.tjp +1602 -0
- data/benchmarks/booking.tjp +40 -30
- data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/css/tjmanual.css +0 -0
- data/{test/TestSuite/Scheduler/Correct → benchmarks}/css/tjreport.css +1 -0
- data/benchmarks/gantt.tjp +57 -0
- data/benchmarks/htmltaskreport.tjp +26 -1
- data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/icons/details.png +0 -0
- data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/icons/flag-green.png +0 -0
- data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/icons/flag-red.png +0 -0
- data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/icons/flag-yellow.png +0 -0
- data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/icons/resource.png +0 -0
- data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/icons/resourcegroup.png +0 -0
- data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/icons/task.png +0 -0
- data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/icons/taskgroup.png +0 -0
- data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/icons/trend-down.png +0 -0
- data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/icons/trend-flat.png +0 -0
- data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/icons/trend-up.png +0 -0
- data/benchmarks/profile.clt +36082 -0
- data/benchmarks/profile.html +58182 -0
- data/benchmarks/runbench.rb +6 -0
- data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/scripts/wz_tooltip.js +0 -0
- data/doc/AppConfig.html +85 -37
- data/doc/Arguments.html +11 -1
- data/doc/CHANGELOG.html +131 -2
- data/doc/COPYING.html +11 -1
- data/doc/Object.html +12 -3
- data/doc/README.html +11 -1
- data/doc/RuntimeConfig.html +11 -1
- data/doc/String.html +11 -1
- data/doc/StringIO.html +11 -1
- data/doc/TaskJuggler.html +250 -219
- data/doc/TaskJuggler/Account.html +11 -1
- data/doc/TaskJuggler/AccountAttribute.html +11 -1
- data/doc/TaskJuggler/AccountScenario.html +11 -1
- data/doc/TaskJuggler/Allocation.html +11 -1
- data/doc/TaskJuggler/AllocationAttribute.html +11 -1
- data/doc/TaskJuggler/AttributeBase.html +11 -1
- data/doc/TaskJuggler/AttributeDefinition.html +11 -1
- data/doc/TaskJuggler/BatchProcessor.html +11 -1
- data/doc/TaskJuggler/Booking.html +11 -1
- data/doc/TaskJuggler/BookingListAttribute.html +11 -1
- data/doc/TaskJuggler/BooleanAttribute.html +11 -1
- data/doc/TaskJuggler/CSVFile.html +12 -2
- data/doc/TaskJuggler/CellSettingPattern.html +11 -1
- data/doc/TaskJuggler/CellSettingPatternList.html +11 -1
- data/doc/TaskJuggler/Charge.html +11 -1
- data/doc/TaskJuggler/ChargeListAttribute.html +11 -1
- data/doc/TaskJuggler/ChargeSet.html +11 -1
- data/doc/TaskJuggler/ChargeSetListAttribute.html +11 -1
- data/doc/TaskJuggler/CollisionDetector.html +1063 -0
- data/doc/TaskJuggler/ColumnListAttribute.html +11 -1
- data/doc/TaskJuggler/ColumnTable.html +11 -1
- data/doc/TaskJuggler/Daemon.html +11 -1
- data/doc/TaskJuggler/{OnShiftCache.html → DataCache.html} +127 -139
- data/doc/TaskJuggler/DataCacheEntry.html +711 -0
- data/doc/TaskJuggler/DateAttribute.html +11 -1
- data/doc/TaskJuggler/DefinitionListAttribute.html +11 -1
- data/doc/TaskJuggler/DependencyListAttribute.html +11 -1
- data/doc/TaskJuggler/DurationAttribute.html +16 -5
- data/doc/TaskJuggler/FileList.html +11 -1
- data/doc/TaskJuggler/FileRecord.html +11 -1
- data/doc/TaskJuggler/FixnumAttribute.html +19 -9
- data/doc/TaskJuggler/FlagListAttribute.html +29 -19
- data/doc/TaskJuggler/FloatAttribute.html +23 -13
- data/doc/TaskJuggler/FormatListAttribute.html +19 -9
- data/doc/TaskJuggler/GanttChart.html +94 -133
- data/doc/TaskJuggler/GanttContainer.html +11 -1
- data/doc/TaskJuggler/GanttHeader.html +11 -1
- data/doc/TaskJuggler/GanttHeaderScaleItem.html +11 -1
- data/doc/TaskJuggler/GanttLine.html +11 -1
- data/doc/TaskJuggler/GanttLoadStack.html +11 -1
- data/doc/TaskJuggler/GanttMilestone.html +11 -1
- data/doc/TaskJuggler/GanttRouter.html +247 -596
- data/doc/TaskJuggler/GanttTaskBar.html +11 -1
- data/doc/TaskJuggler/HTMLDocument.html +11 -1
- data/doc/TaskJuggler/HTMLGraphics.html +11 -1
- data/doc/TaskJuggler/Interval.html +11 -1
- data/doc/TaskJuggler/IntervalListAttribute.html +33 -23
- data/doc/TaskJuggler/JobInfo.html +11 -1
- data/doc/TaskJuggler/Journal.html +11 -1
- data/doc/TaskJuggler/JournalEntry.html +11 -1
- data/doc/TaskJuggler/JournalEntryList.html +11 -1
- data/doc/TaskJuggler/KeywordArray.html +11 -1
- data/doc/TaskJuggler/KeywordDocumentation.html +16 -6
- data/doc/TaskJuggler/Limits.html +11 -1
- data/doc/TaskJuggler/Limits/Limit.html +11 -1
- data/doc/TaskJuggler/LimitsAttribute.html +24 -14
- data/doc/TaskJuggler/ListAttributeBase.html +11 -1
- data/doc/TaskJuggler/Log.html +11 -1
- data/doc/TaskJuggler/LogFile.html +11 -1
- data/doc/TaskJuggler/LogicalAttribute.html +11 -1
- data/doc/TaskJuggler/LogicalExpression.html +11 -1
- data/doc/TaskJuggler/LogicalExpressionAttribute.html +19 -9
- data/doc/TaskJuggler/LogicalFlag.html +11 -1
- data/doc/TaskJuggler/LogicalFunction.html +11 -1
- data/doc/TaskJuggler/LogicalOperation.html +11 -1
- data/doc/TaskJuggler/Macro.html +11 -1
- data/doc/TaskJuggler/MacroTable.html +11 -1
- data/doc/TaskJuggler/ManagerResponsibilities.html +11 -1
- data/doc/TaskJuggler/ManagerStatusRecord.html +11 -1
- data/doc/TaskJuggler/Message.html +11 -1
- data/doc/TaskJuggler/MessageHandler.html +11 -1
- data/doc/TaskJuggler/Navigator.html +12 -2
- data/doc/TaskJuggler/NavigatorElement.html +11 -1
- data/doc/TaskJuggler/NikuProject.html +11 -1
- data/doc/TaskJuggler/NikuReport.html +11 -1
- data/doc/TaskJuggler/NikuResource.html +11 -1
- data/doc/TaskJuggler/NodeListAttribute.html +17 -7
- data/doc/TaskJuggler/PlaceHolderCell.html +722 -0
- data/doc/TaskJuggler/ProcessIntercom.html +11 -1
- data/doc/TaskJuggler/ProcessIntercomIface.html +11 -1
- data/doc/TaskJuggler/Project.html +587 -500
- data/doc/TaskJuggler/ProjectBroker.html +11 -1
- data/doc/TaskJuggler/ProjectBrokerIface.html +11 -1
- data/doc/TaskJuggler/ProjectFileParser.html +205 -192
- data/doc/TaskJuggler/ProjectFileScanner.html +230 -207
- data/doc/TaskJuggler/ProjectRecord.html +11 -1
- data/doc/TaskJuggler/ProjectServer.html +11 -1
- data/doc/TaskJuggler/ProjectServerIface.html +11 -1
- data/doc/TaskJuggler/PropertyAttribute.html +19 -9
- data/doc/TaskJuggler/PropertyList.html +95 -83
- data/doc/TaskJuggler/PropertySet.html +11 -1
- data/doc/TaskJuggler/PropertyTreeNode.html +11 -1
- data/doc/TaskJuggler/Query.html +234 -232
- data/doc/TaskJuggler/RTFHandlers.html +11 -1
- data/doc/TaskJuggler/RTFNavigator.html +11 -1
- data/doc/TaskJuggler/RTFQuery.html +11 -1
- data/doc/TaskJuggler/RTFReport.html +11 -1
- data/doc/TaskJuggler/RTFReportLink.html +11 -1
- data/doc/TaskJuggler/RTFWithQuerySupport.html +11 -1
- data/doc/TaskJuggler/RealFormat.html +12 -2
- data/doc/TaskJuggler/RealFormatAttribute.html +15 -5
- data/doc/TaskJuggler/ReferenceAttribute.html +38 -28
- data/doc/TaskJuggler/Report.html +96 -113
- data/doc/TaskJuggler/ReportBase.html +161 -152
- data/doc/TaskJuggler/ReportContext.html +11 -1
- data/doc/TaskJuggler/ReportServer.html +59 -48
- data/doc/TaskJuggler/ReportServerIface.html +51 -41
- data/doc/TaskJuggler/ReportServerRecord.html +11 -1
- data/doc/TaskJuggler/ReportServlet.html +11 -1
- data/doc/TaskJuggler/ReportTable.html +46 -25
- data/doc/TaskJuggler/ReportTableCell.html +296 -275
- data/doc/TaskJuggler/ReportTableColumn.html +14 -4
- data/doc/TaskJuggler/ReportTableLegend.html +11 -1
- data/doc/TaskJuggler/ReportTableLine.html +19 -7
- data/doc/TaskJuggler/Resource.html +12 -2
- data/doc/TaskJuggler/ResourceListAttribute.html +40 -30
- data/doc/TaskJuggler/ResourceListRE.html +11 -1
- data/doc/TaskJuggler/ResourceScenario.html +708 -565
- data/doc/TaskJuggler/RichText.html +54 -36
- data/doc/TaskJuggler/RichTextAttribute.html +31 -21
- data/doc/TaskJuggler/RichTextDocument.html +11 -1
- data/doc/TaskJuggler/RichTextElement.html +11 -1
- data/doc/TaskJuggler/RichTextFunctionExample.html +11 -1
- data/doc/TaskJuggler/RichTextFunctionHandler.html +11 -1
- data/doc/TaskJuggler/RichTextImage.html +11 -1
- data/doc/TaskJuggler/RichTextIntermediate.html +81 -71
- data/doc/TaskJuggler/RichTextParser.html +88 -33
- data/doc/TaskJuggler/RichTextScanner.html +45 -35
- data/doc/TaskJuggler/RichTextSnip.html +11 -1
- data/doc/TaskJuggler/RichTextSyntaxRules.html +436 -389
- data/doc/TaskJuggler/Scenario.html +11 -1
- data/doc/TaskJuggler/ScenarioData.html +11 -1
- data/doc/TaskJuggler/ScenarioListAttribute.html +23 -13
- data/doc/TaskJuggler/Scoreboard.html +92 -73
- data/doc/TaskJuggler/SheetHandlerBase.html +11 -1
- data/doc/TaskJuggler/SheetReceiver.html +11 -1
- data/doc/TaskJuggler/SheetSender.html +11 -1
- data/doc/TaskJuggler/Shift.html +11 -1
- data/doc/TaskJuggler/ShiftAssignment.html +11 -1
- data/doc/TaskJuggler/ShiftAssignments.html +11 -1
- data/doc/TaskJuggler/ShiftAssignmentsAttribute.html +24 -14
- data/doc/TaskJuggler/ShiftScenario.html +11 -1
- data/doc/TaskJuggler/SimpleQueryExpander.html +11 -1
- data/doc/TaskJuggler/SortListAttribute.html +21 -11
- data/doc/TaskJuggler/SourceFileInfo.html +11 -1
- data/doc/TaskJuggler/StatusSheetReceiver.html +11 -1
- data/doc/TaskJuggler/StatusSheetReport.html +11 -1
- data/doc/TaskJuggler/StatusSheetSender.html +112 -11
- data/doc/TaskJuggler/StringAttribute.html +23 -13
- data/doc/TaskJuggler/SymbolAttribute.html +19 -9
- data/doc/TaskJuggler/SyntaxReference.html +80 -71
- data/doc/TaskJuggler/TOCEntry.html +11 -1
- data/doc/TaskJuggler/TSResourceRecord.html +11 -1
- data/doc/TaskJuggler/TSTaskRecord.html +11 -1
- data/doc/TaskJuggler/TableColumnDefinition.html +11 -1
- data/doc/TaskJuggler/TableOfContents.html +11 -1
- data/doc/TaskJuggler/TableReport.html +422 -411
- data/doc/TaskJuggler/Task.html +11 -1
- data/doc/TaskJuggler/TaskDependency.html +11 -1
- data/doc/TaskJuggler/TaskListAttribute.html +33 -23
- data/doc/TaskJuggler/TaskListRE.html +11 -1
- data/doc/TaskJuggler/TaskScenario.html +2007 -1919
- data/doc/TaskJuggler/TextFormatter.html +11 -1
- data/doc/TaskJuggler/TextParser.html +421 -612
- data/doc/TaskJuggler/TextParser/Pattern.html +410 -211
- data/doc/TaskJuggler/TextParser/Rule.html +224 -152
- data/doc/TaskJuggler/TextParser/StackElement.html +190 -28
- data/doc/TaskJuggler/TextParser/State.html +989 -0
- data/doc/TaskJuggler/TextParser/StateTransition.html +782 -0
- data/doc/TaskJuggler/TextParser/TextParserResultArray.html +25 -14
- data/doc/TaskJuggler/TextParser/TokenDoc.html +11 -1
- data/doc/TaskJuggler/TextReport.html +11 -1
- data/doc/TaskJuggler/TextScanner.html +285 -273
- data/doc/TaskJuggler/TextScanner/BufferStreamHandle.html +17 -7
- data/doc/TaskJuggler/TextScanner/FileStreamHandle.html +24 -14
- data/doc/TaskJuggler/TextScanner/MacroStackEntry.html +11 -1
- data/doc/TaskJuggler/TextScanner/StreamHandle.html +64 -52
- data/doc/TaskJuggler/TimeSheet.html +11 -1
- data/doc/TaskJuggler/TimeSheetReceiver.html +11 -1
- data/doc/TaskJuggler/TimeSheetRecord.html +11 -1
- data/doc/TaskJuggler/TimeSheetReport.html +11 -1
- data/doc/TaskJuggler/TimeSheetSender.html +11 -1
- data/doc/TaskJuggler/TimeSheetSummary.html +11 -1
- data/doc/TaskJuggler/TimeSheets.html +11 -1
- data/doc/TaskJuggler/Tj3AppBase.html +11 -1
- data/doc/TaskJuggler/Tj3Client.html +11 -1
- data/doc/TaskJuggler/Tj3Daemon.html +11 -1
- data/doc/TaskJuggler/Tj3SheetAppBase.html +11 -1
- data/doc/TaskJuggler/Tj3SsReceiver.html +11 -1
- data/doc/TaskJuggler/Tj3SsSender.html +11 -1
- data/doc/TaskJuggler/Tj3TsReceiver.html +11 -1
- data/doc/TaskJuggler/Tj3TsSender.html +11 -1
- data/doc/TaskJuggler/Tj3TsSummary.html +11 -1
- data/doc/TaskJuggler/TjException.html +11 -1
- data/doc/TaskJuggler/TjTime.html +474 -324
- data/doc/TaskJuggler/TjpExample.html +11 -1
- data/doc/TaskJuggler/TjpExportRE.html +11 -1
- data/doc/TaskJuggler/TjpSyntaxRules.html +3731 -3662
- data/doc/TaskJuggler/URLParameter.html +11 -1
- data/doc/TaskJuggler/UserManual.html +11 -1
- data/doc/TaskJuggler/VimSyntax.html +11 -1
- data/doc/TaskJuggler/WebServer.html +11 -1
- data/doc/TaskJuggler/WorkingHours.html +295 -221
- data/doc/TaskJuggler/WorkingHoursAttribute.html +11 -1
- data/doc/TaskJuggler/XMLBlob.html +11 -1
- data/doc/TaskJuggler/XMLComment.html +11 -1
- data/doc/TaskJuggler/XMLDocument.html +11 -1
- data/doc/TaskJuggler/XMLElement.html +11 -1
- data/doc/TaskJuggler/XMLNamedText.html +11 -1
- data/doc/TaskJuggler/XMLText.html +11 -1
- data/doc/index.html +694 -624
- data/doc/lib/AppConfig_rb.html +1 -1
- data/doc/lib/Attributes_rb.html +1 -1
- data/doc/lib/Booking_rb.html +1 -1
- data/doc/lib/DataCache_rb.html +69 -0
- data/doc/lib/KeywordDocumentation_rb.html +1 -1
- data/doc/lib/ProjectFileParser_rb.html +1 -1
- data/doc/lib/ProjectFileScanner_rb.html +1 -1
- data/doc/lib/Project_rb.html +1 -1
- data/doc/lib/PropertyList_rb.html +1 -1
- data/doc/lib/Query_rb.html +1 -1
- data/doc/lib/RealFormat_rb.html +1 -1
- data/doc/lib/ResourceScenario_rb.html +1 -1
- data/doc/lib/Resource_rb.html +1 -1
- data/doc/lib/RichTextParser_rb.html +1 -1
- data/doc/lib/RichTextScanner_rb.html +1 -1
- data/doc/lib/RichTextSyntaxRules_rb.html +1 -1
- data/doc/lib/RichText_rb.html +1 -1
- data/doc/lib/Scoreboard_rb.html +1 -1
- data/doc/lib/StatusSheetSender_rb.html +1 -1
- data/doc/lib/SyntaxReference_rb.html +1 -1
- data/doc/lib/TaskJuggler_rb.html +1 -1
- data/doc/lib/TaskScenario_rb.html +3 -1
- data/doc/lib/TextParser/Pattern_rb.html +3 -1
- data/doc/lib/TextParser/Rule_rb.html +3 -1
- data/doc/lib/TextParser/StackElement_rb.html +3 -1
- data/doc/lib/TextParser/State_rb.html +65 -0
- data/doc/lib/TextParser_rb.html +1 -1
- data/doc/lib/TextScanner_rb.html +1 -1
- data/doc/lib/Tj3Config_rb.html +1 -1
- data/doc/lib/TjTime_rb.html +1 -1
- data/doc/lib/TjpSyntaxRules_rb.html +1 -1
- data/doc/lib/WorkingHours_rb.html +3 -1
- data/doc/lib/daemon/ReportServer_rb.html +1 -1
- data/doc/lib/reports/CSVFile_rb.html +1 -1
- data/doc/lib/reports/CollisionDetector_rb.html +67 -0
- data/doc/lib/reports/GanttChart_rb.html +1 -1
- data/doc/lib/reports/GanttRouter_rb.html +3 -1
- data/doc/lib/reports/Navigator_rb.html +1 -1
- data/doc/lib/reports/ReportBase_rb.html +1 -1
- data/doc/lib/reports/ReportTableCell_rb.html +1 -1
- data/doc/lib/reports/ReportTableColumn_rb.html +1 -1
- data/doc/lib/reports/ReportTableLine_rb.html +1 -1
- data/doc/lib/reports/ReportTable_rb.html +1 -1
- data/doc/lib/reports/Report_rb.html +1 -1
- data/doc/lib/reports/TableReport_rb.html +1 -1
- data/doc/lib/taskjuggler3_rb.html +1 -1
- data/examples/tutorial.tjp +1 -2
- data/lib/AppConfig.rb +10 -4
- data/lib/Attributes.rb +4 -4
- data/lib/DataCache.rb +124 -0
- data/lib/KeywordDocumentation.rb +5 -5
- data/lib/Project.rb +54 -10
- data/lib/ProjectFileParser.rb +10 -9
- data/lib/ProjectFileScanner.rb +38 -25
- data/lib/PropertyList.rb +6 -4
- data/lib/Query.rb +0 -8
- data/lib/RealFormat.rb +1 -1
- data/lib/Resource.rb +1 -1
- data/lib/ResourceScenario.rb +96 -31
- data/lib/RichText.rb +17 -5
- data/lib/RichTextParser.rb +22 -9
- data/lib/RichTextScanner.rb +34 -34
- data/lib/RichTextSyntaxRules.rb +41 -36
- data/lib/Scoreboard.rb +16 -7
- data/lib/StatusSheetSender.rb +63 -0
- data/lib/SyntaxReference.rb +9 -10
- data/lib/TaskJuggler.rb +28 -4
- data/lib/TaskScenario.rb +66 -19
- data/lib/TextParser.rb +219 -384
- data/lib/TextParser/Pattern.rb +168 -49
- data/lib/TextParser/Rule.rb +33 -17
- data/lib/TextParser/StackElement.rb +42 -2
- data/lib/TextParser/State.rb +175 -0
- data/lib/TextScanner.rb +19 -15
- data/lib/Tj3Config.rb +1 -1
- data/lib/TjTime.rb +111 -3
- data/lib/TjpSyntaxRules.rb +122 -66
- data/lib/WorkingHours.rb +91 -186
- data/lib/daemon/ReportServer.rb +3 -2
- data/lib/reports/CSVFile.rb +1 -1
- data/lib/reports/CollisionDetector.rb +177 -0
- data/lib/reports/GanttChart.rb +25 -41
- data/lib/reports/GanttRouter.rb +104 -233
- data/lib/reports/Navigator.rb +1 -1
- data/lib/reports/Report.rb +9 -33
- data/lib/reports/ReportBase.rb +0 -1
- data/lib/reports/ReportTable.rb +19 -8
- data/lib/reports/ReportTableCell.rb +61 -25
- data/lib/reports/ReportTableColumn.rb +2 -2
- data/lib/reports/ReportTableLine.rb +4 -2
- data/lib/reports/TableReport.rb +1 -0
- data/lib/taskjuggler3.rb +0 -1
- data/manual/Installation +7 -3
- data/manual/Intro +12 -10
- data/manual/The_TaskJuggler_Syntax +4 -4
- data/test/TestSuite/CSV-Reports/celltext-Reference.csv +14 -14
- data/test/TestSuite/CSV-Reports/genrefs +1 -1
- data/test/TestSuite/CSV-Reports/resourcereport-Reference.csv +4 -4
- data/test/TestSuite/CSV-Reports/resourcereport_with_tasks-Reference.csv +22 -22
- data/test/TestSuite/CSV-Reports/sortByTree-Reference.csv +14 -14
- data/test/TestSuite/CSV-Reports/sortBy_duration.down-Reference.csv +14 -14
- data/test/TestSuite/CSV-Reports/sortBy_effort.up-Reference.csv +14 -14
- data/test/TestSuite/CSV-Reports/sortBy_plan.start.down-Reference.csv +14 -14
- data/test/TestSuite/CSV-Reports/taskreport-Reference.csv +14 -14
- data/test/TestSuite/CSV-Reports/taskreport_with_resources-Reference.csv +32 -24
- data/test/TestSuite/CSV-Reports/weekly-Reference.csv +13 -0
- data/test/TestSuite/CSV-Reports/weekly.tjp +9 -0
- data/test/TestSuite/HTML-Reports/css/tjreport.css +7 -2
- data/test/TestSuite/HTML-Reports/depArrows.html +839 -830
- data/test/TestSuite/HTML-Reports/depArrows.tjp +12 -12
- data/test/TestSuite/HTML-Reports/profile.html +37581 -0
- data/test/TestSuite/ReportGenerator/Errors/no_report_defined.tjp +7 -0
- data/test/TestSuite/ReportGenerator/Errors/rtp_report_recursion.tjp +1 -1
- data/test/TestSuite/StatusSheets/TimeSheets/2002-03-01/missing-reports +2 -0
- data/test/TestSuite/StatusSheets/run +2 -0
- data/test/TestSuite/Syntax/Correct/Booking.tjp +13 -5
- data/test/TestSuite/Syntax/Correct/ResourceRoot.tjp +21 -0
- data/test/TestSuite/Syntax/Correct/RollupResource.tjp +21 -0
- data/test/TestSuite/Syntax/Correct/TaskRoot.tjp +1 -1
- data/test/TestSuite/Syntax/Errors/empty.tjp +1 -1
- data/test/TestSuite/Syntax/Errors/include_before_project.tjp +2 -0
- data/test/TestSuite/Syntax/Errors/no_reduce.tjp +6 -0
- data/test/TestSuite/Syntax/Errors/unsupported_token.tjp +1 -1
- data/test/TestSuite/TimeSheets/run +1 -1
- data/test/test_CSV-Reports.rb +2 -4
- data/test/test_CollisionDetector.rb +85 -0
- data/test/test_Project.rb +2 -2
- data/test/test_ProjectFileScanner.rb +73 -31
- data/test/test_Query.rb +2 -2
- data/test/test_ReportGenerator.rb +1 -1
- data/test/test_RichText.rb +4 -4
- data/test/test_WorkingHours.rb +150 -11
- metadata +75 -67
- data/test/TestSuite/ReportGenerator/Errors/css/tjreport.css +0 -407
- data/test/TestSuite/ReportGenerator/Errors/rtp_report_recursion.html +0 -26
- data/test/TestSuite/Scheduler/Correct/Allocate.html +0 -3210
- data/test/TestSuite/Scheduler/Correct/Container.html +0 -349
- data/test/TestSuite/Scheduler/Correct/Limits.html +0 -4964
- data/test/TestSuite/Scheduler/Correct/Shift.html +0 -1719
- data/test/TestSuite/Scheduler/Correct/Shift2.html +0 -476
- data/test/TestSuite/Scheduler/Correct/css/tjmanual.css +0 -66
- 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/Scheduler/Correct/scripts/wz_tooltip.js +0 -1301
- data/test/TestSuite/Scheduler/Errors/css/tjmanual.css +0 -66
- data/test/TestSuite/Scheduler/Errors/css/tjreport.css +0 -407
- data/test/TestSuite/Scheduler/Errors/icons/details.png +0 -0
- data/test/TestSuite/Scheduler/Errors/icons/flag-green.png +0 -0
- data/test/TestSuite/Scheduler/Errors/icons/flag-red.png +0 -0
- data/test/TestSuite/Scheduler/Errors/icons/flag-yellow.png +0 -0
- data/test/TestSuite/Scheduler/Errors/icons/resource.png +0 -0
- data/test/TestSuite/Scheduler/Errors/icons/resourcegroup.png +0 -0
- data/test/TestSuite/Scheduler/Errors/icons/task.png +0 -0
- data/test/TestSuite/Scheduler/Errors/icons/taskgroup.png +0 -0
- data/test/TestSuite/Scheduler/Errors/icons/trend-down.png +0 -0
- data/test/TestSuite/Scheduler/Errors/icons/trend-flat.png +0 -0
- data/test/TestSuite/Scheduler/Errors/icons/trend-up.png +0 -0
- data/test/TestSuite/Scheduler/Errors/scripts/wz_tooltip.js +0 -1301
- data/test/TestSuite/StatusSheets/resrep.tji +0 -7
- data/test/TestSuite/StatusSheets/tj3d.log +0 -312
- data/test/TestSuite/Syntax/Correct/Managers.html +0 -263
- data/test/TestSuite/TimeSheets/acceptable_intervals +0 -1
- data/test/TestSuite/TimeSheets/statussheets.log +0 -1
|
@@ -151,12 +151,18 @@
|
|
|
151
151
|
|
|
152
152
|
<li><a href="../TaskJuggler/ChargeSetListAttribute.html">TaskJuggler::ChargeSetListAttribute</a></li>
|
|
153
153
|
|
|
154
|
+
<li><a href="../TaskJuggler/CollisionDetector.html">TaskJuggler::CollisionDetector</a></li>
|
|
155
|
+
|
|
154
156
|
<li><a href="../TaskJuggler/ColumnListAttribute.html">TaskJuggler::ColumnListAttribute</a></li>
|
|
155
157
|
|
|
156
158
|
<li><a href="../TaskJuggler/ColumnTable.html">TaskJuggler::ColumnTable</a></li>
|
|
157
159
|
|
|
158
160
|
<li><a href="../TaskJuggler/Daemon.html">TaskJuggler::Daemon</a></li>
|
|
159
161
|
|
|
162
|
+
<li><a href="../TaskJuggler/DataCache.html">TaskJuggler::DataCache</a></li>
|
|
163
|
+
|
|
164
|
+
<li><a href="../TaskJuggler/DataCacheEntry.html">TaskJuggler::DataCacheEntry</a></li>
|
|
165
|
+
|
|
160
166
|
<li><a href="../TaskJuggler/DateAttribute.html">TaskJuggler::DateAttribute</a></li>
|
|
161
167
|
|
|
162
168
|
<li><a href="../TaskJuggler/DefinitionListAttribute.html">TaskJuggler::DefinitionListAttribute</a></li>
|
|
@@ -263,7 +269,7 @@
|
|
|
263
269
|
|
|
264
270
|
<li><a href="../TaskJuggler/NodeListAttribute.html">TaskJuggler::NodeListAttribute</a></li>
|
|
265
271
|
|
|
266
|
-
<li><a href="../TaskJuggler/
|
|
272
|
+
<li><a href="../TaskJuggler/PlaceHolderCell.html">TaskJuggler::PlaceHolderCell</a></li>
|
|
267
273
|
|
|
268
274
|
<li><a href="../TaskJuggler/ProcessIntercom.html">TaskJuggler::ProcessIntercom</a></li>
|
|
269
275
|
|
|
@@ -443,6 +449,10 @@
|
|
|
443
449
|
|
|
444
450
|
<li><a href="../TaskJuggler/TextParser/StackElement.html">TaskJuggler::TextParser::StackElement</a></li>
|
|
445
451
|
|
|
452
|
+
<li><a href="../TaskJuggler/TextParser/State.html">TaskJuggler::TextParser::State</a></li>
|
|
453
|
+
|
|
454
|
+
<li><a href="../TaskJuggler/TextParser/StateTransition.html">TaskJuggler::TextParser::StateTransition</a></li>
|
|
455
|
+
|
|
446
456
|
<li><a href="../TaskJuggler/TextParser/TextParserResultArray.html">TaskJuggler::TextParser::TextParserResultArray</a></li>
|
|
447
457
|
|
|
448
458
|
<li><a href="../TaskJuggler/TextParser/TokenDoc.html">TaskJuggler::TextParser::TokenDoc</a></li>
|
|
@@ -169,12 +169,18 @@
|
|
|
169
169
|
|
|
170
170
|
<li><a href="../TaskJuggler/ChargeSetListAttribute.html">TaskJuggler::ChargeSetListAttribute</a></li>
|
|
171
171
|
|
|
172
|
+
<li><a href="../TaskJuggler/CollisionDetector.html">TaskJuggler::CollisionDetector</a></li>
|
|
173
|
+
|
|
172
174
|
<li><a href="../TaskJuggler/ColumnListAttribute.html">TaskJuggler::ColumnListAttribute</a></li>
|
|
173
175
|
|
|
174
176
|
<li><a href="../TaskJuggler/ColumnTable.html">TaskJuggler::ColumnTable</a></li>
|
|
175
177
|
|
|
176
178
|
<li><a href="../TaskJuggler/Daemon.html">TaskJuggler::Daemon</a></li>
|
|
177
179
|
|
|
180
|
+
<li><a href="../TaskJuggler/DataCache.html">TaskJuggler::DataCache</a></li>
|
|
181
|
+
|
|
182
|
+
<li><a href="../TaskJuggler/DataCacheEntry.html">TaskJuggler::DataCacheEntry</a></li>
|
|
183
|
+
|
|
178
184
|
<li><a href="../TaskJuggler/DateAttribute.html">TaskJuggler::DateAttribute</a></li>
|
|
179
185
|
|
|
180
186
|
<li><a href="../TaskJuggler/DefinitionListAttribute.html">TaskJuggler::DefinitionListAttribute</a></li>
|
|
@@ -281,7 +287,7 @@
|
|
|
281
287
|
|
|
282
288
|
<li><a href="../TaskJuggler/NodeListAttribute.html">TaskJuggler::NodeListAttribute</a></li>
|
|
283
289
|
|
|
284
|
-
<li><a href="../TaskJuggler/
|
|
290
|
+
<li><a href="../TaskJuggler/PlaceHolderCell.html">TaskJuggler::PlaceHolderCell</a></li>
|
|
285
291
|
|
|
286
292
|
<li><a href="../TaskJuggler/ProcessIntercom.html">TaskJuggler::ProcessIntercom</a></li>
|
|
287
293
|
|
|
@@ -461,6 +467,10 @@
|
|
|
461
467
|
|
|
462
468
|
<li><a href="../TaskJuggler/TextParser/StackElement.html">TaskJuggler::TextParser::StackElement</a></li>
|
|
463
469
|
|
|
470
|
+
<li><a href="../TaskJuggler/TextParser/State.html">TaskJuggler::TextParser::State</a></li>
|
|
471
|
+
|
|
472
|
+
<li><a href="../TaskJuggler/TextParser/StateTransition.html">TaskJuggler::TextParser::StateTransition</a></li>
|
|
473
|
+
|
|
464
474
|
<li><a href="../TaskJuggler/TextParser/TextParserResultArray.html">TaskJuggler::TextParser::TextParserResultArray</a></li>
|
|
465
475
|
|
|
466
476
|
<li><a href="../TaskJuggler/TextParser/TokenDoc.html">TaskJuggler::TextParser::TokenDoc</a></li>
|
|
@@ -165,12 +165,18 @@
|
|
|
165
165
|
|
|
166
166
|
<li><a href="../TaskJuggler/ChargeSetListAttribute.html">TaskJuggler::ChargeSetListAttribute</a></li>
|
|
167
167
|
|
|
168
|
+
<li><a href="../TaskJuggler/CollisionDetector.html">TaskJuggler::CollisionDetector</a></li>
|
|
169
|
+
|
|
168
170
|
<li><a href="../TaskJuggler/ColumnListAttribute.html">TaskJuggler::ColumnListAttribute</a></li>
|
|
169
171
|
|
|
170
172
|
<li><a href="../TaskJuggler/ColumnTable.html">TaskJuggler::ColumnTable</a></li>
|
|
171
173
|
|
|
172
174
|
<li><a href="../TaskJuggler/Daemon.html">TaskJuggler::Daemon</a></li>
|
|
173
175
|
|
|
176
|
+
<li><a href="../TaskJuggler/DataCache.html">TaskJuggler::DataCache</a></li>
|
|
177
|
+
|
|
178
|
+
<li><a href="../TaskJuggler/DataCacheEntry.html">TaskJuggler::DataCacheEntry</a></li>
|
|
179
|
+
|
|
174
180
|
<li><a href="../TaskJuggler/DateAttribute.html">TaskJuggler::DateAttribute</a></li>
|
|
175
181
|
|
|
176
182
|
<li><a href="../TaskJuggler/DefinitionListAttribute.html">TaskJuggler::DefinitionListAttribute</a></li>
|
|
@@ -277,7 +283,7 @@
|
|
|
277
283
|
|
|
278
284
|
<li><a href="../TaskJuggler/NodeListAttribute.html">TaskJuggler::NodeListAttribute</a></li>
|
|
279
285
|
|
|
280
|
-
<li><a href="../TaskJuggler/
|
|
286
|
+
<li><a href="../TaskJuggler/PlaceHolderCell.html">TaskJuggler::PlaceHolderCell</a></li>
|
|
281
287
|
|
|
282
288
|
<li><a href="../TaskJuggler/ProcessIntercom.html">TaskJuggler::ProcessIntercom</a></li>
|
|
283
289
|
|
|
@@ -457,6 +463,10 @@
|
|
|
457
463
|
|
|
458
464
|
<li><a href="../TaskJuggler/TextParser/StackElement.html">TaskJuggler::TextParser::StackElement</a></li>
|
|
459
465
|
|
|
466
|
+
<li><a href="../TaskJuggler/TextParser/State.html">TaskJuggler::TextParser::State</a></li>
|
|
467
|
+
|
|
468
|
+
<li><a href="../TaskJuggler/TextParser/StateTransition.html">TaskJuggler::TextParser::StateTransition</a></li>
|
|
469
|
+
|
|
460
470
|
<li><a href="../TaskJuggler/TextParser/TextParserResultArray.html">TaskJuggler::TextParser::TextParserResultArray</a></li>
|
|
461
471
|
|
|
462
472
|
<li><a href="../TaskJuggler/TextParser/TokenDoc.html">TaskJuggler::TextParser::TokenDoc</a></li>
|
|
@@ -151,12 +151,18 @@
|
|
|
151
151
|
|
|
152
152
|
<li><a href="../TaskJuggler/ChargeSetListAttribute.html">TaskJuggler::ChargeSetListAttribute</a></li>
|
|
153
153
|
|
|
154
|
+
<li><a href="../TaskJuggler/CollisionDetector.html">TaskJuggler::CollisionDetector</a></li>
|
|
155
|
+
|
|
154
156
|
<li><a href="../TaskJuggler/ColumnListAttribute.html">TaskJuggler::ColumnListAttribute</a></li>
|
|
155
157
|
|
|
156
158
|
<li><a href="../TaskJuggler/ColumnTable.html">TaskJuggler::ColumnTable</a></li>
|
|
157
159
|
|
|
158
160
|
<li><a href="../TaskJuggler/Daemon.html">TaskJuggler::Daemon</a></li>
|
|
159
161
|
|
|
162
|
+
<li><a href="../TaskJuggler/DataCache.html">TaskJuggler::DataCache</a></li>
|
|
163
|
+
|
|
164
|
+
<li><a href="../TaskJuggler/DataCacheEntry.html">TaskJuggler::DataCacheEntry</a></li>
|
|
165
|
+
|
|
160
166
|
<li><a href="../TaskJuggler/DateAttribute.html">TaskJuggler::DateAttribute</a></li>
|
|
161
167
|
|
|
162
168
|
<li><a href="../TaskJuggler/DefinitionListAttribute.html">TaskJuggler::DefinitionListAttribute</a></li>
|
|
@@ -263,7 +269,7 @@
|
|
|
263
269
|
|
|
264
270
|
<li><a href="../TaskJuggler/NodeListAttribute.html">TaskJuggler::NodeListAttribute</a></li>
|
|
265
271
|
|
|
266
|
-
<li><a href="../TaskJuggler/
|
|
272
|
+
<li><a href="../TaskJuggler/PlaceHolderCell.html">TaskJuggler::PlaceHolderCell</a></li>
|
|
267
273
|
|
|
268
274
|
<li><a href="../TaskJuggler/ProcessIntercom.html">TaskJuggler::ProcessIntercom</a></li>
|
|
269
275
|
|
|
@@ -443,6 +449,10 @@
|
|
|
443
449
|
|
|
444
450
|
<li><a href="../TaskJuggler/TextParser/StackElement.html">TaskJuggler::TextParser::StackElement</a></li>
|
|
445
451
|
|
|
452
|
+
<li><a href="../TaskJuggler/TextParser/State.html">TaskJuggler::TextParser::State</a></li>
|
|
453
|
+
|
|
454
|
+
<li><a href="../TaskJuggler/TextParser/StateTransition.html">TaskJuggler::TextParser::StateTransition</a></li>
|
|
455
|
+
|
|
446
456
|
<li><a href="../TaskJuggler/TextParser/TextParserResultArray.html">TaskJuggler::TextParser::TextParserResultArray</a></li>
|
|
447
457
|
|
|
448
458
|
<li><a href="../TaskJuggler/TextParser/TokenDoc.html">TaskJuggler::TextParser::TokenDoc</a></li>
|
|
@@ -73,17 +73,17 @@
|
|
|
73
73
|
|
|
74
74
|
<li><a href="#method-i-%3D%3D">#==</a></li>
|
|
75
75
|
|
|
76
|
-
<li><a href="#method-i-dayOff%3F">#dayOff?</a></li>
|
|
77
|
-
|
|
78
76
|
<li><a href="#method-i-getWorkingHours">#getWorkingHours</a></li>
|
|
79
77
|
|
|
78
|
+
<li><a href="#method-i-initScoreboard">#initScoreboard</a></li>
|
|
79
|
+
|
|
80
80
|
<li><a href="#method-i-onShift%3F">#onShift?</a></li>
|
|
81
81
|
|
|
82
82
|
<li><a href="#method-i-setWorkingHours">#setWorkingHours</a></li>
|
|
83
83
|
|
|
84
84
|
<li><a href="#method-i-timeOff%3F">#timeOff?</a></li>
|
|
85
85
|
|
|
86
|
-
<li><a href="#method-i-
|
|
86
|
+
<li><a href="#method-i-timezone%3D">#timezone=</a></li>
|
|
87
87
|
|
|
88
88
|
<li><a href="#method-i-to_s">#to_s</a></li>
|
|
89
89
|
|
|
@@ -165,12 +165,18 @@
|
|
|
165
165
|
|
|
166
166
|
<li><a href="../TaskJuggler/ChargeSetListAttribute.html">TaskJuggler::ChargeSetListAttribute</a></li>
|
|
167
167
|
|
|
168
|
+
<li><a href="../TaskJuggler/CollisionDetector.html">TaskJuggler::CollisionDetector</a></li>
|
|
169
|
+
|
|
168
170
|
<li><a href="../TaskJuggler/ColumnListAttribute.html">TaskJuggler::ColumnListAttribute</a></li>
|
|
169
171
|
|
|
170
172
|
<li><a href="../TaskJuggler/ColumnTable.html">TaskJuggler::ColumnTable</a></li>
|
|
171
173
|
|
|
172
174
|
<li><a href="../TaskJuggler/Daemon.html">TaskJuggler::Daemon</a></li>
|
|
173
175
|
|
|
176
|
+
<li><a href="../TaskJuggler/DataCache.html">TaskJuggler::DataCache</a></li>
|
|
177
|
+
|
|
178
|
+
<li><a href="../TaskJuggler/DataCacheEntry.html">TaskJuggler::DataCacheEntry</a></li>
|
|
179
|
+
|
|
174
180
|
<li><a href="../TaskJuggler/DateAttribute.html">TaskJuggler::DateAttribute</a></li>
|
|
175
181
|
|
|
176
182
|
<li><a href="../TaskJuggler/DefinitionListAttribute.html">TaskJuggler::DefinitionListAttribute</a></li>
|
|
@@ -277,7 +283,7 @@
|
|
|
277
283
|
|
|
278
284
|
<li><a href="../TaskJuggler/NodeListAttribute.html">TaskJuggler::NodeListAttribute</a></li>
|
|
279
285
|
|
|
280
|
-
<li><a href="../TaskJuggler/
|
|
286
|
+
<li><a href="../TaskJuggler/PlaceHolderCell.html">TaskJuggler::PlaceHolderCell</a></li>
|
|
281
287
|
|
|
282
288
|
<li><a href="../TaskJuggler/ProcessIntercom.html">TaskJuggler::ProcessIntercom</a></li>
|
|
283
289
|
|
|
@@ -457,6 +463,10 @@
|
|
|
457
463
|
|
|
458
464
|
<li><a href="../TaskJuggler/TextParser/StackElement.html">TaskJuggler::TextParser::StackElement</a></li>
|
|
459
465
|
|
|
466
|
+
<li><a href="../TaskJuggler/TextParser/State.html">TaskJuggler::TextParser::State</a></li>
|
|
467
|
+
|
|
468
|
+
<li><a href="../TaskJuggler/TextParser/StateTransition.html">TaskJuggler::TextParser::StateTransition</a></li>
|
|
469
|
+
|
|
460
470
|
<li><a href="../TaskJuggler/TextParser/TextParserResultArray.html">TaskJuggler::TextParser::TextParserResultArray</a></li>
|
|
461
471
|
|
|
462
472
|
<li><a href="../TaskJuggler/TextParser/TokenDoc.html">TaskJuggler::TextParser::TokenDoc</a></li>
|
|
@@ -593,17 +603,75 @@ times of each working period are stored as seconds after midnight.
|
|
|
593
603
|
|
|
594
604
|
|
|
595
605
|
|
|
606
|
+
</div>
|
|
607
|
+
</div>
|
|
608
|
+
|
|
609
|
+
<div id="start-ate-attribute-method" class="method-detail">
|
|
610
|
+
<a name="startDate"></a>
|
|
611
|
+
|
|
612
|
+
<div class="method-heading attribute-method-heading">
|
|
613
|
+
<span class="method-name">startDate</span><span
|
|
614
|
+
class="attribute-access-type">[R]</span>
|
|
615
|
+
</div>
|
|
616
|
+
|
|
617
|
+
<div class="method-description">
|
|
618
|
+
|
|
619
|
+
|
|
620
|
+
|
|
621
|
+
</div>
|
|
622
|
+
</div>
|
|
623
|
+
|
|
624
|
+
<div id="end-ate-attribute-method" class="method-detail">
|
|
625
|
+
<a name="endDate"></a>
|
|
626
|
+
|
|
627
|
+
<div class="method-heading attribute-method-heading">
|
|
628
|
+
<span class="method-name">endDate</span><span
|
|
629
|
+
class="attribute-access-type">[R]</span>
|
|
630
|
+
</div>
|
|
631
|
+
|
|
632
|
+
<div class="method-description">
|
|
633
|
+
|
|
634
|
+
|
|
635
|
+
|
|
636
|
+
</div>
|
|
637
|
+
</div>
|
|
638
|
+
|
|
639
|
+
<div id="slot-uration-attribute-method" class="method-detail">
|
|
640
|
+
<a name="slotDuration"></a>
|
|
641
|
+
|
|
642
|
+
<div class="method-heading attribute-method-heading">
|
|
643
|
+
<span class="method-name">slotDuration</span><span
|
|
644
|
+
class="attribute-access-type">[R]</span>
|
|
645
|
+
</div>
|
|
646
|
+
|
|
647
|
+
<div class="method-description">
|
|
648
|
+
|
|
649
|
+
|
|
650
|
+
|
|
596
651
|
</div>
|
|
597
652
|
</div>
|
|
598
653
|
|
|
599
654
|
<div id="timezone-attribute-method" class="method-detail">
|
|
600
655
|
<a name="timezone"></a>
|
|
601
656
|
|
|
602
|
-
<a name="timezone="></a>
|
|
603
|
-
|
|
604
657
|
<div class="method-heading attribute-method-heading">
|
|
605
658
|
<span class="method-name">timezone</span><span
|
|
606
|
-
class="attribute-access-type">[
|
|
659
|
+
class="attribute-access-type">[R]</span>
|
|
660
|
+
</div>
|
|
661
|
+
|
|
662
|
+
<div class="method-description">
|
|
663
|
+
|
|
664
|
+
|
|
665
|
+
|
|
666
|
+
</div>
|
|
667
|
+
</div>
|
|
668
|
+
|
|
669
|
+
<div id="scoreboard-attribute-method" class="method-detail">
|
|
670
|
+
<a name="scoreboard"></a>
|
|
671
|
+
|
|
672
|
+
<div class="method-heading attribute-method-heading">
|
|
673
|
+
<span class="method-name">scoreboard</span><span
|
|
674
|
+
class="attribute-access-type">[R]</span>
|
|
607
675
|
</div>
|
|
608
676
|
|
|
609
677
|
<div class="method-description">
|
|
@@ -628,7 +696,7 @@ times of each working period are stored as seconds after midnight.
|
|
|
628
696
|
<div class="method-heading">
|
|
629
697
|
|
|
630
698
|
<span class="method-name">new</span><span
|
|
631
|
-
class="method-args">(
|
|
699
|
+
class="method-args">(arg1 = nil, startDate = nil, endDate = nil)</span>
|
|
632
700
|
<span class="method-click-advice">click to toggle source</span>
|
|
633
701
|
|
|
634
702
|
</div>
|
|
@@ -640,6 +708,8 @@ Create a new <a href="WorkingHours.html">WorkingHours</a> object. The
|
|
|
640
708
|
method accepts a reference to an existing <a
|
|
641
709
|
href="WorkingHours.html">WorkingHours</a> object in <tt>wh</tt>. When
|
|
642
710
|
it’s present, the new object will be a deep copy of the given object.
|
|
711
|
+
The <a href="Scoreboard.html">Scoreboard</a> object is <em>not</em> deep
|
|
712
|
+
copied. It will be copied on write.
|
|
643
713
|
</p>
|
|
644
714
|
|
|
645
715
|
|
|
@@ -647,33 +717,46 @@ it’s present, the new object will be a deep copy of the given object.
|
|
|
647
717
|
<div class="method-source-code"
|
|
648
718
|
id="new-source">
|
|
649
719
|
<pre>
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
720
|
+
<span class="ruby-comment cmt"># File lib/WorkingHours.rb, line 31</span>
|
|
721
|
+
31: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">arg1</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">startDate</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">endDate</span> = <span class="ruby-keyword kw">nil</span>)
|
|
722
|
+
32: <span class="ruby-comment cmt"># One entry for every day of the week. Sunday === 0.</span>
|
|
723
|
+
33: <span class="ruby-ivar">@days</span> = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value">7</span>, [])
|
|
724
|
+
34: <span class="ruby-ivar">@scoreboard</span> = <span class="ruby-keyword kw">nil</span>
|
|
725
|
+
35:
|
|
726
|
+
36: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">arg1</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">WorkingHours</span>)
|
|
727
|
+
37: <span class="ruby-comment cmt"># Create a copy of the passed WorkingHours object.</span>
|
|
728
|
+
38: <span class="ruby-identifier">wh</span> = <span class="ruby-identifier">arg1</span>
|
|
729
|
+
39: <span class="ruby-ivar">@timezone</span> = <span class="ruby-identifier">wh</span>.<span class="ruby-identifier">timezone</span>
|
|
730
|
+
40: <span class="ruby-value">7</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">day</span><span class="ruby-operator">|</span>
|
|
731
|
+
41: <span class="ruby-identifier">hours</span> = []
|
|
732
|
+
42: <span class="ruby-identifier">wh</span>.<span class="ruby-identifier">days</span>[<span class="ruby-identifier">day</span>].<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">hrs</span><span class="ruby-operator">|</span>
|
|
733
|
+
43: <span class="ruby-identifier">hours</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">hrs</span>.<span class="ruby-identifier">dup</span>
|
|
734
|
+
44: <span class="ruby-keyword kw">end</span>
|
|
735
|
+
45: <span class="ruby-identifier">setWorkingHours</span>(<span class="ruby-identifier">day</span>, <span class="ruby-identifier">hours</span>)
|
|
736
|
+
46: <span class="ruby-keyword kw">end</span>
|
|
737
|
+
47: <span class="ruby-ivar">@startDate</span> = <span class="ruby-identifier">wh</span>.<span class="ruby-identifier">startDate</span>
|
|
738
|
+
48: <span class="ruby-ivar">@endDate</span> = <span class="ruby-identifier">wh</span>.<span class="ruby-identifier">endDate</span>
|
|
739
|
+
49: <span class="ruby-ivar">@slotDuration</span> = <span class="ruby-identifier">wh</span>.<span class="ruby-identifier">slotDuration</span>
|
|
740
|
+
50: <span class="ruby-ivar">@scoreboard</span> = <span class="ruby-identifier">wh</span>.<span class="ruby-identifier">scoreboard</span>
|
|
741
|
+
51: <span class="ruby-keyword kw">else</span>
|
|
742
|
+
52: <span class="ruby-identifier">slotDuration</span> = <span class="ruby-identifier">arg1</span>
|
|
743
|
+
53: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">arg1</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">startDate</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">endDate</span>.<span class="ruby-identifier">nil?</span>
|
|
744
|
+
54: <span class="ruby-identifier">raise</span> <span class="ruby-value str">"You must supply values for slotDuration, start and end dates"</span>
|
|
745
|
+
55: <span class="ruby-keyword kw">end</span>
|
|
746
|
+
56: <span class="ruby-ivar">@startDate</span> = <span class="ruby-identifier">startDate</span>
|
|
747
|
+
57: <span class="ruby-ivar">@endDate</span> = <span class="ruby-identifier">endDate</span>
|
|
748
|
+
58: <span class="ruby-ivar">@slotDuration</span> = <span class="ruby-identifier">slotDuration</span>
|
|
749
|
+
59:
|
|
750
|
+
60: <span class="ruby-comment cmt"># Create a new object with default working hours.</span>
|
|
751
|
+
61: <span class="ruby-ivar">@timezone</span> = <span class="ruby-keyword kw">nil</span>
|
|
752
|
+
62: <span class="ruby-comment cmt"># Set the default working hours. Monday to Friday 9am - 12pm, 1pm - 6pm.</span>
|
|
753
|
+
63: <span class="ruby-comment cmt"># Saturday and Sunday are days off.</span>
|
|
754
|
+
64: <span class="ruby-value">1</span>.<span class="ruby-identifier">upto</span>(<span class="ruby-value">5</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">day</span><span class="ruby-operator">|</span>
|
|
755
|
+
65: <span class="ruby-ivar">@days</span>[<span class="ruby-identifier">day</span>] = [ [ <span class="ruby-value">9</span> * <span class="ruby-value">60</span> * <span class="ruby-value">60</span>, <span class="ruby-value">12</span> * <span class="ruby-value">60</span> * <span class="ruby-value">60</span> ],
|
|
756
|
+
66: [ <span class="ruby-value">13</span> * <span class="ruby-value">60</span> * <span class="ruby-value">60</span>, <span class="ruby-value">18</span> * <span class="ruby-value">60</span> * <span class="ruby-value">60</span> ] ]
|
|
757
|
+
67: <span class="ruby-keyword kw">end</span>
|
|
758
|
+
68: <span class="ruby-keyword kw">end</span>
|
|
759
|
+
69: <span class="ruby-keyword kw">end</span></pre>
|
|
677
760
|
</div>
|
|
678
761
|
|
|
679
762
|
</div>
|
|
@@ -713,59 +796,23 @@ object <tt>wh</tt> is identical to this object.
|
|
|
713
796
|
<div class="method-source-code"
|
|
714
797
|
id="--source">
|
|
715
798
|
<pre>
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
</div>
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
<div id="day-ff--method" class="method-detail ">
|
|
741
|
-
<a name="method-i-dayOff%3F"></a>
|
|
742
|
-
|
|
743
|
-
<div class="method-heading">
|
|
744
|
-
|
|
745
|
-
<span class="method-name">dayOff?</span><span
|
|
746
|
-
class="method-args">(date)</span>
|
|
747
|
-
<span class="method-click-advice">click to toggle source</span>
|
|
748
|
-
|
|
749
|
-
</div>
|
|
750
|
-
|
|
751
|
-
<div class="method-description">
|
|
752
|
-
|
|
753
|
-
<p>
|
|
754
|
-
Probably should be put into <a
|
|
755
|
-
href="ShiftAssignment.html">ShiftAssignment</a> as well.
|
|
756
|
-
</p>
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
<div class="method-source-code"
|
|
761
|
-
id="day-ff--source">
|
|
762
|
-
<pre>
|
|
763
|
-
<span class="ruby-comment cmt"># File lib/WorkingHours.rb, line 263</span>
|
|
764
|
-
263: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">dayOff?</span>(<span class="ruby-identifier">date</span>)
|
|
765
|
-
264: <span class="ruby-identifier">projectDate</span> = <span class="ruby-identifier">toLocaltime</span>(<span class="ruby-identifier">date</span>)
|
|
766
|
-
265: <span class="ruby-identifier">dow</span> = <span class="ruby-identifier">projectDate</span>.<span class="ruby-identifier">wday</span>
|
|
767
|
-
266: <span class="ruby-ivar">@days</span>[<span class="ruby-identifier">dow</span>].<span class="ruby-identifier">empty?</span>
|
|
768
|
-
267: <span class="ruby-keyword kw">end</span></pre>
|
|
799
|
+
<span class="ruby-comment cmt"># File lib/WorkingHours.rb, line 73</span>
|
|
800
|
+
73: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">==</span>(<span class="ruby-identifier">wh</span>)
|
|
801
|
+
74: <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">wh</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-ivar">@timezone</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">wh</span>.<span class="ruby-identifier">timezone</span> <span class="ruby-operator">||</span>
|
|
802
|
+
75: <span class="ruby-ivar">@startDate</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">wh</span>.<span class="ruby-identifier">startDate</span> <span class="ruby-operator">||</span>
|
|
803
|
+
76: <span class="ruby-ivar">@endDate</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">wh</span>.<span class="ruby-identifier">endDate</span> <span class="ruby-operator">||</span>
|
|
804
|
+
77: <span class="ruby-ivar">@slotDuration</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">wh</span>.<span class="ruby-identifier">slotDuration</span>
|
|
805
|
+
78:
|
|
806
|
+
79: <span class="ruby-value">7</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">d</span><span class="ruby-operator">|</span>
|
|
807
|
+
80: <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">@days</span>[<span class="ruby-identifier">d</span>].<span class="ruby-identifier">length</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">wh</span>.<span class="ruby-identifier">days</span>[<span class="ruby-identifier">d</span>].<span class="ruby-identifier">length</span>
|
|
808
|
+
81: <span class="ruby-comment cmt"># Check all working hour intervals</span>
|
|
809
|
+
82: <span class="ruby-ivar">@days</span>[<span class="ruby-identifier">d</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>
|
|
810
|
+
83: <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">@days</span>[<span class="ruby-identifier">d</span>][<span class="ruby-identifier">i</span>][<span class="ruby-value">0</span>] <span class="ruby-operator">!=</span> <span class="ruby-identifier">wh</span>.<span class="ruby-identifier">days</span>[<span class="ruby-identifier">d</span>][<span class="ruby-identifier">i</span>][<span class="ruby-value">0</span>] <span class="ruby-operator">||</span>
|
|
811
|
+
84: <span class="ruby-ivar">@days</span>[<span class="ruby-identifier">d</span>][<span class="ruby-identifier">i</span>][<span class="ruby-value">1</span>] <span class="ruby-operator">!=</span> <span class="ruby-identifier">wh</span>.<span class="ruby-identifier">days</span>[<span class="ruby-identifier">d</span>][<span class="ruby-identifier">i</span>][<span class="ruby-value">1</span>]
|
|
812
|
+
85: <span class="ruby-keyword kw">end</span>
|
|
813
|
+
86: <span class="ruby-keyword kw">end</span>
|
|
814
|
+
87: <span class="ruby-keyword kw">true</span>
|
|
815
|
+
88: <span class="ruby-keyword kw">end</span></pre>
|
|
769
816
|
</div>
|
|
770
817
|
|
|
771
818
|
</div>
|
|
@@ -800,10 +847,10 @@ an Array that contains Arrays of 2 Fixnums.
|
|
|
800
847
|
<div class="method-source-code"
|
|
801
848
|
id="get-orking-ours-source">
|
|
802
849
|
<pre>
|
|
803
|
-
<span class="ruby-comment cmt"># File lib/WorkingHours.rb, line
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
850
|
+
<span class="ruby-comment cmt"># File lib/WorkingHours.rb, line 125</span>
|
|
851
|
+
125: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">getWorkingHours</span>(<span class="ruby-identifier">dayOfWeek</span>)
|
|
852
|
+
126: <span class="ruby-ivar">@days</span>[<span class="ruby-identifier">dayOfWeek</span>]
|
|
853
|
+
127: <span class="ruby-keyword kw">end</span></pre>
|
|
807
854
|
</div>
|
|
808
855
|
|
|
809
856
|
</div>
|
|
@@ -836,37 +883,12 @@ Return true if <em>date</em> is within the defined working hours.
|
|
|
836
883
|
<div class="method-source-code"
|
|
837
884
|
id="on-hift--source">
|
|
838
885
|
<pre>
|
|
839
|
-
<span class="ruby-comment cmt"># File lib/WorkingHours.rb, line
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
215: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">os</span>
|
|
846
|
-
216: <span class="ruby-keyword kw">end</span>
|
|
847
|
-
217:
|
|
848
|
-
218: <span class="ruby-comment cmt"># The date is in UTC. The weekday needs to be calculated according to the</span>
|
|
849
|
-
219: <span class="ruby-comment cmt"># timezone of the project.</span>
|
|
850
|
-
220: <span class="ruby-identifier">projectDate</span> = <span class="ruby-identifier">toLocaltime</span>(<span class="ruby-identifier">date</span>)
|
|
851
|
-
221: <span class="ruby-identifier">dow</span> = <span class="ruby-identifier">projectDate</span>.<span class="ruby-identifier">wday</span>
|
|
852
|
-
222:
|
|
853
|
-
223: <span class="ruby-comment cmt"># The working hours need to be put into the proper time zone.</span>
|
|
854
|
-
224: <span class="ruby-identifier">localDate</span> = <span class="ruby-identifier">toLocaltime</span>(<span class="ruby-identifier">date</span>, <span class="ruby-ivar">@timezone</span>)
|
|
855
|
-
225: <span class="ruby-identifier">secondsOfDay</span> = <span class="ruby-identifier">localDate</span>.<span class="ruby-identifier">secondsOfDay</span>
|
|
856
|
-
226:
|
|
857
|
-
227: <span class="ruby-ivar">@days</span>[<span class="ruby-identifier">dow</span>].<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">iv</span><span class="ruby-operator">|</span>
|
|
858
|
-
228: <span class="ruby-comment cmt"># Check the working hours of that day if they overlap with +date+.</span>
|
|
859
|
-
229: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">iv</span>[<span class="ruby-value">0</span>] <span class="ruby-operator"><=</span> <span class="ruby-identifier">secondsOfDay</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">secondsOfDay</span> <span class="ruby-operator"><</span> <span class="ruby-identifier">iv</span>[<span class="ruby-value">1</span>]
|
|
860
|
-
230: <span class="ruby-comment cmt"># Store the result in the cache.</span>
|
|
861
|
-
231: <span class="ruby-identifier">@@onShiftCache</span>.<span class="ruby-identifier">set</span>(<span class="ruby-ivar">@cache</span>, <span class="ruby-identifier">date</span>, <span class="ruby-keyword kw">true</span>)
|
|
862
|
-
232: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span>
|
|
863
|
-
233: <span class="ruby-keyword kw">end</span>
|
|
864
|
-
234: <span class="ruby-keyword kw">end</span>
|
|
865
|
-
235:
|
|
866
|
-
236: <span class="ruby-comment cmt"># Store the result in the cache.</span>
|
|
867
|
-
237: <span class="ruby-identifier">@@onShiftCache</span>.<span class="ruby-identifier">set</span>(<span class="ruby-ivar">@cache</span>, <span class="ruby-identifier">date</span>, <span class="ruby-keyword kw">false</span>)
|
|
868
|
-
238: <span class="ruby-keyword kw">false</span>
|
|
869
|
-
239: <span class="ruby-keyword kw">end</span></pre>
|
|
886
|
+
<span class="ruby-comment cmt"># File lib/WorkingHours.rb, line 130</span>
|
|
887
|
+
130: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">onShift?</span>(<span class="ruby-identifier">date</span>)
|
|
888
|
+
131: <span class="ruby-identifier">initScoreboard</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@scoreboard</span>
|
|
889
|
+
132:
|
|
890
|
+
133: <span class="ruby-ivar">@scoreboard</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">date</span>)
|
|
891
|
+
134: <span class="ruby-keyword kw">end</span></pre>
|
|
870
892
|
</div>
|
|
871
893
|
|
|
872
894
|
</div>
|
|
@@ -903,28 +925,26 @@ start time of the interval, the second the end time.
|
|
|
903
925
|
<div class="method-source-code"
|
|
904
926
|
id="set-orking-ours-source">
|
|
905
927
|
<pre>
|
|
906
|
-
<span class="ruby-comment cmt"># File lib/WorkingHours.rb, line
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
199: <span class="ruby-ivar">@days</span>[<span class="ruby-identifier">dayOfWeek</span>] = <span class="ruby-identifier">intervals</span>
|
|
927
|
-
200: <span class="ruby-keyword kw">end</span></pre>
|
|
928
|
+
<span class="ruby-comment cmt"># File lib/WorkingHours.rb, line 95</span>
|
|
929
|
+
95: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">setWorkingHours</span>(<span class="ruby-identifier">dayOfWeek</span>, <span class="ruby-identifier">intervals</span>)
|
|
930
|
+
96: <span class="ruby-comment cmt"># Changing the working hours requires the score board to be regenerated.</span>
|
|
931
|
+
97: <span class="ruby-ivar">@scoreboard</span> = <span class="ruby-keyword kw">nil</span>
|
|
932
|
+
98:
|
|
933
|
+
99: <span class="ruby-comment cmt"># Legal values range from 0 Sunday to 6 Saturday.</span>
|
|
934
|
+
100: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">dayOfWeek</span> <span class="ruby-operator"><</span> <span class="ruby-value">0</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">dayOfWeek</span> <span class="ruby-operator">></span> <span class="ruby-value">6</span>
|
|
935
|
+
101: <span class="ruby-identifier">raise</span> <span class="ruby-node">"dayOfWeek out of range: #{dayOfWeek}"</span>
|
|
936
|
+
102: <span class="ruby-keyword kw">end</span>
|
|
937
|
+
103: <span class="ruby-identifier">intervals</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">iv</span><span class="ruby-operator">|</span>
|
|
938
|
+
104: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">iv</span>[<span class="ruby-value">0</span>] <span class="ruby-operator"><</span> <span class="ruby-value">0</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">iv</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">>=</span> <span class="ruby-value">24</span> * <span class="ruby-value">60</span> * <span class="ruby-value">60</span> <span class="ruby-operator">||</span>
|
|
939
|
+
105: <span class="ruby-identifier">iv</span>[<span class="ruby-value">1</span>] <span class="ruby-operator"><</span> <span class="ruby-value">0</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">iv</span>[<span class="ruby-value">1</span>] <span class="ruby-operator">>=</span> <span class="ruby-value">24</span> * <span class="ruby-value">60</span> * <span class="ruby-value">60</span>
|
|
940
|
+
106: <span class="ruby-identifier">raise</span> <span class="ruby-node">"Time interval has illegal values: #{iv[0]} - #{iv[1]}"</span>
|
|
941
|
+
107: <span class="ruby-keyword kw">end</span>
|
|
942
|
+
108: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">iv</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">>=</span> <span class="ruby-identifier">iv</span>[<span class="ruby-value">1</span>]
|
|
943
|
+
109: <span class="ruby-identifier">raise</span> <span class="ruby-value str">"Interval end time must be larger than start time"</span>
|
|
944
|
+
110: <span class="ruby-keyword kw">end</span>
|
|
945
|
+
111: <span class="ruby-keyword kw">end</span>
|
|
946
|
+
112: <span class="ruby-ivar">@days</span>[<span class="ruby-identifier">dayOfWeek</span>] = <span class="ruby-identifier">intervals</span>
|
|
947
|
+
113: <span class="ruby-keyword kw">end</span></pre>
|
|
928
948
|
</div>
|
|
929
949
|
|
|
930
950
|
</div>
|
|
@@ -949,8 +969,7 @@ start time of the interval, the second the end time.
|
|
|
949
969
|
<div class="method-description">
|
|
950
970
|
|
|
951
971
|
<p>
|
|
952
|
-
|
|
953
|
-
href="ShiftAssignment.html">ShiftAssignment</a>.
|
|
972
|
+
Return true only if all slots in the <em>interval</em> are offhour slots.
|
|
954
973
|
</p>
|
|
955
974
|
|
|
956
975
|
|
|
@@ -958,25 +977,56 @@ href="ShiftAssignment.html">ShiftAssignment</a>.
|
|
|
958
977
|
<div class="method-source-code"
|
|
959
978
|
id="time-ff--source">
|
|
960
979
|
<pre>
|
|
961
|
-
<span class="ruby-comment cmt"># File lib/WorkingHours.rb, line
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
+
<span class="ruby-comment cmt"># File lib/WorkingHours.rb, line 137</span>
|
|
981
|
+
137: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">timeOff?</span>(<span class="ruby-identifier">interval</span>)
|
|
982
|
+
138: <span class="ruby-identifier">initScoreboard</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@scoreboard</span>
|
|
983
|
+
139:
|
|
984
|
+
140: <span class="ruby-identifier">startIdx</span> = <span class="ruby-ivar">@scoreboard</span>.<span class="ruby-identifier">dateToIdx</span>(<span class="ruby-identifier">interval</span>.<span class="ruby-identifier">start</span>, <span class="ruby-keyword kw">true</span>)
|
|
985
|
+
141: <span class="ruby-identifier">endIdx</span> = <span class="ruby-ivar">@scoreboard</span>.<span class="ruby-identifier">dateToIdx</span>(<span class="ruby-identifier">interval</span>.<span class="ruby-identifier">end</span>, <span class="ruby-keyword kw">true</span>)
|
|
986
|
+
142:
|
|
987
|
+
143: <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>
|
|
988
|
+
144: <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">i</span>]
|
|
989
|
+
145: <span class="ruby-keyword kw">end</span>
|
|
990
|
+
146: <span class="ruby-keyword kw">true</span>
|
|
991
|
+
147: <span class="ruby-keyword kw">end</span></pre>
|
|
992
|
+
</div>
|
|
993
|
+
|
|
994
|
+
</div>
|
|
995
|
+
|
|
996
|
+
|
|
997
|
+
|
|
998
|
+
|
|
999
|
+
</div>
|
|
1000
|
+
|
|
1001
|
+
|
|
1002
|
+
<div id="timezone--method" class="method-detail ">
|
|
1003
|
+
<a name="method-i-timezone%3D"></a>
|
|
1004
|
+
|
|
1005
|
+
<div class="method-heading">
|
|
1006
|
+
|
|
1007
|
+
<span class="method-name">timezone=</span><span
|
|
1008
|
+
class="method-args">(zone)</span>
|
|
1009
|
+
<span class="method-click-advice">click to toggle source</span>
|
|
1010
|
+
|
|
1011
|
+
</div>
|
|
1012
|
+
|
|
1013
|
+
<div class="method-description">
|
|
1014
|
+
|
|
1015
|
+
<p>
|
|
1016
|
+
Set the time zone <em>zone</em> for the working hours. This will reset the
|
|
1017
|
+
@scoreboard.
|
|
1018
|
+
</p>
|
|
1019
|
+
|
|
1020
|
+
|
|
1021
|
+
|
|
1022
|
+
<div class="method-source-code"
|
|
1023
|
+
id="timezone--source">
|
|
1024
|
+
<pre>
|
|
1025
|
+
<span class="ruby-comment cmt"># File lib/WorkingHours.rb, line 117</span>
|
|
1026
|
+
117: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">timezone=</span>(<span class="ruby-identifier">zone</span>)
|
|
1027
|
+
118: <span class="ruby-ivar">@scoreboard</span> = <span class="ruby-keyword kw">nil</span>
|
|
1028
|
+
119: <span class="ruby-ivar">@timezone</span> = <span class="ruby-identifier">zone</span>
|
|
1029
|
+
120: <span class="ruby-keyword kw">end</span></pre>
|
|
980
1030
|
</div>
|
|
981
1031
|
|
|
982
1032
|
</div>
|
|
@@ -1009,32 +1059,32 @@ Returns the time interval settings for each day in a human readable form.
|
|
|
1009
1059
|
<div class="method-source-code"
|
|
1010
1060
|
id="to-s-source">
|
|
1011
1061
|
<pre>
|
|
1012
|
-
<span class="ruby-comment cmt"># File lib/WorkingHours.rb, line
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1062
|
+
<span class="ruby-comment cmt"># File lib/WorkingHours.rb, line 150</span>
|
|
1063
|
+
150: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_s</span>
|
|
1064
|
+
151: <span class="ruby-identifier">dayNames</span> = <span class="ruby-node">%( Sun Mon Tue Wed Thu Fri Sat )</span>
|
|
1065
|
+
152: <span class="ruby-identifier">str</span> = <span class="ruby-value str">''</span>
|
|
1066
|
+
153: <span class="ruby-value">7</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">day</span><span class="ruby-operator">|</span>
|
|
1067
|
+
154: <span class="ruby-identifier">str</span> <span class="ruby-operator">+=</span> <span class="ruby-node">"#{dayNames[day]}: "</span>
|
|
1068
|
+
155: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@days</span>[<span class="ruby-identifier">day</span>].<span class="ruby-identifier">empty?</span>
|
|
1069
|
+
156: <span class="ruby-identifier">str</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">"off"</span>
|
|
1070
|
+
157: <span class="ruby-identifier">str</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">"\n"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">day</span> <span class="ruby-operator"><</span> <span class="ruby-value">6</span>
|
|
1071
|
+
158: <span class="ruby-keyword kw">next</span>
|
|
1072
|
+
159: <span class="ruby-keyword kw">end</span>
|
|
1073
|
+
160: <span class="ruby-identifier">first</span> = <span class="ruby-keyword kw">true</span>
|
|
1074
|
+
161: <span class="ruby-ivar">@days</span>[<span class="ruby-identifier">day</span>].<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">iv</span><span class="ruby-operator">|</span>
|
|
1075
|
+
162: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">first</span>
|
|
1076
|
+
163: <span class="ruby-identifier">first</span> = <span class="ruby-keyword kw">false</span>
|
|
1077
|
+
164: <span class="ruby-keyword kw">else</span>
|
|
1078
|
+
165: <span class="ruby-identifier">str</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">', '</span>
|
|
1079
|
+
166: <span class="ruby-keyword kw">end</span>
|
|
1080
|
+
167: <span class="ruby-identifier">str</span> <span class="ruby-operator">+=</span> <span class="ruby-node">"#{iv[0] / 3600}:"</span> <span class="ruby-operator">+</span>
|
|
1081
|
+
168: <span class="ruby-node">"#{iv[0] % 3600 == 0 ? '00' : iv[0] % 3600} - "</span> <span class="ruby-operator">+</span>
|
|
1082
|
+
169: <span class="ruby-node">"#{iv[1] / 3600}:#{iv[1] % 3600 == 0 ? '00' : iv[1] % 3600}"</span>
|
|
1083
|
+
170: <span class="ruby-keyword kw">end</span>
|
|
1084
|
+
171: <span class="ruby-identifier">str</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">"\n"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">day</span> <span class="ruby-operator"><</span> <span class="ruby-value">6</span>
|
|
1085
|
+
172: <span class="ruby-keyword kw">end</span>
|
|
1086
|
+
173: <span class="ruby-identifier">str</span>
|
|
1087
|
+
174: <span class="ruby-keyword kw">end</span></pre>
|
|
1038
1088
|
</div>
|
|
1039
1089
|
|
|
1040
1090
|
</div>
|
|
@@ -1051,49 +1101,73 @@ Returns the time interval settings for each day in a human readable form.
|
|
|
1051
1101
|
<h3 class="section-header">Private Instance Methods</h3>
|
|
1052
1102
|
|
|
1053
1103
|
|
|
1054
|
-
<div id="
|
|
1055
|
-
<a name="method-i-
|
|
1104
|
+
<div id="init-coreboard-method" class="method-detail ">
|
|
1105
|
+
<a name="method-i-initScoreboard"></a>
|
|
1056
1106
|
|
|
1057
1107
|
<div class="method-heading">
|
|
1058
1108
|
|
|
1059
|
-
<span class="method-name">
|
|
1060
|
-
class="method-args">(
|
|
1109
|
+
<span class="method-name">initScoreboard</span><span
|
|
1110
|
+
class="method-args">()</span>
|
|
1061
1111
|
<span class="method-click-advice">click to toggle source</span>
|
|
1062
1112
|
|
|
1063
1113
|
</div>
|
|
1064
1114
|
|
|
1065
1115
|
<div class="method-description">
|
|
1066
1116
|
|
|
1067
|
-
|
|
1068
|
-
Convert a UTC date into the corresponding date in the local time zone. This
|
|
1069
|
-
is either the current system setting or the time zone specified by
|
|
1070
|
-
<em>tz</em>.
|
|
1071
|
-
</p>
|
|
1117
|
+
|
|
1072
1118
|
|
|
1073
1119
|
|
|
1074
1120
|
|
|
1075
1121
|
<div class="method-source-code"
|
|
1076
|
-
id="
|
|
1122
|
+
id="init-coreboard-source">
|
|
1077
1123
|
<pre>
|
|
1078
|
-
<span class="ruby-comment cmt"># File lib/WorkingHours.rb, line
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1124
|
+
<span class="ruby-comment cmt"># File lib/WorkingHours.rb, line 178</span>
|
|
1125
|
+
178: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initScoreboard</span>
|
|
1126
|
+
179: <span class="ruby-comment cmt"># The scoreboard is an Array of True/False values. It spans a certain</span>
|
|
1127
|
+
180: <span class="ruby-comment cmt"># time period with one entry per time slot.</span>
|
|
1128
|
+
181: <span class="ruby-ivar">@scoreboard</span> = <span class="ruby-constant">Scoreboard</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@startDate</span>, <span class="ruby-ivar">@endDate</span>, <span class="ruby-ivar">@slotDuration</span>, <span class="ruby-keyword kw">false</span>)
|
|
1129
|
+
182:
|
|
1130
|
+
183: <span class="ruby-identifier">oldTimezone</span> = <span class="ruby-keyword kw">nil</span>
|
|
1131
|
+
184: <span class="ruby-comment cmt"># Set environment variable TZ to appropriate time zone</span>
|
|
1132
|
+
185: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@timezone</span>
|
|
1133
|
+
186: <span class="ruby-identifier">oldTimezone</span> = <span class="ruby-constant">ENV</span>[<span class="ruby-value str">'TZ'</span>]
|
|
1134
|
+
187: <span class="ruby-constant">ENV</span>[<span class="ruby-value str">'TZ'</span>] = <span class="ruby-ivar">@timezone</span>
|
|
1135
|
+
188: <span class="ruby-keyword kw">end</span>
|
|
1136
|
+
189:
|
|
1137
|
+
190: <span class="ruby-identifier">date</span> = <span class="ruby-ivar">@startDate</span>
|
|
1138
|
+
191: <span class="ruby-ivar">@scoreboard</span>.<span class="ruby-identifier">collect!</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">slot</span><span class="ruby-operator">|</span>
|
|
1139
|
+
192: <span class="ruby-identifier">localDate</span> = <span class="ruby-identifier">date</span>.<span class="ruby-identifier">dup</span>
|
|
1140
|
+
193: <span class="ruby-identifier">localDate</span>.<span class="ruby-identifier">localtime</span>
|
|
1141
|
+
194:
|
|
1142
|
+
195: <span class="ruby-comment cmt"># The date is in UTC. The weekday needs to be calculated according to</span>
|
|
1143
|
+
196: <span class="ruby-comment cmt"># the local timezone.</span>
|
|
1144
|
+
197: <span class="ruby-identifier">weekday</span> = <span class="ruby-identifier">localDate</span>.<span class="ruby-identifier">wday</span>
|
|
1145
|
+
198: <span class="ruby-identifier">secondsOfDay</span> = <span class="ruby-identifier">localDate</span>.<span class="ruby-identifier">secondsOfDay</span>
|
|
1146
|
+
199:
|
|
1147
|
+
200: <span class="ruby-identifier">result</span> = <span class="ruby-keyword kw">false</span>
|
|
1148
|
+
201: <span class="ruby-ivar">@days</span>[<span class="ruby-identifier">weekday</span>].<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">iv</span><span class="ruby-operator">|</span>
|
|
1149
|
+
202: <span class="ruby-comment cmt"># Check the working hours of that day if they overlap with +date+.</span>
|
|
1150
|
+
203: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">iv</span>[<span class="ruby-value">0</span>] <span class="ruby-operator"><=</span> <span class="ruby-identifier">secondsOfDay</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">secondsOfDay</span> <span class="ruby-operator"><</span> <span class="ruby-identifier">iv</span>[<span class="ruby-value">1</span>]
|
|
1151
|
+
204: <span class="ruby-comment cmt"># The time slot is a working slot.</span>
|
|
1152
|
+
205: <span class="ruby-identifier">result</span> = <span class="ruby-keyword kw">true</span>
|
|
1153
|
+
206: <span class="ruby-keyword kw">break</span>
|
|
1154
|
+
207: <span class="ruby-keyword kw">end</span>
|
|
1155
|
+
208: <span class="ruby-keyword kw">end</span>
|
|
1156
|
+
209: <span class="ruby-comment cmt"># Calculate date of next scoreboard slot</span>
|
|
1157
|
+
210: <span class="ruby-identifier">date</span> <span class="ruby-operator">+=</span> <span class="ruby-ivar">@slotDuration</span>
|
|
1158
|
+
211:
|
|
1159
|
+
212: <span class="ruby-identifier">result</span>
|
|
1160
|
+
213: <span class="ruby-keyword kw">end</span>
|
|
1161
|
+
214:
|
|
1162
|
+
215: <span class="ruby-comment cmt"># Restore environment</span>
|
|
1163
|
+
216: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@timezone</span>
|
|
1164
|
+
217: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">oldTimezone</span>
|
|
1165
|
+
218: <span class="ruby-constant">ENV</span>[<span class="ruby-value str">'TZ'</span>] = <span class="ruby-identifier">oldTimezone</span>
|
|
1166
|
+
219: <span class="ruby-keyword kw">else</span>
|
|
1167
|
+
220: <span class="ruby-constant">ENV</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-value str">'TZ'</span>)
|
|
1168
|
+
221: <span class="ruby-keyword kw">end</span>
|
|
1169
|
+
222: <span class="ruby-keyword kw">end</span>
|
|
1170
|
+
223: <span class="ruby-keyword kw">end</span></pre>
|
|
1097
1171
|
</div>
|
|
1098
1172
|
|
|
1099
1173
|
</div>
|