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
@@ -34,6 +34,8 @@ tj3ss_sender --dryrun -e 2002-03-02 > sender.log || error "sender1"
|
|
34
34
|
check "From: foo@bar.com" sender.log 2
|
35
35
|
check "Content-Disposition: attachment;" sender.log 2
|
36
36
|
check "^statussheet " sender.log 2
|
37
|
+
check "^resource1" sender.log 0
|
38
|
+
check "^resource2" sender.log 2
|
37
39
|
|
38
40
|
# Run a receiver test
|
39
41
|
tj3ss_receiver --dryrun < boss_mail >> receiver.log || error "rec1"
|
@@ -17,10 +17,18 @@ task test "Testing" {
|
|
17
17
|
}
|
18
18
|
|
19
19
|
supplement resource tux {
|
20
|
-
#
|
21
|
-
booking test 2007-01-06 +
|
22
|
-
|
23
|
-
|
24
|
-
|
20
|
+
# Book a whole day (8 hours). The 1 hour lunch break is skipped.
|
21
|
+
booking test 2007-01-06-9:00 +9h { sloppy 1 }
|
22
|
+
# Book 2 days in the afternoon, 4 hours each.
|
23
|
+
booking test 2007-01-08-13:00 +4h,
|
24
|
+
2007-01-09-13:00 +4h
|
25
|
+
# This is a common mistake. With standard working hours, this will
|
26
|
+
# yield a zero time booking! The interval is midnight to 8am. So
|
27
|
+
# it's outside of the working hours and 'sloopy 2' surpresses the
|
28
|
+
# warning.
|
29
|
+
booking test 2007-01-11 +8h { sloppy 2 }
|
30
|
+
# Use 'overtime' to book off-hour slots. This booking will book the
|
31
|
+
# full 10 hours, ignoring the lunch break and adding an extra hour
|
32
|
+
# in the morning.
|
25
33
|
booking test 2007-01-11-8:00 +10h { overtime 1 }
|
26
34
|
}
|
@@ -0,0 +1,21 @@
|
|
1
|
+
project "Test" "1.0" 2010-11-10 +2m
|
2
|
+
|
3
|
+
resource org "Org" {
|
4
|
+
resource team1 "Team1" {
|
5
|
+
resource r1 "R1"
|
6
|
+
resource r2 "R2"
|
7
|
+
resource r3 "R3"
|
8
|
+
}
|
9
|
+
resource r4 "R4"
|
10
|
+
}
|
11
|
+
resource r5 "R5"
|
12
|
+
|
13
|
+
task "T"
|
14
|
+
|
15
|
+
resourcereport "ResourceRoot" {
|
16
|
+
formats html
|
17
|
+
columns name, id
|
18
|
+
# Only list the Team1 as if it would be a top-level resource.
|
19
|
+
resourceroot team1
|
20
|
+
}
|
21
|
+
|
@@ -0,0 +1,21 @@
|
|
1
|
+
project "Test" "1.0" 2010-11-10 +2m
|
2
|
+
|
3
|
+
resource org "Org" {
|
4
|
+
resource team1 "Team1" {
|
5
|
+
resource r1 "R1"
|
6
|
+
resource r2 "R2"
|
7
|
+
resource r3 "R3"
|
8
|
+
}
|
9
|
+
resource r4 "R4"
|
10
|
+
}
|
11
|
+
resource r5 "R5"
|
12
|
+
|
13
|
+
task "T"
|
14
|
+
|
15
|
+
resourcereport "RollupResource" {
|
16
|
+
formats html
|
17
|
+
columns name, id
|
18
|
+
# Don't list the Team1 resources.
|
19
|
+
rollupresource plan.id = 'team1'
|
20
|
+
}
|
21
|
+
|
@@ -1 +1 @@
|
|
1
|
-
# MARK: error
|
1
|
+
# MARK: error 1 unexpctd_token
|
@@ -50,7 +50,7 @@ tj3ts_summary --dryrun -e 2002-03-01 >> summary.log || error "summary"
|
|
50
50
|
check "To: archive@bar.com" summary.log 2
|
51
51
|
check "To: crew@bar.com" summary.log 1
|
52
52
|
check "From: foo@bar.com" summary.log 7
|
53
|
-
check "
|
53
|
+
check "Message-ID:" summary.log 8
|
54
54
|
check "The following 5 person(s) have not yet submitted their time sheets" summary.log 4
|
55
55
|
check "Weekly Report from" summary.log 4
|
56
56
|
check "Green" summary.log 12
|
data/test/test_CSV-Reports.rb
CHANGED
@@ -52,11 +52,9 @@ class TestScheduler < Test::Unit::TestCase
|
|
52
52
|
# Compare the output CSV (passed as String) with the content of the CSV
|
53
53
|
# reference files _refFile_.
|
54
54
|
def compareCSVs(outStr, refFile)
|
55
|
-
ref =
|
56
|
-
TaskJuggler::CSVFile.new(ref).read(refFile)
|
55
|
+
ref = TaskJuggler::CSVFile.new.read(refFile)
|
57
56
|
|
58
|
-
out =
|
59
|
-
TaskJuggler::CSVFile.new(out).parse(outStr)
|
57
|
+
out = TaskJuggler::CSVFile.new.parse(outStr)
|
60
58
|
assert(ref.length == out.length,
|
61
59
|
"Line number mismatch (#{out.length} instead of #{ref.length}) " +
|
62
60
|
"in #{refFile}")
|
@@ -0,0 +1,85 @@
|
|
1
|
+
#!/usr/bin/env ruby -w
|
2
|
+
# encoding: UTF-8
|
3
|
+
#
|
4
|
+
# = test_GanttRouter.rb -- The TaskJuggler III Project Management Software
|
5
|
+
#
|
6
|
+
# Copyright (c) 2006, 2007, 2008, 2009, 2010 by Chris Schlaeger <cs@kde.org>
|
7
|
+
#
|
8
|
+
# This program is free software; you can redistribute it and/or modify
|
9
|
+
# it under the terms of version 2 of the GNU General Public License as
|
10
|
+
# published by the Free Software Foundation.
|
11
|
+
#
|
12
|
+
|
13
|
+
$:.unshift File.join(File.dirname(__FILE__), '..', 'lib') if __FILE__ == $0
|
14
|
+
|
15
|
+
require 'test/unit'
|
16
|
+
require 'reports/GanttRouter'
|
17
|
+
|
18
|
+
class TaskJuggler
|
19
|
+
|
20
|
+
class TestCollisionDetector < Test::Unit::TestCase
|
21
|
+
|
22
|
+
def test_collisions
|
23
|
+
# To test the collion?() method we use a fix block area and then try
|
24
|
+
# various lines that either collide or not.
|
25
|
+
#
|
26
|
+
# 2,2
|
27
|
+
# +--+
|
28
|
+
# | |
|
29
|
+
# +--+
|
30
|
+
# 4,4
|
31
|
+
#
|
32
|
+
# We use the same set of lines for horizontal and vertical tests. The
|
33
|
+
# first value is the x or y coordinate of the line, the tuple is the start
|
34
|
+
# and end coordinate in the other dimension. The third value is the
|
35
|
+
# expected result.
|
36
|
+
lines = [
|
37
|
+
[ [ 1, [0, 1] ], false ],
|
38
|
+
[ [ 2, [0, 1] ], false ],
|
39
|
+
[ [ 3, [0, 1] ], false ],
|
40
|
+
[ [ 4, [0, 1] ], false ],
|
41
|
+
[ [ 5, [0, 1] ], false ],
|
42
|
+
[ [ 1, [0, 2] ], false ],
|
43
|
+
[ [ 2, [0, 2] ], true ],
|
44
|
+
[ [ 3, [0, 2] ], true ],
|
45
|
+
[ [ 4, [0, 2] ], true ],
|
46
|
+
[ [ 5, [0, 2] ], false ],
|
47
|
+
[ [ 1, [0, 4] ], false ],
|
48
|
+
[ [ 2, [0, 4] ], true ],
|
49
|
+
[ [ 3, [0, 4] ], true ],
|
50
|
+
[ [ 4, [0, 4] ], true ],
|
51
|
+
[ [ 5, [0, 4] ], false ],
|
52
|
+
[ [ 1, [0, 5] ], false ],
|
53
|
+
[ [ 2, [0, 5] ], true ],
|
54
|
+
[ [ 3, [0, 5] ], true ],
|
55
|
+
[ [ 4, [0, 5] ], true ],
|
56
|
+
[ [ 5, [0, 6] ], false ],
|
57
|
+
[ [ 1, [4, 6] ], false ],
|
58
|
+
[ [ 2, [4, 6] ], true ],
|
59
|
+
[ [ 3, [4, 6] ], true ],
|
60
|
+
[ [ 4, [4, 6] ], true ],
|
61
|
+
[ [ 5, [4, 6] ], false ],
|
62
|
+
[ [ 1, [5, 6] ], false ],
|
63
|
+
[ [ 2, [5, 6] ], false],
|
64
|
+
[ [ 3, [5, 6] ], false ],
|
65
|
+
[ [ 4, [5, 6] ], false ],
|
66
|
+
[ [ 5, [5, 6] ], false ]
|
67
|
+
]
|
68
|
+
# Try horizontal lines first.
|
69
|
+
cd = CollisionDetector.new(10, 10)
|
70
|
+
cd.addBlockedZone(2, 2, 3, 3, true, true)
|
71
|
+
|
72
|
+
lines.each do |line|
|
73
|
+
assert_equal(line[1], cd.collision?(*(line[0] + [ true ])),
|
74
|
+
"Horizontal #{line[0]} is not #{line[1]}")
|
75
|
+
end
|
76
|
+
lines.each do |line|
|
77
|
+
assert_equal(line[1], cd.collision?(*(line[0] + [ false ])),
|
78
|
+
"Vertical #{line[0]} is not #{line[1]}")
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
end
|
83
|
+
|
84
|
+
end
|
85
|
+
|
data/test/test_Project.rb
CHANGED
@@ -42,12 +42,12 @@ class TestProject < Test::Unit::TestCase
|
|
42
42
|
assert_equal(p['rate'], 100.0)
|
43
43
|
|
44
44
|
t = Task.new(p, 'foo', 'Foo', nil)
|
45
|
-
t['start', 0] = TjTime.new('2008-07-25
|
45
|
+
t['start', 0] = TjTime.new('2008-07-25-9:00')
|
46
46
|
t['duration', 0] = 10
|
47
47
|
assert_equal(p.task('foo'), t)
|
48
48
|
|
49
49
|
p.schedule
|
50
|
-
assert_equal(t['end', 0], TjTime.new('2008-07-25
|
50
|
+
assert_equal(t['end', 0], TjTime.new('2008-07-25-19:00'))
|
51
51
|
p.generateReports(1)
|
52
52
|
end
|
53
53
|
|
@@ -44,21 +44,21 @@ comment */
|
|
44
44
|
EOT
|
45
45
|
|
46
46
|
ref = [
|
47
|
-
[
|
48
|
-
[
|
49
|
-
[
|
50
|
-
[
|
51
|
-
[
|
52
|
-
[
|
53
|
-
[
|
54
|
-
[
|
55
|
-
[
|
56
|
-
[
|
57
|
-
[
|
58
|
-
[
|
59
|
-
[
|
60
|
-
[
|
61
|
-
[
|
47
|
+
[:ID, 'Hello', 1],
|
48
|
+
[:ID, 'world', 1],
|
49
|
+
[:INTEGER, 1, 1],
|
50
|
+
[:FLOAT, 2.0, 2],
|
51
|
+
[:DATE, TjTime.new('2008-12-14'), 3],
|
52
|
+
[:ID_WITH_COLON, 'foo', 5],
|
53
|
+
[:ABSOLUTE_ID, 'a.b.c', 6],
|
54
|
+
[:LITERAL, '-', 6],
|
55
|
+
[:LITERAL, '$', 6],
|
56
|
+
[:MACRO, 'A Macro', 6],
|
57
|
+
[:TIME, time(15, 23), 7],
|
58
|
+
[:STRING, 'A string', 7],
|
59
|
+
[:STRING, "It's a string", 8],
|
60
|
+
[:STRING, "A\nmult\"i line\nstring", 9],
|
61
|
+
[:eof, '<END>', 14 ]
|
62
62
|
]
|
63
63
|
|
64
64
|
check(text, ref)
|
@@ -76,19 +76,57 @@ EOT
|
|
76
76
|
]
|
77
77
|
|
78
78
|
ref = [
|
79
|
-
[
|
80
|
-
[
|
81
|
-
[
|
82
|
-
[
|
83
|
-
[
|
84
|
-
[
|
85
|
-
[
|
86
|
-
[
|
79
|
+
[:ID, 'This', 1],
|
80
|
+
[:ID, 'great', 1],
|
81
|
+
[:ID, 'software', 1],
|
82
|
+
[:ID, 'macro', 2],
|
83
|
+
[:ID, 'with', 2],
|
84
|
+
[:ID, 'arg1', 2],
|
85
|
+
[:ID, 'argument', 2],
|
86
|
+
[:eof, '<END>', 3]
|
87
87
|
]
|
88
88
|
|
89
89
|
check(text, ref, macros)
|
90
90
|
end
|
91
91
|
|
92
|
+
def test_time
|
93
|
+
text = <<'EOT'
|
94
|
+
0:00
|
95
|
+
00:00
|
96
|
+
1:00
|
97
|
+
11:59
|
98
|
+
12:01
|
99
|
+
24:00
|
100
|
+
EOT
|
101
|
+
ref = [
|
102
|
+
[:TIME, time(0, 0), 1],
|
103
|
+
[:TIME, time(0, 0), 2],
|
104
|
+
[:TIME, time(1, 0), 3],
|
105
|
+
[:TIME, time(11, 59), 4],
|
106
|
+
[:TIME, time(12, 1), 5],
|
107
|
+
[:TIME, time(24, 0), 6],
|
108
|
+
[:eof, '<END>', 7]
|
109
|
+
]
|
110
|
+
|
111
|
+
check(text, ref)
|
112
|
+
end
|
113
|
+
|
114
|
+
def test_date
|
115
|
+
text = <<'EOT'
|
116
|
+
1970-01-01
|
117
|
+
2035-12-31-23:59:59
|
118
|
+
2010-08-11-23:10
|
119
|
+
EOT
|
120
|
+
ref = [
|
121
|
+
[:DATE, TjTime.new('1970-01-01'), 1],
|
122
|
+
[:DATE, TjTime.new('2035-12-31-23:59:59'), 2],
|
123
|
+
[:DATE, TjTime.new('2010-08-11-23:10'), 3],
|
124
|
+
[:eof, '<END>', 4]
|
125
|
+
]
|
126
|
+
|
127
|
+
check(text, ref)
|
128
|
+
end
|
129
|
+
|
92
130
|
def test_macroDef
|
93
131
|
text = <<'EOT'
|
94
132
|
[ foo ]
|
@@ -106,13 +144,13 @@ EOT
|
|
106
144
|
EOT
|
107
145
|
|
108
146
|
ref = [
|
109
|
-
[
|
110
|
-
[
|
111
|
-
[
|
112
|
-
[
|
113
|
-
[
|
114
|
-
[
|
115
|
-
[
|
147
|
+
[ :MACRO, ' foo ', 1 ],
|
148
|
+
[ :MACRO, "\n bar ", 2 ],
|
149
|
+
[ :MACRO, " foo\n ", 4 ],
|
150
|
+
[ :MACRO, "\n bar\n ", 6 ],
|
151
|
+
[ :MACRO, '', 9 ],
|
152
|
+
[ :MACRO, "\n ", 10 ],
|
153
|
+
[ :eof, '<END>', 13 ]
|
116
154
|
]
|
117
155
|
|
118
156
|
check(text, ref)
|
@@ -124,7 +162,7 @@ EOT
|
|
124
162
|
[ 'foo', 'hello' ]
|
125
163
|
]
|
126
164
|
ref = [
|
127
|
-
[
|
165
|
+
[ :ID, 'hello', 1 ]
|
128
166
|
]
|
129
167
|
|
130
168
|
check(text, ref, macros)
|
@@ -132,6 +170,10 @@ EOT
|
|
132
170
|
|
133
171
|
private
|
134
172
|
|
173
|
+
def time(h, m)
|
174
|
+
(h * 60 + m) * 60
|
175
|
+
end
|
176
|
+
|
135
177
|
def check(text, ref, macros = [])
|
136
178
|
s = TaskJuggler::ProjectFileScanner.new(text, MessageHandler.new(true))
|
137
179
|
s.open(true)
|
data/test/test_Query.rb
CHANGED
@@ -23,8 +23,8 @@ class TestQuery < Test::Unit::TestCase
|
|
23
23
|
def setup
|
24
24
|
@mh = MessageHandler.new
|
25
25
|
@p = TaskJuggler::Project.new('id', 'name', 'ver', @mh)
|
26
|
-
@p['start'] = TjTime.new(
|
27
|
-
@p['end'] = TjTime.new(
|
26
|
+
@p['start'] = TjTime.new('2010-09-25')
|
27
|
+
@p['end'] = TjTime.new('2010-09-25')
|
28
28
|
end
|
29
29
|
|
30
30
|
def teardown
|
@@ -53,7 +53,7 @@ class TestReportGenerator < Test::Unit::TestCase
|
|
53
53
|
Dir.glob(path + 'TestSuite/ReportGenerator/Correct/*.tjp').each do |f|
|
54
54
|
ENV['TZ'] = 'Europe/Berlin'
|
55
55
|
tj = TaskJuggler.new(true)
|
56
|
-
assert(tj.parse([ f ]), "Parser failed for
|
56
|
+
assert(tj.parse([ f ]), "Parser failed for #{f}")
|
57
57
|
assert(tj.schedule, "Scheduler failed for #{f}")
|
58
58
|
assert(tj.generateReports(@tmpDir), "Report generator failed for #{f}")
|
59
59
|
assert(tj.messageHandler.messages.empty?, "Unexpected error in #{f}")
|
data/test/test_RichText.rb
CHANGED
@@ -47,10 +47,10 @@ class TestRichText < Test::Unit::TestCase
|
|
47
47
|
|
48
48
|
assert_outputs(inp, tagged, str, html)
|
49
49
|
|
50
|
-
assert_equal(true, newRichText(inp).empty
|
51
|
-
assert_equal(true, newRichText("\n").empty
|
52
|
-
assert_equal(true, newRichText("\n \n").empty
|
53
|
-
assert_equal(false, newRichText("foo").empty
|
50
|
+
assert_equal(true, newRichText(inp).empty?, 'Empty string')
|
51
|
+
assert_equal(true, newRichText("\n").empty?, '\n')
|
52
|
+
assert_equal(true, newRichText("\n \n").empty?, '\n \n')
|
53
|
+
assert_equal(false, newRichText("foo").empty?, 'foo')
|
54
54
|
end
|
55
55
|
|
56
56
|
def test_one_word
|