taskjuggler 0.0.10 → 0.0.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG +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
|
File without changes
|
|
@@ -18,6 +18,16 @@ class TaskJuggler
|
|
|
18
18
|
# necessary but make the file more readable and receptable to syntax folding.
|
|
19
19
|
module TjpSyntaxRules
|
|
20
20
|
|
|
21
|
+
def rule_absoluteTaskId
|
|
22
|
+
pattern(%w( !taskIdUnverifd ), lambda {
|
|
23
|
+
id = (@taskprefix.empty? ? '' : @taskprefix + '.') + @val[0]
|
|
24
|
+
if (task = @project.task(id)).nil?
|
|
25
|
+
error('unknown_abs_task', "Unknown task #{id}", @sourceFileInfo[0])
|
|
26
|
+
end
|
|
27
|
+
task
|
|
28
|
+
})
|
|
29
|
+
end
|
|
30
|
+
|
|
21
31
|
def rule_account
|
|
22
32
|
pattern(%w( !accountHeader !accountBody ), lambda {
|
|
23
33
|
@property = @property.parent
|
|
@@ -856,7 +866,19 @@ EOT
|
|
|
856
866
|
|
|
857
867
|
def rule_exportHeader
|
|
858
868
|
pattern(%w( _export !optionalID $STRING ), lambda {
|
|
859
|
-
newReport(@val[1], @val[2], :export, sourceFileInfo)
|
|
869
|
+
report = newReport(@val[1], @val[2], :export, sourceFileInfo)
|
|
870
|
+
|
|
871
|
+
# By default, we export all scenarios.
|
|
872
|
+
scenarios = Array.new(@project.scenarios.items) { |i| i }
|
|
873
|
+
scenarios.delete_if { |sc| !@project.scenario(sc).get('enabled') }
|
|
874
|
+
report.set('scenarios', scenarios)
|
|
875
|
+
# Show all tasks, sorted by seqno-up.
|
|
876
|
+
report.set('hideTask', LogicalExpression.new(LogicalOperation.new(0)))
|
|
877
|
+
report.set('sortTasks', [ [ 'seqno', true, -1 ] ])
|
|
878
|
+
# Show all resources, sorted by seqno-up.
|
|
879
|
+
report.set('hideResource',
|
|
880
|
+
LogicalExpression.new(LogicalOperation.new(0)))
|
|
881
|
+
report.set('sortResources', [ [ 'seqno', true, -1 ] ])
|
|
860
882
|
})
|
|
861
883
|
arg(1, 'file name', <<'EOT'
|
|
862
884
|
The name of the report file to generate. It must end with a .tjp or .tji
|
|
@@ -903,6 +925,18 @@ EOT
|
|
|
903
925
|
{ 'vacation' => 'Include vacations',
|
|
904
926
|
'workinghours' => 'Include working hours' })
|
|
905
927
|
|
|
928
|
+
pattern(%w( _scenarios !scenarioIdList ), lambda {
|
|
929
|
+
# Don't include disabled scenarios in the report
|
|
930
|
+
@val[1].delete_if { |sc| !@project.scenario(sc).get('enabled') }
|
|
931
|
+
@property.set('scenarios', @val[1])
|
|
932
|
+
})
|
|
933
|
+
doc('scenarios.export', <<'EOT'
|
|
934
|
+
List of scenarios that should be included in the report. By default, all
|
|
935
|
+
scenarios will be included. This attribute can be used to limit the included
|
|
936
|
+
scenarios to a defined list.
|
|
937
|
+
EOT
|
|
938
|
+
)
|
|
939
|
+
|
|
906
940
|
pattern(%w( _taskattributes !exportableTaskAttributes ), lambda {
|
|
907
941
|
@property.set('taskAttributes', @val[1])
|
|
908
942
|
})
|
|
@@ -922,6 +956,12 @@ EOT
|
|
|
922
956
|
'note' => 'Include notes',
|
|
923
957
|
'priority' => 'Include priorities',
|
|
924
958
|
'responsible' => 'Include responsible resource' })
|
|
959
|
+
|
|
960
|
+
pattern(%w( _timezone !validTimeZone ), lambda {
|
|
961
|
+
@property.set('timezone', @val[1])
|
|
962
|
+
})
|
|
963
|
+
doc('timezone.export',
|
|
964
|
+
"Set the time zone to be used for all dates in the report.")
|
|
925
965
|
end
|
|
926
966
|
|
|
927
967
|
def rule_exportBody
|
|
@@ -970,6 +1010,29 @@ EOT
|
|
|
970
1010
|
doc('reference.extend', <<'EOT'
|
|
971
1011
|
Extend the property with a new attribute of type reference. A reference is a
|
|
972
1012
|
URL and an optional text that will be shown instead of the URL if needed.
|
|
1013
|
+
EOT
|
|
1014
|
+
)
|
|
1015
|
+
arg(2, 'name', 'The name of the new attribute. It is used as header ' +
|
|
1016
|
+
'in report columns and the like.')
|
|
1017
|
+
|
|
1018
|
+
pattern(%w( _richtext !extendId $STRING !extendOptionsBody ), lambda {
|
|
1019
|
+
# Extend the propertySet definition and parser rules
|
|
1020
|
+
if extendPropertySetDefinition(RichTextAttribute, nil)
|
|
1021
|
+
@ruleToExtendWithScenario.addPattern(TextParser::Pattern.new(
|
|
1022
|
+
[ '_' + @val[1], '$STRING' ], lambda {
|
|
1023
|
+
@property[@val[0], @scenarioIdx] =
|
|
1024
|
+
newRichText(@val[1], @sourceFileInfo[1])
|
|
1025
|
+
}))
|
|
1026
|
+
else
|
|
1027
|
+
@ruleToExtend.addPattern(TextParser::Pattern.new(
|
|
1028
|
+
[ '_' + @val[1], '$STRING' ], lambda {
|
|
1029
|
+
@property.set(@val[0], newRichText(@val[1], @sourceFileInfo[1]))
|
|
1030
|
+
}))
|
|
1031
|
+
end
|
|
1032
|
+
})
|
|
1033
|
+
doc('richtext.extend', <<'EOT'
|
|
1034
|
+
Extend the property with a new attribute of type [[Rich_Text_Attributes|Rich
|
|
1035
|
+
Text]].
|
|
973
1036
|
EOT
|
|
974
1037
|
)
|
|
975
1038
|
arg(2, 'name', 'The name of the new attribute. It is used as header ' +
|
|
@@ -1090,8 +1153,11 @@ EOT
|
|
|
1090
1153
|
pattern(%w( _flags !flagList ), lambda {
|
|
1091
1154
|
@val[1].each do |flag|
|
|
1092
1155
|
unless @property['flags', @scenarioIdx].include?(flag)
|
|
1093
|
-
|
|
1094
|
-
|
|
1156
|
+
# We allow multiple instances of flag definitions.
|
|
1157
|
+
begin
|
|
1158
|
+
@property['flags', @scenarioIdx] += @val[1]
|
|
1159
|
+
rescue AttributeOverwrite
|
|
1160
|
+
end
|
|
1095
1161
|
end
|
|
1096
1162
|
end
|
|
1097
1163
|
})
|
|
@@ -1305,7 +1371,7 @@ EOT
|
|
|
1305
1371
|
optional
|
|
1306
1372
|
repeatable
|
|
1307
1373
|
|
|
1308
|
-
pattern(%w( _accountprefix !
|
|
1374
|
+
pattern(%w( _accountprefix !accountId ), lambda {
|
|
1309
1375
|
@accountprefix = @val[1].fullId
|
|
1310
1376
|
})
|
|
1311
1377
|
doc('accountprefix', <<'EOT'
|
|
@@ -1316,7 +1382,7 @@ EOT
|
|
|
1316
1382
|
)
|
|
1317
1383
|
arg(1, 'account ID', 'The absolute ID of an already defined account')
|
|
1318
1384
|
|
|
1319
|
-
pattern(%w( _reportprefix !
|
|
1385
|
+
pattern(%w( _reportprefix !reportId ), lambda {
|
|
1320
1386
|
@reportprefix = @val[1].fullId
|
|
1321
1387
|
})
|
|
1322
1388
|
doc('reportprefix', <<'EOT'
|
|
@@ -1828,7 +1894,8 @@ EOT
|
|
|
1828
1894
|
if @scanner.macroDefined?(@val[1])
|
|
1829
1895
|
warning('marco_redefinition', "Redefining macro #{@val[1]}")
|
|
1830
1896
|
end
|
|
1831
|
-
@scanner.addMacro(Macro.new(@val[1], @val[2],
|
|
1897
|
+
@scanner.addMacro(TextParser::Macro.new(@val[1], @val[2],
|
|
1898
|
+
@sourceFileInfo[0]))
|
|
1832
1899
|
})
|
|
1833
1900
|
doc('macro', <<'EOT'
|
|
1834
1901
|
Defines a text fragment that can later be inserted by using the specified ID.
|
|
@@ -2335,10 +2402,10 @@ EOT
|
|
|
2335
2402
|
|
|
2336
2403
|
pattern(%w( _now !date ), lambda {
|
|
2337
2404
|
@project['now'] = @val[1]
|
|
2338
|
-
@scanner.addMacro(Macro.new('now', @val[1].to_s,
|
|
2339
|
-
|
|
2340
|
-
@scanner.addMacro(Macro.new(
|
|
2341
|
-
|
|
2405
|
+
@scanner.addMacro(TextParser::Macro.new('now', @val[1].to_s,
|
|
2406
|
+
@sourceFileInfo[0]))
|
|
2407
|
+
@scanner.addMacro(TextParser::Macro.new(
|
|
2408
|
+
'today', @val[1].to_s(@project['timeFormat']), @sourceFileInfo[0]))
|
|
2342
2409
|
})
|
|
2343
2410
|
doc('now', <<'EOT'
|
|
2344
2411
|
Specify the date that TaskJuggler uses for calculation as current
|
|
@@ -2376,7 +2443,7 @@ EOT
|
|
|
2376
2443
|
})
|
|
2377
2444
|
|
|
2378
2445
|
pattern(%w( !timezone ), lambda {
|
|
2379
|
-
@
|
|
2446
|
+
@val[0]
|
|
2380
2447
|
})
|
|
2381
2448
|
|
|
2382
2449
|
pattern(%w( _timingresolution $INTEGER _min ), lambda {
|
|
@@ -2453,6 +2520,8 @@ EOT
|
|
|
2453
2520
|
The project property is mandatory and should be the first property
|
|
2454
2521
|
in a project file. It is used to capture basic attributes such as
|
|
2455
2522
|
the project id, name and the expected time frame.
|
|
2523
|
+
|
|
2524
|
+
Be aware that the dates for the project period default to UTC times. See [[interval2]] for details.
|
|
2456
2525
|
EOT
|
|
2457
2526
|
)
|
|
2458
2527
|
end
|
|
@@ -2724,7 +2793,7 @@ EOT
|
|
|
2724
2793
|
if attributeDefinition.scenarioSpecific
|
|
2725
2794
|
attr = @property[@val[1], 0]
|
|
2726
2795
|
else
|
|
2727
|
-
attr = @
|
|
2796
|
+
attr = @property.get(@val[1])
|
|
2728
2797
|
end
|
|
2729
2798
|
unless attr.is_a?(Array)
|
|
2730
2799
|
error('purge_no_list',
|
|
@@ -2966,6 +3035,26 @@ EOT
|
|
|
2966
3035
|
singlePattern('_index')
|
|
2967
3036
|
descr('The index of the item based on the nesting hierachy')
|
|
2968
3037
|
|
|
3038
|
+
singlePattern('_inputs')
|
|
3039
|
+
descr(<<'EOT'
|
|
3040
|
+
A list of milestones that are a prerequiste for the current task. For
|
|
3041
|
+
container tasks it will also include the inputs of the child tasks. Inputs may
|
|
3042
|
+
not have any predecessors.
|
|
3043
|
+
|
|
3044
|
+
The list can be customized by the [listmode.column listmode] attribute. The
|
|
3045
|
+
following modes are supported:
|
|
3046
|
+
|
|
3047
|
+
# ID
|
|
3048
|
+
# Name
|
|
3049
|
+
# Name (ID)
|
|
3050
|
+
# ID: Name
|
|
3051
|
+
# ID (Date)
|
|
3052
|
+
# Name (Date)
|
|
3053
|
+
# Name (ID) Date ''(This is the default)''
|
|
3054
|
+
# ID: Name Date
|
|
3055
|
+
EOT
|
|
3056
|
+
)
|
|
3057
|
+
|
|
2969
3058
|
singlePattern('_journal')
|
|
2970
3059
|
descr(<<'EOT'
|
|
2971
3060
|
The journal entries for the task or resource for the reported interval.
|
|
@@ -3144,7 +3233,8 @@ EOT
|
|
|
3144
3233
|
singlePattern('_targets')
|
|
3145
3234
|
descr(<<'EOT'
|
|
3146
3235
|
A list of milestones that depend on the current task. For container tasks it
|
|
3147
|
-
will also include the targets of the child tasks.
|
|
3236
|
+
will also include the targets of the child tasks. Targets may not have any
|
|
3237
|
+
follower tasks.
|
|
3148
3238
|
|
|
3149
3239
|
The list can be customized by the [listmode.column listmode] attribute. The
|
|
3150
3240
|
following modes are supported:
|
|
@@ -3154,8 +3244,8 @@ following modes are supported:
|
|
|
3154
3244
|
# Name (ID)
|
|
3155
3245
|
# ID: Name
|
|
3156
3246
|
# ID (Date)
|
|
3157
|
-
# Name (Date)
|
|
3158
|
-
# Name (ID) Date
|
|
3247
|
+
# Name (Date)
|
|
3248
|
+
# Name (ID) Date ''(This is the default)''
|
|
3159
3249
|
# ID: Name Date
|
|
3160
3250
|
EOT
|
|
3161
3251
|
)
|
|
@@ -3331,7 +3421,11 @@ EOT
|
|
|
3331
3421
|
@property.set('scenarios', @val[1])
|
|
3332
3422
|
})
|
|
3333
3423
|
doc('scenarios', <<'EOT'
|
|
3334
|
-
List of scenarios that should be included in the report.
|
|
3424
|
+
List of scenarios that should be included in the report. By default, only the
|
|
3425
|
+
top-level scenario will be included. You can use this attribute to include
|
|
3426
|
+
data from the defined set of scenarios. Not all reports support reporting data
|
|
3427
|
+
from multiple scenarios. They will only include data from the first one in the
|
|
3428
|
+
list.
|
|
3335
3429
|
EOT
|
|
3336
3430
|
)
|
|
3337
3431
|
|
|
@@ -3378,6 +3472,17 @@ EOT
|
|
|
3378
3472
|
@property.set('timeFormat', @val[0])
|
|
3379
3473
|
})
|
|
3380
3474
|
|
|
3475
|
+
pattern(%w( _timezone !validTimeZone ), lambda {
|
|
3476
|
+
@property.set('timezone', @val[1])
|
|
3477
|
+
})
|
|
3478
|
+
doc('timezone.report', <<'EOT'
|
|
3479
|
+
Sets the time zone used for all dates in the report. This setting is ignored
|
|
3480
|
+
if the report is embedded into another report. Embedded in this context means
|
|
3481
|
+
the report is part of another generated report. It does not mean that the
|
|
3482
|
+
report definition is a sub report of another report definition.
|
|
3483
|
+
EOT
|
|
3484
|
+
)
|
|
3485
|
+
|
|
3381
3486
|
pattern(%w( !reportTitle ))
|
|
3382
3487
|
end
|
|
3383
3488
|
|
|
@@ -3731,15 +3836,15 @@ EOT
|
|
|
3731
3836
|
)
|
|
3732
3837
|
|
|
3733
3838
|
pattern(%w( _booking !resourceBooking ))
|
|
3734
|
-
doc('booking', <<'EOT'
|
|
3839
|
+
doc('booking.resource', <<'EOT'
|
|
3735
3840
|
The booking attribute can be used to report completed work. This can be part
|
|
3736
3841
|
of the necessary effort or the whole effort. When the scenario is scheduled in
|
|
3737
3842
|
[[projection]] mode, TaskJuggler assumes that only the work reported with
|
|
3738
3843
|
bookings has been done up to now. It then schedules a plan for the still
|
|
3739
3844
|
missing effort. All task with bookings must be scheduled in ''''asap'''' mode.
|
|
3740
3845
|
|
|
3741
|
-
|
|
3742
|
-
|
|
3846
|
+
Bookings are only valid in the scenario they have been defined in. They will
|
|
3847
|
+
not be passed to any other scenario.
|
|
3743
3848
|
|
|
3744
3849
|
The sloppy attribute can be used when you want to skip non-working time or
|
|
3745
3850
|
other allocations automatically. If it's not given, all bookings must only
|
|
@@ -3750,9 +3855,14 @@ work. This attribute is not really intended to specify completed effort by
|
|
|
3750
3855
|
hand. Usually, booking statements are generated by [[export]] reports. The
|
|
3751
3856
|
[[sloppy.booking|sloppy]] and [[overtime.booking|overtime]] attributes are
|
|
3752
3857
|
only kludge for users who want to write them manually.
|
|
3858
|
+
Bookings can be used to report already completed work by specifying the exact
|
|
3859
|
+
time intervals a certain resource has worked on this task.
|
|
3860
|
+
|
|
3861
|
+
Bookings can be defined in the task or resource context. If you move tasks
|
|
3862
|
+
around very often, put your bookings in the task context.
|
|
3753
3863
|
EOT
|
|
3754
3864
|
)
|
|
3755
|
-
also(%w( scheduling ))
|
|
3865
|
+
also(%w( scheduling booking.task ))
|
|
3756
3866
|
example('Booking')
|
|
3757
3867
|
|
|
3758
3868
|
pattern(%w( !fail ))
|
|
@@ -3852,7 +3962,7 @@ By default, the scheduler assigns resources to task beginning with the project
|
|
|
3852
3962
|
start date. If the scenario is switched to projection mode, no assignments
|
|
3853
3963
|
will be made prior to the current date or the date specified by [[now]]. In
|
|
3854
3964
|
this case, TaskJuggler assumes, that all assignements prior to the
|
|
3855
|
-
current date have been provided by [[booking]] statements.
|
|
3965
|
+
current date have been provided by [[booking.task]] statements.
|
|
3856
3966
|
EOT
|
|
3857
3967
|
)
|
|
3858
3968
|
end
|
|
@@ -4487,6 +4597,25 @@ EOT
|
|
|
4487
4597
|
repeatable
|
|
4488
4598
|
optional
|
|
4489
4599
|
|
|
4600
|
+
pattern(%w( _adopt !taskList ), lambda {
|
|
4601
|
+
@val[1].each do |task|
|
|
4602
|
+
@property.adopt(task)
|
|
4603
|
+
end
|
|
4604
|
+
})
|
|
4605
|
+
doc('adopt.task', <<'EOT'
|
|
4606
|
+
Add a previously defined task to the sub-tasks of this task. This can be used
|
|
4607
|
+
to create virtual sub projects that contain of task trees that were defined as
|
|
4608
|
+
sub tasks of other tasks. Adopted tasks don't inherit anything from their step
|
|
4609
|
+
parents. However, the adopting task is scheduled to fit all adopted childs as
|
|
4610
|
+
well.
|
|
4611
|
+
|
|
4612
|
+
The adopting task and the adopted task must not share a common top-level task.
|
|
4613
|
+
Adopted tasks may not have overlaping sub trees.
|
|
4614
|
+
|
|
4615
|
+
'''This feature is experimental right now. Don't use it!'''.
|
|
4616
|
+
EOT
|
|
4617
|
+
)
|
|
4618
|
+
|
|
4490
4619
|
pattern(%w( !journalEntry ))
|
|
4491
4620
|
|
|
4492
4621
|
pattern(%w( _note $STRING ), lambda {
|
|
@@ -4686,6 +4815,10 @@ EOT
|
|
|
4686
4815
|
singlePattern('$ID')
|
|
4687
4816
|
end
|
|
4688
4817
|
|
|
4818
|
+
def rule_taskList
|
|
4819
|
+
listRule('moreTasks', '!absoluteTaskId')
|
|
4820
|
+
end
|
|
4821
|
+
|
|
4689
4822
|
def rule_taskPeriod
|
|
4690
4823
|
pattern(%w( _period !valInterval), lambda {
|
|
4691
4824
|
@property['start', @scenarioIdx] = @val[1].start
|
|
@@ -4730,10 +4863,33 @@ EOT
|
|
|
4730
4863
|
|
|
4731
4864
|
pattern(%w( _booking !taskBooking ))
|
|
4732
4865
|
doc('booking.task', <<'EOT'
|
|
4866
|
+
The booking attribute can be used to report completed work. This can be part
|
|
4867
|
+
of the necessary effort or the whole effort. When the scenario is scheduled in
|
|
4868
|
+
[[projection]] mode, TaskJuggler assumes that only the work reported with
|
|
4869
|
+
bookings has been done up to now. It then schedules a plan for the still
|
|
4870
|
+
missing effort. All task with bookings must be scheduled in ''''asap'''' mode.
|
|
4871
|
+
|
|
4872
|
+
Bookings are only valid in the scenario they have been defined in. They will
|
|
4873
|
+
not be passed to any other scenario.
|
|
4874
|
+
|
|
4875
|
+
The sloppy attribute can be used when you want to skip non-working time or
|
|
4876
|
+
other allocations automatically. If it's not given, all bookings must only
|
|
4877
|
+
cover working time for the resource.
|
|
4878
|
+
|
|
4879
|
+
The booking attributes is designed to capture the exact amount of completed
|
|
4880
|
+
work. This attribute is not really intended to specify completed effort by
|
|
4881
|
+
hand. Usually, booking statements are generated by [[export]] reports. The
|
|
4882
|
+
[[sloppy.booking|sloppy]] and [[overtime.booking|overtime]] attributes are
|
|
4883
|
+
only kludge for users who want to write them manually.
|
|
4733
4884
|
Bookings can be used to report already completed work by specifying the exact
|
|
4734
4885
|
time intervals a certain resource has worked on this task.
|
|
4886
|
+
|
|
4887
|
+
Bookings can be defined in the task or resource context. If you move tasks
|
|
4888
|
+
around very often, put your bookings in the task context.
|
|
4735
4889
|
EOT
|
|
4736
4890
|
)
|
|
4891
|
+
also(%w( booking.resource ))
|
|
4892
|
+
example('Booking')
|
|
4737
4893
|
|
|
4738
4894
|
pattern(%w( _charge !number !chargeMode ), lambda {
|
|
4739
4895
|
checkContainer('charge')
|
|
@@ -4760,9 +4916,12 @@ EOT
|
|
|
4760
4916
|
mode = :perDiem
|
|
4761
4917
|
amount = @val[1] / 7.0
|
|
4762
4918
|
end
|
|
4763
|
-
|
|
4764
|
-
|
|
4765
|
-
|
|
4919
|
+
# Multiple 'charge' attributes are allowed.
|
|
4920
|
+
begin
|
|
4921
|
+
@property['charge', @scenarioIdx] +=
|
|
4922
|
+
[ Charge.new(amount, mode, @property, @scenarioIdx) ]
|
|
4923
|
+
rescue AttributeOverwrite
|
|
4924
|
+
end
|
|
4766
4925
|
})
|
|
4767
4926
|
doc('charge', <<'EOT'
|
|
4768
4927
|
Specify a one-time or per-period charge to a certain account. The charge can
|
|
@@ -4796,9 +4955,9 @@ EOT
|
|
|
4796
4955
|
|
|
4797
4956
|
pattern(%w( _depends !taskDepList ), lambda {
|
|
4798
4957
|
checkContainer('depends')
|
|
4799
|
-
@property['depends', @scenarioIdx] =
|
|
4800
|
-
@property['depends', @scenarioIdx] + @val[1]
|
|
4801
4958
|
begin
|
|
4959
|
+
@property['depends', @scenarioIdx] =
|
|
4960
|
+
@property['depends', @scenarioIdx] + @val[1]
|
|
4802
4961
|
@property['forward', @scenarioIdx] = true
|
|
4803
4962
|
rescue AttributeOverwrite
|
|
4804
4963
|
end
|
|
@@ -4813,10 +4972,7 @@ EOT
|
|
|
4813
4972
|
)
|
|
4814
4973
|
example('Depends1')
|
|
4815
4974
|
pattern(%w( _duration !calendarDuration ), lambda {
|
|
4816
|
-
|
|
4817
|
-
@property['duration', @scenarioIdx] = @val[1]
|
|
4818
|
-
@property['effort', @scenarioIdx] = 0
|
|
4819
|
-
@property['length', @scenarioIdx] = 0
|
|
4975
|
+
setDurationAttribute('duration', @val[1])
|
|
4820
4976
|
})
|
|
4821
4977
|
doc('duration', <<'EOT'
|
|
4822
4978
|
Specifies the time the task should last. This is calendar time, not working
|
|
@@ -4832,14 +4988,11 @@ EOT
|
|
|
4832
4988
|
also(%w( effort length ))
|
|
4833
4989
|
|
|
4834
4990
|
pattern(%w( _effort !workingDuration ), lambda {
|
|
4835
|
-
checkContainer('effort')
|
|
4836
4991
|
if @val[1] <= 0.0
|
|
4837
4992
|
error('effort_zero', "Effort value must be larger than 0",
|
|
4838
4993
|
@sourceFileInfo[1], @property)
|
|
4839
4994
|
end
|
|
4840
|
-
|
|
4841
|
-
@property['duration', @scenarioIdx] = 0
|
|
4842
|
-
@property['length', @scenarioIdx] = 0
|
|
4995
|
+
setDurationAttribute('effort', @val[1])
|
|
4843
4996
|
})
|
|
4844
4997
|
doc('effort', <<'EOT'
|
|
4845
4998
|
Specifies the effort needed to complete the task. An effort of 4d can be done
|
|
@@ -4867,13 +5020,14 @@ EOT
|
|
|
4867
5020
|
end
|
|
4868
5021
|
})
|
|
4869
5022
|
doc('end', <<'EOT'
|
|
4870
|
-
The end
|
|
4871
|
-
|
|
4872
|
-
|
|
5023
|
+
The end attribute provides a guideline to the scheduler when the task should
|
|
5024
|
+
end. It will never end later, but it may end earlier when allocated
|
|
5025
|
+
resources are not available that long. When an end date is provided for a
|
|
5026
|
+
container task, it will be passed down to ALAP task that don't have a well
|
|
5027
|
+
defined end criteria.
|
|
4873
5028
|
|
|
4874
|
-
|
|
4875
|
-
|
|
4876
|
-
will be inherited from the enclosing tasks or the project end date.
|
|
5029
|
+
Setting an end date will implicitely set the scheduling policy for this task
|
|
5030
|
+
to ALAP.
|
|
4877
5031
|
EOT
|
|
4878
5032
|
)
|
|
4879
5033
|
example('Export', '1')
|
|
@@ -4899,23 +5053,29 @@ EOT
|
|
|
4899
5053
|
pattern(%w( !fail ))
|
|
4900
5054
|
|
|
4901
5055
|
pattern(%w( _length !workingDuration ), lambda {
|
|
4902
|
-
|
|
4903
|
-
@property['length', @scenarioIdx] = @val[1]
|
|
4904
|
-
@property['duration', @scenarioIdx] = 0
|
|
4905
|
-
@property['effort', @scenarioIdx] = 0
|
|
5056
|
+
setDurationAttribute('length', @val[1])
|
|
4906
5057
|
})
|
|
4907
5058
|
doc('length', <<'EOT'
|
|
4908
|
-
Specifies the time
|
|
4909
|
-
calendar time. 7d means 7 working days,
|
|
4910
|
-
|
|
4911
|
-
|
|
4912
|
-
|
|
4913
|
-
|
|
4914
|
-
|
|
4915
|
-
|
|
5059
|
+
Specifies the global working time to be used for this task. The value is
|
|
5060
|
+
specified in working time, not calendar time. 7d means 7 working days, or 7
|
|
5061
|
+
times 8 hours (assuming default settings), not one week.
|
|
5062
|
+
|
|
5063
|
+
A task with a length specification may have resource allocations. Resources
|
|
5064
|
+
are allocated when they are available. There is no guarantee that the task
|
|
5065
|
+
will get any resources allocated. The availability of resources has no impact
|
|
5066
|
+
on the duration of the task. A time slot where none of the specified resources
|
|
5067
|
+
is available is still considered working time, if there is no global vacation
|
|
5068
|
+
and global working hours are defined accordingly.
|
|
5069
|
+
|
|
5070
|
+
For the length calculation, only the global working hours and the global
|
|
5071
|
+
vacations matter. If a resource has additinal working hours defined, it's
|
|
5072
|
+
quite possible that a task with a length of 5d will have an allocated effort
|
|
5073
|
+
larger than 40 hours. Resource working hours only have an impact on whether an
|
|
5074
|
+
allocation is made or not for a particular time slot. They don't effect the
|
|
5075
|
+
resulting duration of the task.
|
|
4916
5076
|
|
|
4917
5077
|
Tasks may not have subtasks if this attribute is used. Setting this attribute
|
|
4918
|
-
will reset the [[duration]] and [[
|
|
5078
|
+
will reset the [[duration]], [[effort]] and [[milestone]] attributes.
|
|
4919
5079
|
EOT
|
|
4920
5080
|
)
|
|
4921
5081
|
also(%w( duration effort ))
|
|
@@ -4952,8 +5112,7 @@ EOT
|
|
|
4952
5112
|
)
|
|
4953
5113
|
|
|
4954
5114
|
pattern(%w( _milestone ), lambda {
|
|
4955
|
-
|
|
4956
|
-
@property['milestone', @scenarioIdx] = true
|
|
5115
|
+
setDurationAttribute('milestone')
|
|
4957
5116
|
})
|
|
4958
5117
|
doc('milestone', <<'EOT'
|
|
4959
5118
|
Turns the task into a special task that has no duration. You may not specify a
|
|
@@ -5002,9 +5161,9 @@ EOT
|
|
|
5002
5161
|
|
|
5003
5162
|
pattern(%w( _precedes !taskPredList ), lambda {
|
|
5004
5163
|
checkContainer('precedes')
|
|
5005
|
-
@property['precedes', @scenarioIdx] =
|
|
5006
|
-
@property['precedes', @scenarioIdx] + @val[1]
|
|
5007
5164
|
begin
|
|
5165
|
+
@property['precedes', @scenarioIdx] =
|
|
5166
|
+
@property['precedes', @scenarioIdx] + @val[1]
|
|
5008
5167
|
@property['forward', @scenarioIdx] = false
|
|
5009
5168
|
rescue AttributeOverwrite
|
|
5010
5169
|
end
|
|
@@ -5172,13 +5331,14 @@ EOT
|
|
|
5172
5331
|
end
|
|
5173
5332
|
})
|
|
5174
5333
|
doc('start', <<'EOT'
|
|
5175
|
-
The start
|
|
5176
|
-
|
|
5177
|
-
|
|
5334
|
+
The start attribute provides a guideline to the scheduler when the task should
|
|
5335
|
+
start. It will never start earlier, but it may start later when allocated
|
|
5336
|
+
resources are not available immediately. When a start date is provided for a
|
|
5337
|
+
container task, it will be passed down to ASAP task that don't have a well
|
|
5338
|
+
defined start criteria.
|
|
5178
5339
|
|
|
5179
|
-
|
|
5180
|
-
|
|
5181
|
-
will be inherited from the enclosing tasks or the project start date.
|
|
5340
|
+
Setting a start date will implicitely set the scheduling policy for this task
|
|
5341
|
+
to ASAP.
|
|
5182
5342
|
EOT
|
|
5183
5343
|
)
|
|
5184
5344
|
also(%w( end period.task maxstart minstart scheduling ))
|
|
@@ -5361,15 +5521,15 @@ The intended use for time sheets is to have all resources report a time sheet
|
|
|
5361
5521
|
every day, week or month. All time sheets can be added to the project plan.
|
|
5362
5522
|
The status information is always used to determin the current status of the
|
|
5363
5523
|
project. The [[work]], [[remaining]] and [[end.timesheet|end]] attributes are
|
|
5364
|
-
ignored if there are also [[booking|bookings]] for the resource in the
|
|
5365
|
-
sheet period. The non-ignored attributes of the time sheets
|
|
5366
|
-
|
|
5367
|
-
then be [[export|exported]] into a file which can then be added to the
|
|
5368
|
-
again. This way, you can use time sheets to incrementally record
|
|
5369
|
-
your project. There is a possibility that time sheets conflict
|
|
5370
|
-
in the plan. In case TaskJuggler cannot automatically resolve
|
|
5371
|
-
conflicts have to be manually resolved by either changing the plan
|
|
5372
|
-
sheet.
|
|
5524
|
+
ignored if there are also [[booking.task|bookings]] for the resource in the
|
|
5525
|
+
time sheet period. The non-ignored attributes of the time sheets will be
|
|
5526
|
+
converted into [[booking.task|booking]] statements internally. These bookings
|
|
5527
|
+
can then be [[export|exported]] into a file which can then be added to the
|
|
5528
|
+
project again. This way, you can use time sheets to incrementally record
|
|
5529
|
+
progress of your project. There is a possibility that time sheets conflict
|
|
5530
|
+
with other data in the plan. In case TaskJuggler cannot automatically resolve
|
|
5531
|
+
them, these conflicts have to be manually resolved by either changing the plan
|
|
5532
|
+
or the time sheet.
|
|
5373
5533
|
|
|
5374
5534
|
The status messages are interpreted as [[journalentry|journal entries]]. The
|
|
5375
5535
|
alert level will be evaluated and the current state of the project can be put
|
|
@@ -5474,19 +5634,16 @@ EOT
|
|
|
5474
5634
|
|
|
5475
5635
|
def rule_timezone
|
|
5476
5636
|
pattern(%w( _timezone !validTimeZone ), lambda{
|
|
5477
|
-
|
|
5637
|
+
TjTime.setTimeZone(@val[1])
|
|
5638
|
+
@project['timezone'] = @val[1]
|
|
5478
5639
|
})
|
|
5479
5640
|
doc('timezone', <<'EOT'
|
|
5480
|
-
Sets the default time zone of the project. All times that have no
|
|
5481
|
-
zones specified will be assumed to be in this time zone.
|
|
5482
|
-
|
|
5483
|
-
Linux systems have a command line utility called tzselect to lookup
|
|
5484
|
-
possible values.
|
|
5641
|
+
Sets the default time zone of the project. All dates and times that have no
|
|
5642
|
+
time zones specified will be assumed to be in this time zone. If no time zone
|
|
5643
|
+
is specified for the project, UTC is assumed.
|
|
5485
5644
|
|
|
5486
|
-
The project start and end time are not affected by this setting.
|
|
5487
|
-
|
|
5488
|
-
are assumed. Using the TZ environment variable is the recommended way to
|
|
5489
|
-
specify the time zone for your project.
|
|
5645
|
+
The project start and end time are not affected by this setting. They are
|
|
5646
|
+
always considered to be UTC unless specified differently.
|
|
5490
5647
|
|
|
5491
5648
|
In case the specified time zone is not hour-aligned with UTC, the
|
|
5492
5649
|
[[timingresolution]] will automatically be decreased accordingly. Do not
|
|
@@ -5629,10 +5786,10 @@ EOT
|
|
|
5629
5786
|
})
|
|
5630
5787
|
doc('priority.timesheet', <<'EOT'
|
|
5631
5788
|
The priority is a value between 1 and 1000. It is used to determine the
|
|
5632
|
-
sequence of task when converting [[work]] to [[booking|bookings]]. Tasks
|
|
5633
|
-
need to finish earlier in the period should have a high priority, tasks
|
|
5634
|
-
end later in the period should have a low priority. For tasks that don't
|
|
5635
|
-
finished in the reported period the priority should be set to 1.
|
|
5789
|
+
sequence of task when converting [[work]] to [[booking.task|bookings]]. Tasks
|
|
5790
|
+
that need to finish earlier in the period should have a high priority, tasks
|
|
5791
|
+
that end later in the period should have a low priority. For tasks that don't
|
|
5792
|
+
get finished in the reported period the priority should be set to 1.
|
|
5636
5793
|
EOT
|
|
5637
5794
|
)
|
|
5638
5795
|
|
|
@@ -5641,8 +5798,8 @@ EOT
|
|
|
5641
5798
|
})
|
|
5642
5799
|
doc('remaining', <<'EOT'
|
|
5643
5800
|
The remaining effort for the task. This value is ignored if there are
|
|
5644
|
-
[[booking|bookings]] for the resource that overlap with the time sheet
|
|
5645
|
-
If there are no bookings, the value is compared with the [[effort]]
|
|
5801
|
+
[[booking.task|bookings]] for the resource that overlap with the time sheet
|
|
5802
|
+
period. If there are no bookings, the value is compared with the [[effort]]
|
|
5646
5803
|
specification of the task. If there a mismatch between the accumulated effort
|
|
5647
5804
|
specified with bookings, [[work]] and [[remaining]] on one side and the
|
|
5648
5805
|
specified [[effort]] on the other, a warning is generated.
|
|
@@ -5660,10 +5817,11 @@ EOT
|
|
|
5660
5817
|
})
|
|
5661
5818
|
doc('work', <<'EOT'
|
|
5662
5819
|
The amount of time that the resource has spend with the task during the
|
|
5663
|
-
reported period. This value is ignored when there are
|
|
5664
|
-
the resource overlapping with the time sheet
|
|
5665
|
-
TaskJuggler will try to convert the work
|
|
5666
|
-
internally before the actual scheduling is
|
|
5820
|
+
reported period. This value is ignored when there are
|
|
5821
|
+
[[booking.task|bookings]] for the resource overlapping with the time sheet
|
|
5822
|
+
period. If there are no bookings, TaskJuggler will try to convert the work
|
|
5823
|
+
specification into bookings internally before the actual scheduling is
|
|
5824
|
+
started.
|
|
5667
5825
|
|
|
5668
5826
|
Every task listed in the time sheet needs to have a work attribute. The total
|
|
5669
5827
|
accumulated work time that is reported must match exactly the total working
|
|
@@ -5705,7 +5863,8 @@ EOT
|
|
|
5705
5863
|
def rule_valDate
|
|
5706
5864
|
pattern(%w( !date ), lambda {
|
|
5707
5865
|
if @val[0] < @project['start'] || @val[0] > @project['end']
|
|
5708
|
-
error('date_in_range',
|
|
5866
|
+
error('date_in_range',
|
|
5867
|
+
"Date #{@val[0]} must be within the project time frame " +
|
|
5709
5868
|
"#{@project['start']} - #{@project['end']}",
|
|
5710
5869
|
@sourceFileInfo[0])
|
|
5711
5870
|
end
|
|
@@ -5908,8 +6067,7 @@ EOT
|
|
|
5908
6067
|
@property['workinghours', @scenarioIdx] = wh
|
|
5909
6068
|
end
|
|
5910
6069
|
end
|
|
5911
|
-
wh.timezone = @
|
|
5912
|
-
@property['timezone', @scenarioIdx]
|
|
6070
|
+
wh.timezone = @project['timezone']
|
|
5913
6071
|
7.times { |i| wh.setWorkingHours(i, @val[2]) if @val[1][i] }
|
|
5914
6072
|
})
|
|
5915
6073
|
end
|