taskjuggler 0.0.7 → 0.0.8
Sign up to get free protection for your applications and to get access to all the features.
- 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
@@ -153,12 +153,18 @@
|
|
153
153
|
|
154
154
|
<li><a href="../TaskJuggler/ChargeSetListAttribute.html">TaskJuggler::ChargeSetListAttribute</a></li>
|
155
155
|
|
156
|
+
<li><a href="../TaskJuggler/CollisionDetector.html">TaskJuggler::CollisionDetector</a></li>
|
157
|
+
|
156
158
|
<li><a href="../TaskJuggler/ColumnListAttribute.html">TaskJuggler::ColumnListAttribute</a></li>
|
157
159
|
|
158
160
|
<li><a href="../TaskJuggler/ColumnTable.html">TaskJuggler::ColumnTable</a></li>
|
159
161
|
|
160
162
|
<li><a href="../TaskJuggler/Daemon.html">TaskJuggler::Daemon</a></li>
|
161
163
|
|
164
|
+
<li><a href="../TaskJuggler/DataCache.html">TaskJuggler::DataCache</a></li>
|
165
|
+
|
166
|
+
<li><a href="../TaskJuggler/DataCacheEntry.html">TaskJuggler::DataCacheEntry</a></li>
|
167
|
+
|
162
168
|
<li><a href="../TaskJuggler/DateAttribute.html">TaskJuggler::DateAttribute</a></li>
|
163
169
|
|
164
170
|
<li><a href="../TaskJuggler/DefinitionListAttribute.html">TaskJuggler::DefinitionListAttribute</a></li>
|
@@ -265,7 +271,7 @@
|
|
265
271
|
|
266
272
|
<li><a href="../TaskJuggler/NodeListAttribute.html">TaskJuggler::NodeListAttribute</a></li>
|
267
273
|
|
268
|
-
<li><a href="../TaskJuggler/
|
274
|
+
<li><a href="../TaskJuggler/PlaceHolderCell.html">TaskJuggler::PlaceHolderCell</a></li>
|
269
275
|
|
270
276
|
<li><a href="../TaskJuggler/ProcessIntercom.html">TaskJuggler::ProcessIntercom</a></li>
|
271
277
|
|
@@ -445,6 +451,10 @@
|
|
445
451
|
|
446
452
|
<li><a href="../TaskJuggler/TextParser/StackElement.html">TaskJuggler::TextParser::StackElement</a></li>
|
447
453
|
|
454
|
+
<li><a href="../TaskJuggler/TextParser/State.html">TaskJuggler::TextParser::State</a></li>
|
455
|
+
|
456
|
+
<li><a href="../TaskJuggler/TextParser/StateTransition.html">TaskJuggler::TextParser::StateTransition</a></li>
|
457
|
+
|
448
458
|
<li><a href="../TaskJuggler/TextParser/TextParserResultArray.html">TaskJuggler::TextParser::TextParserResultArray</a></li>
|
449
459
|
|
450
460
|
<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>
|
data/doc/TaskJuggler/Daemon.html
CHANGED
@@ -153,12 +153,18 @@
|
|
153
153
|
|
154
154
|
<li><a href="../TaskJuggler/ChargeSetListAttribute.html">TaskJuggler::ChargeSetListAttribute</a></li>
|
155
155
|
|
156
|
+
<li><a href="../TaskJuggler/CollisionDetector.html">TaskJuggler::CollisionDetector</a></li>
|
157
|
+
|
156
158
|
<li><a href="../TaskJuggler/ColumnListAttribute.html">TaskJuggler::ColumnListAttribute</a></li>
|
157
159
|
|
158
160
|
<li><a href="../TaskJuggler/ColumnTable.html">TaskJuggler::ColumnTable</a></li>
|
159
161
|
|
160
162
|
<li><a href="../TaskJuggler/Daemon.html">TaskJuggler::Daemon</a></li>
|
161
163
|
|
164
|
+
<li><a href="../TaskJuggler/DataCache.html">TaskJuggler::DataCache</a></li>
|
165
|
+
|
166
|
+
<li><a href="../TaskJuggler/DataCacheEntry.html">TaskJuggler::DataCacheEntry</a></li>
|
167
|
+
|
162
168
|
<li><a href="../TaskJuggler/DateAttribute.html">TaskJuggler::DateAttribute</a></li>
|
163
169
|
|
164
170
|
<li><a href="../TaskJuggler/DefinitionListAttribute.html">TaskJuggler::DefinitionListAttribute</a></li>
|
@@ -265,7 +271,7 @@
|
|
265
271
|
|
266
272
|
<li><a href="../TaskJuggler/NodeListAttribute.html">TaskJuggler::NodeListAttribute</a></li>
|
267
273
|
|
268
|
-
<li><a href="../TaskJuggler/
|
274
|
+
<li><a href="../TaskJuggler/PlaceHolderCell.html">TaskJuggler::PlaceHolderCell</a></li>
|
269
275
|
|
270
276
|
<li><a href="../TaskJuggler/ProcessIntercom.html">TaskJuggler::ProcessIntercom</a></li>
|
271
277
|
|
@@ -445,6 +451,10 @@
|
|
445
451
|
|
446
452
|
<li><a href="../TaskJuggler/TextParser/StackElement.html">TaskJuggler::TextParser::StackElement</a></li>
|
447
453
|
|
454
|
+
<li><a href="../TaskJuggler/TextParser/State.html">TaskJuggler::TextParser::State</a></li>
|
455
|
+
|
456
|
+
<li><a href="../TaskJuggler/TextParser/StateTransition.html">TaskJuggler::TextParser::StateTransition</a></li>
|
457
|
+
|
448
458
|
<li><a href="../TaskJuggler/TextParser/TextParserResultArray.html">TaskJuggler::TextParser::TextParserResultArray</a></li>
|
449
459
|
|
450
460
|
<li><a href="../TaskJuggler/TextParser/TokenDoc.html">TaskJuggler::TextParser::TokenDoc</a></li>
|
@@ -5,7 +5,7 @@
|
|
5
5
|
<head>
|
6
6
|
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
|
7
7
|
|
8
|
-
<title>Class: TaskJuggler::
|
8
|
+
<title>Class: TaskJuggler::DataCache</title>
|
9
9
|
|
10
10
|
<link rel="stylesheet" href="../rdoc.css" type="text/css" media="screen" />
|
11
11
|
|
@@ -38,8 +38,8 @@
|
|
38
38
|
<div class="section-body">
|
39
39
|
<ul>
|
40
40
|
|
41
|
-
<li><a href="../lib/
|
42
|
-
class="thickbox" title="lib/
|
41
|
+
<li><a href="../lib/DataCache_rb.html?TB_iframe=true&height=550&width=785"
|
42
|
+
class="thickbox" title="lib/DataCache.rb">lib/DataCache.rb</a></li>
|
43
43
|
|
44
44
|
</ul>
|
45
45
|
</div>
|
@@ -71,15 +71,15 @@
|
|
71
71
|
|
72
72
|
<li><a href="#method-c-new">::new</a></li>
|
73
73
|
|
74
|
-
<li><a href="#method-i-
|
74
|
+
<li><a href="#method-i-flush">#flush</a></li>
|
75
75
|
|
76
|
-
<li><a href="#method-i-
|
76
|
+
<li><a href="#method-i-load">#load</a></li>
|
77
77
|
|
78
|
-
<li><a href="#method-i-
|
78
|
+
<li><a href="#method-i-resize">#resize</a></li>
|
79
79
|
|
80
|
-
<li><a href="#method-i-
|
80
|
+
<li><a href="#method-i-store">#store</a></li>
|
81
81
|
|
82
|
-
<li><a href="#method-i-
|
82
|
+
<li><a href="#method-i-to_s">#to_s</a></li>
|
83
83
|
|
84
84
|
</ul>
|
85
85
|
</div>
|
@@ -87,6 +87,17 @@
|
|
87
87
|
|
88
88
|
<!-- Included Modules -->
|
89
89
|
|
90
|
+
<div id="includes-section" class="section">
|
91
|
+
<h3 class="section-header">Included Modules</h3>
|
92
|
+
<ul class="link-list">
|
93
|
+
|
94
|
+
|
95
|
+
<li><span class="include">Singleton</span></li>
|
96
|
+
|
97
|
+
|
98
|
+
</ul>
|
99
|
+
</div>
|
100
|
+
|
90
101
|
</div>
|
91
102
|
|
92
103
|
<div id="project-metadata">
|
@@ -159,12 +170,18 @@
|
|
159
170
|
|
160
171
|
<li><a href="../TaskJuggler/ChargeSetListAttribute.html">TaskJuggler::ChargeSetListAttribute</a></li>
|
161
172
|
|
173
|
+
<li><a href="../TaskJuggler/CollisionDetector.html">TaskJuggler::CollisionDetector</a></li>
|
174
|
+
|
162
175
|
<li><a href="../TaskJuggler/ColumnListAttribute.html">TaskJuggler::ColumnListAttribute</a></li>
|
163
176
|
|
164
177
|
<li><a href="../TaskJuggler/ColumnTable.html">TaskJuggler::ColumnTable</a></li>
|
165
178
|
|
166
179
|
<li><a href="../TaskJuggler/Daemon.html">TaskJuggler::Daemon</a></li>
|
167
180
|
|
181
|
+
<li><a href="../TaskJuggler/DataCache.html">TaskJuggler::DataCache</a></li>
|
182
|
+
|
183
|
+
<li><a href="../TaskJuggler/DataCacheEntry.html">TaskJuggler::DataCacheEntry</a></li>
|
184
|
+
|
168
185
|
<li><a href="../TaskJuggler/DateAttribute.html">TaskJuggler::DateAttribute</a></li>
|
169
186
|
|
170
187
|
<li><a href="../TaskJuggler/DefinitionListAttribute.html">TaskJuggler::DefinitionListAttribute</a></li>
|
@@ -271,7 +288,7 @@
|
|
271
288
|
|
272
289
|
<li><a href="../TaskJuggler/NodeListAttribute.html">TaskJuggler::NodeListAttribute</a></li>
|
273
290
|
|
274
|
-
<li><a href="../TaskJuggler/
|
291
|
+
<li><a href="../TaskJuggler/PlaceHolderCell.html">TaskJuggler::PlaceHolderCell</a></li>
|
275
292
|
|
276
293
|
<li><a href="../TaskJuggler/ProcessIntercom.html">TaskJuggler::ProcessIntercom</a></li>
|
277
294
|
|
@@ -451,6 +468,10 @@
|
|
451
468
|
|
452
469
|
<li><a href="../TaskJuggler/TextParser/StackElement.html">TaskJuggler::TextParser::StackElement</a></li>
|
453
470
|
|
471
|
+
<li><a href="../TaskJuggler/TextParser/State.html">TaskJuggler::TextParser::State</a></li>
|
472
|
+
|
473
|
+
<li><a href="../TaskJuggler/TextParser/StateTransition.html">TaskJuggler::TextParser::StateTransition</a></li>
|
474
|
+
|
454
475
|
<li><a href="../TaskJuggler/TextParser/TextParserResultArray.html">TaskJuggler::TextParser::TextParserResultArray</a></li>
|
455
476
|
|
456
477
|
<li><a href="../TaskJuggler/TextParser/TokenDoc.html">TaskJuggler::TextParser::TokenDoc</a></li>
|
@@ -554,18 +575,16 @@
|
|
554
575
|
</div>
|
555
576
|
|
556
577
|
<div id="documentation">
|
557
|
-
<h1 class="class">TaskJuggler::
|
578
|
+
<h1 class="class">TaskJuggler::DataCache</h1>
|
558
579
|
|
559
580
|
<div id="description">
|
560
581
|
<p>
|
561
|
-
This
|
562
|
-
|
563
|
-
|
564
|
-
|
565
|
-
|
566
|
-
|
567
|
-
so that <a href="WorkingHours.html">WorkingHours</a> objects with identical
|
568
|
-
working hours can share the cache.
|
582
|
+
This class provides a global data cache that can be used to store and
|
583
|
+
retrieve values indexed by a key. The cache is size limited. When maximum
|
584
|
+
capacity is reached, a certain percentage of the least requested values is
|
585
|
+
dropped from the cache. The primary purpose of this global cache is to
|
586
|
+
store values that are expensive to compute but may be need on several
|
587
|
+
occasions during the program execution.
|
569
588
|
</p>
|
570
589
|
|
571
590
|
</div>
|
@@ -595,28 +614,24 @@ working hours can share the cache.
|
|
595
614
|
|
596
615
|
<div class="method-description">
|
597
616
|
|
598
|
-
|
599
|
-
Create the <a href="OnShiftCache.html">OnShiftCache</a> object. There
|
600
|
-
should be only one for the application.
|
601
|
-
</p>
|
617
|
+
|
602
618
|
|
603
619
|
|
604
620
|
|
605
621
|
<div class="method-source-code"
|
606
622
|
id="new-source">
|
607
623
|
<pre>
|
608
|
-
<span class="ruby-comment cmt"># File lib/
|
609
|
-
|
610
|
-
|
611
|
-
|
612
|
-
|
613
|
-
|
614
|
-
|
615
|
-
|
616
|
-
|
617
|
-
|
618
|
-
|
619
|
-
38: <span class="ruby-keyword kw">end</span></pre>
|
624
|
+
<span class="ruby-comment cmt"># File lib/DataCache.rb, line 53</span>
|
625
|
+
53: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>
|
626
|
+
54: <span class="ruby-identifier">resize</span>
|
627
|
+
55: <span class="ruby-identifier">flush</span>
|
628
|
+
56: <span class="ruby-comment cmt"># Counter for the number of writes to the cache.</span>
|
629
|
+
57: <span class="ruby-ivar">@stores</span> = <span class="ruby-value">0</span>
|
630
|
+
58: <span class="ruby-comment cmt"># Counter for the number of found values.</span>
|
631
|
+
59: <span class="ruby-ivar">@hits</span> = <span class="ruby-value">0</span>
|
632
|
+
60: <span class="ruby-comment cmt"># Counter for the number of not found values.</span>
|
633
|
+
61: <span class="ruby-ivar">@misses</span> = <span class="ruby-value">0</span>
|
634
|
+
62: <span class="ruby-keyword kw">end</span></pre>
|
620
635
|
</div>
|
621
636
|
|
622
637
|
</div>
|
@@ -633,13 +648,13 @@ should be only one for the application.
|
|
633
648
|
<h3 class="section-header">Public Instance Methods</h3>
|
634
649
|
|
635
650
|
|
636
|
-
<div id="
|
637
|
-
<a name="method-i-
|
651
|
+
<div id="flush-method" class="method-detail ">
|
652
|
+
<a name="method-i-flush"></a>
|
638
653
|
|
639
654
|
<div class="method-heading">
|
640
655
|
|
641
|
-
<span class="method-name">
|
642
|
-
class="method-args">(
|
656
|
+
<span class="method-name">flush</span><span
|
657
|
+
class="method-args">()</span>
|
643
658
|
<span class="method-click-advice">click to toggle source</span>
|
644
659
|
|
645
660
|
</div>
|
@@ -647,18 +662,19 @@ should be only one for the application.
|
|
647
662
|
<div class="method-description">
|
648
663
|
|
649
664
|
<p>
|
650
|
-
|
665
|
+
Completely flush the cache. The statistic counters will remain intact, but
|
666
|
+
all data values are lost.
|
651
667
|
</p>
|
652
668
|
|
653
669
|
|
654
670
|
|
655
671
|
<div class="method-source-code"
|
656
|
-
id="
|
672
|
+
id="flush-source">
|
657
673
|
<pre>
|
658
|
-
<span class="ruby-comment cmt"># File lib/
|
659
|
-
|
660
|
-
|
661
|
-
|
674
|
+
<span class="ruby-comment cmt"># File lib/DataCache.rb, line 75</span>
|
675
|
+
75: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">flush</span>
|
676
|
+
76: <span class="ruby-ivar">@entries</span> = {}
|
677
|
+
77: <span class="ruby-keyword kw">end</span></pre>
|
662
678
|
</div>
|
663
679
|
|
664
680
|
</div>
|
@@ -669,13 +685,13 @@ Get the value for a given <tt>cache</tt> and <tt>date</tt>.
|
|
669
685
|
</div>
|
670
686
|
|
671
687
|
|
672
|
-
<div id="
|
673
|
-
<a name="method-i-
|
688
|
+
<div id="load-method" class="method-detail ">
|
689
|
+
<a name="method-i-load"></a>
|
674
690
|
|
675
691
|
<div class="method-heading">
|
676
692
|
|
677
|
-
<span class="method-name">
|
678
|
-
class="method-args">(
|
693
|
+
<span class="method-name">load</span><span
|
694
|
+
class="method-args">(key)</span>
|
679
695
|
<span class="method-click-advice">click to toggle source</span>
|
680
696
|
|
681
697
|
</div>
|
@@ -683,34 +699,25 @@ Get the value for a given <tt>cache</tt> and <tt>date</tt>.
|
|
683
699
|
<div class="method-description">
|
684
700
|
|
685
701
|
<p>
|
686
|
-
|
687
|
-
|
688
|
-
set of working hours. The <a href="WorkingHours.html">WorkingHours</a>
|
689
|
-
object may not change its working hours after this call. The returned cache
|
690
|
-
reference is used as a handle for subsequent OnShiftCache::set and
|
691
|
-
OnShiftCache::get calls.
|
702
|
+
Retrieve the value indexed by <em>key</em> from the cache. If it’s
|
703
|
+
not found, nil is returned.
|
692
704
|
</p>
|
693
705
|
|
694
706
|
|
695
707
|
|
696
708
|
<div class="method-source-code"
|
697
|
-
id="
|
709
|
+
id="load-source">
|
698
710
|
<pre>
|
699
|
-
|
700
|
-
|
701
|
-
|
702
|
-
|
703
|
-
|
704
|
-
|
705
|
-
|
706
|
-
|
707
|
-
|
708
|
-
|
709
|
-
54: <span class="ruby-comment cmt"># If this is a new set of WorkingHours we create a new cache for it.</span>
|
710
|
-
55: <span class="ruby-ivar">@workingHoursTable</span> <span class="ruby-operator"><<</span> <span class="ruby-constant">WorkingHours</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">wh</span>)
|
711
|
-
56: <span class="ruby-ivar">@caches</span> <span class="ruby-operator"><<</span> []
|
712
|
-
57: <span class="ruby-ivar">@caches</span>.<span class="ruby-identifier">last</span>
|
713
|
-
58: <span class="ruby-keyword kw">end</span></pre>
|
711
|
+
<span class="ruby-comment cmt"># File lib/DataCache.rb, line 103</span>
|
712
|
+
103: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">load</span>(<span class="ruby-identifier">key</span>)
|
713
|
+
104: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">e</span> = <span class="ruby-ivar">@entries</span>[<span class="ruby-identifier">key</span>])
|
714
|
+
105: <span class="ruby-ivar">@hits</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
|
715
|
+
106: <span class="ruby-identifier">e</span>.<span class="ruby-identifier">value</span>
|
716
|
+
107: <span class="ruby-keyword kw">else</span>
|
717
|
+
108: <span class="ruby-ivar">@misses</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
|
718
|
+
109: <span class="ruby-keyword kw">nil</span>
|
719
|
+
110: <span class="ruby-keyword kw">end</span>
|
720
|
+
111: <span class="ruby-keyword kw">end</span></pre>
|
714
721
|
</div>
|
715
722
|
|
716
723
|
</div>
|
@@ -721,13 +728,13 @@ OnShiftCache::get calls.
|
|
721
728
|
</div>
|
722
729
|
|
723
730
|
|
724
|
-
<div id="
|
725
|
-
<a name="method-i-
|
731
|
+
<div id="resize-method" class="method-detail ">
|
732
|
+
<a name="method-i-resize"></a>
|
726
733
|
|
727
734
|
<div class="method-heading">
|
728
735
|
|
729
|
-
<span class="method-name">
|
730
|
-
class="method-args">(
|
736
|
+
<span class="method-name">resize</span><span
|
737
|
+
class="method-args">(size = 100000)</span>
|
731
738
|
<span class="method-click-advice">click to toggle source</span>
|
732
739
|
|
733
740
|
</div>
|
@@ -735,18 +742,22 @@ OnShiftCache::get calls.
|
|
735
742
|
<div class="method-description">
|
736
743
|
|
737
744
|
<p>
|
738
|
-
|
745
|
+
For now, we use this randomly determined size.
|
739
746
|
</p>
|
740
747
|
|
741
748
|
|
742
749
|
|
743
750
|
<div class="method-source-code"
|
744
|
-
id="
|
751
|
+
id="resize-source">
|
745
752
|
<pre>
|
746
|
-
<span class="ruby-comment cmt"># File lib/
|
747
|
-
|
748
|
-
|
749
|
-
|
753
|
+
<span class="ruby-comment cmt"># File lib/DataCache.rb, line 65</span>
|
754
|
+
65: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">resize</span>(<span class="ruby-identifier">size</span> = <span class="ruby-value">100000</span>)
|
755
|
+
66: <span class="ruby-ivar">@highWaterMark</span> = <span class="ruby-identifier">size</span>
|
756
|
+
67: <span class="ruby-comment cmt"># Flushing out the least used entries is fairly expensive. So we only</span>
|
757
|
+
68: <span class="ruby-comment cmt"># want to do this once in a while. The lowWaterMark determines how much</span>
|
758
|
+
69: <span class="ruby-comment cmt"># of the entries will survive the flush.</span>
|
759
|
+
70: <span class="ruby-ivar">@lowWaterMark</span> = <span class="ruby-identifier">size</span> * <span class="ruby-value">0.9</span>
|
760
|
+
71: <span class="ruby-keyword kw">end</span></pre>
|
750
761
|
</div>
|
751
762
|
|
752
763
|
</div>
|
@@ -757,19 +768,13 @@ Set the <tt>value</tt> for a given <tt>cache</tt> and <tt>date</tt>.
|
|
757
768
|
</div>
|
758
769
|
|
759
770
|
|
760
|
-
|
761
|
-
|
762
|
-
<div id="private-instance-method-details" class="method-section section">
|
763
|
-
<h3 class="section-header">Private Instance Methods</h3>
|
764
|
-
|
765
|
-
|
766
|
-
<div id="date-o-ndex-method" class="method-detail ">
|
767
|
-
<a name="method-i-dateToIndex"></a>
|
771
|
+
<div id="store-method" class="method-detail ">
|
772
|
+
<a name="method-i-store"></a>
|
768
773
|
|
769
774
|
<div class="method-heading">
|
770
775
|
|
771
|
-
<span class="method-name">
|
772
|
-
class="method-args">(
|
776
|
+
<span class="method-name">store</span><span
|
777
|
+
class="method-args">(value, key)</span>
|
773
778
|
<span class="method-click-advice">click to toggle source</span>
|
774
779
|
|
775
780
|
</div>
|
@@ -777,49 +782,35 @@ Set the <tt>value</tt> for a given <tt>cache</tt> and <tt>date</tt>.
|
|
777
782
|
<div class="method-description">
|
778
783
|
|
779
784
|
<p>
|
780
|
-
|
781
|
-
|
782
|
-
|
783
|
-
have to correct these guessed values, we have to clear the caches.
|
785
|
+
Store <em>value</em> into the cache using <em>key</em> to tag it.
|
786
|
+
<em>key</em> must be unique and must be used to load the value from the
|
787
|
+
cache again. You cannot store nil values!
|
784
788
|
</p>
|
785
789
|
|
786
790
|
|
787
791
|
|
788
792
|
<div class="method-source-code"
|
789
|
-
id="
|
793
|
+
id="store-source">
|
790
794
|
<pre>
|
791
|
-
|
792
|
-
|
793
|
-
|
794
|
-
|
795
|
-
|
796
|
-
|
797
|
-
|
798
|
-
|
799
|
-
|
800
|
-
|
801
|
-
|
802
|
-
|
803
|
-
|
804
|
-
|
805
|
-
|
806
|
-
|
807
|
-
|
808
|
-
|
809
|
-
|
810
|
-
100: <span class="ruby-keyword kw">when</span> <span class="ruby-value">15</span>
|
811
|
-
101: <span class="ruby-ivar">@minDateDelta</span> = <span class="ruby-value">10</span>
|
812
|
-
102: <span class="ruby-keyword kw">when</span> <span class="ruby-value">10</span>
|
813
|
-
103: <span class="ruby-ivar">@minDateDelta</span> = <span class="ruby-value">5</span>
|
814
|
-
104: <span class="ruby-keyword kw">else</span>
|
815
|
-
105: <span class="ruby-identifier">raise</span> <span class="ruby-value str">"Illegal timing resolution!"</span>
|
816
|
-
106: <span class="ruby-keyword kw">end</span>
|
817
|
-
107: <span class="ruby-ivar">@minDateDelta</span> <span class="ruby-operator">*=</span> <span class="ruby-value">60</span>
|
818
|
-
108: <span class="ruby-identifier">div</span> = <span class="ruby-identifier">startDate</span> <span class="ruby-operator">/</span> <span class="ruby-ivar">@minDateDelta</span>
|
819
|
-
109: <span class="ruby-keyword kw">end</span>
|
820
|
-
110:
|
821
|
-
111: <span class="ruby-identifier">div</span>
|
822
|
-
112: <span class="ruby-keyword kw">end</span></pre>
|
795
|
+
<span class="ruby-comment cmt"># File lib/DataCache.rb, line 82</span>
|
796
|
+
82: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">store</span>(<span class="ruby-identifier">value</span>, <span class="ruby-identifier">key</span>)
|
797
|
+
83: <span class="ruby-ivar">@stores</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
|
798
|
+
84:
|
799
|
+
85: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@entries</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">></span> <span class="ruby-ivar">@highWaterMark</span>
|
800
|
+
86: <span class="ruby-keyword kw">while</span> <span class="ruby-ivar">@entries</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">></span> <span class="ruby-ivar">@lowWaterMark</span>
|
801
|
+
87: <span class="ruby-comment cmt"># How many entries do we need to delete to get to the low watermark?</span>
|
802
|
+
88: <span class="ruby-identifier">toDelete</span> = <span class="ruby-ivar">@entries</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">-</span> <span class="ruby-ivar">@lowWaterMark</span>
|
803
|
+
89: <span class="ruby-ivar">@entries</span>.<span class="ruby-identifier">delete_if</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">foo</span>, <span class="ruby-identifier">e</span><span class="ruby-operator">|</span>
|
804
|
+
90: <span class="ruby-comment cmt"># Hit counts age with every cleanup.</span>
|
805
|
+
91: (<span class="ruby-identifier">e</span>.<span class="ruby-identifier">hits</span> <span class="ruby-operator">-=</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">toDelete</span> <span class="ruby-operator">-=</span> <span class="ruby-value">1</span>) <span class="ruby-operator">>=</span> <span class="ruby-value">0</span>
|
806
|
+
92: <span class="ruby-keyword kw">end</span>
|
807
|
+
93: <span class="ruby-keyword kw">end</span>
|
808
|
+
94: <span class="ruby-keyword kw">end</span>
|
809
|
+
95:
|
810
|
+
96: <span class="ruby-ivar">@entries</span>[<span class="ruby-identifier">key</span>] = <span class="ruby-constant">DataCacheEntry</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">value</span>)
|
811
|
+
97:
|
812
|
+
98: <span class="ruby-identifier">value</span>
|
813
|
+
99: <span class="ruby-keyword kw">end</span></pre>
|
823
814
|
</div>
|
824
815
|
|
825
816
|
</div>
|
@@ -830,12 +821,12 @@ have to correct these guessed values, we have to clear the caches.
|
|
830
821
|
</div>
|
831
822
|
|
832
823
|
|
833
|
-
<div id="
|
834
|
-
<a name="method-i-
|
824
|
+
<div id="to-s-method" class="method-detail ">
|
825
|
+
<a name="method-i-to_s"></a>
|
835
826
|
|
836
827
|
<div class="method-heading">
|
837
828
|
|
838
|
-
<span class="method-name">
|
829
|
+
<span class="method-name">to_s</span><span
|
839
830
|
class="method-args">()</span>
|
840
831
|
<span class="method-click-advice">click to toggle source</span>
|
841
832
|
|
@@ -843,20 +834,17 @@ have to correct these guessed values, we have to clear the caches.
|
|
843
834
|
|
844
835
|
<div class="method-description">
|
845
836
|
|
846
|
-
|
847
|
-
When the @minDate or @minDateDelta values need to be changed, we have to
|
848
|
-
clear all the caches again.
|
849
|
-
</p>
|
837
|
+
|
850
838
|
|
851
839
|
|
852
840
|
|
853
841
|
<div class="method-source-code"
|
854
|
-
id="
|
842
|
+
id="to-s-source">
|
855
843
|
<pre>
|
856
|
-
|
857
|
-
|
858
|
-
|
859
|
-
|
844
|
+
<span class="ruby-comment cmt"># File lib/DataCache.rb, line 113</span>
|
845
|
+
113: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_s</span>
|
846
|
+
114: <span class="ruby-value str">Entries: #{@entries.size} Stores: #{@stores}Hits: #{@hits} Misses: #{@misses}Hit Rate: #{@hits * 100.0 / (@hits + @misses)}%</span>
|
847
|
+
115: <span class="ruby-keyword kw">end</span></pre>
|
860
848
|
</div>
|
861
849
|
|
862
850
|
</div>
|