taskjuggler 0.0.10 → 0.0.11
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +115 -0
- data/README.rdoc +105 -0
- data/examples/tutorial.tjp +21 -16
- data/gem_spec.rb +1 -1
- data/lib/{Account.rb → taskjuggler/Account.rb} +2 -3
- data/lib/{AccountScenario.rb → taskjuggler/AccountScenario.rb} +1 -1
- data/lib/taskjuggler/AlgorithmDiff.rb +311 -0
- data/lib/{Allocation.rb → taskjuggler/Allocation.rb} +3 -3
- data/lib/{AppConfig.rb → taskjuggler/AppConfig.rb} +0 -1
- data/lib/{AttributeBase.rb → taskjuggler/AttributeBase.rb} +1 -1
- data/lib/{AttributeDefinition.rb → taskjuggler/AttributeDefinition.rb} +0 -0
- data/lib/{Attributes.rb → taskjuggler/Attributes.rb} +19 -9
- data/lib/{BatchProcessor.rb → taskjuggler/BatchProcessor.rb} +0 -0
- data/lib/{Booking.rb → taskjuggler/Booking.rb} +0 -0
- data/lib/{Charge.rb → taskjuggler/Charge.rb} +1 -1
- data/lib/{ChargeSet.rb → taskjuggler/ChargeSet.rb} +1 -1
- data/lib/{DataCache.rb → taskjuggler/DataCache.rb} +0 -0
- data/lib/{FileList.rb → taskjuggler/FileList.rb} +0 -0
- data/lib/{HTMLDocument.rb → taskjuggler/HTMLDocument.rb} +1 -1
- data/lib/{Interval.rb → taskjuggler/Interval.rb} +1 -1
- data/lib/{IntervalList.rb → taskjuggler/IntervalList.rb} +1 -1
- data/lib/{Journal.rb → taskjuggler/Journal.rb} +2 -2
- data/lib/{KeywordArray.rb → taskjuggler/KeywordArray.rb} +0 -0
- data/lib/{KeywordDocumentation.rb → taskjuggler/KeywordDocumentation.rb} +5 -5
- data/lib/{Limits.rb → taskjuggler/Limits.rb} +1 -1
- data/lib/{Log.rb → taskjuggler/Log.rb} +0 -0
- data/lib/{LogFile.rb → taskjuggler/LogFile.rb} +0 -0
- data/lib/{LogicalExpression.rb → taskjuggler/LogicalExpression.rb} +3 -3
- data/lib/{LogicalFunction.rb → taskjuggler/LogicalFunction.rb} +1 -1
- data/lib/{LogicalOperation.rb → taskjuggler/LogicalOperation.rb} +1 -1
- data/lib/{MessageHandler.rb → taskjuggler/MessageHandler.rb} +3 -1
- data/lib/{Project.rb → taskjuggler/Project.rb} +51 -48
- data/lib/{ProjectFileParser.rb → taskjuggler/ProjectFileParser.rb} +25 -9
- data/lib/{ProjectFileScanner.rb → taskjuggler/ProjectFileScanner.rb} +5 -5
- data/lib/{PropertyList.rb → taskjuggler/PropertyList.rb} +0 -0
- data/lib/{PropertySet.rb → taskjuggler/PropertySet.rb} +3 -4
- data/lib/{PropertyTreeNode.rb → taskjuggler/PropertyTreeNode.rb} +157 -11
- data/lib/{Query.rb → taskjuggler/Query.rb} +17 -7
- data/lib/{RealFormat.rb → taskjuggler/RealFormat.rb} +0 -0
- data/lib/{Resource.rb → taskjuggler/Resource.rb} +8 -6
- data/lib/{ResourceScenario.rb → taskjuggler/ResourceScenario.rb} +26 -65
- data/lib/{RichText.rb → taskjuggler/RichText.rb} +3 -3
- data/lib/{RichTextDocument.rb → taskjuggler/RichText/Document.rb} +3 -3
- data/lib/{RichTextElement.rb → taskjuggler/RichText/Element.rb} +10 -4
- data/lib/{RichTextFunctionExample.rb → taskjuggler/RichText/FunctionExample.rb} +3 -3
- data/lib/{RichTextFunctionHandler.rb → taskjuggler/RichText/FunctionHandler.rb} +0 -0
- data/lib/{RichTextParser.rb → taskjuggler/RichText/Parser.rb} +6 -4
- data/lib/{RTFHandlers.rb → taskjuggler/RichText/RTFHandlers.rb} +4 -4
- data/lib/{RTFNavigator.rb → taskjuggler/RichText/RTFNavigator.rb} +3 -3
- data/lib/{RTFQuery.rb → taskjuggler/RichText/RTFQuery.rb} +62 -39
- data/lib/{RTFReport.rb → taskjuggler/RichText/RTFReport.rb} +2 -2
- data/lib/{RTFReportLink.rb → taskjuggler/RichText/RTFReportLink.rb} +4 -4
- data/lib/{RTFWithQuerySupport.rb → taskjuggler/RichText/RTFWithQuerySupport.rb} +1 -1
- data/lib/{RichTextScanner.rb → taskjuggler/RichText/Scanner.rb} +18 -5
- data/lib/{RichTextSnip.rb → taskjuggler/RichText/Snip.rb} +2 -2
- data/lib/{RichTextSyntaxRules.rb → taskjuggler/RichText/SyntaxRules.rb} +14 -0
- data/lib/{TOCEntry.rb → taskjuggler/RichText/TOCEntry.rb} +2 -2
- data/lib/{TableOfContents.rb → taskjuggler/RichText/TableOfContents.rb} +2 -2
- data/lib/{RuntimeConfig.rb → taskjuggler/RuntimeConfig.rb} +18 -18
- data/lib/{Scenario.rb → taskjuggler/Scenario.rb} +1 -1
- data/lib/{ScenarioData.rb → taskjuggler/ScenarioData.rb} +2 -3
- data/lib/{Scoreboard.rb → taskjuggler/Scoreboard.rb} +4 -4
- data/lib/{SheetHandlerBase.rb → taskjuggler/SheetHandlerBase.rb} +3 -3
- data/lib/{SheetReceiver.rb → taskjuggler/SheetReceiver.rb} +2 -2
- data/lib/{SheetSender.rb → taskjuggler/SheetSender.rb} +5 -5
- data/lib/{Shift.rb → taskjuggler/Shift.rb} +2 -3
- data/lib/{ShiftAssignments.rb → taskjuggler/ShiftAssignments.rb} +1 -1
- data/lib/{ShiftScenario.rb → taskjuggler/ShiftScenario.rb} +1 -1
- data/lib/{SimpleQueryExpander.rb → taskjuggler/SimpleQueryExpander.rb} +0 -0
- data/lib/{StatusSheetReceiver.rb → taskjuggler/StatusSheetReceiver.rb} +1 -1
- data/lib/{StatusSheetSender.rb → taskjuggler/StatusSheetSender.rb} +1 -1
- data/lib/{SyntaxReference.rb → taskjuggler/SyntaxReference.rb} +4 -4
- data/lib/{TableColumnDefinition.rb → taskjuggler/TableColumnDefinition.rb} +0 -0
- data/lib/{Task.rb → taskjuggler/Task.rb} +2 -2
- data/lib/{TaskDependency.rb → taskjuggler/TaskDependency.rb} +8 -0
- data/lib/{TaskJuggler.rb → taskjuggler/TaskJuggler.rb} +6 -4
- data/lib/{TaskScenario.rb → taskjuggler/TaskScenario.rb} +211 -150
- data/lib/taskjuggler/TernarySearchTree.rb +203 -0
- data/lib/{TextFormatter.rb → taskjuggler/TextFormatter.rb} +1 -1
- data/lib/{TextParser.rb → taskjuggler/TextParser.rb} +6 -6
- data/lib/{MacroTable.rb → taskjuggler/TextParser/MacroTable.rb} +2 -12
- data/lib/{TextParser → taskjuggler/TextParser}/Pattern.rb +5 -2
- data/lib/{TextParser → taskjuggler/TextParser}/Rule.rb +1 -1
- data/lib/{TextScanner.rb → taskjuggler/TextParser/Scanner.rb} +34 -32
- data/lib/{SourceFileInfo.rb → taskjuggler/TextParser/SourceFileInfo.rb} +1 -1
- data/lib/{TextParser → taskjuggler/TextParser}/StackElement.rb +0 -2
- data/lib/{TextParser → taskjuggler/TextParser}/State.rb +0 -0
- data/lib/{TextParser → taskjuggler/TextParser}/TokenDoc.rb +0 -0
- data/lib/{TimeSheetReceiver.rb → taskjuggler/TimeSheetReceiver.rb} +1 -1
- data/lib/{TimeSheetSender.rb → taskjuggler/TimeSheetSender.rb} +1 -1
- data/lib/{TimeSheetSummary.rb → taskjuggler/TimeSheetSummary.rb} +1 -1
- data/lib/{TimeSheets.rb → taskjuggler/TimeSheets.rb} +23 -16
- data/lib/{Tj3AppBase.rb → taskjuggler/Tj3AppBase.rb} +19 -12
- data/lib/{Tj3Config.rb → taskjuggler/Tj3Config.rb} +3 -3
- data/lib/taskjuggler/Tj3Man.rb +78 -0
- data/lib/{Tj3SheetAppBase.rb → taskjuggler/Tj3SheetAppBase.rb} +2 -2
- data/lib/{TjException.rb → taskjuggler/TjException.rb} +0 -0
- data/lib/{TjTime.rb → taskjuggler/TjTime.rb} +279 -234
- data/lib/{TjpExample.rb → taskjuggler/TjpExample.rb} +0 -0
- data/lib/{TjpSyntaxRules.rb → taskjuggler/TjpSyntaxRules.rb} +253 -95
- data/lib/{URLParameter.rb → taskjuggler/URLParameter.rb} +0 -0
- data/lib/{UTF8String.rb → taskjuggler/UTF8String.rb} +0 -0
- data/lib/{UserManual.rb → taskjuggler/UserManual.rb} +6 -6
- data/lib/{VimSyntax.rb → taskjuggler/VimSyntax.rb} +6 -2
- data/lib/{WorkingHours.rb → taskjuggler/WorkingHours.rb} +14 -22
- data/lib/{XMLDocument.rb → taskjuggler/XMLDocument.rb} +1 -1
- data/lib/{XMLElement.rb → taskjuggler/XMLElement.rb} +1 -1
- data/lib/taskjuggler/apps/Tj3.rb +134 -0
- data/lib/taskjuggler/apps/Tj3Client.rb +467 -0
- data/lib/taskjuggler/apps/Tj3Daemon.rb +142 -0
- data/lib/taskjuggler/apps/Tj3SsReceiver.rb +56 -0
- data/lib/taskjuggler/apps/Tj3SsSender.rb +90 -0
- data/lib/taskjuggler/apps/Tj3TsReceiver.rb +59 -0
- data/lib/taskjuggler/apps/Tj3TsSender.rb +77 -0
- data/lib/taskjuggler/apps/Tj3TsSummary.rb +86 -0
- data/lib/{daemon → taskjuggler/daemon}/Daemon.rb +4 -3
- data/lib/{daemon → taskjuggler/daemon}/ProcessIntercom.rb +2 -2
- data/lib/{daemon → taskjuggler/daemon}/ProjectBroker.rb +5 -5
- data/lib/{daemon → taskjuggler/daemon}/ProjectServer.rb +16 -16
- data/lib/{daemon → taskjuggler/daemon}/ReportServer.rb +6 -6
- data/lib/{daemon → taskjuggler/daemon}/ReportServlet.rb +2 -2
- data/lib/{daemon → taskjuggler/daemon}/WebServer.rb +4 -4
- data/lib/{daemon → taskjuggler/daemon}/WelcomePage.rb +2 -1
- data/lib/{deep_copy.rb → taskjuggler/deep_copy.rb} +0 -0
- data/lib/{reports → taskjuggler/reports}/CSVFile.rb +2 -2
- data/lib/{reports → taskjuggler/reports}/CollisionDetector.rb +1 -1
- data/lib/{reports → taskjuggler/reports}/ColumnTable.rb +1 -1
- data/lib/{reports → taskjuggler/reports}/GanttChart.rb +4 -4
- data/lib/{reports → taskjuggler/reports}/GanttContainer.rb +1 -1
- data/lib/{reports → taskjuggler/reports}/GanttHeader.rb +1 -1
- data/lib/{reports → taskjuggler/reports}/GanttHeaderScaleItem.rb +0 -0
- data/lib/{reports → taskjuggler/reports}/GanttLine.rb +6 -6
- data/lib/{reports → taskjuggler/reports}/GanttLoadStack.rb +1 -1
- data/lib/{reports → taskjuggler/reports}/GanttMilestone.rb +1 -1
- data/lib/{reports → taskjuggler/reports}/GanttRouter.rb +1 -1
- data/lib/{reports → taskjuggler/reports}/GanttTaskBar.rb +1 -1
- data/lib/{reports → taskjuggler/reports}/HTMLGraphics.rb +0 -0
- data/lib/{reports → taskjuggler/reports}/Navigator.rb +1 -1
- data/lib/{reports → taskjuggler/reports}/NikuReport.rb +3 -6
- data/lib/{reports → taskjuggler/reports}/Report.rb +19 -14
- data/lib/{reports → taskjuggler/reports}/ReportBase.rb +0 -0
- data/lib/{reports → taskjuggler/reports}/ReportContext.rb +0 -0
- data/lib/{reports → taskjuggler/reports}/ReportTable.rb +2 -2
- data/lib/{reports → taskjuggler/reports}/ReportTableCell.rb +0 -0
- data/lib/{reports → taskjuggler/reports}/ReportTableColumn.rb +0 -0
- data/lib/{reports → taskjuggler/reports}/ReportTableLegend.rb +0 -0
- data/lib/{reports → taskjuggler/reports}/ReportTableLine.rb +1 -1
- data/lib/{reports → taskjuggler/reports}/ResourceListRE.rb +4 -4
- data/lib/{reports → taskjuggler/reports}/StatusSheetReport.rb +1 -1
- data/lib/{reports → taskjuggler/reports}/TableReport.rb +8 -7
- data/lib/{reports → taskjuggler/reports}/TaskListRE.rb +4 -4
- data/lib/{reports → taskjuggler/reports}/TextReport.rb +1 -1
- data/lib/{reports → taskjuggler/reports}/TimeSheetReport.rb +1 -1
- data/lib/{reports → taskjuggler/reports}/TjpExportRE.rb +87 -29
- data/lib/tj3.rb +2 -144
- data/lib/tj3client.rb +2 -442
- data/lib/tj3d.rb +1 -133
- data/lib/tj3man.rb +2 -75
- data/lib/tj3ss_receiver.rb +2 -42
- data/lib/tj3ss_sender.rb +1 -76
- data/lib/tj3ts_receiver.rb +1 -45
- data/lib/tj3ts_sender.rb +1 -63
- data/lib/tj3ts_summary.rb +1 -72
- data/manual/How_To_Contribute +19 -49
- data/manual/Installation +65 -6
- data/manual/Reporting_Bugs +6 -20
- data/manual/TaskJuggler_Internals +8 -1
- data/manual/Tutorial +16 -0
- data/prj_cfg.rb +2 -3
- data/spec/IntervalList_spec.rb +2 -1
- data/spec/ProjectBroker_spec.rb +1 -1
- data/spec/TernarySearchTree_spec.rb +131 -0
- data/spec/TimeSheets_spec.rb +129 -0
- data/spec/Tj3Daemon_spec.rb +51 -0
- data/spec/Tj3_spec.rb +36 -0
- data/spec/support/DaemonControl.rb +78 -0
- data/spec/support/StdIoWrapper.rb +43 -0
- data/spec/tj3client.log +23 -0
- data/tasks/changelog.rake +17 -2
- data/tasks/csts.rake +2 -2
- data/tasks/manual.rake +9 -5
- data/tasks/missing.rake +0 -4
- data/tasks/rdoc.rake +2 -2
- data/tasks/vim.rake +9 -0
- data/test/TestSuite/CSV-Reports/alert.tjp +9 -0
- data/test/TestSuite/CSV-Reports/celltext.tjp +1 -0
- data/test/TestSuite/CSV-Reports/inputs.tjp +19 -0
- data/test/TestSuite/CSV-Reports/project-1.tji +9 -0
- data/test/TestSuite/CSV-Reports/refs/alert.csv +15 -0
- data/test/TestSuite/CSV-Reports/refs/celltext.csv +1 -0
- data/test/TestSuite/CSV-Reports/refs/inputs.csv +6 -0
- data/test/TestSuite/CSV-Reports/refs/resourcereport.csv +4 -4
- data/test/TestSuite/CSV-Reports/refs/resourcereport_with_tasks.csv +22 -22
- data/test/TestSuite/CSV-Reports/refs/sortByTree.csv +1 -0
- data/test/TestSuite/CSV-Reports/refs/sortBy_duration.down.csv +1 -0
- data/test/TestSuite/CSV-Reports/refs/sortBy_effort.up.csv +1 -0
- data/test/TestSuite/CSV-Reports/refs/sortBy_plan.start.down.csv +14 -13
- data/test/TestSuite/CSV-Reports/refs/targets.csv +5 -0
- data/test/TestSuite/CSV-Reports/refs/taskreport.csv +15 -14
- data/test/TestSuite/CSV-Reports/refs/taskreport_with_resources.csv +33 -32
- data/test/TestSuite/CSV-Reports/resourcereport.tjp +1 -0
- data/test/TestSuite/CSV-Reports/resourcereport_with_tasks.tjp +1 -0
- data/test/TestSuite/CSV-Reports/sortByTree.tjp +1 -0
- data/test/TestSuite/CSV-Reports/sortBy_duration.down.tjp +1 -0
- data/test/TestSuite/CSV-Reports/sortBy_effort.up.tjp +1 -0
- data/test/TestSuite/CSV-Reports/sortBy_plan.start.down.tjp +2 -1
- data/test/TestSuite/CSV-Reports/targets.tjp +20 -0
- data/test/TestSuite/CSV-Reports/taskreport.tjp +2 -1
- data/test/TestSuite/CSV-Reports/taskreport_with_resources.tjp +2 -1
- data/test/TestSuite/CSV-Reports/weekly.tjp +5 -2
- data/test/TestSuite/Export-Reports/export.tji +6 -0
- data/test/TestSuite/Export-Reports/refs/Account.tjp +92 -0
- data/test/TestSuite/Export-Reports/refs/AdoptedTasks.tjp +38 -0
- data/test/TestSuite/Export-Reports/refs/Allocate-1.tjp +124 -0
- data/test/TestSuite/Export-Reports/refs/Alternative.tjp +50 -0
- data/test/TestSuite/Export-Reports/refs/AutoID.tjp +45 -0
- data/test/TestSuite/Export-Reports/refs/AutoMacros.tjp +18 -0
- data/test/TestSuite/Export-Reports/refs/Booking.tjp +48 -0
- data/test/TestSuite/Export-Reports/refs/Caption.tjp +65 -0
- data/test/TestSuite/Export-Reports/refs/Celltext.tjp +45 -0
- data/test/TestSuite/Export-Reports/refs/Comments.tjp +67 -0
- data/test/TestSuite/Export-Reports/refs/Complete.tjp +50 -0
- data/test/TestSuite/Export-Reports/refs/CriticalPath.tjp +41 -0
- data/test/TestSuite/Export-Reports/refs/Currencyformat.tjp +18 -0
- data/test/TestSuite/Export-Reports/refs/CustomAttributes.tjp +24 -0
- data/test/TestSuite/Export-Reports/refs/DST.tjp +89 -0
- data/test/TestSuite/Export-Reports/refs/Depends1.tjp +57 -0
- data/test/TestSuite/Export-Reports/refs/Durations.tjp +84 -0
- data/test/TestSuite/Export-Reports/refs/Efficiency.tjp +58 -0
- data/test/TestSuite/Export-Reports/refs/Flags.tjp +51 -0
- data/test/TestSuite/Export-Reports/refs/Gap.tjp +38 -0
- data/test/TestSuite/Export-Reports/refs/HtmlTaskReport.tjp +67 -0
- data/test/TestSuite/Export-Reports/refs/Include.tjp +58 -0
- data/test/TestSuite/Export-Reports/refs/Journal.tjp +28 -0
- data/test/TestSuite/Export-Reports/refs/Limits-1.tjp +283 -0
- data/test/TestSuite/Export-Reports/refs/LoadUnits.tjp +617 -0
- data/test/TestSuite/Export-Reports/refs/LogicalExpression.tjp +18 -0
- data/test/TestSuite/Export-Reports/refs/LogicalFunction.tjp +57 -0
- data/test/TestSuite/Export-Reports/refs/Macro-1.tjp +91 -0
- data/test/TestSuite/Export-Reports/refs/Macro-2.tjp +18 -0
- data/test/TestSuite/Export-Reports/refs/Macro-3.tjp +18 -0
- data/test/TestSuite/Export-Reports/refs/Manager.tjp +121 -0
- data/test/TestSuite/Export-Reports/refs/Mandatory.tjp +59 -0
- data/test/TestSuite/Export-Reports/refs/Milestone.tjp +27 -0
- data/test/TestSuite/Export-Reports/refs/MinMax.tjp +30 -0
- data/test/TestSuite/Export-Reports/refs/Niku.tjp +218 -0
- data/test/TestSuite/Export-Reports/refs/Numberformat.tjp +18 -0
- data/test/TestSuite/Export-Reports/refs/Period.tjp +25 -0
- data/test/TestSuite/Export-Reports/refs/Persistent.tjp +49 -0
- data/test/TestSuite/Export-Reports/refs/Precedes1.tjp +46 -0
- data/test/TestSuite/Export-Reports/refs/Priority.tjp +141 -0
- data/test/TestSuite/Export-Reports/refs/Project.tjp +18 -0
- data/test/TestSuite/Export-Reports/refs/ProjectIDs.tjp +36 -0
- data/test/TestSuite/Export-Reports/refs/Query.tjp +49 -0
- data/test/TestSuite/Export-Reports/refs/ReleasePlan.tjp +79 -0
- data/test/TestSuite/Export-Reports/refs/Reports.tjp +130 -0
- data/test/TestSuite/Export-Reports/refs/Resource.tjp +59 -0
- data/test/TestSuite/Export-Reports/refs/ResourcePrefix.tjp +67 -0
- data/test/TestSuite/Export-Reports/refs/ResourceRoot.tjp +90 -0
- data/test/TestSuite/Export-Reports/refs/Responsible.tjp +50 -0
- data/test/TestSuite/Export-Reports/refs/RollupResource.tjp +90 -0
- data/test/TestSuite/Export-Reports/refs/Scenario.tjp +25 -0
- data/test/TestSuite/Export-Reports/refs/Scheduling.tjp +55 -0
- data/test/TestSuite/Export-Reports/refs/Select.tjp +89 -0
- data/test/TestSuite/Export-Reports/refs/Shift.tjp +39 -0
- data/test/TestSuite/Export-Reports/refs/Simple.tjp +67 -0
- data/test/TestSuite/Export-Reports/refs/StatusSheet.tjp +95 -0
- data/test/TestSuite/Export-Reports/refs/String.tjp +33 -0
- data/test/TestSuite/Export-Reports/refs/Supplement.tjp +41 -0
- data/test/TestSuite/Export-Reports/refs/TaskPrefix.tjp +49 -0
- data/test/TestSuite/Export-Reports/refs/TaskRoot.tjp +75 -0
- data/test/TestSuite/Export-Reports/refs/TimeFrame.tjp +51 -0
- data/test/TestSuite/Export-Reports/refs/TimeSheet1.tjp +81 -0
- data/test/TestSuite/Export-Reports/refs/Timezone.tjp +18 -0
- data/test/TestSuite/Export-Reports/refs/Vacation.tjp +69 -0
- data/test/TestSuite/Export-Reports/refs/tutorial.tjp +1061 -0
- data/test/TestSuite/Scheduler/Correct/Container-2.tjp +3 -1
- data/test/TestSuite/Scheduler/Correct/InheritStartEnd.tjp +5 -3
- data/test/TestSuite/Scheduler/Correct/Precedes.tjp +19 -19
- data/test/TestSuite/Scheduler/Correct/PriorityInversion.tjp +32 -0
- data/test/TestSuite/Scheduler/Correct/Scenarios.tjp +19 -0
- data/test/TestSuite/Scheduler/Correct/TimeSheet2.tjp +11 -0
- data/test/TestSuite/Scheduler/Correct/WeakDeps.tjp +14 -14
- data/test/TestSuite/Scheduler/Correct/checks.tji +5 -0
- data/test/TestSuite/Scheduler/Correct/css/tjmanual.css +20 -0
- data/test/TestSuite/StatusSheets/boss_mail +1 -1
- data/test/TestSuite/StatusSheets/dev2_mail +1 -1
- data/test/TestSuite/StatusSheets/run +2 -3
- data/test/TestSuite/Syntax/Correct/Account.tjp +1 -0
- data/test/TestSuite/Syntax/Correct/AdoptedTasks.tjp +9 -0
- data/test/TestSuite/Syntax/Correct/Allocate-1.tjp +3 -1
- data/test/TestSuite/Syntax/Correct/Alternative.tjp +3 -1
- data/test/TestSuite/Syntax/Correct/AutoID.tjp +3 -1
- data/test/TestSuite/Syntax/Correct/Booking.tjp +1 -0
- data/test/TestSuite/Syntax/Correct/Caption.tjp +3 -1
- data/test/TestSuite/Syntax/Correct/Celltext.tjp +3 -1
- data/test/TestSuite/Syntax/Correct/Comments.tjp +3 -1
- data/test/TestSuite/Syntax/Correct/Complete.tjp +1 -0
- data/test/TestSuite/Syntax/Correct/CriticalPath.tjp +2 -1
- data/test/TestSuite/Syntax/Correct/Currencyformat.tjp +2 -1
- data/test/TestSuite/Syntax/Correct/CustomAttributes.tjp +3 -2
- data/test/TestSuite/Syntax/Correct/DST.tjp +11 -0
- data/test/TestSuite/Syntax/Correct/Depends1.tjp +6 -4
- data/test/TestSuite/Syntax/Correct/Durations.tjp +3 -1
- data/test/TestSuite/Syntax/Correct/Efficiency.tjp +4 -2
- data/test/TestSuite/Syntax/Correct/Export.tjp +6 -4
- data/test/TestSuite/Syntax/Correct/Flags.tjp +3 -1
- data/test/TestSuite/Syntax/Correct/Freeze.tjp +2 -2
- data/test/TestSuite/Syntax/Correct/Gap.tjp +3 -1
- data/test/TestSuite/Syntax/Correct/HtmlTaskReport.tjp +4 -2
- data/test/TestSuite/Syntax/Correct/Include.tjp +3 -1
- data/test/TestSuite/Syntax/Correct/Journal.tjp +2 -1
- data/test/TestSuite/Syntax/Correct/Limits-1.tjp +13 -9
- data/test/TestSuite/Syntax/Correct/LoadUnits.tjp +1 -0
- data/test/TestSuite/Syntax/Correct/LogicalExpression.tjp +3 -1
- data/test/TestSuite/Syntax/Correct/LogicalFunction.tjp +3 -1
- data/test/TestSuite/Syntax/Correct/Macro-1.tjp +3 -1
- data/test/TestSuite/Syntax/Correct/Macro-2.tjp +3 -1
- data/test/TestSuite/Syntax/Correct/Macro-3.tjp +1 -0
- data/test/TestSuite/Syntax/Correct/Manager.tjp +4 -2
- data/test/TestSuite/Syntax/Correct/Mandatory.tjp +3 -1
- data/test/TestSuite/Syntax/Correct/Milestone.tjp +3 -1
- data/test/TestSuite/Syntax/Correct/MinMax.tjp +3 -1
- data/test/TestSuite/Syntax/Correct/Niku.tjp +1 -0
- data/test/TestSuite/Syntax/Correct/Numberformat.tjp +3 -2
- data/test/TestSuite/Syntax/Correct/Period.tjp +1 -0
- data/test/TestSuite/Syntax/Correct/Persistent.tjp +3 -1
- data/test/TestSuite/Syntax/Correct/Precedes1.tjp +6 -4
- data/test/TestSuite/Syntax/Correct/Priority.tjp +4 -2
- data/test/TestSuite/Syntax/Correct/Project.tjp +5 -4
- data/test/TestSuite/Syntax/Correct/ProjectIDs.tjp +3 -2
- data/test/TestSuite/Syntax/Correct/Query.tjp +1 -0
- data/test/TestSuite/Syntax/Correct/ReleasePlan.tjp +3 -1
- data/test/TestSuite/Syntax/Correct/Reports.tjp +7 -5
- data/test/TestSuite/Syntax/Correct/Resource.tjp +4 -2
- data/test/TestSuite/Syntax/Correct/ResourcePrefix.tjp +4 -2
- data/test/TestSuite/Syntax/Correct/ResourceRoot.tjp +3 -1
- data/test/TestSuite/Syntax/Correct/Responsible.tjp +3 -1
- data/test/TestSuite/Syntax/Correct/RollupResource.tjp +3 -1
- data/test/TestSuite/Syntax/Correct/Scenario.tjp +2 -1
- data/test/TestSuite/Syntax/Correct/Scheduling.tjp +3 -1
- data/test/TestSuite/Syntax/Correct/Select.tjp +3 -1
- data/test/TestSuite/Syntax/Correct/Shift.tjp +4 -2
- data/test/TestSuite/Syntax/Correct/Simple.tjp +3 -1
- data/test/TestSuite/Syntax/Correct/StatusSheet.tjp +4 -2
- data/test/TestSuite/Syntax/Correct/String.tjp +3 -1
- data/test/TestSuite/Syntax/Correct/Supplement.tjp +3 -1
- data/test/TestSuite/Syntax/Correct/TaskPrefix.tjp +3 -2
- data/test/TestSuite/Syntax/Correct/TaskRoot.tjp +3 -1
- data/test/TestSuite/Syntax/Correct/TimeFrame.tjp +3 -1
- data/test/TestSuite/Syntax/Correct/TimeSheet1.tjp +4 -2
- data/test/TestSuite/Syntax/Correct/Vacation.tjp +5 -3
- data/test/TestSuite/Syntax/Correct/tutorial.tjp +23 -16
- data/test/TestSuite/Syntax/Errors/adopt_common_root.tjp +10 -0
- data/test/TestSuite/Syntax/Errors/adopt_duplicate_child.tjp +10 -0
- data/test/TestSuite/Syntax/Errors/adopt_duplicate_parent.tjp +10 -0
- data/test/TestSuite/{Scheduler/Errors/milestone_duration.tjp → Syntax/Errors/multiple_durations.tjp} +1 -1
- data/test/TestSuite/Syntax/Errors/operand_unkn_scen.tjp +6 -4
- data/test/TestSuite/Syntax/Errors/sorting_crit_exptd1.tjp +5 -3
- data/test/TestSuite/TimeSheets/dev2_mail1 +1 -1
- data/test/TestSuite/TimeSheets/dev2_mail2 +1 -1
- data/test/TestSuite/TimeSheets/run +2 -2
- data/test/TestSuite/TimeSheets/uu.txt +29 -0
- data/test/test_AlgorithmDiff.rb +139 -0
- data/test/test_BatchProcessor.rb +2 -1
- data/test/test_CSV-Reports.rb +30 -19
- data/test/test_CSVFile.rb +2 -1
- data/test/test_CollisionDetector.rb +2 -1
- data/test/test_Export-Reports.rb +128 -0
- data/test/test_Journal.rb +2 -1
- data/test/test_Limits.rb +4 -3
- data/test/test_LogicalExpression.rb +2 -1
- data/test/test_MacroTable.rb +8 -6
- data/test/test_Project.rb +2 -1
- data/test/test_ProjectFileScanner.rb +4 -3
- data/test/test_PropertySet.rb +2 -1
- data/test/test_Query.rb +3 -2
- data/test/test_RealFormat.rb +2 -1
- data/test/test_ReportGenerator.rb +3 -2
- data/test/test_RichText.rb +14 -3
- data/test/test_Scheduler.rb +2 -1
- data/test/test_ShiftAssignments.rb +3 -1
- data/test/test_SimpleQueryExpander.rb +3 -2
- data/test/test_Syntax.rb +2 -1
- data/test/test_TextFormatter.rb +2 -1
- data/test/test_TjTime.rb +15 -14
- data/test/test_TjpExample.rb +2 -1
- data/test/test_URLParameter.rb +2 -1
- data/test/test_UTF8String.rb +2 -1
- data/test/test_WorkingHours.rb +3 -2
- data/test/test_deep_copy.rb +2 -1
- metadata +250 -541
- data/README +0 -31
- data/benchmarks/allocatedSlots.csv +0 -334
- data/benchmarks/profile.clt +0 -42974
- data/benchmarks/profile.html +0 -61128
- data/doc/AppConfig.html +0 -1471
- data/doc/Arguments.html +0 -720
- data/doc/CHANGELOG.html +0 -1987
- data/doc/COPYING.html +0 -879
- data/doc/Object.html +0 -1056
- data/doc/README.html +0 -565
- data/doc/RuntimeConfig.html +0 -804
- data/doc/String.html +0 -913
- data/doc/TaskJuggler.html +0 -2512
- data/doc/TaskJuggler/Account.html +0 -733
- data/doc/TaskJuggler/AccountAttribute.html +0 -749
- data/doc/TaskJuggler/AccountScenario.html +0 -692
- data/doc/TaskJuggler/Allocation.html +0 -943
- data/doc/TaskJuggler/AllocationAttribute.html +0 -779
- data/doc/TaskJuggler/AttributeBase.html +0 -1308
- data/doc/TaskJuggler/AttributeDefinition.html +0 -795
- data/doc/TaskJuggler/AttributeOverwrite.html +0 -586
- data/doc/TaskJuggler/BatchProcessor.html +0 -1158
- data/doc/TaskJuggler/Booking.html +0 -839
- data/doc/TaskJuggler/BookingListAttribute.html +0 -749
- data/doc/TaskJuggler/BooleanAttribute.html +0 -749
- data/doc/TaskJuggler/CSVFile.html +0 -1108
- data/doc/TaskJuggler/CellSettingPattern.html +0 -680
- data/doc/TaskJuggler/CellSettingPatternList.html +0 -729
- data/doc/TaskJuggler/Charge.html +0 -757
- data/doc/TaskJuggler/ChargeListAttribute.html +0 -713
- data/doc/TaskJuggler/ChargeSet.html +0 -929
- data/doc/TaskJuggler/ChargeSetListAttribute.html +0 -758
- data/doc/TaskJuggler/CollisionDetector.html +0 -1069
- data/doc/TaskJuggler/ColumnListAttribute.html +0 -713
- data/doc/TaskJuggler/ColumnTable.html +0 -743
- data/doc/TaskJuggler/Daemon.html +0 -798
- data/doc/TaskJuggler/DataCache.html +0 -930
- data/doc/TaskJuggler/DataCacheEntry.html +0 -717
- data/doc/TaskJuggler/DateAttribute.html +0 -717
- data/doc/TaskJuggler/DefinitionListAttribute.html +0 -635
- data/doc/TaskJuggler/DependencyListAttribute.html +0 -753
- data/doc/TaskJuggler/DurationAttribute.html +0 -750
- data/doc/TaskJuggler/FileList.html +0 -731
- data/doc/TaskJuggler/FileRecord.html +0 -682
- data/doc/TaskJuggler/FixnumAttribute.html +0 -671
- data/doc/TaskJuggler/FlagListAttribute.html +0 -749
- data/doc/TaskJuggler/FloatAttribute.html +0 -713
- data/doc/TaskJuggler/FormatListAttribute.html +0 -677
- data/doc/TaskJuggler/GanttChart.html +0 -1467
- data/doc/TaskJuggler/GanttContainer.html +0 -925
- data/doc/TaskJuggler/GanttHeader.html +0 -928
- data/doc/TaskJuggler/GanttHeaderScaleItem.html +0 -742
- data/doc/TaskJuggler/GanttLine.html +0 -1305
- data/doc/TaskJuggler/GanttLoadStack.html +0 -808
- data/doc/TaskJuggler/GanttMilestone.html +0 -906
- data/doc/TaskJuggler/GanttRouter.html +0 -1118
- data/doc/TaskJuggler/GanttTaskBar.html +0 -927
- data/doc/TaskJuggler/HTMLDocument.html +0 -761
- data/doc/TaskJuggler/HTMLGraphics.html +0 -817
- data/doc/TaskJuggler/Interval.html +0 -1056
- data/doc/TaskJuggler/IntervalList.html +0 -777
- data/doc/TaskJuggler/IntervalListAttribute.html +0 -753
- data/doc/TaskJuggler/JobInfo.html +0 -923
- data/doc/TaskJuggler/Journal.html +0 -1158
- data/doc/TaskJuggler/JournalEntry.html +0 -821
- data/doc/TaskJuggler/JournalEntryList.html +0 -1071
- data/doc/TaskJuggler/KeywordArray.html +0 -676
- data/doc/TaskJuggler/KeywordDocumentation.html +0 -1838
- data/doc/TaskJuggler/Limits.html +0 -1016
- data/doc/TaskJuggler/Limits/Limit.html +0 -927
- data/doc/TaskJuggler/LimitsAttribute.html +0 -714
- data/doc/TaskJuggler/ListAttributeBase.html +0 -683
- data/doc/TaskJuggler/Log.html +0 -1143
- data/doc/TaskJuggler/LogFile.html +0 -960
- data/doc/TaskJuggler/LogicalAttribute.html +0 -740
- data/doc/TaskJuggler/LogicalExpression.html +0 -781
- data/doc/TaskJuggler/LogicalExpressionAttribute.html +0 -671
- data/doc/TaskJuggler/LogicalExpressionListAttribute.html +0 -671
- data/doc/TaskJuggler/LogicalFlag.html +0 -723
- data/doc/TaskJuggler/LogicalFunction.html +0 -1306
- data/doc/TaskJuggler/LogicalOperation.html +0 -1124
- data/doc/TaskJuggler/Macro.html +0 -688
- data/doc/TaskJuggler/MacroTable.html +0 -852
- data/doc/TaskJuggler/ManagerResponsibilities.html +0 -716
- data/doc/TaskJuggler/ManagerStatusRecord.html +0 -720
- data/doc/TaskJuggler/Message.html +0 -817
- data/doc/TaskJuggler/MessageHandler.html +0 -1036
- data/doc/TaskJuggler/Navigator.html +0 -922
- data/doc/TaskJuggler/NavigatorElement.html +0 -974
- data/doc/TaskJuggler/NikuProject.html +0 -704
- data/doc/TaskJuggler/NikuReport.html +0 -1449
- data/doc/TaskJuggler/NikuResource.html +0 -674
- data/doc/TaskJuggler/NodeListAttribute.html +0 -635
- data/doc/TaskJuggler/PlaceHolderCell.html +0 -728
- data/doc/TaskJuggler/ProcessIntercom.html +0 -997
- data/doc/TaskJuggler/ProcessIntercomIface.html +0 -753
- data/doc/TaskJuggler/Project.html +0 -3333
- data/doc/TaskJuggler/ProjectBroker.html +0 -1656
- data/doc/TaskJuggler/ProjectBrokerIface.html +0 -831
- data/doc/TaskJuggler/ProjectFileParser.html +0 -2033
- data/doc/TaskJuggler/ProjectFileScanner.html +0 -1816
- data/doc/TaskJuggler/ProjectRecord.html +0 -958
- data/doc/TaskJuggler/ProjectServer.html +0 -1229
- data/doc/TaskJuggler/ProjectServerIface.html +0 -848
- data/doc/TaskJuggler/PropertyAttribute.html +0 -671
- data/doc/TaskJuggler/PropertyList.html +0 -1379
- data/doc/TaskJuggler/PropertySet.html +0 -1799
- data/doc/TaskJuggler/PropertyTreeNode.html +0 -2579
- data/doc/TaskJuggler/Query.html +0 -1663
- data/doc/TaskJuggler/RTFHandlers.html +0 -644
- data/doc/TaskJuggler/RTFNavigator.html +0 -772
- data/doc/TaskJuggler/RTFQuery.html +0 -1040
- data/doc/TaskJuggler/RTFReport.html +0 -800
- data/doc/TaskJuggler/RTFReportLink.html +0 -792
- data/doc/TaskJuggler/RTFWithQuerySupport.html +0 -682
- data/doc/TaskJuggler/RealFormat.html +0 -785
- data/doc/TaskJuggler/RealFormatAttribute.html +0 -635
- data/doc/TaskJuggler/ReferenceAttribute.html +0 -824
- data/doc/TaskJuggler/Report.html +0 -1477
- data/doc/TaskJuggler/ReportBase.html +0 -1246
- data/doc/TaskJuggler/ReportContext.html +0 -816
- data/doc/TaskJuggler/ReportServer.html +0 -1048
- data/doc/TaskJuggler/ReportServerIface.html +0 -882
- data/doc/TaskJuggler/ReportServerRecord.html +0 -761
- data/doc/TaskJuggler/ReportServlet.html +0 -1024
- data/doc/TaskJuggler/ReportTable.html +0 -1159
- data/doc/TaskJuggler/ReportTableCell.html +0 -1646
- data/doc/TaskJuggler/ReportTableColumn.html +0 -870
- data/doc/TaskJuggler/ReportTableLegend.html +0 -1040
- data/doc/TaskJuggler/ReportTableLine.html +0 -1047
- data/doc/TaskJuggler/Resource.html +0 -972
- data/doc/TaskJuggler/ResourceListAttribute.html +0 -810
- data/doc/TaskJuggler/ResourceListRE.html +0 -717
- data/doc/TaskJuggler/ResourceScenario.html +0 -2599
- data/doc/TaskJuggler/RichText.html +0 -859
- data/doc/TaskJuggler/RichTextAttribute.html +0 -785
- data/doc/TaskJuggler/RichTextDocument.html +0 -1018
- data/doc/TaskJuggler/RichTextElement.html +0 -1754
- data/doc/TaskJuggler/RichTextFunctionExample.html +0 -779
- data/doc/TaskJuggler/RichTextFunctionHandler.html +0 -730
- data/doc/TaskJuggler/RichTextImage.html +0 -692
- data/doc/TaskJuggler/RichTextIntermediate.html +0 -1265
- data/doc/TaskJuggler/RichTextParser.html +0 -847
- data/doc/TaskJuggler/RichTextScanner.html +0 -1469
- data/doc/TaskJuggler/RichTextSnip.html +0 -980
- data/doc/TaskJuggler/RichTextSyntaxRules.html +0 -2018
- data/doc/TaskJuggler/Scenario.html +0 -636
- data/doc/TaskJuggler/ScenarioData.html +0 -818
- data/doc/TaskJuggler/ScenarioListAttribute.html +0 -713
- data/doc/TaskJuggler/Scoreboard.html +0 -1181
- data/doc/TaskJuggler/SheetHandlerBase.html +0 -1275
- data/doc/TaskJuggler/SheetReceiver.html +0 -1368
- data/doc/TaskJuggler/SheetSender.html +0 -1134
- data/doc/TaskJuggler/Shift.html +0 -731
- data/doc/TaskJuggler/ShiftAssignment.html +0 -988
- data/doc/TaskJuggler/ShiftAssignments.html +0 -1393
- data/doc/TaskJuggler/ShiftAssignmentsAttribute.html +0 -714
- data/doc/TaskJuggler/ShiftScenario.html +0 -762
- data/doc/TaskJuggler/SimpleQueryExpander.html +0 -713
- data/doc/TaskJuggler/SortListAttribute.html +0 -671
- data/doc/TaskJuggler/SourceFileInfo.html +0 -740
- data/doc/TaskJuggler/StatusSheetReceiver.html +0 -658
- data/doc/TaskJuggler/StatusSheetReport.html +0 -910
- data/doc/TaskJuggler/StatusSheetSender.html +0 -788
- data/doc/TaskJuggler/StringAttribute.html +0 -713
- data/doc/TaskJuggler/SymbolAttribute.html +0 -671
- data/doc/TaskJuggler/SyntaxReference.html +0 -1220
- data/doc/TaskJuggler/TOCEntry.html +0 -816
- data/doc/TaskJuggler/TSResourceRecord.html +0 -712
- data/doc/TaskJuggler/TSTaskRecord.html +0 -724
- data/doc/TaskJuggler/TableColumnDefinition.html +0 -928
- data/doc/TaskJuggler/TableOfContents.html +0 -770
- data/doc/TaskJuggler/TableReport.html +0 -2533
- data/doc/TaskJuggler/Task.html +0 -865
- data/doc/TaskJuggler/TaskDependency.html +0 -772
- data/doc/TaskJuggler/TaskListAttribute.html +0 -753
- data/doc/TaskJuggler/TaskListRE.html +0 -716
- data/doc/TaskJuggler/TaskScenario.html +0 -4959
- data/doc/TaskJuggler/TextFormatter.html +0 -953
- data/doc/TaskJuggler/TextParser.html +0 -1773
- data/doc/TaskJuggler/TextParser/Pattern.html +0 -1717
- data/doc/TaskJuggler/TextParser/Rule.html +0 -1399
- data/doc/TaskJuggler/TextParser/StackElement.html +0 -922
- data/doc/TaskJuggler/TextParser/State.html +0 -995
- data/doc/TaskJuggler/TextParser/StateTransition.html +0 -788
- data/doc/TaskJuggler/TextParser/TextParserResultArray.html +0 -691
- data/doc/TaskJuggler/TextParser/TokenDoc.html +0 -722
- data/doc/TaskJuggler/TextReport.html +0 -901
- data/doc/TaskJuggler/TextScanner.html +0 -1482
- data/doc/TaskJuggler/TextScanner/BufferStreamHandle.html +0 -641
- data/doc/TaskJuggler/TextScanner/FileStreamHandle.html +0 -707
- data/doc/TaskJuggler/TextScanner/MacroStackEntry.html +0 -704
- data/doc/TaskJuggler/TextScanner/StreamHandle.html +0 -1036
- data/doc/TaskJuggler/TimeSheet.html +0 -1232
- data/doc/TaskJuggler/TimeSheetReceiver.html +0 -655
- data/doc/TaskJuggler/TimeSheetRecord.html +0 -1395
- data/doc/TaskJuggler/TimeSheetReport.html +0 -991
- data/doc/TaskJuggler/TimeSheetSender.html +0 -680
- data/doc/TaskJuggler/TimeSheetSummary.html +0 -935
- data/doc/TaskJuggler/TimeSheets.html +0 -716
- data/doc/TaskJuggler/Tj3AppBase.html +0 -831
- data/doc/TaskJuggler/Tj3Client.html +0 -1477
- data/doc/TaskJuggler/Tj3Daemon.html +0 -884
- data/doc/TaskJuggler/Tj3SheetAppBase.html +0 -738
- data/doc/TaskJuggler/Tj3SsReceiver.html +0 -724
- data/doc/TaskJuggler/Tj3SsSender.html +0 -757
- data/doc/TaskJuggler/Tj3TsReceiver.html +0 -724
- data/doc/TaskJuggler/Tj3TsSender.html +0 -744
- data/doc/TaskJuggler/Tj3TsSummary.html +0 -752
- data/doc/TaskJuggler/TjException.html +0 -672
- data/doc/TaskJuggler/TjTime.html +0 -2807
- data/doc/TaskJuggler/TjpExample.html +0 -877
- data/doc/TaskJuggler/TjpExportRE.html +0 -1598
- data/doc/TaskJuggler/TjpSyntaxRules.html +0 -13611
- data/doc/TaskJuggler/URLParameter.html +0 -671
- data/doc/TaskJuggler/UserManual.html +0 -1188
- data/doc/TaskJuggler/VimSyntax.html +0 -1044
- data/doc/TaskJuggler/WebServer.html +0 -737
- data/doc/TaskJuggler/WelcomePage.html +0 -769
- data/doc/TaskJuggler/WorkingHours.html +0 -1207
- data/doc/TaskJuggler/WorkingHoursAttribute.html +0 -736
- data/doc/TaskJuggler/XMLBlob.html +0 -687
- data/doc/TaskJuggler/XMLComment.html +0 -682
- data/doc/TaskJuggler/XMLDocument.html +0 -774
- data/doc/TaskJuggler/XMLElement.html +0 -942
- data/doc/TaskJuggler/XMLNamedText.html +0 -643
- data/doc/TaskJuggler/XMLText.html +0 -697
- data/doc/index.html +0 -4127
- data/doc/lib/AccountScenario_rb.html +0 -69
- data/doc/lib/Account_rb.html +0 -71
- data/doc/lib/Allocation_rb.html +0 -71
- data/doc/lib/AppConfig_rb.html +0 -71
- data/doc/lib/AttributeBase_rb.html +0 -69
- data/doc/lib/AttributeDefinition_rb.html +0 -67
- data/doc/lib/Attributes_rb.html +0 -83
- data/doc/lib/BatchProcessor_rb.html +0 -71
- data/doc/lib/Booking_rb.html +0 -67
- data/doc/lib/ChargeSet_rb.html +0 -69
- data/doc/lib/Charge_rb.html +0 -69
- data/doc/lib/DataCache_rb.html +0 -71
- data/doc/lib/FileList_rb.html +0 -67
- data/doc/lib/HTMLDocument_rb.html +0 -69
- data/doc/lib/IntervalList_rb.html +0 -69
- data/doc/lib/Interval_rb.html +0 -69
- data/doc/lib/Journal_rb.html +0 -67
- data/doc/lib/KeywordArray_rb.html +0 -67
- data/doc/lib/KeywordDocumentation_rb.html +0 -77
- data/doc/lib/Limits_rb.html +0 -69
- data/doc/lib/LogFile_rb.html +0 -69
- data/doc/lib/Log_rb.html +0 -71
- data/doc/lib/LogicalExpression_rb.html +0 -73
- data/doc/lib/LogicalFunction_rb.html +0 -69
- data/doc/lib/LogicalOperation_rb.html +0 -69
- data/doc/lib/MacroTable_rb.html +0 -73
- data/doc/lib/MessageHandler_rb.html +0 -67
- data/doc/lib/ProjectFileParser_rb.html +0 -77
- data/doc/lib/ProjectFileScanner_rb.html +0 -69
- data/doc/lib/Project_rb.html +0 -113
- data/doc/lib/PropertyList_rb.html +0 -67
- data/doc/lib/PropertySet_rb.html +0 -71
- data/doc/lib/PropertyTreeNode_rb.html +0 -67
- data/doc/lib/Query_rb.html +0 -69
- data/doc/lib/RTFHandlers_rb.html +0 -75
- data/doc/lib/RTFNavigator_rb.html +0 -73
- data/doc/lib/RTFQuery_rb.html +0 -73
- data/doc/lib/RTFReportLink_rb.html +0 -75
- data/doc/lib/RTFReport_rb.html +0 -71
- data/doc/lib/RTFWithQuerySupport_rb.html +0 -69
- data/doc/lib/RealFormat_rb.html +0 -67
- data/doc/lib/ResourceScenario_rb.html +0 -69
- data/doc/lib/Resource_rb.html +0 -71
- data/doc/lib/RichTextDocument_rb.html +0 -73
- data/doc/lib/RichTextElement_rb.html +0 -75
- data/doc/lib/RichTextFunctionExample_rb.html +0 -73
- data/doc/lib/RichTextFunctionHandler_rb.html +0 -67
- data/doc/lib/RichTextParser_rb.html +0 -73
- data/doc/lib/RichTextScanner_rb.html +0 -71
- data/doc/lib/RichTextSnip_rb.html +0 -71
- data/doc/lib/RichTextSyntaxRules_rb.html +0 -67
- data/doc/lib/RichText_rb.html +0 -73
- data/doc/lib/RuntimeConfig_rb.html +0 -69
- data/doc/lib/ScenarioData_rb.html +0 -71
- data/doc/lib/Scenario_rb.html +0 -69
- data/doc/lib/Scoreboard_rb.html +0 -69
- data/doc/lib/SheetHandlerBase_rb.html +0 -75
- data/doc/lib/SheetReceiver_rb.html +0 -79
- data/doc/lib/SheetSender_rb.html +0 -77
- data/doc/lib/ShiftAssignments_rb.html +0 -71
- data/doc/lib/ShiftScenario_rb.html +0 -69
- data/doc/lib/Shift_rb.html +0 -71
- data/doc/lib/SimpleQueryExpander_rb.html +0 -69
- data/doc/lib/SourceFileInfo_rb.html +0 -67
- data/doc/lib/StatusSheetReceiver_rb.html +0 -69
- data/doc/lib/StatusSheetSender_rb.html +0 -69
- data/doc/lib/SyntaxReference_rb.html +0 -75
- data/doc/lib/TOCEntry_rb.html +0 -71
- data/doc/lib/TableColumnDefinition_rb.html +0 -67
- data/doc/lib/TableOfContents_rb.html +0 -71
- data/doc/lib/TaskDependency_rb.html +0 -67
- data/doc/lib/TaskJuggler_rb.html +0 -75
- data/doc/lib/TaskScenario_rb.html +0 -71
- data/doc/lib/Task_rb.html +0 -71
- data/doc/lib/TextFormatter_rb.html +0 -69
- data/doc/lib/TextParser/Pattern_rb.html +0 -71
- data/doc/lib/TextParser/Rule_rb.html +0 -69
- data/doc/lib/TextParser/StackElement_rb.html +0 -69
- data/doc/lib/TextParser/State_rb.html +0 -67
- data/doc/lib/TextParser/TokenDoc_rb.html +0 -67
- data/doc/lib/TextParser_rb.html +0 -79
- data/doc/lib/TextScanner_rb.html +0 -83
- data/doc/lib/TimeSheetReceiver_rb.html +0 -69
- data/doc/lib/TimeSheetSender_rb.html +0 -69
- data/doc/lib/TimeSheetSummary_rb.html +0 -69
- data/doc/lib/TimeSheets_rb.html +0 -67
- data/doc/lib/Tj3AppBase_rb.html +0 -79
- data/doc/lib/Tj3Config_rb.html +0 -71
- data/doc/lib/Tj3SheetAppBase_rb.html +0 -69
- data/doc/lib/TjException_rb.html +0 -67
- data/doc/lib/TjTime_rb.html +0 -71
- data/doc/lib/TjpExample_rb.html +0 -69
- data/doc/lib/TjpSyntaxRules_rb.html +0 -67
- data/doc/lib/URLParameter_rb.html +0 -69
- data/doc/lib/UTF8String_rb.html +0 -67
- data/doc/lib/UserManual_rb.html +0 -79
- data/doc/lib/VimSyntax_rb.html +0 -69
- data/doc/lib/WorkingHours_rb.html +0 -71
- data/doc/lib/XMLDocument_rb.html +0 -69
- data/doc/lib/XMLElement_rb.html +0 -69
- data/doc/lib/daemon/Daemon_rb.html +0 -69
- data/doc/lib/daemon/ProcessIntercom_rb.html +0 -71
- data/doc/lib/daemon/ProjectBroker_rb.html +0 -83
- data/doc/lib/daemon/ProjectServer_rb.html +0 -85
- data/doc/lib/daemon/ReportServer_rb.html +0 -73
- data/doc/lib/daemon/ReportServlet_rb.html +0 -69
- data/doc/lib/daemon/WebServer_rb.html +0 -81
- data/doc/lib/daemon/WelcomePage_rb.html +0 -71
- data/doc/lib/deep_copy_rb.html +0 -67
- data/doc/lib/exchangebug_rb.html +0 -69
- data/doc/lib/reports/CSVFile_rb.html +0 -69
- data/doc/lib/reports/CollisionDetector_rb.html +0 -69
- data/doc/lib/reports/ColumnTable_rb.html +0 -69
- data/doc/lib/reports/GanttChart_rb.html +0 -75
- data/doc/lib/reports/GanttContainer_rb.html +0 -69
- data/doc/lib/reports/GanttHeaderScaleItem_rb.html +0 -67
- data/doc/lib/reports/GanttHeader_rb.html +0 -69
- data/doc/lib/reports/GanttLine_rb.html +0 -79
- data/doc/lib/reports/GanttLoadStack_rb.html +0 -69
- data/doc/lib/reports/GanttMilestone_rb.html +0 -69
- data/doc/lib/reports/GanttRouter_rb.html +0 -69
- data/doc/lib/reports/GanttTaskBar_rb.html +0 -69
- data/doc/lib/reports/HTMLGraphics_rb.html +0 -67
- data/doc/lib/reports/Navigator_rb.html +0 -69
- data/doc/lib/reports/NikuReport_rb.html +0 -71
- data/doc/lib/reports/ReportBase_rb.html +0 -67
- data/doc/lib/reports/ReportContext_rb.html +0 -67
- data/doc/lib/reports/ReportTableCell_rb.html +0 -67
- data/doc/lib/reports/ReportTableColumn_rb.html +0 -67
- data/doc/lib/reports/ReportTableLegend_rb.html +0 -67
- data/doc/lib/reports/ReportTableLine_rb.html +0 -69
- data/doc/lib/reports/ReportTable_rb.html +0 -71
- data/doc/lib/reports/Report_rb.html +0 -93
- data/doc/lib/reports/ResourceListRE_rb.html +0 -75
- data/doc/lib/reports/StatusSheetReport_rb.html +0 -69
- data/doc/lib/reports/TableReport_rb.html +0 -77
- data/doc/lib/reports/TaskListRE_rb.html +0 -75
- data/doc/lib/reports/TextReport_rb.html +0 -69
- data/doc/lib/reports/TimeSheetReport_rb.html +0 -69
- data/doc/lib/reports/TjpExportRE_rb.html +0 -69
- data/doc/lib/ruby-signal-bug_rb.html +0 -69
- data/doc/lib/test_rb.html +0 -73
- data/doc/lib/tj3_rb.html +0 -75
- data/doc/lib/tj3client_rb.html +0 -75
- data/doc/lib/tj3d_rb.html +0 -75
- data/doc/lib/tj3man_rb.html +0 -75
- data/doc/lib/tj3ss_receiver_rb.html +0 -71
- data/doc/lib/tj3ss_sender_rb.html +0 -71
- data/doc/lib/tj3ts_receiver_rb.html +0 -71
- data/doc/lib/tj3ts_sender_rb.html +0 -71
- data/doc/lib/tj3ts_summary_rb.html +0 -71
- data/doc/rdoc.css +0 -706
- data/lib/test.rb +0 -19
- data/setup.rb +0 -1585
- data/test/TestSuite/CSV-Reports/genrefs +0 -6
- data/test/TestSuite/Scheduler/Correct/Allocate.html +0 -2922
- data/test/TestSuite/Scheduler/Correct/Booking2.html +0 -603
- data/test/TestSuite/Scheduler/Correct/Container.html +0 -513
- data/test/TestSuite/Scheduler/Correct/Precedes.html +0 -834
- data/test/TestSuite/Scheduler/Correct/Shift.html +0 -429
- data/test/TestSuite/Scheduler/Correct/Shift2.html +0 -476
- data/test/TestSuite/Scheduler/Correct/TimeSheet2.html +0 -108
- data/test/TestSuite/Scheduler/Errors/task_underspecified_2.tjp +0 -8
- data/test/TestSuite/Syntax/Correct/ReleasePlan.html +0 -160
- data/test/TestSuite/Syntax/Correct/ResourcePrefix.html +0 -32
- data/test/TestSuite/Syntax/Correct/ResourceRoot.html +0 -108
- data/test/TestSuite/Syntax/Correct/niku.html +0 -67
data/CHANGELOG
CHANGED
@@ -1,3 +1,118 @@
|
|
1
|
+
= Release 0.0.10 (2011-01-31)
|
2
|
+
|
3
|
+
* Bumping version to 0.0.10
|
4
|
+
|
5
|
+
0.0.9 was a no-go version.
|
6
|
+
* Bumping version to 0.0.9
|
7
|
+
* Fix entry scripts.
|
8
|
+
|
9
|
+
= Release 0.0.9 (2011-01-30)
|
10
|
+
|
11
|
+
* Bumping version to 0.0.9
|
12
|
+
* Executable name and primary Ruby file name should always match.
|
13
|
+
* Adding a .gitignore file.
|
14
|
+
* Add development dependencies to gem spec file.
|
15
|
+
* Fix alertmessages. Don't show overriden old alerts again.
|
16
|
+
|
17
|
+
If a child had an alert, the parent reset it and another child added
|
18
|
+
another green message after that, the old alert was showing up again.
|
19
|
+
* Fixing dependency symbols in precursor and follower lists.
|
20
|
+
* Supporting listmode option for precursor and follower columns as well.
|
21
|
+
* Properly handle part-time workers in Clarity reports.
|
22
|
+
* Fixing some layout issues in the manual.
|
23
|
+
* Some code consolidation.
|
24
|
+
* Include all Clarity projects in Niku reports.
|
25
|
+
|
26
|
+
Also add projects with 0 effort so they show up in the actual
|
27
|
+
reporting page of Clarity.
|
28
|
+
* Make 'listmode' options a power of 2.
|
29
|
+
* Make 'celltext' also work for calendar column cells.
|
30
|
+
* Improving the cell content shortener.
|
31
|
+
* Adding new attributes 'listtype' and 'listmode'.
|
32
|
+
|
33
|
+
These new attributes can be used to customize the lists in report
|
34
|
+
table cells.
|
35
|
+
* Use accurate width even with icons and tooltips in the table.
|
36
|
+
* Column width is now a fixed measure, not a minimum measure.
|
37
|
+
* Adding a default landing page for built-in web server.
|
38
|
+
* Clarify usage of bookings and scenarios in the manual.
|
39
|
+
* Update copyright to 2011.
|
40
|
+
* Make web server work again.
|
41
|
+
|
42
|
+
Reported-by: Bernhard Wiedemann <bwiedemann@gmx.de>
|
43
|
+
* Fix crash for "<-query scenario='actual' attribute=...->" queries.
|
44
|
+
|
45
|
+
Reported-by: Patrick Berry <postgradpat@gmail.com>
|
46
|
+
* Fix time-off highlighting at report boundaries.
|
47
|
+
|
48
|
+
Reported-by: Tom Schutter <t.schutter@comcast.net>
|
49
|
+
* vacation is a cumulative attribute. Don't issue a warning for multiple use.
|
50
|
+
* Fixing "Overwriting a previously provided value" crashes.
|
51
|
+
|
52
|
+
Reported-by: Bernhard Wiedemann <bwiedemann@gmx.de>
|
53
|
+
* Fixing progress meter off-by-one bug.
|
54
|
+
|
55
|
+
For long labels the progress meter started one char too far right.
|
56
|
+
|
57
|
+
Reported-by: Tom Schutter <tschutter@corelogic.com>
|
58
|
+
* Fix handling of container tasks with dependencies.
|
59
|
+
|
60
|
+
This bug was introduced by the recent onstart/onend changes.
|
61
|
+
|
62
|
+
Reported-by: Sam Elstob <samelstob@gmail.com>
|
63
|
+
* Prevent crashes in report generator when using -f option with tj3.
|
64
|
+
* Add error message for reports without a file name.
|
65
|
+
* Second part of onstart/onend fixes.
|
66
|
+
* Fix serious problem with 'onstart' and 'onend' dependencies.
|
67
|
+
|
68
|
+
The parser was too permissive and some illegal cases slipped through.
|
69
|
+
Tasks with start-start deps must be ASAP and end-end tasks must be
|
70
|
+
ALAP.
|
71
|
+
|
72
|
+
Reported-by: Bernd Wiedemann <bwiedemann@gmx.de>
|
73
|
+
* Add warning if an attribute is used twice in the same context.
|
74
|
+
|
75
|
+
This is to prevent accidental overwrites of attributes in bigger
|
76
|
+
scopes. This will also alert users that first assign a value to a
|
77
|
+
derived scenario and then to the parent scenario.
|
78
|
+
* Fixing a serious flaw in the handling of inherited scenario specific attributes.
|
79
|
+
|
80
|
+
This fix will potentially change the result of existing projects that
|
81
|
+
use inheritable attributes in combination with derived scenarios. The
|
82
|
+
handling of these attributes was broken and derived scenarios used
|
83
|
+
wrong attribute values.
|
84
|
+
* Refactored the ProjectBroker API to make it cleaner.
|
85
|
+
* caption, epilog, headline, prolog and title are now inheritable report attributes
|
86
|
+
* tj3client now supports a --format option to request a certain output format.
|
87
|
+
* Properly limit bookings in export report to report period.
|
88
|
+
|
89
|
+
Reported-by: Magnus Wiklund (wiklund.magnus@comcast.net)
|
90
|
+
* Adding spec for ProjectBrowser.
|
91
|
+
|
92
|
+
Just a first draft.
|
93
|
+
* Added a rake task to run the RSpec tests.
|
94
|
+
* Fixing completion bars in Gantt charts.
|
95
|
+
|
96
|
+
The bars were showing random values instead of the correct completion
|
97
|
+
degree.
|
98
|
+
* Show off-duty periods for task lines in Gantt charts.
|
99
|
+
* Don't show global working hour zones for group resources in Gantt
|
100
|
+
charts.
|
101
|
+
* Adding more examples for limits to the manual.
|
102
|
+
* Fix a typo in the manual.
|
103
|
+
|
104
|
+
Added some comments to the code.
|
105
|
+
* Explaining use of tool tips in the tutorial.
|
106
|
+
* Fixing 'taskprefix' attribute for include files.
|
107
|
+
|
108
|
+
Reported-by: Sam Elstob <samelstob@gmail.com>
|
109
|
+
* Ensure deterministic order of projects and resources in Niku reports.
|
110
|
+
* Adding test case for niku reports.
|
111
|
+
* Move CSV reference reports into refs directory.
|
112
|
+
* Include vacation time for each resource in Niku reports.
|
113
|
+
* Generate warnings if a non-supported format is requested for a report.
|
114
|
+
* Show releases for last to first in CHANGELOG
|
115
|
+
|
1
116
|
= Release 0.0.8 (2010-11-24)
|
2
117
|
|
3
118
|
* Bumping version to 0.0.8
|
data/README.rdoc
ADDED
@@ -0,0 +1,105 @@
|
|
1
|
+
= About {TaskJuggler III}[http://www.taskjuggler.org]
|
2
|
+
|
3
|
+
TaskJuggler is a modern and powerful, Free and Open Source Software project
|
4
|
+
management tool. Its new approach to project planing and tracking is more
|
5
|
+
flexible and superior to the commonly used Gantt chart editing tools.
|
6
|
+
|
7
|
+
TaskJuggler is project management software for serious project managers. It
|
8
|
+
covers the complete spectrum of project management tasks from the first idea
|
9
|
+
to the completion of the project. It assists you during project scoping,
|
10
|
+
resource assignment, cost and revenue planing, risk and communication
|
11
|
+
management.
|
12
|
+
|
13
|
+
TaskJuggler provides an optimizing scheduler that computes your project time
|
14
|
+
lines and resource assignments based on the project outline and the
|
15
|
+
constraints that you have provided. The built-in resource balancer and
|
16
|
+
consistency checker offload you from having to worry about irrelevant details
|
17
|
+
and ring the alarm if the project gets out of hand. The flexible
|
18
|
+
as-many-details-as-necessary approach allows you to plan your project as you
|
19
|
+
go, making it also ideal for new management strategies such as Extreme
|
20
|
+
Programming and Agile Project Management.
|
21
|
+
|
22
|
+
If you are about to build a skyscraper or just want to put together the
|
23
|
+
release schedule of your open source project, TaskJuggler is the right
|
24
|
+
tool for you. If you just want to draw nice looking Gantt charts to impress
|
25
|
+
your boss or your investors, TaskJuggler might not be right for you. You
|
26
|
+
can of course create nice looking Gantt charts. But it takes a little more
|
27
|
+
effort to master its power. If you are up for this, TaskJuggler will
|
28
|
+
become a companion that you don't want to miss anymore.
|
29
|
+
|
30
|
+
TaskJuggler is written in {Ruby}[http://www.ruby-lang.org/en/] and should
|
31
|
+
be easily installable and usable on all popular operating systems. It may
|
32
|
+
sound surprising at first, but this software does not need a graphical user
|
33
|
+
interface. A command shell, a plain text editor (no word processor!) and a web
|
34
|
+
browser is all you need for your work.
|
35
|
+
|
36
|
+
TaskJuggler has not yet been released as a stable version. The primary
|
37
|
+
reason is that we don't want to freeze the syntax before it has been used by a
|
38
|
+
larger audience. By now, changes should be small, but we cannot yet rule out
|
39
|
+
minor compatibility issues when upgrading to a newer version. We also have a
|
40
|
+
fairly small test suite. It's quite possible, that you will run into a bug or
|
41
|
+
two. Please report it into our {issue
|
42
|
+
tracker}[https://github.com/taskjuggler/TaskJuggler/issues].
|
43
|
+
|
44
|
+
= Features and Highlights
|
45
|
+
|
46
|
+
* Manages tasks, resources and accounts of your project
|
47
|
+
* Automatic resource leveling and tasks conflict resolution
|
48
|
+
* Comprehensive and flexible reports so you can find the information you need when you need it
|
49
|
+
* Project tracking and status reporting with dashboard support
|
50
|
+
* Time and status sheet reporting infrastructure
|
51
|
+
* Unlimited number of scenarios (baselines) of the same project for what-if analysis
|
52
|
+
* CSV data export for exchange with Office Suites
|
53
|
+
* Projects can be combined to larger projects
|
54
|
+
* Multiple project managers can work on the same project
|
55
|
+
* Flexible working hours and vacation handling
|
56
|
+
* Support for shift working
|
57
|
+
* Multiple time zone support
|
58
|
+
* Tasks may have initial costs, finishing costs
|
59
|
+
* Resources may have running costs
|
60
|
+
* Support for profit/loss analysis
|
61
|
+
* HTML reports for Web based communication
|
62
|
+
* Built-in web server for dynamic and interactive reports
|
63
|
+
* Powerful project description syntax with macro support
|
64
|
+
* Support for central resource allocation database
|
65
|
+
* Scales well on multi-core or multi-CPU systems
|
66
|
+
* Runs on all Linux, Unix, Windows, MacOS and several other operating systems
|
67
|
+
* Simple installation
|
68
|
+
|
69
|
+
= Installation
|
70
|
+
|
71
|
+
Installation instructions can be found {here}[http://www.taskjuggler.org/tj3/manual/Installation.html#Installation].
|
72
|
+
|
73
|
+
= Introduction and Tutorial
|
74
|
+
|
75
|
+
To learn more about how to use TaskJuggler please see the {user
|
76
|
+
manual}[http://www.taskjuggler.org/tj3/manual/index.html]. It also contains a
|
77
|
+
{tutorial}[http://www.taskjuggler.org/tj3/manual/Tutorial.html#The_Tutorial_Your_first_Project]
|
78
|
+
to get you started. It will tell you how to generate HTML reports
|
79
|
+
like {these}[http://www.taskjuggler.org/tj3/examples/Overview.html]
|
80
|
+
from such a {project
|
81
|
+
description}[http://www.taskjuggler.org/tj3/examples/tutorial.tjp].
|
82
|
+
|
83
|
+
= Getting Help and reporting Bugs
|
84
|
+
|
85
|
+
There are several mailing list for TaskJuggler users and developers.
|
86
|
+
Please see {this page}[http://www.taskjuggler.org/forum.php] for
|
87
|
+
details. If you have a question about TaskJuggler usage, the user
|
88
|
+
list is the best place to go. Please remain subscribed and help other
|
89
|
+
users when you get more proficient in TaskJuggler.
|
90
|
+
|
91
|
+
If you think that you have found a bug in the software, please the
|
92
|
+
the {bug reporting
|
93
|
+
guidelines}[http://www.taskjuggler.org/tj3/manual/Reporting_Bugs.html#Reporting_Bugs_and_Sending_Feedback].
|
94
|
+
|
95
|
+
= Copyright and License
|
96
|
+
|
97
|
+
TaskJuggler is (c) 2006, 2007, 2008, 2009, 2010, 2011 by Chris Schlaeger <chris@linux.com>
|
98
|
+
|
99
|
+
This program is free software; you can redistribute it and/or modify
|
100
|
+
it under the terms of {version 2 of the GNU General Public
|
101
|
+
License}[http://www.gnu.org/licenses/old-licenses/gpl-2.0.html] as
|
102
|
+
published by the Free Software Foundation. You accept the terms of
|
103
|
+
this license by distributing or using this software.
|
104
|
+
|
105
|
+
TaskJuggler[http://www.taskjuggler.org] is a trademark of Chris Schlaeger.
|
data/examples/tutorial.tjp
CHANGED
@@ -6,6 +6,9 @@
|
|
6
6
|
* description of the various syntax elements.
|
7
7
|
*/
|
8
8
|
project acso "Accounting Software" 2002-01-16 +4m {
|
9
|
+
# Set the default time zone for the project. If not specified, UTC
|
10
|
+
# is used.
|
11
|
+
timezone "Europe/Paris"
|
9
12
|
# Hide the clock time. Only show the date.
|
10
13
|
timeformat "%Y-%m-%d"
|
11
14
|
# Use US format for numbers
|
@@ -92,10 +95,10 @@ resource misc "The Others" {
|
|
92
95
|
limits { dailymax 6.4h }
|
93
96
|
rate 310.0
|
94
97
|
}
|
95
|
-
resource doc "Dim Sung" {
|
98
|
+
resource doc "Dim Sung" {
|
96
99
|
email "sung@crappysoftware.com"
|
97
100
|
Phone "x482"
|
98
|
-
rate 300.0
|
101
|
+
rate 300.0
|
99
102
|
vacation 2002-03-11 - 2002-03-16
|
100
103
|
}
|
101
104
|
|
@@ -159,7 +162,7 @@ task AcSo "Accounting Software" {
|
|
159
162
|
details -8<-
|
160
163
|
We have already contacted the vendor and are now waiting for
|
161
164
|
their advise.
|
162
|
-
->8-
|
165
|
+
->8-
|
163
166
|
}
|
164
167
|
}
|
165
168
|
|
@@ -242,7 +245,9 @@ task AcSo "Accounting Software" {
|
|
242
245
|
task start "Project start" {
|
243
246
|
# A task that has no duration is a milestone. It only needs a
|
244
247
|
# start or end criterion. All other tasks depend on this task.
|
245
|
-
|
248
|
+
# Here we use the built-in macro ${projectstart} to align the
|
249
|
+
# start of the task with the above specified project time frame.
|
250
|
+
start ${projectstart}
|
246
251
|
# For some reason the actual start of the project got delayed.
|
247
252
|
# We record this, so that we can compare the planned run to the
|
248
253
|
# delayed run of the project.
|
@@ -294,15 +299,15 @@ macro TaskTip [
|
|
294
299
|
'''End: ''' <-query attribute='end'->
|
295
300
|
----
|
296
301
|
'''Resources:'''
|
297
|
-
|
302
|
+
|
298
303
|
<-query attribute='resources'->
|
299
304
|
----
|
300
305
|
'''Precursors: '''
|
301
|
-
|
306
|
+
|
302
307
|
<-query attribute='precursors'->
|
303
308
|
----
|
304
309
|
'''Followers: '''
|
305
|
-
|
310
|
+
|
306
311
|
<-query attribute='followers'->
|
307
312
|
->8-
|
308
313
|
]
|
@@ -330,7 +335,7 @@ textreport frame "" {
|
|
330
335
|
<[report id="status.ongoing"]>
|
331
336
|
----
|
332
337
|
<[report id="status.future"]>
|
333
|
-
->8-
|
338
|
+
->8-
|
334
339
|
}
|
335
340
|
|
336
341
|
textreport development "Development" {
|
@@ -359,13 +364,13 @@ textreport frame "" {
|
|
359
364
|
taskreport overview "" {
|
360
365
|
header -8<-
|
361
366
|
=== Project Overview ===
|
362
|
-
|
367
|
+
|
363
368
|
The project is structured into 3 phases.
|
364
|
-
|
369
|
+
|
365
370
|
# Specification
|
366
371
|
# <-reportlink id='frame.development'->
|
367
372
|
# Testing
|
368
|
-
|
373
|
+
|
369
374
|
=== Original Project Plan ===
|
370
375
|
->8-
|
371
376
|
columns hierarchindex,
|
@@ -384,9 +389,9 @@ taskreport overview "" {
|
|
384
389
|
|
385
390
|
All project phases are properly staffed. See [[ResourceGraph]] for
|
386
391
|
detailed resource allocations.
|
387
|
-
|
392
|
+
|
388
393
|
=== Current Status ===
|
389
|
-
|
394
|
+
|
390
395
|
The project started off with a delay of 4 days. This slightly affected
|
391
396
|
the original schedule. See [[Deliveries]] for the impact on the
|
392
397
|
delivery dates.
|
@@ -408,12 +413,12 @@ taskreport status "" {
|
|
408
413
|
alert { tooltip plan.journal
|
409
414
|
!= '' "<-query attribute='journal'->" width 150 },
|
410
415
|
status { width 150 }
|
411
|
-
scenarios delayed
|
416
|
+
scenarios delayed
|
412
417
|
|
413
418
|
taskreport dashboard "" {
|
414
419
|
headline "Project Dashboard (<-query attribute='now'->)"
|
415
420
|
columns name { title "Task" ${AlertColor} width 200},
|
416
|
-
resources { width 200 ${AlertColor}
|
421
|
+
resources { width 200 ${AlertColor}
|
417
422
|
listtype bullets listmode 2
|
418
423
|
start ${projectstart} end ${projectend} },
|
419
424
|
alerttrend { title "Trend" ${AlertColor} width 50 },
|
@@ -451,7 +456,7 @@ taskreport development "" {
|
|
451
456
|
taskreport deliveries "" {
|
452
457
|
headline "Project Deliverables"
|
453
458
|
columns hierarchindex, name, start, end, note { width 150 }, complete,
|
454
|
-
chart { ${TaskTip} }
|
459
|
+
chart { ${TaskTip} }
|
455
460
|
taskroot AcSo.deliveries
|
456
461
|
hideresource 1
|
457
462
|
scenarios plan, delayed
|
data/gem_spec.rb
CHANGED
@@ -0,0 +1,311 @@
|
|
1
|
+
#!/usr/bin/env ruby -w
|
2
|
+
# encoding: UTF-8
|
3
|
+
#
|
4
|
+
# = AccountScenario.rb -- The TaskJuggler III Project Management Software
|
5
|
+
#
|
6
|
+
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011
|
7
|
+
# by Chris Schlaeger <chris@linux.com>
|
8
|
+
#
|
9
|
+
# This program is free software; you can redistribute it and/or modify
|
10
|
+
# it under the terms of version 2 of the GNU General Public License as
|
11
|
+
# published by the Free Software Foundation.
|
12
|
+
#
|
13
|
+
|
14
|
+
# This class is an implementation of the classic UNIX diff functionality. It's
|
15
|
+
# based on an original implementation by Lars Christensen, which based his
|
16
|
+
# version on the Perl Algorithm::Diff implementation. This is largly a
|
17
|
+
# from-scratch implementation that tries to have a less intrusive and more
|
18
|
+
# user-friendly interface. But some code fragments are very similar to the
|
19
|
+
# origninal and are copyright (C) 2001 Lars Christensen.
|
20
|
+
class Diff
|
21
|
+
|
22
|
+
# A Hunk stores all information about a contiguous change of the destination
|
23
|
+
# list. It stores the inserted and deleted values as well as their positions
|
24
|
+
# in the A and B list.
|
25
|
+
class Hunk
|
26
|
+
|
27
|
+
attr_reader :insertValues, :deleteValues
|
28
|
+
attr_accessor :aIdx, :bIdx
|
29
|
+
|
30
|
+
# Create a new Hunk. _aIdx_ is the index in the A list. _bIdx_ is the
|
31
|
+
# index in the B list.
|
32
|
+
def initialize(aIdx, bIdx)
|
33
|
+
@aIdx = aIdx
|
34
|
+
# A list of values to be deleted from the A list starting at aIdx.
|
35
|
+
@deleteValues = []
|
36
|
+
|
37
|
+
@bIdx = bIdx
|
38
|
+
# A list of values to be inserted into the B list at bIdx.
|
39
|
+
@insertValues = []
|
40
|
+
end
|
41
|
+
|
42
|
+
# Has the Hunk any values to insert?
|
43
|
+
def insert?
|
44
|
+
!@insertValues.empty?
|
45
|
+
end
|
46
|
+
|
47
|
+
# Has the Hunk any values to be deleted?
|
48
|
+
def delete?
|
49
|
+
!@deleteValues.empty?
|
50
|
+
end
|
51
|
+
|
52
|
+
def to_s
|
53
|
+
str = ''
|
54
|
+
showSeparator = false
|
55
|
+
if insert? && delete?
|
56
|
+
str << "#{aRange}c#{bRange}\n"
|
57
|
+
showSeparator = true
|
58
|
+
elsif insert?
|
59
|
+
str << "#{aIdx}a#{bRange}\n"
|
60
|
+
else
|
61
|
+
str << "#{aRange}d#{bIdx}\n"
|
62
|
+
end
|
63
|
+
|
64
|
+
@deleteValues.each { |value| str << "< #{value}\n" }
|
65
|
+
str << "---\n" if showSeparator
|
66
|
+
@insertValues.each { |value| str << "> #{value}\n" }
|
67
|
+
|
68
|
+
str
|
69
|
+
end
|
70
|
+
|
71
|
+
def inspect
|
72
|
+
puts to_s
|
73
|
+
end
|
74
|
+
|
75
|
+
private
|
76
|
+
|
77
|
+
def aRange
|
78
|
+
range(@aIdx + 1, @aIdx + @deleteValues.length)
|
79
|
+
end
|
80
|
+
|
81
|
+
def bRange
|
82
|
+
range(@bIdx + 1, @bIdx + @insertValues.length)
|
83
|
+
end
|
84
|
+
|
85
|
+
def range(startIdx, endIdx)
|
86
|
+
if (startIdx == endIdx)
|
87
|
+
"#{startIdx}"
|
88
|
+
else
|
89
|
+
"#{startIdx},#{endIdx}"
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
end
|
94
|
+
|
95
|
+
# Create a new Diff between the _a_ list and _b_ list.
|
96
|
+
def initialize(a, b)
|
97
|
+
@hunks = []
|
98
|
+
diff(a, b)
|
99
|
+
end
|
100
|
+
|
101
|
+
# Modify the _values_ list according to the stored diff information.
|
102
|
+
def patch(values)
|
103
|
+
res = values.dup
|
104
|
+
@hunks.each do |hunk|
|
105
|
+
if hunk.delete?
|
106
|
+
res.slice!(hunk.bIdx, hunk.deleteValues.length)
|
107
|
+
end
|
108
|
+
if hunk.insert?
|
109
|
+
res.insert(hunk.bIdx, *hunk.insertValues)
|
110
|
+
end
|
111
|
+
end
|
112
|
+
res
|
113
|
+
end
|
114
|
+
|
115
|
+
def editScript
|
116
|
+
script = []
|
117
|
+
@hunks.each do |hunk|
|
118
|
+
if hunk.delete?
|
119
|
+
script << "#{hunk.aIdx + 1}d#{hunk.deleteValues.length}"
|
120
|
+
end
|
121
|
+
if hunk.insert?
|
122
|
+
script << "#{hunk.bIdx + 1}i#{hunk.insertValues.join(',')}"
|
123
|
+
end
|
124
|
+
end
|
125
|
+
|
126
|
+
script
|
127
|
+
end
|
128
|
+
|
129
|
+
# Return the diff list as standard UNIX diff output.
|
130
|
+
def to_s
|
131
|
+
str = ''
|
132
|
+
@hunks.each { |hunk| str << hunk.to_s }
|
133
|
+
str
|
134
|
+
end
|
135
|
+
|
136
|
+
def inspect
|
137
|
+
puts to_s
|
138
|
+
end
|
139
|
+
|
140
|
+
private
|
141
|
+
|
142
|
+
def diff(a, b)
|
143
|
+
indexTranslationTable = computeIndexTranslations(a, b)
|
144
|
+
|
145
|
+
ai = bi = 0
|
146
|
+
tableLength = indexTranslationTable.length
|
147
|
+
while ai < tableLength do
|
148
|
+
# Check if value from index ai should be included in B.
|
149
|
+
destIndex = indexTranslationTable[ai]
|
150
|
+
if destIndex
|
151
|
+
# Yes, it needs to go to position destIndex. All values from bi to
|
152
|
+
# newIndex - 1 are new values in B, not in A.
|
153
|
+
while bi < destIndex
|
154
|
+
insertElement(ai, bi, b[bi])
|
155
|
+
bi += 1
|
156
|
+
end
|
157
|
+
bi += 1
|
158
|
+
else
|
159
|
+
# No, it's not in B. Put it onto the deletion list.
|
160
|
+
deleteElement(ai, bi, a[ai])
|
161
|
+
end
|
162
|
+
ai += 1
|
163
|
+
end
|
164
|
+
|
165
|
+
# The remainder of the A list has to be deleted.
|
166
|
+
while ai < a.length
|
167
|
+
deleteElement(ai, bi, a[ai])
|
168
|
+
ai += 1
|
169
|
+
end
|
170
|
+
# The remainder of the B list are new values.
|
171
|
+
while bi < b.length
|
172
|
+
insertElement(ai, bi, b[bi])
|
173
|
+
bi += 1
|
174
|
+
end
|
175
|
+
end
|
176
|
+
|
177
|
+
def computeIndexTranslations(a, b)
|
178
|
+
aEndIdx = a.length - 1
|
179
|
+
bEndIdx = b.length - 1
|
180
|
+
startIdx = 0
|
181
|
+
indexTranslationTable = []
|
182
|
+
|
183
|
+
while (startIdx < aEndIdx && startIdx < bEndIdx &&
|
184
|
+
a[startIdx] == b[startIdx])
|
185
|
+
indexTranslationTable[startIdx] = startIdx
|
186
|
+
startIdx += 1
|
187
|
+
end
|
188
|
+
|
189
|
+
while (aEndIdx >= startIdx && bEndIdx >= startIdx &&
|
190
|
+
a[aEndIdx] == b[bEndIdx])
|
191
|
+
indexTranslationTable[aEndIdx] = bEndIdx
|
192
|
+
aEndIdx -= 1
|
193
|
+
bEndIdx -= 1
|
194
|
+
end
|
195
|
+
|
196
|
+
return indexTranslationTable if startIdx >= aEndIdx && startIdx >= bEndIdx
|
197
|
+
|
198
|
+
links = []
|
199
|
+
thresholds = []
|
200
|
+
bHashesToIndicies = reverseHash(b, startIdx, bEndIdx)
|
201
|
+
|
202
|
+
startIdx.upto(aEndIdx) do |ai|
|
203
|
+
aValue = a[ai]
|
204
|
+
next unless bHashesToIndicies.has_key? aValue
|
205
|
+
|
206
|
+
k = nil
|
207
|
+
bHashesToIndicies[aValue].each do |bi|
|
208
|
+
if k && (thresholds[k] > bi) && (thresholds[k - 1] < bi)
|
209
|
+
thresholds[k] = bi
|
210
|
+
else
|
211
|
+
k = replaceNextLarger(thresholds, bi, k)
|
212
|
+
end
|
213
|
+
links[k] = [ k == 0 ? nil : links[k - 1], ai, bi ] if k
|
214
|
+
end
|
215
|
+
end
|
216
|
+
|
217
|
+
if !thresholds.empty?
|
218
|
+
link = links[thresholds.length - 1]
|
219
|
+
while link
|
220
|
+
indexTranslationTable[link[1]] = link[2]
|
221
|
+
link = link[0]
|
222
|
+
end
|
223
|
+
end
|
224
|
+
|
225
|
+
return indexTranslationTable
|
226
|
+
end
|
227
|
+
|
228
|
+
def reverseHash(values, startIdx, endIdx)
|
229
|
+
hash = {}
|
230
|
+
startIdx.upto(endIdx) do |i|
|
231
|
+
element = values[i]
|
232
|
+
if hash.has_key?(element)
|
233
|
+
hash[element].insert(0, i)
|
234
|
+
else
|
235
|
+
hash[element] = [ i ]
|
236
|
+
end
|
237
|
+
end
|
238
|
+
|
239
|
+
hash
|
240
|
+
end
|
241
|
+
|
242
|
+
def replaceNextLarger(ary, value, high = nil)
|
243
|
+
high ||= ary.length
|
244
|
+
if ary.empty? || value > ary[-1]
|
245
|
+
ary.push value
|
246
|
+
return high
|
247
|
+
end
|
248
|
+
low = 0
|
249
|
+
while low < high
|
250
|
+
index = (high + low) / 2
|
251
|
+
found = ary[index]
|
252
|
+
return nil if value == found
|
253
|
+
|
254
|
+
if value > found
|
255
|
+
low = index + 1
|
256
|
+
else
|
257
|
+
high = index
|
258
|
+
end
|
259
|
+
end
|
260
|
+
|
261
|
+
ary[low] = value
|
262
|
+
|
263
|
+
low
|
264
|
+
end
|
265
|
+
|
266
|
+
def deleteElement(aIdx, bIdx, value)
|
267
|
+
if @hunks.empty? ||
|
268
|
+
@hunks.last.aIdx + @hunks.last.deleteValues.length != aIdx
|
269
|
+
@hunks << (hunk = Hunk.new(aIdx, bIdx))
|
270
|
+
else
|
271
|
+
hunk = @hunks.last
|
272
|
+
end
|
273
|
+
hunk.deleteValues << value
|
274
|
+
end
|
275
|
+
|
276
|
+
def insertElement(aIdx, bIdx, value)
|
277
|
+
if @hunks.empty? ||
|
278
|
+
@hunks.last.bIdx + @hunks.last.insertValues.length != bIdx
|
279
|
+
@hunks << (hunk = Hunk.new(aIdx, bIdx))
|
280
|
+
else
|
281
|
+
hunk = @hunks.last
|
282
|
+
end
|
283
|
+
hunk.insertValues << value
|
284
|
+
end
|
285
|
+
|
286
|
+
end
|
287
|
+
|
288
|
+
module Diffable
|
289
|
+
|
290
|
+
def diff(b)
|
291
|
+
Diff.new(self, b)
|
292
|
+
end
|
293
|
+
|
294
|
+
def patch(diff)
|
295
|
+
diff.patch(self)
|
296
|
+
end
|
297
|
+
|
298
|
+
end
|
299
|
+
|
300
|
+
module DiffableString
|
301
|
+
|
302
|
+
def diff(b)
|
303
|
+
split("\n").extend(Diffable).diff(b.split("\n"))
|
304
|
+
end
|
305
|
+
|
306
|
+
def patch(hunks)
|
307
|
+
split("\n").extend(Diffable).patch(hunks).join("\n") + "\n"
|
308
|
+
end
|
309
|
+
|
310
|
+
end
|
311
|
+
|