taskjuggler 0.0.2
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/COPYING +280 -0
- data/README +31 -0
- data/Rakefile +20 -0
- data/benchmarks/UTF-8-Strings.rb +58 -0
- data/benchmarks/allocate.tjp +30 -0
- data/benchmarks/booking.tjp +62 -0
- data/benchmarks/depends.tjp +112 -0
- data/benchmarks/htmltaskreport.tjp +45 -0
- data/benchmarks/runbench.rb +24 -0
- data/bin/tj3 +3 -0
- data/bin/tj3man +3 -0
- data/doc/classes/AppConfig.html +808 -0
- data/doc/classes/Arguments.html +226 -0
- data/doc/classes/String.html +395 -0
- data/doc/classes/TaskJuggler.html +1358 -0
- data/doc/classes/TaskJuggler/Account.html +257 -0
- data/doc/classes/TaskJuggler/AccountScenario.html +218 -0
- data/doc/classes/TaskJuggler/Allocation.html +419 -0
- data/doc/classes/TaskJuggler/AllocationAttribute.html +291 -0
- data/doc/classes/TaskJuggler/AttributeBase.html +608 -0
- data/doc/classes/TaskJuggler/AttributeDefinition.html +259 -0
- data/doc/classes/TaskJuggler/Booking.html +307 -0
- data/doc/classes/TaskJuggler/BookingListAttribute.html +263 -0
- data/doc/classes/TaskJuggler/BooleanAttribute.html +261 -0
- data/doc/classes/TaskJuggler/CSVFile.html +325 -0
- data/doc/classes/TaskJuggler/Charge.html +279 -0
- data/doc/classes/TaskJuggler/ChargeListAttribute.html +229 -0
- data/doc/classes/TaskJuggler/ChargeSet.html +440 -0
- data/doc/classes/TaskJuggler/ChargeSetListAttribute.html +276 -0
- data/doc/classes/TaskJuggler/ColumnTable.html +260 -0
- data/doc/classes/TaskJuggler/DateAttribute.html +194 -0
- data/doc/classes/TaskJuggler/DependencyListAttribute.html +267 -0
- data/doc/classes/TaskJuggler/DurationAttribute.html +229 -0
- data/doc/classes/TaskJuggler/FixnumAttribute.html +194 -0
- data/doc/classes/TaskJuggler/FlagListAttribute.html +263 -0
- data/doc/classes/TaskJuggler/FloatAttribute.html +229 -0
- data/doc/classes/TaskJuggler/GanttChart.html +667 -0
- data/doc/classes/TaskJuggler/GanttContainer.html +441 -0
- data/doc/classes/TaskJuggler/GanttHeader.html +280 -0
- data/doc/classes/TaskJuggler/GanttHeaderScaleItem.html +245 -0
- data/doc/classes/TaskJuggler/GanttLine.html +398 -0
- data/doc/classes/TaskJuggler/GanttLoadStack.html +327 -0
- data/doc/classes/TaskJuggler/GanttMilestone.html +415 -0
- data/doc/classes/TaskJuggler/GanttRouter.html +425 -0
- data/doc/classes/TaskJuggler/GanttTaskBar.html +429 -0
- data/doc/classes/TaskJuggler/HTMLDocument.html +240 -0
- data/doc/classes/TaskJuggler/HTMLGraphics.html +231 -0
- data/doc/classes/TaskJuggler/Interval.html +552 -0
- data/doc/classes/TaskJuggler/IntervalListAttribute.html +267 -0
- data/doc/classes/TaskJuggler/KeywordDocumentation.html +796 -0
- data/doc/classes/TaskJuggler/Limits.html +416 -0
- data/doc/classes/TaskJuggler/Limits/Limit.html +381 -0
- data/doc/classes/TaskJuggler/LimitsAttribute.html +261 -0
- data/doc/classes/TaskJuggler/Log.html +613 -0
- data/doc/classes/TaskJuggler/LogicalAttribute.html +226 -0
- data/doc/classes/TaskJuggler/LogicalExpression.html +251 -0
- data/doc/classes/TaskJuggler/LogicalFlag.html +229 -0
- data/doc/classes/TaskJuggler/LogicalFunction.html +324 -0
- data/doc/classes/TaskJuggler/LogicalOperation.html +299 -0
- data/doc/classes/TaskJuggler/Macro.html +194 -0
- data/doc/classes/TaskJuggler/MacroParser.html +360 -0
- data/doc/classes/TaskJuggler/MacroTable.html +366 -0
- data/doc/classes/TaskJuggler/Message.html +281 -0
- data/doc/classes/TaskJuggler/MessageHandler.html +215 -0
- data/doc/classes/TaskJuggler/Project.html +1606 -0
- data/doc/classes/TaskJuggler/ProjectFileParser.html +412 -0
- data/doc/classes/TaskJuggler/PropertyList.html +597 -0
- data/doc/classes/TaskJuggler/PropertySet.html +1200 -0
- data/doc/classes/TaskJuggler/PropertyTreeNode.html +1449 -0
- data/doc/classes/TaskJuggler/Query.html +600 -0
- data/doc/classes/TaskJuggler/RealFormat.html +252 -0
- data/doc/classes/TaskJuggler/ReferenceAttribute.html +194 -0
- data/doc/classes/TaskJuggler/Report.html +528 -0
- data/doc/classes/TaskJuggler/ReportElement.html +1070 -0
- data/doc/classes/TaskJuggler/ReportTable.html +497 -0
- data/doc/classes/TaskJuggler/ReportTableCell.html +518 -0
- data/doc/classes/TaskJuggler/ReportTableColumn.html +364 -0
- data/doc/classes/TaskJuggler/ReportTableElement.html +644 -0
- data/doc/classes/TaskJuggler/ReportTableLegend.html +343 -0
- data/doc/classes/TaskJuggler/ReportTableLine.html +431 -0
- data/doc/classes/TaskJuggler/Resource.html +211 -0
- data/doc/classes/TaskJuggler/ResourceListAttribute.html +267 -0
- data/doc/classes/TaskJuggler/ResourceListRE.html +249 -0
- data/doc/classes/TaskJuggler/ResourceScenario.html +1137 -0
- data/doc/classes/TaskJuggler/RichText.html +537 -0
- data/doc/classes/TaskJuggler/RichTextAttribute.html +229 -0
- data/doc/classes/TaskJuggler/RichTextDocument.html +418 -0
- data/doc/classes/TaskJuggler/RichTextElement.html +829 -0
- data/doc/classes/TaskJuggler/RichTextException.html +212 -0
- data/doc/classes/TaskJuggler/RichTextParser.html +317 -0
- data/doc/classes/TaskJuggler/RichTextProtocolExample.html +303 -0
- data/doc/classes/TaskJuggler/RichTextProtocolHandler.html +194 -0
- data/doc/classes/TaskJuggler/RichTextScanner.html +561 -0
- data/doc/classes/TaskJuggler/RichTextSnip.html +364 -0
- data/doc/classes/TaskJuggler/RichTextSyntaxRules.html +883 -0
- data/doc/classes/TaskJuggler/Scenario.html +163 -0
- data/doc/classes/TaskJuggler/ScenarioData.html +354 -0
- data/doc/classes/TaskJuggler/Scoreboard.html +638 -0
- data/doc/classes/TaskJuggler/Shift.html +255 -0
- data/doc/classes/TaskJuggler/ShiftAssignment.html +488 -0
- data/doc/classes/TaskJuggler/ShiftAssignments.html +715 -0
- data/doc/classes/TaskJuggler/ShiftAssignmentsAttribute.html +261 -0
- data/doc/classes/TaskJuggler/ShiftScenario.html +282 -0
- data/doc/classes/TaskJuggler/SourceFileInfo.html +247 -0
- data/doc/classes/TaskJuggler/StringAttribute.html +229 -0
- data/doc/classes/TaskJuggler/SymbolAttribute.html +194 -0
- data/doc/classes/TaskJuggler/SyntaxReference.html +516 -0
- data/doc/classes/TaskJuggler/TOCEntry.html +242 -0
- data/doc/classes/TaskJuggler/TableColumnDefinition.html +273 -0
- data/doc/classes/TaskJuggler/TableOfContents.html +256 -0
- data/doc/classes/TaskJuggler/Task.html +203 -0
- data/doc/classes/TaskJuggler/TaskDependency.html +251 -0
- data/doc/classes/TaskJuggler/TaskListAttribute.html +267 -0
- data/doc/classes/TaskJuggler/TaskListRE.html +250 -0
- data/doc/classes/TaskJuggler/TaskScenario.html +2206 -0
- data/doc/classes/TaskJuggler/TextParser.html +670 -0
- data/doc/classes/TaskJuggler/TextParser/Pattern.html +923 -0
- data/doc/classes/TaskJuggler/TextParser/Rule.html +779 -0
- data/doc/classes/TaskJuggler/TextParser/StackElement.html +267 -0
- data/doc/classes/TaskJuggler/TextParser/TextParserResultArray.html +212 -0
- data/doc/classes/TaskJuggler/TextParser/TokenDoc.html +221 -0
- data/doc/classes/TaskJuggler/TextScanner.html +708 -0
- data/doc/classes/TaskJuggler/TextScanner/BufferStreamHandle.html +355 -0
- data/doc/classes/TaskJuggler/TextScanner/FileStreamHandle.html +341 -0
- data/doc/classes/TaskJuggler/TextScanner/StreamHandle.html +260 -0
- data/doc/classes/TaskJuggler/TjException.html +185 -0
- data/doc/classes/TaskJuggler/TjTime.html +1845 -0
- data/doc/classes/TaskJuggler/TjpExample.html +310 -0
- data/doc/classes/TaskJuggler/TjpExportRE.html +329 -0
- data/doc/classes/TaskJuggler/TjpSyntaxRules.html +8928 -0
- data/doc/classes/TaskJuggler/UserManual.html +606 -0
- data/doc/classes/TaskJuggler/WorkingHours.html +582 -0
- data/doc/classes/TaskJuggler/WorkingHoursAttribute.html +284 -0
- data/doc/classes/TaskJuggler/XMLBlob.html +207 -0
- data/doc/classes/TaskJuggler/XMLComment.html +206 -0
- data/doc/classes/TaskJuggler/XMLDocument.html +293 -0
- data/doc/classes/TaskJuggler/XMLElement.html +341 -0
- data/doc/classes/TaskJuggler/XMLNamedText.html +174 -0
- data/doc/classes/TaskJuggler/XMLText.html +221 -0
- data/doc/files/COPYING.html +448 -0
- data/doc/files/README.html +134 -0
- data/doc/files/lib/AccountScenario_rb.html +116 -0
- data/doc/files/lib/Account_rb.html +118 -0
- data/doc/files/lib/Allocation_rb.html +118 -0
- data/doc/files/lib/AppConfig_rb.html +116 -0
- data/doc/files/lib/AttributeBase_rb.html +106 -0
- data/doc/files/lib/AttributeDefinition_rb.html +106 -0
- data/doc/files/lib/Attributes_rb.html +130 -0
- data/doc/files/lib/Booking_rb.html +106 -0
- data/doc/files/lib/ChargeSet_rb.html +116 -0
- data/doc/files/lib/Charge_rb.html +116 -0
- data/doc/files/lib/HTMLDocument_rb.html +116 -0
- data/doc/files/lib/Interval_rb.html +116 -0
- data/doc/files/lib/KeywordDocumentation_rb.html +122 -0
- data/doc/files/lib/Limits_rb.html +116 -0
- data/doc/files/lib/Log_rb.html +116 -0
- data/doc/files/lib/LogicalExpression_rb.html +122 -0
- data/doc/files/lib/LogicalFlag_rb.html +116 -0
- data/doc/files/lib/LogicalFunction_rb.html +116 -0
- data/doc/files/lib/LogicalOperation_rb.html +116 -0
- data/doc/files/lib/MacroParser_rb.html +118 -0
- data/doc/files/lib/MacroTable_rb.html +122 -0
- data/doc/files/lib/MessageHandler_rb.html +106 -0
- data/doc/files/lib/Message_rb.html +116 -0
- data/doc/files/lib/ProjectFileParser_rb.html +122 -0
- data/doc/files/lib/Project_rb.html +148 -0
- data/doc/files/lib/PropertyList_rb.html +106 -0
- data/doc/files/lib/PropertySet_rb.html +118 -0
- data/doc/files/lib/PropertyTreeNode_rb.html +106 -0
- data/doc/files/lib/Query_rb.html +116 -0
- data/doc/files/lib/RealFormat_rb.html +106 -0
- data/doc/files/lib/ResourceScenario_rb.html +116 -0
- data/doc/files/lib/Resource_rb.html +118 -0
- data/doc/files/lib/RichTextDocument_rb.html +120 -0
- data/doc/files/lib/RichTextElement_rb.html +120 -0
- data/doc/files/lib/RichTextParser_rb.html +120 -0
- data/doc/files/lib/RichTextProtocolExample_rb.html +120 -0
- data/doc/files/lib/RichTextProtocolHandler_rb.html +106 -0
- data/doc/files/lib/RichTextScanner_rb.html +116 -0
- data/doc/files/lib/RichTextSnip_rb.html +118 -0
- data/doc/files/lib/RichTextSyntaxRules_rb.html +106 -0
- data/doc/files/lib/RichText_rb.html +118 -0
- data/doc/files/lib/ScenarioData_rb.html +118 -0
- data/doc/files/lib/Scenario_rb.html +116 -0
- data/doc/files/lib/Scoreboard_rb.html +106 -0
- data/doc/files/lib/ShiftAssignments_rb.html +116 -0
- data/doc/files/lib/ShiftScenario_rb.html +116 -0
- data/doc/files/lib/Shift_rb.html +118 -0
- data/doc/files/lib/SourceFileInfo_rb.html +106 -0
- data/doc/files/lib/SyntaxReference_rb.html +122 -0
- data/doc/files/lib/TOCEntry_rb.html +118 -0
- data/doc/files/lib/TableColumnDefinition_rb.html +106 -0
- data/doc/files/lib/TableOfContents_rb.html +118 -0
- data/doc/files/lib/TaskDependency_rb.html +106 -0
- data/doc/files/lib/TaskJuggler_rb.html +120 -0
- data/doc/files/lib/TaskScenario_rb.html +116 -0
- data/doc/files/lib/Task_rb.html +118 -0
- data/doc/files/lib/TextParser/Pattern_rb.html +116 -0
- data/doc/files/lib/TextParser/Rule_rb.html +106 -0
- data/doc/files/lib/TextParser/StackElement_rb.html +106 -0
- data/doc/files/lib/TextParser/TokenDoc_rb.html +106 -0
- data/doc/files/lib/TextParser_rb.html +124 -0
- data/doc/files/lib/TextScanner_rb.html +128 -0
- data/doc/files/lib/Tj3Config_rb.html +118 -0
- data/doc/files/lib/TjException_rb.html +106 -0
- data/doc/files/lib/TjTime_rb.html +118 -0
- data/doc/files/lib/TjpExample_rb.html +116 -0
- data/doc/files/lib/TjpSyntaxRules_rb.html +106 -0
- data/doc/files/lib/UTF8String_rb.html +132 -0
- data/doc/files/lib/UserManual_rb.html +124 -0
- data/doc/files/lib/WorkingHours_rb.html +116 -0
- data/doc/files/lib/XMLDocument_rb.html +116 -0
- data/doc/files/lib/XMLElement_rb.html +116 -0
- data/doc/files/lib/reports/CSVFile_rb.html +116 -0
- data/doc/files/lib/reports/ColumnTable_rb.html +116 -0
- data/doc/files/lib/reports/GanttChart_rb.html +122 -0
- data/doc/files/lib/reports/GanttContainer_rb.html +116 -0
- data/doc/files/lib/reports/GanttHeaderScaleItem_rb.html +106 -0
- data/doc/files/lib/reports/GanttHeader_rb.html +116 -0
- data/doc/files/lib/reports/GanttLine_rb.html +126 -0
- data/doc/files/lib/reports/GanttLoadStack_rb.html +116 -0
- data/doc/files/lib/reports/GanttMilestone_rb.html +116 -0
- data/doc/files/lib/reports/GanttRouter_rb.html +106 -0
- data/doc/files/lib/reports/GanttTaskBar_rb.html +116 -0
- data/doc/files/lib/reports/HTMLGraphics_rb.html +106 -0
- data/doc/files/lib/reports/ReportElement_rb.html +118 -0
- data/doc/files/lib/reports/ReportTableCell_rb.html +106 -0
- data/doc/files/lib/reports/ReportTableColumn_rb.html +106 -0
- data/doc/files/lib/reports/ReportTableElement_rb.html +122 -0
- data/doc/files/lib/reports/ReportTableLegend_rb.html +106 -0
- data/doc/files/lib/reports/ReportTableLine_rb.html +116 -0
- data/doc/files/lib/reports/ReportTable_rb.html +118 -0
- data/doc/files/lib/reports/Report_rb.html +126 -0
- data/doc/files/lib/reports/ResourceListRE_rb.html +122 -0
- data/doc/files/lib/reports/TaskListRE_rb.html +122 -0
- data/doc/files/lib/reports/TjpExportRE_rb.html +116 -0
- data/doc/files/lib/taskjuggler3_rb.html +276 -0
- data/doc/files/lib/tj3man_rb.html +189 -0
- data/doc/fr_class_index.html +285 -0
- data/doc/fr_file_index.html +223 -0
- data/doc/fr_method_index.html +1953 -0
- data/doc/index.html +21 -0
- data/doc/rdoc-style.css +299 -0
- data/examples/tutorial.tjp +361 -0
- data/gem_spec.rb +30 -0
- data/lib/Account.rb +50 -0
- data/lib/AccountScenario.rb +39 -0
- data/lib/Allocation.rb +102 -0
- data/lib/AppConfig.rb +134 -0
- data/lib/AttributeBase.rb +131 -0
- data/lib/AttributeDefinition.rb +47 -0
- data/lib/Attributes.rb +478 -0
- data/lib/BatchProcessor.rb +209 -0
- data/lib/Booking.rb +59 -0
- data/lib/Charge.rb +71 -0
- data/lib/ChargeSet.rb +126 -0
- data/lib/HTMLDocument.rb +59 -0
- data/lib/Interval.rb +127 -0
- data/lib/KeywordDocumentation.rb +560 -0
- data/lib/Limits.rb +219 -0
- data/lib/Log.rb +160 -0
- data/lib/LogicalExpression.rb +71 -0
- data/lib/LogicalFlag.rb +34 -0
- data/lib/LogicalFunction.rb +102 -0
- data/lib/LogicalOperation.rb +118 -0
- data/lib/MacroParser.rb +77 -0
- data/lib/MacroTable.rb +84 -0
- data/lib/Message.rb +56 -0
- data/lib/MessageHandler.rb +34 -0
- data/lib/Project.rb +662 -0
- data/lib/ProjectFileParser.rb +333 -0
- data/lib/PropertyList.rb +181 -0
- data/lib/PropertySet.rb +304 -0
- data/lib/PropertyTreeNode.rb +461 -0
- data/lib/Query.rb +227 -0
- data/lib/RealFormat.rb +73 -0
- data/lib/Resource.rb +42 -0
- data/lib/ResourceScenario.rb +511 -0
- data/lib/RichText.rb +147 -0
- data/lib/RichTextDocument.rb +139 -0
- data/lib/RichTextElement.rb +391 -0
- data/lib/RichTextParser.rb +66 -0
- data/lib/RichTextProtocolExample.rb +65 -0
- data/lib/RichTextProtocolHandler.rb +35 -0
- data/lib/RichTextScanner.rb +390 -0
- data/lib/RichTextSnip.rb +104 -0
- data/lib/RichTextSyntaxRules.rb +265 -0
- data/lib/Scenario.rb +27 -0
- data/lib/ScenarioData.rb +65 -0
- data/lib/Scoreboard.rb +141 -0
- data/lib/Shift.rb +48 -0
- data/lib/ShiftAssignments.rb +291 -0
- data/lib/ShiftScenario.rb +46 -0
- data/lib/SourceFileInfo.rb +37 -0
- data/lib/SyntaxReference.rb +284 -0
- data/lib/TOCEntry.rb +76 -0
- data/lib/TableColumnDefinition.rb +54 -0
- data/lib/TableOfContents.rb +46 -0
- data/lib/Task.rb +37 -0
- data/lib/TaskDependency.rb +39 -0
- data/lib/TaskJuggler.rb +84 -0
- data/lib/TaskScenario.rb +1622 -0
- data/lib/TextParser.rb +416 -0
- data/lib/TextParser/Pattern.rb +263 -0
- data/lib/TextParser/Rule.rb +171 -0
- data/lib/TextParser/StackElement.rb +45 -0
- data/lib/TextParser/TokenDoc.rb +38 -0
- data/lib/TextScanner.rb +682 -0
- data/lib/Tj3Config.rb +27 -0
- data/lib/TjException.rb +27 -0
- data/lib/TjTime.rb +395 -0
- data/lib/TjpExample.rb +119 -0
- data/lib/TjpSyntaxRules.rb +4022 -0
- data/lib/UTF8String.rb +100 -0
- data/lib/UserManual.rb +282 -0
- data/lib/WorkingHours.rb +323 -0
- data/lib/XMLDocument.rb +54 -0
- data/lib/XMLElement.rb +175 -0
- data/lib/reports/CSVFile.rb +146 -0
- data/lib/reports/ColumnTable.rb +66 -0
- data/lib/reports/GanttChart.rb +308 -0
- data/lib/reports/GanttContainer.rb +107 -0
- data/lib/reports/GanttHeader.rb +141 -0
- data/lib/reports/GanttHeaderScaleItem.rb +42 -0
- data/lib/reports/GanttLine.rb +329 -0
- data/lib/reports/GanttLoadStack.rb +113 -0
- data/lib/reports/GanttMilestone.rb +80 -0
- data/lib/reports/GanttRouter.rb +375 -0
- data/lib/reports/GanttTaskBar.rb +95 -0
- data/lib/reports/HTMLGraphics.rb +65 -0
- data/lib/reports/Report.rb +344 -0
- data/lib/reports/ReportElement.rb +427 -0
- data/lib/reports/ReportTable.rb +144 -0
- data/lib/reports/ReportTableCell.rb +142 -0
- data/lib/reports/ReportTableColumn.rb +82 -0
- data/lib/reports/ReportTableElement.rb +852 -0
- data/lib/reports/ReportTableLegend.rb +167 -0
- data/lib/reports/ReportTableLine.rb +87 -0
- data/lib/reports/ResourceListRE.rb +72 -0
- data/lib/reports/TaskListRE.rb +73 -0
- data/lib/reports/TjpExportRE.rb +394 -0
- data/lib/taskjuggler3.rb +106 -0
- data/lib/tj3man.rb +88 -0
- data/manual/Day_To_Day_Juggling +168 -0
- data/manual/Getting_Started +61 -0
- data/manual/How_To_Contribute +185 -0
- data/manual/Installation +68 -0
- data/manual/Intro +102 -0
- data/manual/Reporting_Bugs +26 -0
- data/manual/Rich_Text_Attributes +90 -0
- data/manual/TaskJuggler_2x_Migration +40 -0
- data/manual/Tutorial +579 -0
- data/manual/fdl +450 -0
- data/prj_cfg.rb +43 -0
- data/setup.rb +1585 -0
- data/tasks/csts.rake +72 -0
- data/tasks/gem.rake +14 -0
- data/tasks/manual.rake +10 -0
- data/tasks/missing.rake +21 -0
- data/tasks/rcov.rake +14 -0
- data/tasks/rdoc.rake +17 -0
- data/tasks/rexml_fix.rb +16 -0
- data/tasks/rexml_fix_19.rb +49 -0
- data/tasks/show.rake +21 -0
- data/tasks/stats.rake +25 -0
- data/tasks/test.rake +11 -0
- data/test/MessageChecker.rb +53 -0
- data/test/TestSuite/CSV-Reports/celltext-Reference.csv +14 -0
- data/test/TestSuite/CSV-Reports/celltext.tjp +7 -0
- data/test/TestSuite/CSV-Reports/genrefs +6 -0
- data/test/TestSuite/CSV-Reports/project-1.tji +57 -0
- data/test/TestSuite/CSV-Reports/resourcereport-Reference.csv +4 -0
- data/test/TestSuite/CSV-Reports/resourcereport.tjp +10 -0
- data/test/TestSuite/CSV-Reports/resourcereport_with_tasks-Reference.csv +22 -0
- data/test/TestSuite/CSV-Reports/resourcereport_with_tasks.tjp +11 -0
- data/test/TestSuite/CSV-Reports/sortByTree-Reference.csv +14 -0
- data/test/TestSuite/CSV-Reports/sortByTree.tjp +8 -0
- data/test/TestSuite/CSV-Reports/sortBy_duration.down-Reference.csv +14 -0
- data/test/TestSuite/CSV-Reports/sortBy_duration.down.tjp +10 -0
- data/test/TestSuite/CSV-Reports/sortBy_effort.up-Reference.csv +14 -0
- data/test/TestSuite/CSV-Reports/sortBy_effort.up.tjp +10 -0
- data/test/TestSuite/CSV-Reports/sortBy_plan.start.down-Reference.csv +14 -0
- data/test/TestSuite/CSV-Reports/sortBy_plan.start.down.tjp +10 -0
- data/test/TestSuite/CSV-Reports/taskreport-Reference.csv +14 -0
- data/test/TestSuite/CSV-Reports/taskreport.tjp +10 -0
- data/test/TestSuite/CSV-Reports/taskreport_with_resources-Reference.csv +24 -0
- data/test/TestSuite/CSV-Reports/taskreport_with_resources.tjp +11 -0
- data/test/TestSuite/Scheduler/Correct/Allocate.tjp +86 -0
- data/test/TestSuite/Scheduler/Correct/AutomaticMilestones.tjp +63 -0
- data/test/TestSuite/Scheduler/Correct/Booking.tjp +161 -0
- data/test/TestSuite/Scheduler/Correct/Depends.tjp +50 -0
- data/test/TestSuite/Scheduler/Correct/Duration.tjp +34 -0
- data/test/TestSuite/Scheduler/Correct/InheritStartEnd.tjp +129 -0
- data/test/TestSuite/Scheduler/Correct/Limits.tjp +81 -0
- data/test/TestSuite/Scheduler/Correct/MultipleMandatories.tjp +43 -0
- data/test/TestSuite/Scheduler/Correct/Optimize-1.tjp +28 -0
- data/test/TestSuite/Scheduler/Correct/Optimize-2.tjp +33 -0
- data/test/TestSuite/Scheduler/Correct/Optimize-3.tjp +33 -0
- data/test/TestSuite/Scheduler/Correct/Optimize-4.tjp +34 -0
- data/test/TestSuite/Scheduler/Correct/Optimize-5.tjp +62 -0
- data/test/TestSuite/Scheduler/Correct/Precedes.tjp +50 -0
- data/test/TestSuite/Scheduler/Correct/Shift.tjp +102 -0
- data/test/TestSuite/Scheduler/Errors/account_no_leaf.tjp +13 -0
- data/test/TestSuite/Scheduler/Errors/booking_conflict.tjp +10 -0
- data/test/TestSuite/Scheduler/Errors/booking_no_duty.tjp +9 -0
- data/test/TestSuite/Scheduler/Errors/booking_on_vacation.tjp +9 -0
- data/test/TestSuite/Scheduler/Errors/container_booking.tjp +14 -0
- data/test/TestSuite/Scheduler/Errors/container_duration.tjp +11 -0
- data/test/TestSuite/Scheduler/Errors/effort_no_allocations.tjp +7 -0
- data/test/TestSuite/Scheduler/Errors/loop_detected_1.tjp +19 -0
- data/test/TestSuite/Scheduler/Errors/loop_detected_10.tjp +36 -0
- data/test/TestSuite/Scheduler/Errors/loop_detected_11.tjp +27 -0
- data/test/TestSuite/Scheduler/Errors/loop_detected_12.tjp +20 -0
- data/test/TestSuite/Scheduler/Errors/loop_detected_13.tjp +27 -0
- data/test/TestSuite/Scheduler/Errors/loop_detected_14.tjp +26 -0
- data/test/TestSuite/Scheduler/Errors/loop_detected_2.tjp +24 -0
- data/test/TestSuite/Scheduler/Errors/loop_detected_3.tjp +18 -0
- data/test/TestSuite/Scheduler/Errors/loop_detected_4.tjp +36 -0
- data/test/TestSuite/Scheduler/Errors/loop_detected_5.tjp +37 -0
- data/test/TestSuite/Scheduler/Errors/loop_detected_6.tjp +35 -0
- data/test/TestSuite/Scheduler/Errors/loop_detected_7.tjp +46 -0
- data/test/TestSuite/Scheduler/Errors/loop_detected_8.tjp +51 -0
- data/test/TestSuite/Scheduler/Errors/loop_detected_9.tjp +20 -0
- data/test/TestSuite/Scheduler/Errors/maxend.tjp +8 -0
- data/test/TestSuite/Scheduler/Errors/maxstart.tjp +8 -0
- data/test/TestSuite/Scheduler/Errors/milestone_booking.tjp +10 -0
- data/test/TestSuite/Scheduler/Errors/milestone_duration.tjp +8 -0
- data/test/TestSuite/Scheduler/Errors/milestone_start_end.tjp +8 -0
- data/test/TestSuite/Scheduler/Errors/minend.tjp +8 -0
- data/test/TestSuite/Scheduler/Errors/minstart.tjp +8 -0
- data/test/TestSuite/Scheduler/Errors/multiple_durations.tjp +11 -0
- data/test/TestSuite/Scheduler/Errors/no_tasks.tjp +6 -0
- data/test/TestSuite/Scheduler/Errors/not_scheduled.tjp +8 -0
- data/test/TestSuite/Scheduler/Errors/task_depend_child.tjp +10 -0
- data/test/TestSuite/Scheduler/Errors/task_depend_multi.tjp +13 -0
- data/test/TestSuite/Scheduler/Errors/task_depend_parent.tjp +11 -0
- data/test/TestSuite/Scheduler/Errors/task_depend_self.tjp +10 -0
- data/test/TestSuite/Scheduler/Errors/task_depend_unknown.tjp +10 -0
- data/test/TestSuite/Scheduler/Errors/task_overspecified_1.tjp +9 -0
- data/test/TestSuite/Scheduler/Errors/task_overspecified_2.tjp +14 -0
- data/test/TestSuite/Scheduler/Errors/task_overspecified_3.tjp +14 -0
- data/test/TestSuite/Scheduler/Errors/task_underspecified_1.tjp +8 -0
- data/test/TestSuite/Scheduler/Errors/task_underspecified_2.tjp +8 -0
- data/test/TestSuite/Scheduler/Errors/task_underspecified_3.tjp +9 -0
- data/test/TestSuite/Syntax/Correct/Account.tjp +53 -0
- data/test/TestSuite/Syntax/Correct/Allocate-1.tjp +24 -0
- data/test/TestSuite/Syntax/Correct/Alternative.tjp +13 -0
- data/test/TestSuite/Syntax/Correct/AutoMacros.tjp +14 -0
- data/test/TestSuite/Syntax/Correct/Booking.tjp +26 -0
- data/test/TestSuite/Syntax/Correct/Caption.tjp +33 -0
- data/test/TestSuite/Syntax/Correct/Celltext.tjp +28 -0
- data/test/TestSuite/Syntax/Correct/Comments.tjp +29 -0
- data/test/TestSuite/Syntax/Correct/Complete.tjp +16 -0
- data/test/TestSuite/Syntax/Correct/CompletedWork.tji +20 -0
- data/test/TestSuite/Syntax/Correct/CriticalPath.tjp +31 -0
- data/test/TestSuite/Syntax/Correct/Currencyformat.tjp +12 -0
- data/test/TestSuite/Syntax/Correct/CustomAttributes.tjp +14 -0
- data/test/TestSuite/Syntax/Correct/Depends1.tjp +22 -0
- data/test/TestSuite/Syntax/Correct/Durations.tjp +29 -0
- data/test/TestSuite/Syntax/Correct/Efficiency.tjp +19 -0
- data/test/TestSuite/Syntax/Correct/Export.tjp +40 -0
- data/test/TestSuite/Syntax/Correct/Flags.tjp +32 -0
- data/test/TestSuite/Syntax/Correct/Freeze.tjp +28 -0
- data/test/TestSuite/Syntax/Correct/Gap.tjp +15 -0
- data/test/TestSuite/Syntax/Correct/HtmlTaskReport.tjp +33 -0
- data/test/TestSuite/Syntax/Correct/Limits-1.tjp +71 -0
- data/test/TestSuite/Syntax/Correct/LoadUnits.tjp +31 -0
- data/test/TestSuite/Syntax/Correct/Macro-1.tjp +19 -0
- data/test/TestSuite/Syntax/Correct/Mandatory.tjp +17 -0
- data/test/TestSuite/Syntax/Correct/Milestone.tjp +12 -0
- data/test/TestSuite/Syntax/Correct/MinMax.tjp +17 -0
- data/test/TestSuite/Syntax/Correct/Numberformat.tjp +12 -0
- data/test/TestSuite/Syntax/Correct/Period.tjp +16 -0
- data/test/TestSuite/Syntax/Correct/Persistent.tjp +11 -0
- data/test/TestSuite/Syntax/Correct/Precedes1.tjp +17 -0
- data/test/TestSuite/Syntax/Correct/Priority.tjp +30 -0
- data/test/TestSuite/Syntax/Correct/Project.tjp +21 -0
- data/test/TestSuite/Syntax/Correct/ProjectIDs.tjp +23 -0
- data/test/TestSuite/Syntax/Correct/RawHTML.tjp +29 -0
- data/test/TestSuite/Syntax/Correct/Reports.tjp +54 -0
- data/test/TestSuite/Syntax/Correct/Resource.tjp +20 -0
- data/test/TestSuite/Syntax/Correct/Responsible.tjp +16 -0
- data/test/TestSuite/Syntax/Correct/Scenario.tjp +15 -0
- data/test/TestSuite/Syntax/Correct/Scheduling.tjp +26 -0
- data/test/TestSuite/Syntax/Correct/Select.tjp +27 -0
- data/test/TestSuite/Syntax/Correct/Shift.tjp +55 -0
- data/test/TestSuite/Syntax/Correct/Simple.tjp +25 -0
- data/test/TestSuite/Syntax/Correct/String.tjp +12 -0
- data/test/TestSuite/Syntax/Correct/Supplement.tjp +24 -0
- data/test/TestSuite/Syntax/Correct/TaskRoot.tjp +34 -0
- data/test/TestSuite/Syntax/Correct/TimeFrame.tjp +19 -0
- data/test/TestSuite/Syntax/Correct/Timezone.tjp +8 -0
- data/test/TestSuite/Syntax/Correct/Vacation.tjp +33 -0
- data/test/TestSuite/Syntax/Correct/csvtest +16 -0
- data/test/TestSuite/Syntax/Correct/manual2example.rb +24 -0
- data/test/TestSuite/Syntax/Correct/tutorial.tjp +485 -0
- data/test/TestSuite/Syntax/Errors/bad_include.tjp +11 -0
- data/test/TestSuite/Syntax/Errors/booking_group.tjp +14 -0
- data/test/TestSuite/Syntax/Errors/booking_milestone.tjp +13 -0
- data/test/TestSuite/Syntax/Errors/booking_no_leaf.tjp +13 -0
- data/test/TestSuite/Syntax/Errors/chargeset.tjp +14 -0
- data/test/TestSuite/Syntax/Errors/chargeset_master.tjp +15 -0
- data/test/TestSuite/Syntax/Errors/container_attribute.tjp +13 -0
- data/test/TestSuite/Syntax/Errors/cost_acct_no_top.tjp +24 -0
- data/test/TestSuite/Syntax/Errors/cost_rev_same.tjp +24 -0
- data/test/TestSuite/Syntax/Errors/date_in_range.tjp +7 -0
- data/test/TestSuite/Syntax/Errors/effort_zero.tjp +8 -0
- data/test/TestSuite/Syntax/Errors/empty.tjp +1 -0
- data/test/TestSuite/Syntax/Errors/export_bad_extn.tjp +9 -0
- data/test/TestSuite/Syntax/Errors/extend_id_cap.tjp +7 -0
- data/test/TestSuite/Syntax/Errors/interval_end_in_range.tjp +7 -0
- data/test/TestSuite/Syntax/Errors/interval_start_in_range.tjp +7 -0
- data/test/TestSuite/Syntax/Errors/leaf_resource_id_expected.tjp +12 -0
- data/test/TestSuite/Syntax/Errors/misaligned_date.tjp +7 -0
- data/test/TestSuite/Syntax/Errors/no_csv_suffix.tjp +10 -0
- data/test/TestSuite/Syntax/Errors/no_html_suffix.tjp +10 -0
- data/test/TestSuite/Syntax/Errors/operand_attribute.tjp +11 -0
- data/test/TestSuite/Syntax/Errors/operand_unkn_flag.tjp +11 -0
- data/test/TestSuite/Syntax/Errors/operand_unkn_scen.tjp +11 -0
- data/test/TestSuite/Syntax/Errors/overtime_range.tjp +13 -0
- data/test/TestSuite/Syntax/Errors/purge_no_list.tjp +8 -0
- data/test/TestSuite/Syntax/Errors/purge_unknown_id.tjp +8 -0
- data/test/TestSuite/Syntax/Errors/report_end.tjp +10 -0
- data/test/TestSuite/Syntax/Errors/report_redifinition.tjp +10 -0
- data/test/TestSuite/Syntax/Errors/report_start.tjp +10 -0
- data/test/TestSuite/Syntax/Errors/resource_exists.tjp +7 -0
- data/test/TestSuite/Syntax/Errors/resource_id_expected.tjp +8 -0
- data/test/TestSuite/Syntax/Errors/rev_acct_no_top.tjp +24 -0
- data/test/TestSuite/Syntax/Errors/scenario_exists.tjp +7 -0
- data/test/TestSuite/Syntax/Errors/shift_assignment_overlap.tjp +15 -0
- data/test/TestSuite/Syntax/Errors/shift_exists.tjp +7 -0
- data/test/TestSuite/Syntax/Errors/shift_id_expected.tjp +7 -0
- data/test/TestSuite/Syntax/Errors/sloppy_range.tjp +13 -0
- data/test/TestSuite/Syntax/Errors/sort_direction.tjp +11 -0
- data/test/TestSuite/Syntax/Errors/sort_unknown_scen.tjp +11 -0
- data/test/TestSuite/Syntax/Errors/sorting_crit_exptd1.tjp +11 -0
- data/test/TestSuite/Syntax/Errors/sorting_crit_exptd2.tjp +11 -0
- data/test/TestSuite/Syntax/Errors/sorting_wbs.tjp +11 -0
- data/test/TestSuite/Syntax/Errors/start_before_end1.tjp +7 -0
- data/test/TestSuite/Syntax/Errors/start_before_end2.tjp +6 -0
- data/test/TestSuite/Syntax/Errors/task_complete.tjp +8 -0
- data/test/TestSuite/Syntax/Errors/task_exists.tjp +7 -0
- data/test/TestSuite/Syntax/Errors/task_priority.tjp +8 -0
- data/test/TestSuite/Syntax/Errors/task_without_chargeset.tjp +9 -0
- data/test/TestSuite/Syntax/Errors/time_interval.tjp +12 -0
- data/test/TestSuite/Syntax/Errors/too_many_bangs.tjp +10 -0
- data/test/TestSuite/Syntax/Errors/undecl_flag.tjp +6 -0
- data/test/TestSuite/Syntax/Errors/unknown_projectid.tjp +7 -0
- data/test/TestSuite/Syntax/Errors/unknown_scenario_id.tjp +6 -0
- data/test/TestSuite/Syntax/Errors/unknown_scenario_idx.tjp +11 -0
- data/test/TestSuite/Syntax/Errors/unknown_task.tjp +10 -0
- data/test/all.rb +31 -0
- data/test/test_BatchProcessor.rb +54 -0
- data/test/test_CSV-Reports.rb +101 -0
- data/test/test_Limits.rb +104 -0
- data/test/test_LogicalExpression.rb +110 -0
- data/test/test_MacroTable.rb +51 -0
- data/test/test_Project.rb +57 -0
- data/test/test_PropertySet.rb +71 -0
- data/test/test_Query.rb +83 -0
- data/test/test_RealFormat.rb +83 -0
- data/test/test_RichText.rb +869 -0
- data/test/test_Scheduler.rb +42 -0
- data/test/test_ShiftAssignments.rb +77 -0
- data/test/test_Syntax.rb +41 -0
- data/test/test_TextScanner.rb +95 -0
- data/test/test_TjTime.rb +114 -0
- data/test/test_TjpExample.rb +169 -0
- data/test/test_UTF8String.rb +84 -0
- data/test/test_WorkingHours.rb +56 -0
- metadata +649 -0
data/doc/index.html
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
|
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
|
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
|
4
|
+
<!--
|
|
5
|
+
|
|
6
|
+
TaskJuggler III API documentation
|
|
7
|
+
|
|
8
|
+
-->
|
|
9
|
+
<head>
|
|
10
|
+
<title>TaskJuggler III API documentation</title>
|
|
11
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
12
|
+
</head>
|
|
13
|
+
<frameset rows="20%, 80%">
|
|
14
|
+
<frameset cols="25%,35%,45%">
|
|
15
|
+
<frame src="fr_file_index.html" title="Files" name="Files" />
|
|
16
|
+
<frame src="fr_class_index.html" name="Classes" />
|
|
17
|
+
<frame src="fr_method_index.html" name="Methods" />
|
|
18
|
+
</frameset>
|
|
19
|
+
<frame src="files/README.html" name="docwin" />
|
|
20
|
+
</frameset>
|
|
21
|
+
</html>
|
data/doc/rdoc-style.css
ADDED
|
@@ -0,0 +1,299 @@
|
|
|
1
|
+
body {
|
|
2
|
+
font-family: Verdana,Arial,Helvetica,sans-serif;
|
|
3
|
+
font-size: 90%;
|
|
4
|
+
margin: 0;
|
|
5
|
+
margin-left: 40px;
|
|
6
|
+
padding: 0;
|
|
7
|
+
background: white;
|
|
8
|
+
color: black;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
h1, h2, h3, h4 {
|
|
12
|
+
margin: 0;
|
|
13
|
+
background: transparent;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
h1 {
|
|
17
|
+
font-size: 150%;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
h2,h3,h4 {
|
|
21
|
+
margin-top: 1em;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
:link, :visited {
|
|
25
|
+
background: #eef;
|
|
26
|
+
color: #039;
|
|
27
|
+
text-decoration: none;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
:link:hover, :visited:hover {
|
|
31
|
+
background: #039;
|
|
32
|
+
color: #eef;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/* Override the base stylesheet's Anchor inside a table cell */
|
|
36
|
+
td > :link, td > :visited {
|
|
37
|
+
background: transparent;
|
|
38
|
+
color: #039;
|
|
39
|
+
text-decoration: none;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/* and inside a section title */
|
|
43
|
+
.section-title > :link, .section-title > :visited {
|
|
44
|
+
background: transparent;
|
|
45
|
+
color: #eee;
|
|
46
|
+
text-decoration: none;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/* === Structural elements =================================== */
|
|
50
|
+
|
|
51
|
+
.index {
|
|
52
|
+
margin: 0;
|
|
53
|
+
margin-left: -40px;
|
|
54
|
+
padding: 0;
|
|
55
|
+
font-size: 90%;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
.index :link, .index :visited {
|
|
59
|
+
margin-left: 0.7em;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.index .section-bar {
|
|
63
|
+
margin-left: 0px;
|
|
64
|
+
padding-left: 0.7em;
|
|
65
|
+
background: #ccc;
|
|
66
|
+
font-size: small;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
#classHeader, #fileHeader {
|
|
70
|
+
width: auto;
|
|
71
|
+
color: white;
|
|
72
|
+
padding: 0.5em 1.5em 0.5em 1.5em;
|
|
73
|
+
margin: 0;
|
|
74
|
+
margin-left: -40px;
|
|
75
|
+
border-bottom: 3px solid #006;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
#classHeader :link, #fileHeader :link,
|
|
79
|
+
#classHeader :visited, #fileHeader :visited {
|
|
80
|
+
background: inherit;
|
|
81
|
+
color: white;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
#classHeader td, #fileHeader td {
|
|
85
|
+
background: inherit;
|
|
86
|
+
color: white;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
#fileHeader {
|
|
90
|
+
background: #057;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
#classHeader {
|
|
94
|
+
background: #048;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
.class-name-in-header {
|
|
98
|
+
font-size: 180%;
|
|
99
|
+
font-weight: bold;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
#bodyContent {
|
|
103
|
+
padding: 0 1.5em 0 1.5em;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
#description {
|
|
107
|
+
padding: 0.5em 1.5em;
|
|
108
|
+
background: #efefef;
|
|
109
|
+
border: 1px dotted #999;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
#description h1, #description h2, #description h3,
|
|
113
|
+
#description h4, #description h5, #description h6 {
|
|
114
|
+
color: #125;
|
|
115
|
+
background: transparent;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
#validator-badges {
|
|
119
|
+
text-align: center;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
#validator-badges img {
|
|
123
|
+
border: 0;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
#copyright {
|
|
127
|
+
color: #333;
|
|
128
|
+
background: #efefef;
|
|
129
|
+
font: 0.75em sans-serif;
|
|
130
|
+
margin-top: 5em;
|
|
131
|
+
margin-bottom: 0;
|
|
132
|
+
padding: 0.5em 2em;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
/* === Classes =================================== */
|
|
136
|
+
|
|
137
|
+
table.header-table {
|
|
138
|
+
color: white;
|
|
139
|
+
font-size: small;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
.type-note {
|
|
143
|
+
font-size: small;
|
|
144
|
+
color: #dedede;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
.section-bar {
|
|
148
|
+
color: #333;
|
|
149
|
+
border-bottom: 1px solid #999;
|
|
150
|
+
margin-left: -20px;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
.section-title {
|
|
154
|
+
background: #79a;
|
|
155
|
+
color: #eee;
|
|
156
|
+
padding: 3px;
|
|
157
|
+
margin-top: 2em;
|
|
158
|
+
margin-left: -30px;
|
|
159
|
+
border: 1px solid #999;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
.top-aligned-row {
|
|
163
|
+
vertical-align: top
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
.bottom-aligned-row {
|
|
167
|
+
vertical-align: bottom
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
#diagram img {
|
|
171
|
+
border: 0;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
/* --- Context section classes ----------------------- */
|
|
175
|
+
|
|
176
|
+
.context-row { }
|
|
177
|
+
|
|
178
|
+
.context-item-name {
|
|
179
|
+
font-family: monospace;
|
|
180
|
+
font-weight: bold;
|
|
181
|
+
color: black;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
.context-item-value {
|
|
185
|
+
font-size: small;
|
|
186
|
+
color: #448;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
.context-item-desc {
|
|
190
|
+
color: #333;
|
|
191
|
+
padding-left: 2em;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
/* --- Method classes -------------------------- */
|
|
195
|
+
|
|
196
|
+
.method-detail {
|
|
197
|
+
background: #efefef;
|
|
198
|
+
padding: 0;
|
|
199
|
+
margin-top: 0.5em;
|
|
200
|
+
margin-bottom: 1em;
|
|
201
|
+
border: 1px dotted #ccc;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
.method-heading {
|
|
205
|
+
color: black;
|
|
206
|
+
background: #ccc;
|
|
207
|
+
border-bottom: 1px solid #666;
|
|
208
|
+
padding: 0.2em 0.5em 0 0.5em;
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
.method-signature {
|
|
212
|
+
color: black;
|
|
213
|
+
background: inherit;
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
.method-name {
|
|
217
|
+
font-weight: bold;
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
.method-args {
|
|
221
|
+
font-style: italic;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
.method-description {
|
|
225
|
+
padding: 0 0.5em 0 0.5em;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
/* --- Source code sections -------------------- */
|
|
229
|
+
|
|
230
|
+
:link.source-toggle, :visited.source-toggle {
|
|
231
|
+
font-size: 90%;
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
div.method-source-code {
|
|
235
|
+
background: #262626;
|
|
236
|
+
color: #ffdead;
|
|
237
|
+
margin: 1em;
|
|
238
|
+
padding: 0.5em;
|
|
239
|
+
border: 1px dashed #999;
|
|
240
|
+
overflow: auto;
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
div.method-source-code pre {
|
|
244
|
+
color: #ffdead;
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
/* --- Ruby keyword styles --------------------- */
|
|
248
|
+
|
|
249
|
+
.standalone-code {
|
|
250
|
+
background: #221111;
|
|
251
|
+
color: #ffdead;
|
|
252
|
+
overflow: auto;
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
.ruby-constant {
|
|
256
|
+
color: #7fffd4;
|
|
257
|
+
background: transparent;
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
.ruby-keyword {
|
|
261
|
+
color: #00ffff;
|
|
262
|
+
background: transparent;
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
.ruby-ivar {
|
|
266
|
+
color: #eedd82;
|
|
267
|
+
background: transparent;
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
.ruby-operator {
|
|
271
|
+
color: #00ffee;
|
|
272
|
+
background: transparent;
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
.ruby-identifier {
|
|
276
|
+
color: #ffdead;
|
|
277
|
+
background: transparent;
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
.ruby-node {
|
|
281
|
+
color: #ffa07a;
|
|
282
|
+
background: transparent;
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
.ruby-comment {
|
|
286
|
+
color: #b22222;
|
|
287
|
+
font-weight: bold;
|
|
288
|
+
background: transparent;
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
.ruby-regexp {
|
|
292
|
+
color: #ffa07a;
|
|
293
|
+
background: transparent;
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
.ruby-value {
|
|
297
|
+
color: #7fffd4;
|
|
298
|
+
background: transparent;
|
|
299
|
+
}
|
|
@@ -0,0 +1,361 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* This file contains an example project. It is part of the
|
|
3
|
+
* TaskJuggler project management tool. It uses a made up software
|
|
4
|
+
* development project to demonstrate some of the basic features of
|
|
5
|
+
* TaskJuggler. Please see the TaskJuggler manual for a more detailed
|
|
6
|
+
* description of the various syntax elements.
|
|
7
|
+
*/
|
|
8
|
+
project acso "Accounting Software" "1.0" 2002-01-16 - 2002-04-28 {
|
|
9
|
+
# Hide the clock time. Only show the date.
|
|
10
|
+
timeformat "%Y-%m-%d"
|
|
11
|
+
# Use US format for numbers
|
|
12
|
+
numberformat "-" "" "," "." 1
|
|
13
|
+
# Use US financial format for currency values. Don't show pence.
|
|
14
|
+
currencyformat "(" ")" "," "." 0
|
|
15
|
+
# Pick a day during the project that will be reported as 'today' in
|
|
16
|
+
# the project reports. If not specified, the current day will be
|
|
17
|
+
# used, but this will likely be outside of the project range, so it
|
|
18
|
+
# can't be seen in the reports.
|
|
19
|
+
now 2002-03-05-13:00
|
|
20
|
+
# The currency for all money values is the Euro.
|
|
21
|
+
currency "USD"
|
|
22
|
+
|
|
23
|
+
# We want to compare the baseline scenario to one with a slightly
|
|
24
|
+
# delayed start.
|
|
25
|
+
scenario plan "Plan" {
|
|
26
|
+
scenario delayed "Delayed"
|
|
27
|
+
}
|
|
28
|
+
extend resource {
|
|
29
|
+
text Email "Email"
|
|
30
|
+
text Phone "Phone"
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
# This is not a real copyright for this file. It's just used as an example.
|
|
35
|
+
copyright "© 2002 Crappy Software, Inc."
|
|
36
|
+
|
|
37
|
+
# The daily default rate of all resources. This can be overridden for each
|
|
38
|
+
# resource. We specify this, so that we can do a good calculation of
|
|
39
|
+
# the costs of the project.
|
|
40
|
+
rate 390.0
|
|
41
|
+
|
|
42
|
+
# Register Good Friday as a global holiday for all resources.
|
|
43
|
+
vacation "Good Friday" 2002-03-29
|
|
44
|
+
|
|
45
|
+
flags team
|
|
46
|
+
|
|
47
|
+
# This is one way to form teams
|
|
48
|
+
macro allocate_developers [
|
|
49
|
+
allocate dev1
|
|
50
|
+
allocate dev2
|
|
51
|
+
allocate dev3
|
|
52
|
+
]
|
|
53
|
+
|
|
54
|
+
# In order to do a simple profit and loss analysis of the project we
|
|
55
|
+
# specify accounts. One for the development costs, one for the
|
|
56
|
+
# documentation costs, and one account to credit the customer payments
|
|
57
|
+
# to.
|
|
58
|
+
account cost "Project Cost" {
|
|
59
|
+
account dev "Development"
|
|
60
|
+
account doc "Documentation"
|
|
61
|
+
}
|
|
62
|
+
account rev "Payments"
|
|
63
|
+
# The Profit&Loss analysis should be rev - cost accounts.
|
|
64
|
+
balance cost rev
|
|
65
|
+
|
|
66
|
+
resource dev "Developers" {
|
|
67
|
+
resource dev1 "Paul Smith" {
|
|
68
|
+
Email "paul@crappysoftware.com"
|
|
69
|
+
Phone "x362"
|
|
70
|
+
rate 350.0
|
|
71
|
+
}
|
|
72
|
+
resource dev2 "Sébastien Bono" {
|
|
73
|
+
Email "SBono@crappysoftware.com"
|
|
74
|
+
Phone "x234"
|
|
75
|
+
}
|
|
76
|
+
resource dev3 "Klaus Müller" {
|
|
77
|
+
Email "Klaus.Mueller@crappysoftware.com"
|
|
78
|
+
Phone "x490"
|
|
79
|
+
vacation 2002-02-01 - 2002-02-05
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
flags team
|
|
83
|
+
}
|
|
84
|
+
resource misc "The Others" {
|
|
85
|
+
resource test "Peter Murphy" {
|
|
86
|
+
Email "murphy@crappysoftware.com"
|
|
87
|
+
Phone "x666"
|
|
88
|
+
limits { dailymax 6.4h }
|
|
89
|
+
rate 310.0
|
|
90
|
+
}
|
|
91
|
+
resource doc "Dim Sung" {
|
|
92
|
+
Email "sung@crappysoftware.com"
|
|
93
|
+
Phone "x482"
|
|
94
|
+
rate 300.0
|
|
95
|
+
vacation 2002-03-11 - 2002-03-16
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
flags team
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
# Now we specify the work packages. The whole project is described as
|
|
102
|
+
# a task that contains subtasks. These subtasks are then broken down
|
|
103
|
+
# into smaller tasks and so on. The innermost tasks describe the real
|
|
104
|
+
# work and have resources allocated to them. Many attributes of tasks
|
|
105
|
+
# are inherited from the enclosing task. This saves you a lot of typing.
|
|
106
|
+
task AcSo "Accounting Software" {
|
|
107
|
+
|
|
108
|
+
# All work-related costs will be booked to this account unless the
|
|
109
|
+
# subtasks specify something different.
|
|
110
|
+
chargeset dev
|
|
111
|
+
# For the duration of the project we have running cost that are not
|
|
112
|
+
# included in the labor cost.
|
|
113
|
+
charge 170 perday
|
|
114
|
+
|
|
115
|
+
task spec "Specification" {
|
|
116
|
+
# The effort to finish this task is 20 man-days.
|
|
117
|
+
effort 20d
|
|
118
|
+
# Now we use the macro declared above to allocate the resources
|
|
119
|
+
# for this task. Because they can work in parallel, they may finish this
|
|
120
|
+
# task earlier than in 20 working-days.
|
|
121
|
+
${allocate_developers}
|
|
122
|
+
# Each task without subtasks must have a start or an end
|
|
123
|
+
# criterion and a duration. For this task we use a reference to a
|
|
124
|
+
# milestone defined further below as the start criterion. So this task
|
|
125
|
+
# can not start before the specified milestone has been reached.
|
|
126
|
+
# References to other tasks may be relative. Each exclamation mark (!)
|
|
127
|
+
# means 'in the scope of the enclosing task'. To descent into a task, the
|
|
128
|
+
# fullstop (.) together with the id of the tasks have to be specified.
|
|
129
|
+
depends !deliveries.start
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
task software "Software Development" {
|
|
133
|
+
|
|
134
|
+
# The software is the most critical task of the project. So we set
|
|
135
|
+
# the priority of this task (and all its subtasks) to 1000, the top
|
|
136
|
+
# priority. The higher the priority, the more likely the task will
|
|
137
|
+
# get the requested resources.
|
|
138
|
+
priority 1000
|
|
139
|
+
|
|
140
|
+
# All subtasks depend on the specification task.
|
|
141
|
+
depends !spec
|
|
142
|
+
|
|
143
|
+
task database "Database coupling" {
|
|
144
|
+
effort 20d
|
|
145
|
+
allocate dev1, dev2
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
task gui "Graphical User Interface" {
|
|
149
|
+
effort 35d
|
|
150
|
+
# This task has taken 5 man-days more than originally planned.
|
|
151
|
+
# We record this as well, so that we can generate reports that
|
|
152
|
+
# compare the delayed schedule of the project to the original plan.
|
|
153
|
+
delayed:effort 40d
|
|
154
|
+
depends !database, !backend
|
|
155
|
+
allocate dev2, dev3
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
task backend "Back-End Functions" {
|
|
159
|
+
effort 30d
|
|
160
|
+
# This task is behind schedule, because it should have been
|
|
161
|
+
# finished already. To document this, we specify that the task
|
|
162
|
+
# is 95% completed. If nothing is specified, TaskJuggler assumes
|
|
163
|
+
# that the task is on schedule and computes the completion rate
|
|
164
|
+
# according to the current day and the plan data.
|
|
165
|
+
complete 95
|
|
166
|
+
depends !database
|
|
167
|
+
allocate dev1, dev2
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
task test "Software testing" {
|
|
172
|
+
|
|
173
|
+
task alpha "Alpha Test" {
|
|
174
|
+
# Efforts can not only be specified as man-days, but also as
|
|
175
|
+
# man-weeks, man-hours, etc. By default, TaskJuggler assumes
|
|
176
|
+
# that a man-week is 5 man-days or 40 man-hours. These values
|
|
177
|
+
# can be changed, of course.
|
|
178
|
+
effort 1w
|
|
179
|
+
# This task depends on a task in the scope of the enclosing
|
|
180
|
+
# task's enclosing task. So we need two exclamation marks (!!)
|
|
181
|
+
# to get there.
|
|
182
|
+
depends !!software
|
|
183
|
+
allocate test, dev2
|
|
184
|
+
note "Hopefully most bugs will be found and fixed here."
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
task beta "Beta Test" {
|
|
188
|
+
effort 4w
|
|
189
|
+
depends !alpha
|
|
190
|
+
allocate test, dev1
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
task manual "Manual" {
|
|
195
|
+
effort 10w
|
|
196
|
+
depends !deliveries.start
|
|
197
|
+
allocate doc, dev3
|
|
198
|
+
purge chargeset
|
|
199
|
+
chargeset doc
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
task deliveries "Milestones" {
|
|
203
|
+
|
|
204
|
+
# Some milestones have customer payments associated with them. We
|
|
205
|
+
# credit these payments to the 'rev' account.
|
|
206
|
+
purge chargeset
|
|
207
|
+
chargeset rev
|
|
208
|
+
|
|
209
|
+
task start "Project start" {
|
|
210
|
+
# A task that has no duration is a milestone. It only needs a
|
|
211
|
+
# start or end criterion. All other tasks depend on this task.
|
|
212
|
+
start 2002-01-16
|
|
213
|
+
# For some reason the actual start of the project got delayed.
|
|
214
|
+
# We record this, so that we can compare the planned run to the
|
|
215
|
+
# delayed run of the project.
|
|
216
|
+
delayed:start 2002-01-20
|
|
217
|
+
# At the beginning of this task we receive a payment from the
|
|
218
|
+
# customer. This is credited to the account associated with this
|
|
219
|
+
# task when the task starts.
|
|
220
|
+
charge 21000.0 onstart
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
task prev "Technology Preview" {
|
|
224
|
+
depends !!software.backend
|
|
225
|
+
startcredit 31000.0
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
task beta "Beta version" {
|
|
229
|
+
depends !!test.alpha
|
|
230
|
+
charge 13000.0 onstart
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
task done "Ship Product to Customer" {
|
|
234
|
+
# The next line can be uncommented to trigger a warning about
|
|
235
|
+
# the project being late. For all tasks, limits for the start and
|
|
236
|
+
# end values can be specified. Those limits are checked after the
|
|
237
|
+
# project has been scheduled. For all violated limits a warning
|
|
238
|
+
# is issued.
|
|
239
|
+
# maxend 2002-04-17
|
|
240
|
+
depends !!test.beta, !!manual
|
|
241
|
+
charge 33000.0 onstart
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
# Now the project has been specified completely. Stopping here would
|
|
247
|
+
# result in a valid TaskJuggler file that could be processed and
|
|
248
|
+
# scheduled. But no reports would be generated to visualize the
|
|
249
|
+
# results.
|
|
250
|
+
|
|
251
|
+
# A traditional Gantt chart with a project overview.
|
|
252
|
+
htmltaskreport "ProjectPlanOverview.html" {
|
|
253
|
+
prolog '
|
|
254
|
+
== Accounting Software Project ==
|
|
255
|
+
----
|
|
256
|
+
=== Project Overview ===
|
|
257
|
+
|
|
258
|
+
The project is structured into 3 phases.
|
|
259
|
+
|
|
260
|
+
# Specification
|
|
261
|
+
# [[Development]]
|
|
262
|
+
# Testing
|
|
263
|
+
|
|
264
|
+
=== Project Plan ===
|
|
265
|
+
'
|
|
266
|
+
|
|
267
|
+
headline "Project Plan Overview"
|
|
268
|
+
columns hierarchindex, name, start, end, effort, duration, cost,
|
|
269
|
+
revenue, chart
|
|
270
|
+
# For this report we like to have the abbreviated weekday in front
|
|
271
|
+
# of the date. %a is the tag for this.
|
|
272
|
+
timeformat "%a %Y-%m-%d"
|
|
273
|
+
loadunit days
|
|
274
|
+
hideresource 1
|
|
275
|
+
balance cost rev
|
|
276
|
+
caption '
|
|
277
|
+
All effort values are in man days.
|
|
278
|
+
'
|
|
279
|
+
|
|
280
|
+
epilog '
|
|
281
|
+
=== Staffing ===
|
|
282
|
+
|
|
283
|
+
All project phases are properly staffed. See [[ResourceGraph]] for
|
|
284
|
+
detailed resource allocations.
|
|
285
|
+
|
|
286
|
+
=== Current Status ===
|
|
287
|
+
|
|
288
|
+
The project started off with a delay of 4 days. This slightly affected
|
|
289
|
+
the original schedule. See [[Deliveries]] for the impact on the
|
|
290
|
+
delivery dates.
|
|
291
|
+
'
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
# A list of tasks showing the resources assigned to each task.
|
|
295
|
+
htmltaskreport "Development.html" {
|
|
296
|
+
headline "Development - Resource Allocation Report"
|
|
297
|
+
columns hierarchindex, name, start, end, effort { title "Work" },
|
|
298
|
+
duration, chart { scale day }
|
|
299
|
+
timeformat "%Y-%m-%d"
|
|
300
|
+
loadunit days
|
|
301
|
+
hideresource ~isleaf()
|
|
302
|
+
sortresources name.up
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
# A list of all tasks with the percentage completed for each task
|
|
306
|
+
htmltaskreport "Deliveries.html" {
|
|
307
|
+
headline "Project Deliveries"
|
|
308
|
+
columns hierarchindex, name, start, end, complete, chart
|
|
309
|
+
timeformat "%a %Y-%m-%d"
|
|
310
|
+
taskroot AcSo.deliveries
|
|
311
|
+
loadunit days
|
|
312
|
+
hideresource 1
|
|
313
|
+
scenarios plan, delayed
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
# A list of all employees with their contact details.
|
|
317
|
+
htmlresourcereport "ContactList.html" {
|
|
318
|
+
headline "Contact list and duty plan"
|
|
319
|
+
columns name, Email { cellurl "mailto:$${Email}" }, Phone,
|
|
320
|
+
chart { scale day }
|
|
321
|
+
hideresource ~isleaf()
|
|
322
|
+
sortresources name.up
|
|
323
|
+
hidetask 1
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
# A graph showing resource allocation. It identifies whether each
|
|
327
|
+
# resource is under- or over-allocated for.
|
|
328
|
+
htmlresourcereport "ResourceGraph.html" {
|
|
329
|
+
headline "Resource Allocation Graph"
|
|
330
|
+
columns no, name, effort, rate, weekly #, utilization, freeload, chart
|
|
331
|
+
loadunit shortauto
|
|
332
|
+
hidetask ~isleaf()
|
|
333
|
+
sorttasks plan.start.up
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
# A list of all project resources, both human and material resources,
|
|
337
|
+
# together with the associated costs.
|
|
338
|
+
htmlresourcereport "ResourceSheet.html" {
|
|
339
|
+
headline "Resource Sheet"
|
|
340
|
+
columns no, name, id, effort, weekly, rate, cost
|
|
341
|
+
loadunit days
|
|
342
|
+
hidetask ~isleaf()
|
|
343
|
+
sorttasks plan.start.up
|
|
344
|
+
balance cost rev
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
# A list of resources and each task associated with each resource.
|
|
348
|
+
htmlresourcereport "ResourceUsage.html" {
|
|
349
|
+
headline "Resource Usage Report"
|
|
350
|
+
columns no, name, chart { scale day } #, utilization, freeload, cost, chart
|
|
351
|
+
loadunit days
|
|
352
|
+
sorttasks plan.start.up
|
|
353
|
+
hidetask ~isleaf()
|
|
354
|
+
end 2002-02-10
|
|
355
|
+
}
|
|
356
|
+
|
|
357
|
+
csvtaskreport "csvtest.csv" {
|
|
358
|
+
columns no, name, id, effort, revenue, cost
|
|
359
|
+
loadunit days
|
|
360
|
+
}
|
|
361
|
+
|