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
data/doc/TaskJuggler/Query.html
CHANGED
|
@@ -179,12 +179,18 @@
|
|
|
179
179
|
|
|
180
180
|
<li><a href="../TaskJuggler/ChargeSetListAttribute.html">TaskJuggler::ChargeSetListAttribute</a></li>
|
|
181
181
|
|
|
182
|
+
<li><a href="../TaskJuggler/CollisionDetector.html">TaskJuggler::CollisionDetector</a></li>
|
|
183
|
+
|
|
182
184
|
<li><a href="../TaskJuggler/ColumnListAttribute.html">TaskJuggler::ColumnListAttribute</a></li>
|
|
183
185
|
|
|
184
186
|
<li><a href="../TaskJuggler/ColumnTable.html">TaskJuggler::ColumnTable</a></li>
|
|
185
187
|
|
|
186
188
|
<li><a href="../TaskJuggler/Daemon.html">TaskJuggler::Daemon</a></li>
|
|
187
189
|
|
|
190
|
+
<li><a href="../TaskJuggler/DataCache.html">TaskJuggler::DataCache</a></li>
|
|
191
|
+
|
|
192
|
+
<li><a href="../TaskJuggler/DataCacheEntry.html">TaskJuggler::DataCacheEntry</a></li>
|
|
193
|
+
|
|
188
194
|
<li><a href="../TaskJuggler/DateAttribute.html">TaskJuggler::DateAttribute</a></li>
|
|
189
195
|
|
|
190
196
|
<li><a href="../TaskJuggler/DefinitionListAttribute.html">TaskJuggler::DefinitionListAttribute</a></li>
|
|
@@ -291,7 +297,7 @@
|
|
|
291
297
|
|
|
292
298
|
<li><a href="../TaskJuggler/NodeListAttribute.html">TaskJuggler::NodeListAttribute</a></li>
|
|
293
299
|
|
|
294
|
-
<li><a href="../TaskJuggler/
|
|
300
|
+
<li><a href="../TaskJuggler/PlaceHolderCell.html">TaskJuggler::PlaceHolderCell</a></li>
|
|
295
301
|
|
|
296
302
|
<li><a href="../TaskJuggler/ProcessIntercom.html">TaskJuggler::ProcessIntercom</a></li>
|
|
297
303
|
|
|
@@ -471,6 +477,10 @@
|
|
|
471
477
|
|
|
472
478
|
<li><a href="../TaskJuggler/TextParser/StackElement.html">TaskJuggler::TextParser::StackElement</a></li>
|
|
473
479
|
|
|
480
|
+
<li><a href="../TaskJuggler/TextParser/State.html">TaskJuggler::TextParser::State</a></li>
|
|
481
|
+
|
|
482
|
+
<li><a href="../TaskJuggler/TextParser/StateTransition.html">TaskJuggler::TextParser::StateTransition</a></li>
|
|
483
|
+
|
|
474
484
|
<li><a href="../TaskJuggler/TextParser/TextParserResultArray.html">TaskJuggler::TextParser::TextParserResultArray</a></li>
|
|
475
485
|
|
|
476
486
|
<li><a href="../TaskJuggler/TextParser/TokenDoc.html">TaskJuggler::TextParser::TokenDoc</a></li>
|
|
@@ -1134,17 +1144,15 @@ need to be sufficent to uniquely identify an attribute.
|
|
|
1134
1144
|
<div class="method-source-code"
|
|
1135
1145
|
id="end-source">
|
|
1136
1146
|
<pre>
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
99: <span class="ruby-keyword kw">end</span>
|
|
1147
|
-
100: <span class="ruby-keyword kw">end</span></pre>
|
|
1147
|
+
<span class="ruby-comment cmt"># File lib/Query.rb, line 87</span>
|
|
1148
|
+
87: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">end</span>=(<span class="ruby-identifier">date</span>)
|
|
1149
|
+
88: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">date</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">TjTime</span>)
|
|
1150
|
+
89: <span class="ruby-ivar">@end</span> = <span class="ruby-identifier">date</span>
|
|
1151
|
+
90: <span class="ruby-ivar">@endIdx</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">dateToIdx</span>(<span class="ruby-identifier">date</span>, <span class="ruby-keyword kw">true</span>)
|
|
1152
|
+
91: <span class="ruby-keyword kw">else</span>
|
|
1153
|
+
92: <span class="ruby-identifier">raise</span> <span class="ruby-node">"Unsupported type #{date.class}"</span>
|
|
1154
|
+
93: <span class="ruby-keyword kw">end</span>
|
|
1155
|
+
94: <span class="ruby-keyword kw">end</span></pre>
|
|
1148
1156
|
</div>
|
|
1149
1157
|
|
|
1150
1158
|
</div>
|
|
@@ -1175,17 +1183,15 @@ need to be sufficent to uniquely identify an attribute.
|
|
|
1175
1183
|
<div class="method-source-code"
|
|
1176
1184
|
id="end-dx--source">
|
|
1177
1185
|
<pre>
|
|
1178
|
-
<span class="ruby-comment cmt"># File lib/Query.rb, line
|
|
1179
|
-
|
|
1180
|
-
|
|
1181
|
-
|
|
1182
|
-
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
110: <span class="ruby-keyword kw">end</span>
|
|
1188
|
-
111: <span class="ruby-keyword kw">end</span></pre>
|
|
1186
|
+
<span class="ruby-comment cmt"># File lib/Query.rb, line 96</span>
|
|
1187
|
+
96: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">endIdx=</span>(<span class="ruby-identifier">idx</span>)
|
|
1188
|
+
97: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">idx</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Fixnum</span>)
|
|
1189
|
+
98: <span class="ruby-ivar">@endIdx</span> = <span class="ruby-identifier">idx</span>
|
|
1190
|
+
99: <span class="ruby-ivar">@end</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">idxToDate</span>(<span class="ruby-identifier">idx</span>)
|
|
1191
|
+
100: <span class="ruby-keyword kw">else</span>
|
|
1192
|
+
101: <span class="ruby-identifier">raise</span> <span class="ruby-node">"Unsupported type #{idx.class}"</span>
|
|
1193
|
+
102: <span class="ruby-keyword kw">end</span>
|
|
1194
|
+
103: <span class="ruby-keyword kw">end</span></pre>
|
|
1189
1195
|
</div>
|
|
1190
1196
|
|
|
1191
1197
|
</div>
|
|
@@ -1224,69 +1230,69 @@ href="Query.html#method-i-to_sort">to_sort</a>() and result().
|
|
|
1224
1230
|
<div class="method-source-code"
|
|
1225
1231
|
id="process-source">
|
|
1226
1232
|
<pre>
|
|
1227
|
-
<span class="ruby-comment cmt"># File lib/Query.rb, line
|
|
1228
|
-
|
|
1229
|
-
|
|
1230
|
-
|
|
1231
|
-
|
|
1232
|
-
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
|
|
1246
|
-
|
|
1247
|
-
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
|
|
1252
|
-
|
|
1233
|
+
<span class="ruby-comment cmt"># File lib/Query.rb, line 110</span>
|
|
1234
|
+
110: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">process</span>
|
|
1235
|
+
111: <span class="ruby-identifier">reset</span>
|
|
1236
|
+
112: <span class="ruby-keyword kw">begin</span>
|
|
1237
|
+
113: <span class="ruby-comment cmt"># Resolve property reference from property ID.</span>
|
|
1238
|
+
114: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@property</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">&&</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@propertyId</span>.<span class="ruby-identifier">nil?</span>
|
|
1239
|
+
115: <span class="ruby-ivar">@property</span> = <span class="ruby-identifier">resolvePropertyId</span>(<span class="ruby-ivar">@propertyType</span>, <span class="ruby-ivar">@propertyId</span>)
|
|
1240
|
+
116: <span class="ruby-keyword kw">end</span>
|
|
1241
|
+
117:
|
|
1242
|
+
118: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@property</span>
|
|
1243
|
+
119: <span class="ruby-comment cmt"># No property was provided. We are looking for a project attribute.</span>
|
|
1244
|
+
120: <span class="ruby-identifier">supportedAttrs</span> = <span class="ruby-node">%( copyright currency end name now projectid
|
|
1245
|
+
121: start version )</span>
|
|
1246
|
+
122: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">supportedAttrs</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-ivar">@attributeId</span>)
|
|
1247
|
+
123: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>,
|
|
1248
|
+
124: <span class="ruby-node">"Unsupported project attribute '#{@attributeId}'"</span>
|
|
1249
|
+
125: <span class="ruby-keyword kw">end</span>
|
|
1250
|
+
126: <span class="ruby-identifier">attr</span> = <span class="ruby-ivar">@project</span>[<span class="ruby-ivar">@attributeId</span>]
|
|
1251
|
+
127: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">attr</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">TjTime</span>)
|
|
1252
|
+
128: <span class="ruby-ivar">@sortable</span> = <span class="ruby-ivar">@numerical</span> = <span class="ruby-identifier">attr</span>
|
|
1253
|
+
129: <span class="ruby-ivar">@string</span> = <span class="ruby-identifier">attr</span>.<span class="ruby-identifier">to_s</span>(<span class="ruby-ivar">@timeFormat</span>)
|
|
1254
|
+
130: <span class="ruby-keyword kw">else</span>
|
|
1255
|
+
131: <span class="ruby-ivar">@sortable</span> = <span class="ruby-ivar">@string</span> = <span class="ruby-identifier">attr</span>
|
|
1256
|
+
132: <span class="ruby-keyword kw">end</span>
|
|
1257
|
+
133: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@ok</span> = <span class="ruby-keyword kw">true</span>
|
|
1258
|
+
134: <span class="ruby-keyword kw">end</span>
|
|
1259
|
+
135:
|
|
1260
|
+
136: <span class="ruby-comment cmt"># Same for the scope property.</span>
|
|
1261
|
+
137: <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@scopeProperty</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">&&</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@scopePropertyId</span>.<span class="ruby-identifier">nil?</span>
|
|
1262
|
+
138: <span class="ruby-ivar">@scopeProperty</span> = <span class="ruby-identifier">resolvePropertyId</span>(<span class="ruby-ivar">@scopePropertyType</span>,
|
|
1263
|
+
139: <span class="ruby-ivar">@scopePropertyId</span>)
|
|
1264
|
+
140: <span class="ruby-keyword kw">end</span>
|
|
1265
|
+
141: <span class="ruby-comment cmt"># Make sure the have a reference to the project.</span>
|
|
1266
|
+
142: <span class="ruby-ivar">@project</span> = <span class="ruby-ivar">@property</span>.<span class="ruby-identifier">project</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@project</span>
|
|
1253
1267
|
143:
|
|
1254
|
-
144: <span class="ruby-
|
|
1255
|
-
145:
|
|
1256
|
-
146: <span class="ruby-
|
|
1257
|
-
147:
|
|
1258
|
-
148:
|
|
1259
|
-
149: <span class="ruby-
|
|
1260
|
-
150:
|
|
1261
|
-
151:
|
|
1262
|
-
152: <span class="ruby-
|
|
1263
|
-
153:
|
|
1264
|
-
154: <span class="ruby-
|
|
1265
|
-
155:
|
|
1266
|
-
156:
|
|
1267
|
-
157:
|
|
1268
|
-
158:
|
|
1269
|
-
159: <span class="ruby-
|
|
1270
|
-
160:
|
|
1271
|
-
161:
|
|
1272
|
-
162:
|
|
1273
|
-
163:
|
|
1274
|
-
164:
|
|
1275
|
-
165:
|
|
1276
|
-
166:
|
|
1277
|
-
167: <span class="ruby-
|
|
1278
|
-
168:
|
|
1279
|
-
169:
|
|
1280
|
-
170:
|
|
1281
|
-
171:
|
|
1282
|
-
172: <span class="ruby-keyword kw">end</span>
|
|
1283
|
-
173: <span class="ruby-keyword kw">end</span>
|
|
1284
|
-
174: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">TjException</span>
|
|
1285
|
-
175: <span class="ruby-ivar">@errorMessage</span> = <span class="ruby-identifier">$!</span>.<span class="ruby-identifier">message</span>
|
|
1286
|
-
176: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@ok</span> = <span class="ruby-keyword kw">false</span>
|
|
1287
|
-
177: <span class="ruby-keyword kw">end</span>
|
|
1288
|
-
178: <span class="ruby-ivar">@ok</span> = <span class="ruby-keyword kw">true</span>
|
|
1289
|
-
179: <span class="ruby-keyword kw">end</span></pre>
|
|
1268
|
+
144: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@scenario</span> <span class="ruby-operator">&&</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@scenarioIdx</span>
|
|
1269
|
+
145: <span class="ruby-ivar">@scenarioIdx</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">scenarioIdx</span>(<span class="ruby-ivar">@scenario</span>)
|
|
1270
|
+
146: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@scenarioIdx</span>
|
|
1271
|
+
147: <span class="ruby-identifier">raise</span> <span class="ruby-node">"Query cannot resolve scenario '#{@scenario}'"</span>
|
|
1272
|
+
148: <span class="ruby-keyword kw">end</span>
|
|
1273
|
+
149: <span class="ruby-keyword kw">end</span>
|
|
1274
|
+
150:
|
|
1275
|
+
151: <span class="ruby-identifier">queryMethodName</span> = <span class="ruby-value str">'query_'</span> <span class="ruby-operator">+</span> <span class="ruby-ivar">@attributeId</span>
|
|
1276
|
+
152: <span class="ruby-comment cmt"># First we check for non-scenario-specific query functions.</span>
|
|
1277
|
+
153: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@property</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">queryMethodName</span>)
|
|
1278
|
+
154: <span class="ruby-ivar">@property</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">queryMethodName</span>, <span class="ruby-keyword kw">self</span>)
|
|
1279
|
+
155: <span class="ruby-keyword kw">elsif</span> <span class="ruby-ivar">@scenarioIdx</span> <span class="ruby-operator">&&</span>
|
|
1280
|
+
156: <span class="ruby-ivar">@property</span>.<span class="ruby-identifier">data</span>[<span class="ruby-ivar">@scenarioIdx</span>].<span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">queryMethodName</span>)
|
|
1281
|
+
157: <span class="ruby-comment cmt"># Then we check for scenario-specific ones via the @data member.</span>
|
|
1282
|
+
158: <span class="ruby-ivar">@property</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">queryMethodName</span>, <span class="ruby-ivar">@scenarioIdx</span>, <span class="ruby-keyword kw">self</span>)
|
|
1283
|
+
159: <span class="ruby-keyword kw">else</span>
|
|
1284
|
+
160: <span class="ruby-comment cmt"># The result is a BaseAttribute</span>
|
|
1285
|
+
161: <span class="ruby-keyword kw">unless</span> (<span class="ruby-ivar">@attr</span> = <span class="ruby-ivar">@property</span>.<span class="ruby-identifier">getAttribute</span>(<span class="ruby-ivar">@attributeId</span>, <span class="ruby-ivar">@scenarioIdx</span>))
|
|
1286
|
+
162: <span class="ruby-ivar">@errorMessage</span> = <span class="ruby-node">"Unknown attribute #{@attributeId} queried"</span>
|
|
1287
|
+
163: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@ok</span> = <span class="ruby-keyword kw">false</span>
|
|
1288
|
+
164: <span class="ruby-keyword kw">end</span>
|
|
1289
|
+
165: <span class="ruby-keyword kw">end</span>
|
|
1290
|
+
166: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">TjException</span>
|
|
1291
|
+
167: <span class="ruby-ivar">@errorMessage</span> = <span class="ruby-identifier">$!</span>.<span class="ruby-identifier">message</span>
|
|
1292
|
+
168: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@ok</span> = <span class="ruby-keyword kw">false</span>
|
|
1293
|
+
169: <span class="ruby-keyword kw">end</span>
|
|
1294
|
+
170: <span class="ruby-ivar">@ok</span> = <span class="ruby-keyword kw">true</span>
|
|
1295
|
+
171: <span class="ruby-keyword kw">end</span></pre>
|
|
1290
1296
|
</div>
|
|
1291
1297
|
|
|
1292
1298
|
</div>
|
|
@@ -1319,22 +1325,22 @@ Return the result in the orginal form. It may be nil.
|
|
|
1319
1325
|
<div class="method-source-code"
|
|
1320
1326
|
id="result-source">
|
|
1321
1327
|
<pre>
|
|
1322
|
-
<span class="ruby-comment cmt"># File lib/Query.rb, line
|
|
1323
|
-
|
|
1324
|
-
|
|
1325
|
-
|
|
1326
|
-
|
|
1327
|
-
|
|
1328
|
-
|
|
1329
|
-
|
|
1330
|
-
|
|
1331
|
-
|
|
1332
|
-
|
|
1333
|
-
|
|
1334
|
-
|
|
1335
|
-
|
|
1336
|
-
|
|
1337
|
-
|
|
1328
|
+
<span class="ruby-comment cmt"># File lib/Query.rb, line 196</span>
|
|
1329
|
+
196: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">result</span>
|
|
1330
|
+
197: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@attr</span>
|
|
1331
|
+
198: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@attr</span>.<span class="ruby-identifier">value</span> <span class="ruby-operator">&&</span> <span class="ruby-ivar">@attr</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">ReferenceAttribute</span>)
|
|
1332
|
+
199: <span class="ruby-ivar">@attr</span>.<span class="ruby-identifier">value</span>[<span class="ruby-value">0</span>]
|
|
1333
|
+
200: <span class="ruby-keyword kw">else</span>
|
|
1334
|
+
201: <span class="ruby-ivar">@attr</span>.<span class="ruby-identifier">value</span>
|
|
1335
|
+
202: <span class="ruby-keyword kw">end</span>
|
|
1336
|
+
203: <span class="ruby-keyword kw">elsif</span> <span class="ruby-ivar">@rti</span>
|
|
1337
|
+
204: <span class="ruby-ivar">@rti</span>
|
|
1338
|
+
205: <span class="ruby-keyword kw">elsif</span> <span class="ruby-ivar">@numerical</span>
|
|
1339
|
+
206: <span class="ruby-ivar">@numerical</span>
|
|
1340
|
+
207: <span class="ruby-keyword kw">else</span>
|
|
1341
|
+
208: <span class="ruby-ivar">@string</span>
|
|
1342
|
+
209: <span class="ruby-keyword kw">end</span>
|
|
1343
|
+
210: <span class="ruby-keyword kw">end</span></pre>
|
|
1338
1344
|
</div>
|
|
1339
1345
|
|
|
1340
1346
|
</div>
|
|
@@ -1369,10 +1375,10 @@ optional unit as a <a href="../String.html">String</a>.
|
|
|
1369
1375
|
<div class="method-source-code"
|
|
1370
1376
|
id="scale-uration-source">
|
|
1371
1377
|
<pre>
|
|
1372
|
-
<span class="ruby-comment cmt"># File lib/Query.rb, line
|
|
1373
|
-
|
|
1374
|
-
|
|
1375
|
-
|
|
1378
|
+
<span class="ruby-comment cmt"># File lib/Query.rb, line 215</span>
|
|
1379
|
+
215: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">scaleDuration</span>(<span class="ruby-identifier">value</span>)
|
|
1380
|
+
216: <span class="ruby-identifier">scaleValue</span>(<span class="ruby-identifier">value</span>, [ <span class="ruby-value">24</span> * <span class="ruby-value">60</span>, <span class="ruby-value">24</span>, <span class="ruby-value">1</span>, <span class="ruby-value">1.0</span> <span class="ruby-operator">/</span> <span class="ruby-value">7</span>, <span class="ruby-value">1.0</span> <span class="ruby-operator">/</span> <span class="ruby-value">30.42</span>, <span class="ruby-value">1.0</span> <span class="ruby-operator">/</span> <span class="ruby-value">365</span> ])
|
|
1381
|
+
217: <span class="ruby-keyword kw">end</span></pre>
|
|
1376
1382
|
</div>
|
|
1377
1383
|
|
|
1378
1384
|
</div>
|
|
@@ -1407,15 +1413,15 @@ value with optional unit as a <a href="../String.html">String</a>.
|
|
|
1407
1413
|
<div class="method-source-code"
|
|
1408
1414
|
id="scale-oad-source">
|
|
1409
1415
|
<pre>
|
|
1410
|
-
<span class="ruby-comment cmt"># File lib/Query.rb, line
|
|
1411
|
-
|
|
1412
|
-
|
|
1413
|
-
|
|
1414
|
-
|
|
1415
|
-
|
|
1416
|
-
|
|
1417
|
-
|
|
1418
|
-
|
|
1416
|
+
<span class="ruby-comment cmt"># File lib/Query.rb, line 222</span>
|
|
1417
|
+
222: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">scaleLoad</span>(<span class="ruby-identifier">value</span>)
|
|
1418
|
+
223: <span class="ruby-identifier">scaleValue</span>(<span class="ruby-identifier">value</span>, [ <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">dailyWorkingHours</span> * <span class="ruby-value">60</span>,
|
|
1419
|
+
224: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">dailyWorkingHours</span>,
|
|
1420
|
+
225: <span class="ruby-value">1.0</span>,
|
|
1421
|
+
226: <span class="ruby-value">1.0</span> <span class="ruby-operator">/</span> <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">weeklyWorkingDays</span>,
|
|
1422
|
+
227: <span class="ruby-value">1.0</span> <span class="ruby-operator">/</span> <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">monthlyWorkingDays</span>,
|
|
1423
|
+
228: <span class="ruby-value">1.0</span> <span class="ruby-operator">/</span> <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">yearlyWorkingDays</span> ])
|
|
1424
|
+
229: <span class="ruby-keyword kw">end</span></pre>
|
|
1419
1425
|
</div>
|
|
1420
1426
|
|
|
1421
1427
|
</div>
|
|
@@ -1455,12 +1461,10 @@ index. We store both, but we need to assure they are always in sync.
|
|
|
1455
1461
|
70: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">date</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">TjTime</span>)
|
|
1456
1462
|
71: <span class="ruby-ivar">@start</span> = <span class="ruby-identifier">date</span>
|
|
1457
1463
|
72: <span class="ruby-ivar">@startIdx</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">dateToIdx</span>(<span class="ruby-identifier">date</span>, <span class="ruby-keyword kw">true</span>)
|
|
1458
|
-
73: <span class="ruby-
|
|
1459
|
-
74:
|
|
1460
|
-
75: <span class="ruby-keyword kw">
|
|
1461
|
-
76:
|
|
1462
|
-
77: <span class="ruby-keyword kw">end</span>
|
|
1463
|
-
78: <span class="ruby-keyword kw">end</span></pre>
|
|
1464
|
+
73: <span class="ruby-keyword kw">else</span>
|
|
1465
|
+
74: <span class="ruby-identifier">raise</span> <span class="ruby-node">"Unsupported type #{date.class}"</span>
|
|
1466
|
+
75: <span class="ruby-keyword kw">end</span>
|
|
1467
|
+
76: <span class="ruby-keyword kw">end</span></pre>
|
|
1464
1468
|
</div>
|
|
1465
1469
|
|
|
1466
1470
|
</div>
|
|
@@ -1491,17 +1495,15 @@ index. We store both, but we need to assure they are always in sync.
|
|
|
1491
1495
|
<div class="method-source-code"
|
|
1492
1496
|
id="start-dx--source">
|
|
1493
1497
|
<pre>
|
|
1494
|
-
<span class="ruby-comment cmt"># File lib/Query.rb, line
|
|
1495
|
-
|
|
1496
|
-
|
|
1497
|
-
|
|
1498
|
-
|
|
1499
|
-
|
|
1500
|
-
|
|
1501
|
-
|
|
1502
|
-
|
|
1503
|
-
88: <span class="ruby-keyword kw">end</span>
|
|
1504
|
-
89: <span class="ruby-keyword kw">end</span></pre>
|
|
1498
|
+
<span class="ruby-comment cmt"># File lib/Query.rb, line 78</span>
|
|
1499
|
+
78: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">startIdx=</span>(<span class="ruby-identifier">idx</span>)
|
|
1500
|
+
79: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">idx</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Fixnum</span>)
|
|
1501
|
+
80: <span class="ruby-ivar">@startIdx</span> = <span class="ruby-identifier">idx</span>
|
|
1502
|
+
81: <span class="ruby-ivar">@start</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">idxToDate</span>(<span class="ruby-identifier">idx</span>)
|
|
1503
|
+
82: <span class="ruby-keyword kw">else</span>
|
|
1504
|
+
83: <span class="ruby-identifier">raise</span> <span class="ruby-node">"Unsupported type #{idx.class}"</span>
|
|
1505
|
+
84: <span class="ruby-keyword kw">end</span>
|
|
1506
|
+
85: <span class="ruby-keyword kw">end</span></pre>
|
|
1505
1507
|
</div>
|
|
1506
1508
|
|
|
1507
1509
|
</div>
|
|
@@ -1535,10 +1537,10 @@ The result may be nil.
|
|
|
1535
1537
|
<div class="method-source-code"
|
|
1536
1538
|
id="to-num-source">
|
|
1537
1539
|
<pre>
|
|
1538
|
-
<span class="ruby-comment cmt"># File lib/Query.rb, line
|
|
1539
|
-
|
|
1540
|
-
|
|
1541
|
-
|
|
1540
|
+
<span class="ruby-comment cmt"># File lib/Query.rb, line 180</span>
|
|
1541
|
+
180: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_num</span>
|
|
1542
|
+
181: <span class="ruby-ivar">@attr</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@attr</span>.<span class="ruby-identifier">to_num</span> <span class="ruby-operator">:</span> <span class="ruby-ivar">@numerical</span>
|
|
1543
|
+
182: <span class="ruby-keyword kw">end</span></pre>
|
|
1542
1544
|
</div>
|
|
1543
1545
|
|
|
1544
1546
|
</div>
|
|
@@ -1573,10 +1575,10 @@ result may be nil.
|
|
|
1573
1575
|
<div class="method-source-code"
|
|
1574
1576
|
id="to-rti-source">
|
|
1575
1577
|
<pre>
|
|
1576
|
-
<span class="ruby-comment cmt"># File lib/Query.rb, line
|
|
1577
|
-
|
|
1578
|
-
|
|
1579
|
-
|
|
1578
|
+
<span class="ruby-comment cmt"># File lib/Query.rb, line 191</span>
|
|
1579
|
+
191: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_rti</span>
|
|
1580
|
+
192: <span class="ruby-ivar">@attr</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@attr</span>.<span class="ruby-identifier">to_rti</span>(<span class="ruby-keyword kw">self</span>) <span class="ruby-operator">:</span> <span class="ruby-ivar">@rti</span>
|
|
1581
|
+
193: <span class="ruby-keyword kw">end</span></pre>
|
|
1580
1582
|
</div>
|
|
1581
1583
|
|
|
1582
1584
|
</div>
|
|
@@ -1610,10 +1612,10 @@ href="../String.html">String</a>. The result may be nil.
|
|
|
1610
1612
|
<div class="method-source-code"
|
|
1611
1613
|
id="to-s-source">
|
|
1612
1614
|
<pre>
|
|
1613
|
-
<span class="ruby-comment cmt"># File lib/Query.rb, line
|
|
1614
|
-
|
|
1615
|
-
|
|
1616
|
-
|
|
1615
|
+
<span class="ruby-comment cmt"># File lib/Query.rb, line 174</span>
|
|
1616
|
+
174: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_s</span>
|
|
1617
|
+
175: <span class="ruby-ivar">@attr</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@attr</span>.<span class="ruby-identifier">to_s</span>(<span class="ruby-keyword kw">self</span>) <span class="ruby-operator">:</span> (<span class="ruby-ivar">@rti</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@rti</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-operator">:</span> (<span class="ruby-ivar">@string</span> <span class="ruby-operator">||</span> <span class="ruby-value str">''</span>))
|
|
1618
|
+
176: <span class="ruby-keyword kw">end</span></pre>
|
|
1617
1619
|
</div>
|
|
1618
1620
|
|
|
1619
1621
|
</div>
|
|
@@ -1647,10 +1649,10 @@ result may be nil.
|
|
|
1647
1649
|
<div class="method-source-code"
|
|
1648
1650
|
id="to-sort-source">
|
|
1649
1651
|
<pre>
|
|
1650
|
-
<span class="ruby-comment cmt"># File lib/Query.rb, line
|
|
1651
|
-
|
|
1652
|
-
|
|
1653
|
-
|
|
1652
|
+
<span class="ruby-comment cmt"># File lib/Query.rb, line 186</span>
|
|
1653
|
+
186: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_sort</span>
|
|
1654
|
+
187: <span class="ruby-ivar">@attr</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@attr</span>.<span class="ruby-identifier">to_sort</span> <span class="ruby-operator">:</span> <span class="ruby-ivar">@sortable</span>
|
|
1655
|
+
188: <span class="ruby-keyword kw">end</span></pre>
|
|
1654
1656
|
</div>
|
|
1655
1657
|
|
|
1656
1658
|
</div>
|
|
@@ -1690,12 +1692,12 @@ result data.
|
|
|
1690
1692
|
<div class="method-source-code"
|
|
1691
1693
|
id="reset-source">
|
|
1692
1694
|
<pre>
|
|
1693
|
-
<span class="ruby-comment cmt"># File lib/Query.rb, line
|
|
1694
|
-
|
|
1695
|
-
|
|
1696
|
-
|
|
1697
|
-
|
|
1698
|
-
|
|
1695
|
+
<span class="ruby-comment cmt"># File lib/Query.rb, line 323</span>
|
|
1696
|
+
323: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">reset</span>
|
|
1697
|
+
324: <span class="ruby-ivar">@attr</span> = <span class="ruby-ivar">@numerical</span> = <span class="ruby-ivar">@sortable</span> = <span class="ruby-ivar">@string</span> = <span class="ruby-ivar">@rti</span> = <span class="ruby-keyword kw">nil</span>
|
|
1698
|
+
325: <span class="ruby-ivar">@ok</span> = <span class="ruby-keyword kw">true</span>
|
|
1699
|
+
326: <span class="ruby-ivar">@errorMessage</span> = <span class="ruby-keyword kw">nil</span>
|
|
1700
|
+
327: <span class="ruby-keyword kw">end</span></pre>
|
|
1699
1701
|
</div>
|
|
1700
1702
|
|
|
1701
1703
|
</div>
|
|
@@ -1726,22 +1728,22 @@ result data.
|
|
|
1726
1728
|
<div class="method-source-code"
|
|
1727
1729
|
id="resolve-roperty-d-source">
|
|
1728
1730
|
<pre>
|
|
1729
|
-
<span class="ruby-comment cmt"># File lib/Query.rb, line
|
|
1730
|
-
|
|
1731
|
-
|
|
1732
|
-
|
|
1733
|
-
|
|
1734
|
-
|
|
1735
|
-
|
|
1736
|
-
|
|
1737
|
-
|
|
1738
|
-
|
|
1739
|
-
|
|
1740
|
-
|
|
1741
|
-
|
|
1742
|
-
|
|
1743
|
-
|
|
1744
|
-
|
|
1731
|
+
<span class="ruby-comment cmt"># File lib/Query.rb, line 233</span>
|
|
1732
|
+
233: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">resolvePropertyId</span>(<span class="ruby-identifier">pType</span>, <span class="ruby-identifier">pId</span>)
|
|
1733
|
+
234: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@project</span>
|
|
1734
|
+
235: <span class="ruby-identifier">raise</span> <span class="ruby-value str">"Need Project reference to process the query"</span>
|
|
1735
|
+
236: <span class="ruby-keyword kw">end</span>
|
|
1736
|
+
237: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">pType</span>
|
|
1737
|
+
238: <span class="ruby-keyword kw">when</span> <span class="ruby-value">:Account</span>
|
|
1738
|
+
239: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">account</span>(<span class="ruby-identifier">pId</span>)
|
|
1739
|
+
240: <span class="ruby-keyword kw">when</span> <span class="ruby-value">:Task</span>
|
|
1740
|
+
241: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">task</span>(<span class="ruby-identifier">pId</span>)
|
|
1741
|
+
242: <span class="ruby-keyword kw">when</span><span class="ruby-value">:Resource</span>
|
|
1742
|
+
243: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">resource</span>(<span class="ruby-identifier">pId</span>)
|
|
1743
|
+
244: <span class="ruby-keyword kw">else</span>
|
|
1744
|
+
245: <span class="ruby-identifier">raise</span> <span class="ruby-node">"Unknown property type #{pType}"</span>
|
|
1745
|
+
246: <span class="ruby-keyword kw">end</span>
|
|
1746
|
+
247: <span class="ruby-keyword kw">end</span></pre>
|
|
1745
1747
|
</div>
|
|
1746
1748
|
|
|
1747
1749
|
</div>
|
|
@@ -1778,71 +1780,71 @@ the different units.
|
|
|
1778
1780
|
<div class="method-source-code"
|
|
1779
1781
|
id="scale-alue-source">
|
|
1780
1782
|
<pre>
|
|
1781
|
-
<span class="ruby-comment cmt"># File lib/Query.rb, line
|
|
1782
|
-
|
|
1783
|
-
|
|
1784
|
-
|
|
1785
|
-
|
|
1786
|
-
|
|
1787
|
-
|
|
1788
|
-
|
|
1789
|
-
|
|
1790
|
-
|
|
1791
|
-
|
|
1792
|
-
|
|
1793
|
-
|
|
1794
|
-
|
|
1795
|
-
|
|
1796
|
-
|
|
1797
|
-
|
|
1798
|
-
|
|
1799
|
-
|
|
1800
|
-
|
|
1801
|
-
|
|
1802
|
-
|
|
1803
|
-
|
|
1804
|
-
|
|
1805
|
-
|
|
1806
|
-
|
|
1783
|
+
<span class="ruby-comment cmt"># File lib/Query.rb, line 254</span>
|
|
1784
|
+
254: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">scaleValue</span>(<span class="ruby-identifier">value</span>, <span class="ruby-identifier">factors</span>)
|
|
1785
|
+
255: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@loadUnit</span> <span class="ruby-operator">==</span> <span class="ruby-value">:shortauto</span> <span class="ruby-operator">||</span> <span class="ruby-ivar">@loadUnit</span> <span class="ruby-operator">==</span> <span class="ruby-value">:longauto</span>
|
|
1786
|
+
256: <span class="ruby-comment cmt"># We try all possible units and store the resulting strings here.</span>
|
|
1787
|
+
257: <span class="ruby-identifier">options</span> = []
|
|
1788
|
+
258: <span class="ruby-comment cmt"># For each option we also save the delta between the String value and</span>
|
|
1789
|
+
259: <span class="ruby-comment cmt"># the original value.</span>
|
|
1790
|
+
260: <span class="ruby-identifier">delta</span> = []
|
|
1791
|
+
261: <span class="ruby-comment cmt"># For each of the units we can define a maximum value that the value</span>
|
|
1792
|
+
262: <span class="ruby-comment cmt"># should not exceed. nil means no limit.</span>
|
|
1793
|
+
263: <span class="ruby-identifier">max</span> = [ <span class="ruby-value">60</span>, <span class="ruby-value">48</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-value">8</span>, <span class="ruby-value">24</span>, <span class="ruby-keyword kw">nil</span> ]
|
|
1794
|
+
264:
|
|
1795
|
+
265: <span class="ruby-identifier">i</span> = <span class="ruby-value">0</span>
|
|
1796
|
+
266: <span class="ruby-identifier">factors</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">factor</span><span class="ruby-operator">|</span>
|
|
1797
|
+
267: <span class="ruby-identifier">scaledValue</span> = <span class="ruby-identifier">value</span> * <span class="ruby-identifier">factor</span>
|
|
1798
|
+
268: <span class="ruby-identifier">str</span> = <span class="ruby-ivar">@numberFormat</span>.<span class="ruby-identifier">format</span>(<span class="ruby-identifier">scaledValue</span>)
|
|
1799
|
+
269: <span class="ruby-identifier">delta</span>[<span class="ruby-identifier">i</span>] = ((<span class="ruby-identifier">scaledValue</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">str</span>.<span class="ruby-identifier">to_f</span>).<span class="ruby-identifier">abs</span> * <span class="ruby-value">1000</span>).<span class="ruby-identifier">to_i</span>
|
|
1800
|
+
270: <span class="ruby-comment cmt"># We ignore results that are 0 or exceed the maximum. To ensure that</span>
|
|
1801
|
+
271: <span class="ruby-comment cmt"># we have at least one result the unscaled value is always taken.</span>
|
|
1802
|
+
272: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">factor</span> <span class="ruby-operator">!=</span> <span class="ruby-value">1.0</span> <span class="ruby-operator">&&</span> <span class="ruby-regexp re">/^[0.]*$/</span> <span class="ruby-operator">=~</span> <span class="ruby-identifier">str</span>) <span class="ruby-operator">||</span>
|
|
1803
|
+
273: (<span class="ruby-identifier">max</span>[<span class="ruby-identifier">i</span>] <span class="ruby-operator">&&</span> <span class="ruby-identifier">scaledValue</span> <span class="ruby-operator">></span> <span class="ruby-identifier">max</span>[<span class="ruby-identifier">i</span>])
|
|
1804
|
+
274: <span class="ruby-identifier">options</span> <span class="ruby-operator"><<</span> <span class="ruby-keyword kw">nil</span>
|
|
1805
|
+
275: <span class="ruby-keyword kw">else</span>
|
|
1806
|
+
276: <span class="ruby-identifier">options</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">str</span>
|
|
1807
|
+
277: <span class="ruby-keyword kw">end</span>
|
|
1808
|
+
278: <span class="ruby-identifier">i</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
|
|
1809
|
+
279: <span class="ruby-keyword kw">end</span>
|
|
1810
|
+
280:
|
|
1811
|
+
281: <span class="ruby-comment cmt"># Find the value that is the closest to the original value. This will be</span>
|
|
1812
|
+
282: <span class="ruby-comment cmt"># the default if all values have the same length.</span>
|
|
1813
|
+
283: <span class="ruby-identifier">shortest</span> = <span class="ruby-value">2</span>
|
|
1814
|
+
284: <span class="ruby-identifier">delta</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">j</span><span class="ruby-operator">|</span>
|
|
1815
|
+
285: <span class="ruby-identifier">shortest</span> = <span class="ruby-identifier">j</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">j</span>] <span class="ruby-operator">&&</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">j</span>][<span class="ruby-value">0</span>, <span class="ruby-value">2</span>] <span class="ruby-operator">!=</span> <span class="ruby-value str">'0.'</span> <span class="ruby-operator">&&</span>
|
|
1816
|
+
286: <span class="ruby-identifier">delta</span>[<span class="ruby-identifier">j</span>] <span class="ruby-operator"><=</span> <span class="ruby-identifier">delta</span>[<span class="ruby-identifier">shortest</span>]
|
|
1807
1817
|
287: <span class="ruby-keyword kw">end</span>
|
|
1808
1818
|
288:
|
|
1809
|
-
289: <span class="ruby-comment cmt"># Find the
|
|
1810
|
-
290: <span class="ruby-
|
|
1811
|
-
291:
|
|
1812
|
-
292:
|
|
1813
|
-
293:
|
|
1814
|
-
294:
|
|
1815
|
-
295: <span class="ruby-
|
|
1816
|
-
296:
|
|
1817
|
-
297:
|
|
1818
|
-
298:
|
|
1819
|
-
299: <span class="ruby-
|
|
1820
|
-
300:
|
|
1821
|
-
301:
|
|
1822
|
-
302:
|
|
1823
|
-
303:
|
|
1824
|
-
304:
|
|
1825
|
-
305: <span class="ruby-
|
|
1826
|
-
306: <span class="ruby-
|
|
1827
|
-
307:
|
|
1828
|
-
308: <span class="ruby-identifier">
|
|
1829
|
-
309:
|
|
1830
|
-
310:
|
|
1831
|
-
311:
|
|
1832
|
-
312:
|
|
1833
|
-
313:
|
|
1834
|
-
314:
|
|
1835
|
-
315:
|
|
1836
|
-
316:
|
|
1837
|
-
317:
|
|
1838
|
-
318: <span class="ruby-keyword kw">else</span>
|
|
1839
|
-
319: <span class="ruby-comment cmt"># For fixed units we just need to do the conversion. No unit is</span>
|
|
1840
|
-
320: <span class="ruby-comment cmt"># included.</span>
|
|
1841
|
-
321: <span class="ruby-identifier">units</span> = [ <span class="ruby-value">:minutes</span>, <span class="ruby-value">:hours</span>, <span class="ruby-value">:days</span>, <span class="ruby-value">:weeks</span>, <span class="ruby-value">:months</span>, <span class="ruby-value">:years</span> ]
|
|
1842
|
-
322: <span class="ruby-identifier">str</span> = <span class="ruby-ivar">@numberFormat</span>.<span class="ruby-identifier">format</span>(<span class="ruby-identifier">value</span> * <span class="ruby-identifier">factors</span>[<span class="ruby-identifier">units</span>.<span class="ruby-identifier">index</span>(<span class="ruby-ivar">@loadUnit</span>)])
|
|
1843
|
-
323: <span class="ruby-keyword kw">end</span>
|
|
1844
|
-
324: <span class="ruby-identifier">str</span>
|
|
1845
|
-
325: <span class="ruby-keyword kw">end</span></pre>
|
|
1819
|
+
289: <span class="ruby-comment cmt"># Find the shortest option.</span>
|
|
1820
|
+
290: <span class="ruby-value">6</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">j</span><span class="ruby-operator">|</span>
|
|
1821
|
+
291: <span class="ruby-identifier">shortest</span> = <span class="ruby-identifier">j</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">j</span>] <span class="ruby-operator">&&</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">j</span>][<span class="ruby-value">0</span>, <span class="ruby-value">2</span>] <span class="ruby-operator">!=</span> <span class="ruby-value str">'0.'</span> <span class="ruby-operator">&&</span>
|
|
1822
|
+
292: <span class="ruby-identifier">options</span>[<span class="ruby-identifier">j</span>].<span class="ruby-identifier">length</span> <span class="ruby-operator"><</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">shortest</span>].<span class="ruby-identifier">length</span>
|
|
1823
|
+
293: <span class="ruby-keyword kw">end</span>
|
|
1824
|
+
294:
|
|
1825
|
+
295: <span class="ruby-identifier">str</span> = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">shortest</span>]
|
|
1826
|
+
296: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@loadUnit</span> <span class="ruby-operator">==</span> <span class="ruby-value">:longauto</span>
|
|
1827
|
+
297: <span class="ruby-comment cmt"># For the long units we handle singular and plural properly. For</span>
|
|
1828
|
+
298: <span class="ruby-comment cmt"># English we just need to append an 's', but this code will work for</span>
|
|
1829
|
+
299: <span class="ruby-comment cmt"># other languages as well.</span>
|
|
1830
|
+
300: <span class="ruby-identifier">units</span> = []
|
|
1831
|
+
301: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">str</span> <span class="ruby-operator">==</span> <span class="ruby-value str">"1"</span>
|
|
1832
|
+
302: <span class="ruby-identifier">units</span> = <span class="ruby-node">%( minute hour day week month year )</span>
|
|
1833
|
+
303: <span class="ruby-keyword kw">else</span>
|
|
1834
|
+
304: <span class="ruby-identifier">units</span> = <span class="ruby-node">%( minutes hours days weeks months years )</span>
|
|
1835
|
+
305: <span class="ruby-keyword kw">end</span>
|
|
1836
|
+
306: <span class="ruby-identifier">str</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">' '</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">units</span>[<span class="ruby-identifier">shortest</span>]
|
|
1837
|
+
307: <span class="ruby-keyword kw">else</span>
|
|
1838
|
+
308: <span class="ruby-identifier">str</span> <span class="ruby-operator">+=</span> <span class="ruby-node">%( min h d w m y )</span>[<span class="ruby-identifier">shortest</span>]
|
|
1839
|
+
309: <span class="ruby-keyword kw">end</span>
|
|
1840
|
+
310: <span class="ruby-keyword kw">else</span>
|
|
1841
|
+
311: <span class="ruby-comment cmt"># For fixed units we just need to do the conversion. No unit is</span>
|
|
1842
|
+
312: <span class="ruby-comment cmt"># included.</span>
|
|
1843
|
+
313: <span class="ruby-identifier">units</span> = [ <span class="ruby-value">:minutes</span>, <span class="ruby-value">:hours</span>, <span class="ruby-value">:days</span>, <span class="ruby-value">:weeks</span>, <span class="ruby-value">:months</span>, <span class="ruby-value">:years</span> ]
|
|
1844
|
+
314: <span class="ruby-identifier">str</span> = <span class="ruby-ivar">@numberFormat</span>.<span class="ruby-identifier">format</span>(<span class="ruby-identifier">value</span> * <span class="ruby-identifier">factors</span>[<span class="ruby-identifier">units</span>.<span class="ruby-identifier">index</span>(<span class="ruby-ivar">@loadUnit</span>)])
|
|
1845
|
+
315: <span class="ruby-keyword kw">end</span>
|
|
1846
|
+
316: <span class="ruby-identifier">str</span>
|
|
1847
|
+
317: <span class="ruby-keyword kw">end</span></pre>
|
|
1846
1848
|
</div>
|
|
1847
1849
|
|
|
1848
1850
|
</div>
|