taskjuggler 0.0.2 → 0.0.3
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/Rakefile +1 -0
- data/benchmarks/depends.tjp +2 -1
- data/benchmarks/htmltaskreport.tjp +2 -1
- data/doc/classes/AppConfig.html +124 -120
- data/doc/classes/Arguments.html +10 -6
- data/doc/classes/Object.html +229 -0
- data/doc/classes/String.html +35 -31
- data/doc/classes/TaskJuggler/Account.html +18 -18
- data/doc/classes/TaskJuggler/AccountAttribute.html +261 -0
- data/doc/classes/TaskJuggler/AccountScenario.html +12 -12
- data/doc/classes/TaskJuggler/Allocation.html +34 -30
- data/doc/classes/TaskJuggler/AllocationAttribute.html +70 -70
- data/doc/classes/TaskJuggler/AttributeBase.html +131 -147
- data/doc/classes/TaskJuggler/AttributeDefinition.html +38 -21
- data/doc/classes/TaskJuggler/BatchProcessor.html +313 -0
- data/doc/classes/TaskJuggler/Booking.html +22 -18
- data/doc/classes/TaskJuggler/BookingListAttribute.html +42 -42
- data/doc/classes/TaskJuggler/BooleanAttribute.html +40 -40
- data/doc/classes/TaskJuggler/CSVFile.html +28 -24
- data/doc/classes/TaskJuggler/Charge.html +22 -18
- data/doc/classes/TaskJuggler/ChargeListAttribute.html +30 -30
- data/doc/classes/TaskJuggler/ChargeSet.html +41 -37
- data/doc/classes/TaskJuggler/ChargeSetListAttribute.html +46 -46
- data/doc/classes/TaskJuggler/ColumnListAttribute.html +231 -0
- data/doc/classes/TaskJuggler/ColumnTable.html +23 -21
- data/doc/classes/TaskJuggler/DateAttribute.html +20 -20
- data/doc/classes/TaskJuggler/DefinitionListAttribute.html +162 -0
- data/doc/classes/TaskJuggler/DependencyListAttribute.html +46 -46
- data/doc/classes/TaskJuggler/DurationAttribute.html +30 -30
- data/doc/classes/TaskJuggler/FixnumAttribute.html +20 -20
- data/doc/classes/TaskJuggler/FlagListAttribute.html +42 -42
- data/doc/classes/TaskJuggler/FloatAttribute.html +30 -30
- data/doc/classes/TaskJuggler/FormatListAttribute.html +197 -0
- data/doc/classes/TaskJuggler/GanttChart.html +236 -207
- data/doc/classes/TaskJuggler/GanttContainer.html +46 -42
- data/doc/classes/TaskJuggler/GanttHeader.html +16 -12
- data/doc/classes/TaskJuggler/GanttHeaderScaleItem.html +16 -12
- data/doc/classes/TaskJuggler/GanttLine.html +28 -24
- data/doc/classes/TaskJuggler/GanttLoadStack.html +22 -18
- data/doc/classes/TaskJuggler/GanttMilestone.html +46 -42
- data/doc/classes/TaskJuggler/GanttRouter.html +104 -98
- data/doc/classes/TaskJuggler/GanttTaskBar.html +46 -42
- data/doc/classes/TaskJuggler/HTMLDocument.html +12 -12
- data/doc/classes/TaskJuggler/HTMLGraphics.html +12 -12
- data/doc/classes/TaskJuggler/Interval.html +126 -120
- data/doc/classes/TaskJuggler/IntervalListAttribute.html +46 -46
- data/doc/classes/TaskJuggler/JobInfo.html +284 -0
- data/doc/classes/TaskJuggler/Journal.html +197 -0
- data/doc/classes/TaskJuggler/JournalEntry.html +218 -0
- data/doc/classes/TaskJuggler/KeywordArray.html +179 -0
- data/doc/classes/TaskJuggler/KeywordDocumentation.html +445 -396
- data/doc/classes/TaskJuggler/Limits/Limit.html +34 -30
- data/doc/classes/TaskJuggler/Limits.html +68 -62
- data/doc/classes/TaskJuggler/LimitsAttribute.html +40 -40
- data/doc/classes/TaskJuggler/ListAttributeBase.html +207 -0
- data/doc/classes/TaskJuggler/Log.html +72 -68
- data/doc/classes/TaskJuggler/LogicalAttribute.html +38 -34
- data/doc/classes/TaskJuggler/LogicalExpression.html +16 -12
- data/doc/classes/TaskJuggler/LogicalExpressionAttribute.html +194 -0
- data/doc/classes/TaskJuggler/LogicalFlag.html +32 -32
- data/doc/classes/TaskJuggler/LogicalFunction.html +28 -24
- data/doc/classes/TaskJuggler/LogicalOperation.html +17 -13
- data/doc/classes/TaskJuggler/Macro.html +10 -6
- data/doc/classes/TaskJuggler/MacroParser.html +36 -36
- data/doc/classes/TaskJuggler/MacroTable.html +40 -36
- data/doc/classes/TaskJuggler/Message.html +16 -12
- data/doc/classes/TaskJuggler/MessageHandler.html +16 -12
- data/doc/classes/TaskJuggler/Navigator.html +249 -0
- data/doc/classes/TaskJuggler/OnShiftCache.html +316 -0
- data/doc/classes/TaskJuggler/Project.html +1064 -678
- data/doc/classes/TaskJuggler/ProjectFileParser.html +90 -85
- data/doc/classes/TaskJuggler/PropertyAttribute.html +194 -0
- data/doc/classes/TaskJuggler/PropertyList.html +114 -113
- data/doc/classes/TaskJuggler/PropertySet.html +355 -312
- data/doc/classes/TaskJuggler/PropertyTreeNode.html +527 -474
- data/doc/classes/TaskJuggler/Query.html +90 -85
- data/doc/classes/TaskJuggler/RTPNavigator.html +292 -0
- data/doc/classes/TaskJuggler/RTPReport.html +301 -0
- data/doc/classes/TaskJuggler/RealFormat.html +114 -57
- data/doc/classes/TaskJuggler/RealFormatAttribute.html +162 -0
- data/doc/classes/TaskJuggler/ReferenceAttribute.html +87 -20
- data/doc/classes/TaskJuggler/Report.html +82 -291
- data/doc/classes/TaskJuggler/ReportBase.html +448 -0
- data/doc/classes/TaskJuggler/ReportContext.html +243 -0
- data/doc/classes/TaskJuggler/ReportTable.html +158 -129
- data/doc/classes/TaskJuggler/ReportTableCell.html +30 -26
- data/doc/classes/TaskJuggler/ReportTableColumn.html +29 -25
- data/doc/classes/TaskJuggler/ReportTableLegend.html +28 -24
- data/doc/classes/TaskJuggler/ReportTableLine.html +34 -30
- data/doc/classes/TaskJuggler/Resource.html +12 -12
- data/doc/classes/TaskJuggler/ResourceListAttribute.html +46 -46
- data/doc/classes/TaskJuggler/ResourceListRE.html +49 -57
- data/doc/classes/TaskJuggler/ResourceScenario.html +126 -126
- data/doc/classes/TaskJuggler/RichText.html +52 -48
- data/doc/classes/TaskJuggler/RichTextAttribute.html +30 -30
- data/doc/classes/TaskJuggler/RichTextDocument.html +41 -37
- data/doc/classes/TaskJuggler/RichTextElement.html +274 -264
- data/doc/classes/TaskJuggler/RichTextException.html +13 -13
- data/doc/classes/TaskJuggler/RichTextParser.html +48 -47
- data/doc/classes/TaskJuggler/RichTextProtocolExample.html +52 -55
- data/doc/classes/TaskJuggler/RichTextProtocolHandler.html +55 -10
- data/doc/classes/TaskJuggler/RichTextScanner.html +106 -245
- data/doc/classes/TaskJuggler/RichTextSnip.html +28 -24
- data/doc/classes/TaskJuggler/RichTextSyntaxRules.html +381 -301
- data/doc/classes/TaskJuggler/Scenario.html +6 -6
- data/doc/classes/TaskJuggler/ScenarioData.html +40 -36
- data/doc/classes/TaskJuggler/ScenarioListAttribute.html +229 -0
- data/doc/classes/TaskJuggler/Scoreboard.html +70 -66
- data/doc/classes/TaskJuggler/Shift.html +18 -18
- data/doc/classes/TaskJuggler/ShiftAssignment.html +58 -54
- data/doc/classes/TaskJuggler/ShiftAssignments.html +82 -78
- data/doc/classes/TaskJuggler/ShiftAssignmentsAttribute.html +40 -40
- data/doc/classes/TaskJuggler/ShiftScenario.html +24 -24
- data/doc/classes/TaskJuggler/SortListAttribute.html +196 -0
- data/doc/classes/TaskJuggler/SourceFileInfo.html +16 -12
- data/doc/classes/TaskJuggler/StringAttribute.html +30 -30
- data/doc/classes/TaskJuggler/SymbolAttribute.html +20 -20
- data/doc/classes/TaskJuggler/SyntaxReference.html +46 -42
- data/doc/classes/TaskJuggler/TOCEntry.html +16 -12
- data/doc/classes/TaskJuggler/TableColumnDefinition.html +48 -33
- data/doc/classes/TaskJuggler/TableOfContents.html +22 -18
- data/doc/classes/TaskJuggler/TableReport.html +1036 -0
- data/doc/classes/TaskJuggler/Task.html +12 -12
- data/doc/classes/TaskJuggler/TaskDependency.html +16 -12
- data/doc/classes/TaskJuggler/TaskListAttribute.html +46 -46
- data/doc/classes/TaskJuggler/TaskListRE.html +49 -58
- data/doc/classes/TaskJuggler/TaskScenario.html +1270 -1180
- data/doc/classes/TaskJuggler/TextParser/Pattern.html +100 -96
- data/doc/classes/TaskJuggler/TextParser/Rule.html +88 -84
- data/doc/classes/TaskJuggler/TextParser/StackElement.html +16 -12
- data/doc/classes/TaskJuggler/TextParser/TextParserResultArray.html +12 -12
- data/doc/classes/TaskJuggler/TextParser/TokenDoc.html +10 -6
- data/doc/classes/TaskJuggler/TextParser.html +203 -140
- data/doc/classes/TaskJuggler/TextReport.html +364 -0
- data/doc/classes/TaskJuggler/TextScanner/BufferStreamHandle.html +70 -70
- data/doc/classes/TaskJuggler/TextScanner/FileStreamHandle.html +50 -42
- data/doc/classes/TaskJuggler/TextScanner/StreamHandle.html +16 -12
- data/doc/classes/TaskJuggler/TextScanner.html +334 -240
- data/doc/classes/TaskJuggler/TjException.html +6 -6
- data/doc/classes/TaskJuggler/TjTime.html +547 -497
- data/doc/classes/TaskJuggler/TjpExample.html +29 -25
- data/doc/classes/TaskJuggler/TjpExportRE.html +77 -97
- data/doc/classes/TaskJuggler/TjpSyntaxRules.html +3911 -3886
- data/doc/classes/TaskJuggler/UserManual.html +54 -54
- data/doc/classes/TaskJuggler/WorkingHours.html +53 -49
- data/doc/classes/TaskJuggler/WorkingHoursAttribute.html +53 -85
- data/doc/classes/TaskJuggler/XMLBlob.html +21 -21
- data/doc/classes/TaskJuggler/XMLComment.html +21 -21
- data/doc/classes/TaskJuggler/XMLDocument.html +28 -24
- data/doc/classes/TaskJuggler/XMLElement.html +70 -58
- data/doc/classes/TaskJuggler/XMLNamedText.html +11 -11
- data/doc/classes/TaskJuggler/XMLText.html +36 -36
- data/doc/classes/TaskJuggler.html +266 -183
- data/doc/files/COPYING.html +1 -1
- data/doc/files/README.html +1 -1
- data/doc/files/lib/AccountScenario_rb.html +1 -1
- data/doc/files/lib/Account_rb.html +1 -1
- data/doc/files/lib/Allocation_rb.html +1 -1
- data/doc/files/lib/AppConfig_rb.html +1 -1
- data/doc/files/lib/AttributeBase_rb.html +11 -1
- data/doc/files/lib/AttributeDefinition_rb.html +1 -1
- data/doc/files/lib/Attributes_rb.html +1 -1
- data/doc/files/lib/{LogicalFlag_rb.html → BatchProcessor_rb.html} +8 -6
- data/doc/files/lib/Booking_rb.html +1 -1
- data/doc/files/lib/ChargeSet_rb.html +1 -1
- data/doc/files/lib/Charge_rb.html +1 -1
- data/doc/files/lib/HTMLDocument_rb.html +1 -1
- data/doc/files/lib/Interval_rb.html +1 -1
- data/doc/files/lib/Journal_rb.html +106 -0
- data/doc/files/lib/KeywordArray_rb.html +106 -0
- data/doc/files/lib/KeywordDocumentation_rb.html +1 -1
- data/doc/files/lib/Limits_rb.html +1 -1
- data/doc/files/lib/Log_rb.html +1 -1
- data/doc/files/lib/LogicalExpression_rb.html +1 -3
- data/doc/files/lib/LogicalFunction_rb.html +1 -1
- data/doc/files/lib/LogicalOperation_rb.html +1 -1
- data/doc/files/lib/MacroParser_rb.html +1 -1
- data/doc/files/lib/MacroTable_rb.html +1 -1
- data/doc/files/lib/MessageHandler_rb.html +1 -1
- data/doc/files/lib/Message_rb.html +1 -1
- data/doc/files/lib/ProjectFileParser_rb.html +5 -1
- data/doc/files/lib/Project_rb.html +5 -1
- data/doc/files/lib/PropertyList_rb.html +1 -1
- data/doc/files/lib/PropertySet_rb.html +1 -1
- data/doc/files/lib/PropertyTreeNode_rb.html +1 -1
- data/doc/files/lib/Query_rb.html +1 -1
- data/doc/files/lib/RTPNavigator_rb.html +120 -0
- data/doc/files/lib/RTPReport_rb.html +118 -0
- data/doc/files/lib/RealFormat_rb.html +1 -1
- data/doc/files/lib/ResourceScenario_rb.html +1 -1
- data/doc/files/lib/Resource_rb.html +1 -1
- data/doc/files/lib/RichTextDocument_rb.html +1 -1
- data/doc/files/lib/RichTextElement_rb.html +1 -1
- data/doc/files/lib/RichTextParser_rb.html +1 -1
- data/doc/files/lib/RichTextProtocolExample_rb.html +1 -1
- data/doc/files/lib/RichTextProtocolHandler_rb.html +1 -1
- data/doc/files/lib/RichTextScanner_rb.html +1 -1
- data/doc/files/lib/RichTextSnip_rb.html +1 -1
- data/doc/files/lib/RichTextSyntaxRules_rb.html +1 -1
- data/doc/files/lib/RichText_rb.html +1 -1
- data/doc/files/lib/ScenarioData_rb.html +1 -1
- data/doc/files/lib/Scenario_rb.html +1 -1
- data/doc/files/lib/Scoreboard_rb.html +1 -1
- data/doc/files/lib/ShiftAssignments_rb.html +1 -1
- data/doc/files/lib/ShiftScenario_rb.html +1 -1
- data/doc/files/lib/Shift_rb.html +1 -1
- data/doc/files/lib/SourceFileInfo_rb.html +1 -1
- data/doc/files/lib/SyntaxReference_rb.html +1 -1
- data/doc/files/lib/TOCEntry_rb.html +1 -1
- data/doc/files/lib/TableColumnDefinition_rb.html +1 -1
- data/doc/files/lib/TableOfContents_rb.html +1 -1
- data/doc/files/lib/TaskDependency_rb.html +1 -1
- data/doc/files/lib/TaskJuggler_rb.html +1 -1
- data/doc/files/lib/TaskScenario_rb.html +1 -1
- data/doc/files/lib/Task_rb.html +1 -1
- data/doc/files/lib/TextParser/Pattern_rb.html +1 -1
- data/doc/files/lib/TextParser/Rule_rb.html +1 -1
- data/doc/files/lib/TextParser/StackElement_rb.html +1 -1
- data/doc/files/lib/TextParser/TokenDoc_rb.html +1 -1
- data/doc/files/lib/TextParser_rb.html +1 -1
- data/doc/files/lib/TextScanner_rb.html +1 -1
- data/doc/files/lib/Tj3Config_rb.html +1 -1
- data/doc/files/lib/TjException_rb.html +1 -1
- data/doc/files/lib/TjTime_rb.html +1 -1
- data/doc/files/lib/TjpExample_rb.html +1 -1
- data/doc/files/lib/TjpSyntaxRules_rb.html +1 -1
- data/doc/files/lib/UTF8String_rb.html +1 -1
- data/doc/files/lib/UserManual_rb.html +1 -1
- data/doc/files/lib/WorkingHours_rb.html +1 -1
- data/doc/files/lib/XMLDocument_rb.html +1 -1
- data/doc/files/lib/XMLElement_rb.html +1 -1
- data/doc/files/lib/deep_copy_rb.html +106 -0
- data/doc/files/lib/ms_test_rb.html +90 -0
- data/doc/files/lib/reports/CSVFile_rb.html +1 -1
- data/doc/files/lib/reports/ColumnTable_rb.html +1 -1
- data/doc/files/lib/reports/GanttChart_rb.html +1 -1
- data/doc/files/lib/reports/GanttContainer_rb.html +1 -1
- data/doc/files/lib/reports/GanttHeaderScaleItem_rb.html +1 -1
- data/doc/files/lib/reports/GanttHeader_rb.html +1 -1
- data/doc/files/lib/reports/GanttLine_rb.html +1 -1
- data/doc/files/lib/reports/GanttLoadStack_rb.html +1 -1
- data/doc/files/lib/reports/GanttMilestone_rb.html +1 -1
- data/doc/files/lib/reports/GanttRouter_rb.html +1 -1
- data/doc/files/lib/reports/GanttTaskBar_rb.html +1 -1
- data/doc/files/lib/reports/HTMLGraphics_rb.html +1 -1
- data/doc/files/lib/reports/{ReportElement_rb.html → Navigator_rb.html} +6 -8
- data/doc/files/lib/reports/ReportBase_rb.html +106 -0
- data/doc/files/lib/reports/ReportContext_rb.html +106 -0
- data/doc/files/lib/reports/ReportTableCell_rb.html +1 -1
- data/doc/files/lib/reports/ReportTableColumn_rb.html +1 -1
- data/doc/files/lib/reports/ReportTableLegend_rb.html +1 -1
- data/doc/files/lib/reports/ReportTableLine_rb.html +1 -1
- data/doc/files/lib/reports/ReportTable_rb.html +1 -1
- data/doc/files/lib/reports/Report_rb.html +8 -2
- data/doc/files/lib/reports/ResourceListRE_rb.html +2 -2
- data/doc/files/lib/reports/{ReportTableElement_rb.html → TableReport_rb.html} +7 -5
- data/doc/files/lib/reports/TaskListRE_rb.html +2 -2
- data/doc/files/lib/reports/TextReport_rb.html +116 -0
- data/doc/files/lib/reports/TjpExportRE_rb.html +2 -2
- data/doc/files/lib/taskjuggler3_rb.html +61 -56
- data/doc/files/lib/tj3man_rb.html +1 -1
- data/doc/fr_class_index.html +41 -3
- data/doc/fr_file_index.html +21 -5
- data/doc/fr_method_index.html +1069 -959
- data/examples/ContactList.html +1467 -0
- data/examples/Deliveries.html +485 -0
- data/examples/Development.html +2525 -0
- data/examples/Overview.html +747 -0
- data/examples/Resource Graph.html +616 -0
- data/examples/tutorial.tjp +63 -67
- data/lib/AttributeBase.rb +27 -31
- data/lib/AttributeDefinition.rb +12 -7
- data/lib/Attributes.rb +134 -34
- data/lib/Interval.rb +2 -0
- data/lib/Journal.rb +44 -0
- data/lib/{LogicalFlag.rb → KeywordArray.rb} +5 -13
- data/lib/KeywordDocumentation.rb +84 -47
- data/lib/Limits.rb +7 -5
- data/lib/LogicalExpression.rb +1 -1
- data/lib/LogicalOperation.rb +33 -0
- data/lib/Project.rb +313 -99
- data/lib/ProjectFileParser.rb +88 -11
- data/lib/PropertyList.rb +2 -1
- data/lib/PropertySet.rb +13 -4
- data/lib/PropertyTreeNode.rb +34 -15
- data/lib/Query.rb +2 -1
- data/lib/RTPNavigator.rb +53 -0
- data/lib/RTPReport.rb +62 -0
- data/lib/RealFormat.rb +28 -10
- data/lib/RichTextElement.rb +18 -12
- data/lib/RichTextParser.rb +1 -0
- data/lib/RichTextProtocolExample.rb +8 -11
- data/lib/RichTextProtocolHandler.rb +11 -1
- data/lib/RichTextScanner.rb +308 -164
- data/lib/RichTextSyntaxRules.rb +24 -0
- data/lib/TableColumnDefinition.rb +5 -1
- data/lib/TaskJuggler.rb +3 -2
- data/lib/TaskScenario.rb +123 -31
- data/lib/TextParser.rb +14 -3
- data/lib/TextScanner.rb +210 -34
- data/lib/Tj3Config.rb +1 -1
- data/lib/TjTime.rb +15 -0
- data/lib/TjpExample.rb +1 -1
- data/lib/TjpSyntaxRules.rb +674 -473
- data/lib/WorkingHours.rb +1 -1
- data/lib/XMLElement.rb +11 -3
- data/lib/deep_copy.rb +72 -0
- data/lib/ms_test.rb +27 -0
- data/lib/reports/ColumnTable.rb +7 -5
- data/lib/reports/GanttChart.rb +60 -34
- data/lib/reports/GanttHeader.rb +1 -1
- data/lib/reports/GanttRouter.rb +7 -5
- data/lib/reports/Navigator.rb +72 -0
- data/lib/reports/Report.rb +58 -73
- data/lib/reports/ReportBase.rb +241 -0
- data/lib/reports/ReportContext.rb +41 -0
- data/lib/reports/ReportTable.rb +7 -2
- data/lib/reports/ReportTableCell.rb +3 -3
- data/lib/reports/ResourceListRE.rb +19 -26
- data/lib/reports/{ReportTableElement.rb → TableReport.rb} +297 -97
- data/lib/reports/TaskListRE.rb +16 -24
- data/lib/reports/TextReport.rb +87 -0
- data/lib/reports/TjpExportRE.rb +55 -50
- data/lib/taskjuggler3.rb +6 -1
- data/manual/Getting_Started +57 -6
- data/manual/How_To_Contribute +2 -4
- data/manual/Intro +2 -2
- data/manual/Reporting_Bugs +9 -2
- data/manual/Rich_Text_Attributes +41 -0
- data/manual/Tutorial +219 -173
- data/tasks/test.rake +3 -0
- data/test/TestSuite/CSV-Reports/celltext.tjp +2 -1
- data/test/TestSuite/CSV-Reports/resourcereport.tjp +2 -1
- data/test/TestSuite/CSV-Reports/resourcereport_with_tasks.tjp +2 -1
- data/test/TestSuite/CSV-Reports/sortByTree.tjp +2 -1
- data/test/TestSuite/CSV-Reports/sortBy_duration.down.tjp +2 -1
- data/test/TestSuite/CSV-Reports/sortBy_effort.up.tjp +2 -1
- data/test/TestSuite/CSV-Reports/sortBy_plan.start.down.tjp +2 -1
- data/test/TestSuite/CSV-Reports/taskreport.tjp +2 -1
- data/test/TestSuite/CSV-Reports/taskreport_with_resources.tjp +2 -1
- data/test/TestSuite/HTML-Reports/depArrows.tjp +72 -0
- data/test/TestSuite/HTML-Reports/reference-export.html +187 -0
- data/test/TestSuite/HTML-Reports/reference.tjp +21 -0
- data/test/TestSuite/Scheduler/Correct/Allocate.tjp +2 -1
- data/test/TestSuite/Scheduler/Correct/AutomaticMilestones.tjp +3 -3
- data/test/TestSuite/Scheduler/Correct/Booking.tjp +3 -3
- data/test/TestSuite/Scheduler/Correct/Container-2.tjp +37 -0
- data/test/TestSuite/Scheduler/Correct/Container.tjp +40 -0
- data/test/TestSuite/Scheduler/Correct/Depends.tjp +9 -14
- data/test/TestSuite/Scheduler/Correct/Duration.tjp +2 -1
- data/test/TestSuite/Scheduler/Correct/InheritStartEnd.tjp +20 -29
- data/test/TestSuite/Scheduler/Correct/Limits.tjp +11 -13
- data/test/TestSuite/Scheduler/Correct/Optimize-1.tjp +6 -5
- data/test/TestSuite/Scheduler/Correct/Optimize-2.tjp +10 -6
- data/test/TestSuite/Scheduler/Correct/Optimize-3.tjp +9 -6
- data/test/TestSuite/Scheduler/Correct/Optimize-4.tjp +9 -6
- data/test/TestSuite/Scheduler/Correct/Optimize-5.tjp +13 -10
- data/test/TestSuite/Scheduler/Correct/Precedes.tjp +9 -14
- data/test/TestSuite/Scheduler/Correct/Shift.tjp +9 -8
- data/test/TestSuite/Scheduler/Correct/checks.tji +4 -0
- data/test/TestSuite/Scheduler/Errors/weak_end_dep.tjp +16 -0
- data/test/TestSuite/Scheduler/Errors/weak_start_dep.tjp +16 -0
- data/test/TestSuite/Syntax/Correct/Account.tjp +1 -1
- data/test/TestSuite/Syntax/Correct/AutoID.tjp +21 -0
- data/test/TestSuite/Syntax/Correct/AutoMacros.tjp +2 -1
- data/test/TestSuite/Syntax/Correct/Caption.tjp +7 -6
- data/test/TestSuite/Syntax/Correct/Celltext.tjp +7 -4
- data/test/TestSuite/Syntax/Correct/Comments.tjp +1 -1
- data/test/TestSuite/Syntax/Correct/CompletedWork.tji +11 -19
- data/test/TestSuite/Syntax/Correct/CriticalPath.tjp +4 -3
- data/test/TestSuite/Syntax/Correct/Export.tjp +3 -1
- data/test/TestSuite/Syntax/Correct/Flags.tjp +2 -1
- data/test/TestSuite/Syntax/Correct/HtmlTaskReport.tjp +2 -1
- data/test/TestSuite/Syntax/Correct/Journal.tjp +18 -0
- data/test/TestSuite/Syntax/Correct/LoadUnits.tjp +2 -1
- data/test/TestSuite/Syntax/Correct/LogicalExpression.tjp +16 -0
- data/test/TestSuite/Syntax/Correct/Period.tjp +2 -1
- data/test/TestSuite/Syntax/Correct/RawHTML.tjp +4 -2
- data/test/TestSuite/Syntax/Correct/Reports.tjp +4 -2
- data/test/TestSuite/Syntax/Correct/ResourcePrefix.tji +2 -0
- data/test/TestSuite/Syntax/Correct/ResourcePrefix.tjp +23 -0
- data/test/TestSuite/Syntax/Correct/Responsible.tjp +1 -1
- data/test/TestSuite/Syntax/Correct/Simple.tjp +1 -1
- data/test/TestSuite/Syntax/Correct/String.tjp +1 -1
- data/test/TestSuite/Syntax/Correct/TaskRoot.tjp +2 -1
- data/test/TestSuite/Syntax/Correct/tutorial.tjp +92 -70
- data/test/TestSuite/Syntax/Errors/bad_comment.tjp +7 -0
- data/test/TestSuite/Syntax/Errors/bad_include.tjp +1 -1
- data/test/TestSuite/Syntax/Errors/bad_time_zone.tjp +6 -0
- data/test/TestSuite/Syntax/Errors/bad_timing_res.tjp +5 -0
- data/test/TestSuite/Syntax/Errors/chargeset_master.tjp +1 -1
- data/test/TestSuite/Syntax/Errors/container_attribute.tjp +1 -1
- data/test/TestSuite/Syntax/Errors/cost_acct_no_top.tjp +3 -2
- data/test/TestSuite/Syntax/Errors/cost_rev_same.tjp +1 -1
- data/test/TestSuite/Syntax/Errors/eof_in_istring1.tjp +5 -0
- data/test/TestSuite/Syntax/Errors/eof_in_istring2.tjp +5 -0
- data/test/TestSuite/Syntax/Errors/eof_in_istring3.tjp +6 -0
- data/test/TestSuite/Syntax/Errors/eof_in_istring4.tjp +6 -0
- data/test/TestSuite/Syntax/Errors/eof_in_istring5.tjp +6 -0
- data/test/TestSuite/Syntax/Errors/include_recursion.tji +1 -0
- data/test/TestSuite/Syntax/Errors/include_recursion.tjp +7 -0
- data/test/TestSuite/Syntax/Errors/junk_after_cut.tjp +6 -0
- data/test/TestSuite/Syntax/Errors/navigator_exists.tjp +10 -0
- data/test/TestSuite/Syntax/Errors/operand_unkn_flag.tjp +1 -1
- data/test/TestSuite/Syntax/Errors/report_end.tjp +1 -1
- data/test/TestSuite/Syntax/Errors/report_exists.tjp +10 -0
- data/test/TestSuite/Syntax/Errors/report_start.tjp +1 -1
- data/test/TestSuite/Syntax/Errors/rev_acct_no_top.tjp +1 -1
- data/test/TestSuite/Syntax/Errors/sort_direction.tjp +1 -1
- data/test/TestSuite/Syntax/Errors/sort_unknown_scen.tjp +1 -1
- data/test/TestSuite/Syntax/Errors/sorting_crit_exptd1.tjp +1 -1
- data/test/TestSuite/Syntax/Errors/sorting_crit_exptd2.tjp +1 -1
- data/test/TestSuite/Syntax/Errors/sorting_wbs.tjp +1 -1
- data/test/TestSuite/Syntax/Errors/too_large_timing_res.tjp +7 -0
- data/test/TestSuite/Syntax/Errors/unknown_scenario_idx.tjp +1 -1
- data/test/TestSuite/Syntax/Errors/unknown_task.tjp +1 -1
- data/test/all.rb +1 -16
- data/test/test_CSV-Reports.rb +8 -5
- data/test/test_Query.rb +2 -2
- data/test/test_RichText.rb +95 -0
- data/test/test_Scheduler.rb +8 -4
- data/test/test_Syntax.rb +8 -4
- data/test/test_deep_copy.rb +83 -0
- metadata +549 -487
- data/benchmarks/UTF-8-Strings.rb +0 -58
- data/doc/classes/TaskJuggler/ReportElement.html +0 -1070
- data/doc/classes/TaskJuggler/ReportTableElement.html +0 -644
- data/lib/reports/ReportElement.rb +0 -427
- data/test/TestSuite/Syntax/Correct/csvtest +0 -16
- data/test/TestSuite/Syntax/Errors/no_csv_suffix.tjp +0 -10
- data/test/TestSuite/Syntax/Errors/no_html_suffix.tjp +0 -10
- data/test/TestSuite/Syntax/Errors/report_redifinition.tjp +0 -10
data/test/all.rb
CHANGED
|
@@ -13,19 +13,4 @@
|
|
|
13
13
|
$:.unshift File.join(File.dirname(__FILE__), '..', 'lib')
|
|
14
14
|
$:.unshift File.dirname(__FILE__)
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
require 'test_Query.rb'
|
|
18
|
-
require 'test_TextScanner.rb'
|
|
19
|
-
require 'test_Limits.rb'
|
|
20
|
-
require 'test_RealFormat.rb'
|
|
21
|
-
require 'test_TjpExample.rb'
|
|
22
|
-
require 'test_LogicalExpression.rb'
|
|
23
|
-
require 'test_RichText.rb'
|
|
24
|
-
require 'test_TjTime.rb'
|
|
25
|
-
require 'test_MacroTable.rb'
|
|
26
|
-
require 'test_Scheduler.rb'
|
|
27
|
-
require 'test_Project.rb'
|
|
28
|
-
require 'test_ShiftAssignments.rb'
|
|
29
|
-
require 'test_PropertySet.rb'
|
|
30
|
-
require 'test_Syntax.rb'
|
|
31
|
-
require 'test_UTF8String.rb'
|
|
16
|
+
Dir.glob(File.dirname(__FILE__) + '/test_*.rb').each { |f| require f }
|
data/test/test_CSV-Reports.rb
CHANGED
|
@@ -11,13 +11,14 @@
|
|
|
11
11
|
#
|
|
12
12
|
|
|
13
13
|
$:.unshift File.join(File.dirname(__FILE__), '..', 'lib') if __FILE__ == $0
|
|
14
|
+
$:.unshift File.dirname(__FILE__)
|
|
14
15
|
|
|
15
16
|
require 'stringio'
|
|
16
17
|
require 'test/unit'
|
|
17
18
|
require 'TaskJuggler'
|
|
18
19
|
require 'reports/CSVFile'
|
|
19
|
-
|
|
20
|
-
|
|
20
|
+
require 'MessageChecker'
|
|
21
|
+
|
|
21
22
|
|
|
22
23
|
class TestScheduler < Test::Unit::TestCase
|
|
23
24
|
|
|
@@ -74,9 +75,11 @@ class TestScheduler < Test::Unit::TestCase
|
|
|
74
75
|
end
|
|
75
76
|
|
|
76
77
|
def test_CSV_Reports
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
78
|
+
path = File.dirname(__FILE__)
|
|
79
|
+
|
|
80
|
+
Dir.glob(path + 'TestSuite/CSV-Reports/*.tjp').each do |f|
|
|
81
|
+
baseName = f[22 + path.length, f.length - (path.length + 26)]
|
|
82
|
+
refFile = path + "TestSuite/CSV-Reports/#{baseName}-Reference.csv"
|
|
80
83
|
tj = TaskJuggler.new(true)
|
|
81
84
|
assert(tj.parse([ f ]), "Parser failed for #{f}")
|
|
82
85
|
assert(tj.schedule, "Scheduler failed for #{f}")
|
data/test/test_Query.rb
CHANGED
|
@@ -31,7 +31,7 @@ class TestQuery < Test::Unit::TestCase
|
|
|
31
31
|
end
|
|
32
32
|
|
|
33
33
|
def test_scaleDuration
|
|
34
|
-
q = Query.new('project' => @p, 'numberFormat' => @p['
|
|
34
|
+
q = Query.new('project' => @p, 'numberFormat' => @p['numberFormat'])
|
|
35
35
|
units = [ :minutes, :hours, :days, :weeks, :months, :shortauto ]
|
|
36
36
|
vals = [
|
|
37
37
|
# Inp mins hours days weeks months shortauto
|
|
@@ -54,7 +54,7 @@ class TestQuery < Test::Unit::TestCase
|
|
|
54
54
|
end
|
|
55
55
|
|
|
56
56
|
def test_scaleLoad
|
|
57
|
-
q = Query.new('project' => @p, 'numberFormat' => @p['
|
|
57
|
+
q = Query.new('project' => @p, 'numberFormat' => @p['numberFormat'])
|
|
58
58
|
units = [ :minutes, :hours, :days, :weeks, :months, :shortauto ]
|
|
59
59
|
vals = [
|
|
60
60
|
# Inp mins hours days weeks months shortauto
|
data/test/test_RichText.rb
CHANGED
|
@@ -14,6 +14,21 @@ $:.unshift File.join(File.dirname(__FILE__), '..', 'lib') if __FILE__ == $0
|
|
|
14
14
|
|
|
15
15
|
require 'test/unit'
|
|
16
16
|
require 'RichText'
|
|
17
|
+
require 'RichTextProtocolHandler'
|
|
18
|
+
|
|
19
|
+
class RTPDummy < TaskJuggler::RichTextProtocolHandler
|
|
20
|
+
|
|
21
|
+
def initialize()
|
|
22
|
+
super(nil, 'dummy')
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
# Return a XMLElement tree that represents the navigator in HTML code.
|
|
26
|
+
def to_html(args)
|
|
27
|
+
s = ''
|
|
28
|
+
TaskJuggler::XMLElement.new('blockfunc:dummy', args)
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
|
|
17
32
|
|
|
18
33
|
class TestRichText < Test::Unit::TestCase
|
|
19
34
|
|
|
@@ -856,9 +871,89 @@ EOT
|
|
|
856
871
|
assert_equal(ref, out)
|
|
857
872
|
end
|
|
858
873
|
|
|
874
|
+
def test_hline_and_link
|
|
875
|
+
inp = <<EOT
|
|
876
|
+
----
|
|
877
|
+
[[foo bar]]
|
|
878
|
+
EOT
|
|
879
|
+
|
|
880
|
+
# Check tagged output.
|
|
881
|
+
out = newRichText(inp).to_tagged + "\n"
|
|
882
|
+
ref = <<EOT
|
|
883
|
+
<div><hr>----</hr>
|
|
884
|
+
<p><ref data=\"foo\">[bar]</ref></p>
|
|
885
|
+
|
|
886
|
+
</div>
|
|
887
|
+
EOT
|
|
888
|
+
assert_equal(ref, out)
|
|
889
|
+
|
|
890
|
+
# Check ASCII output.
|
|
891
|
+
rt = newRichText(inp)
|
|
892
|
+
rt.lineWidth = 60
|
|
893
|
+
out = rt.to_s
|
|
894
|
+
ref = <<EOT
|
|
895
|
+
--------------------------------------------------------
|
|
896
|
+
bar
|
|
897
|
+
|
|
898
|
+
EOT
|
|
899
|
+
assert_equal(ref, out)
|
|
900
|
+
|
|
901
|
+
# Check HTML output.
|
|
902
|
+
out = newRichText(inp).to_html.to_s + "\n"
|
|
903
|
+
ref = "<div>\n <hr/>\n <p><a href=\"foo.html\">bar</a></p>\n</div>\n"
|
|
904
|
+
assert_equal(ref, out)
|
|
905
|
+
end
|
|
906
|
+
|
|
907
|
+
def test_blockFunction
|
|
908
|
+
inp = <<EOT
|
|
909
|
+
<[dummy id="foo" arg1="bar"]>
|
|
910
|
+
=== Header ===
|
|
911
|
+
<[dummy]>
|
|
912
|
+
some text
|
|
913
|
+
<[dummy]>
|
|
914
|
+
EOT
|
|
915
|
+
|
|
916
|
+
# Check tagged output.
|
|
917
|
+
out = newRichText(inp).to_tagged + "\n"
|
|
918
|
+
ref = <<EOT
|
|
919
|
+
<div><blockfunc:dummy arg1="bar" id="foo"/><h2>0.1 [Header]</h2>
|
|
920
|
+
|
|
921
|
+
<blockfunc:dummy/><p>[some] [text]</p>
|
|
922
|
+
|
|
923
|
+
<blockfunc:dummy/></div>
|
|
924
|
+
EOT
|
|
925
|
+
assert_equal(ref, out)
|
|
926
|
+
|
|
927
|
+
# Check ASCII output.
|
|
928
|
+
rt = newRichText(inp)
|
|
929
|
+
rt.lineWidth = 60
|
|
930
|
+
out = rt.to_s
|
|
931
|
+
ref = <<EOT
|
|
932
|
+
0.1 Header
|
|
933
|
+
|
|
934
|
+
some text
|
|
935
|
+
|
|
936
|
+
EOT
|
|
937
|
+
assert_equal(ref, out)
|
|
938
|
+
|
|
939
|
+
# Check HTML output.
|
|
940
|
+
out = newRichText(inp).to_html.to_s + "\n"
|
|
941
|
+
ref = <<EOT
|
|
942
|
+
<div>
|
|
943
|
+
<blockfunc:dummy arg1=\"bar\" id=\"foo\"/>
|
|
944
|
+
<h2 id="Header">0.1 Header</h2>
|
|
945
|
+
<blockfunc:dummy/>
|
|
946
|
+
<p>some text</p>
|
|
947
|
+
<blockfunc:dummy/>
|
|
948
|
+
</div>
|
|
949
|
+
EOT
|
|
950
|
+
assert_equal(ref, out)
|
|
951
|
+
end
|
|
952
|
+
|
|
859
953
|
def newRichText(text)
|
|
860
954
|
begin
|
|
861
955
|
rText = TaskJuggler::RichText.new(text)
|
|
956
|
+
rText.registerProtocol(RTPDummy.new)
|
|
862
957
|
rescue TaskJuggler::RichTextException => msg
|
|
863
958
|
$stderr.puts "Error in RichText Line #{msg.lineNo}: #{msg.text}\n" +
|
|
864
959
|
"#{msg.line}"
|
data/test/test_Scheduler.rb
CHANGED
|
@@ -11,18 +11,20 @@
|
|
|
11
11
|
#
|
|
12
12
|
|
|
13
13
|
$:.unshift File.join(File.dirname(__FILE__), '..', 'lib') if __FILE__ == $0
|
|
14
|
+
$:.unshift File.dirname(__FILE__)
|
|
14
15
|
|
|
15
16
|
require 'test/unit'
|
|
16
17
|
require 'TaskJuggler'
|
|
17
|
-
|
|
18
|
-
require Path + 'MessageChecker'
|
|
18
|
+
require 'MessageChecker'
|
|
19
19
|
|
|
20
20
|
class TestScheduler < Test::Unit::TestCase
|
|
21
21
|
|
|
22
22
|
include MessageChecker
|
|
23
23
|
|
|
24
24
|
def test_SchedulerErrors
|
|
25
|
-
|
|
25
|
+
path = File.dirname(__FILE__) + '/'
|
|
26
|
+
Dir.glob(path + 'TestSuite/Scheduler/Errors/*.tjp').each do |f|
|
|
27
|
+
ENV['TZ'] = 'Europe/Berlin'
|
|
26
28
|
tj = TaskJuggler.new(false)
|
|
27
29
|
assert(tj.parse([ f ]), "Parser failed for #{f}")
|
|
28
30
|
tj.schedule
|
|
@@ -31,7 +33,9 @@ class TestScheduler < Test::Unit::TestCase
|
|
|
31
33
|
end
|
|
32
34
|
|
|
33
35
|
def test_SchedulerCorrect
|
|
34
|
-
|
|
36
|
+
path = File.dirname(__FILE__) + '/'
|
|
37
|
+
Dir.glob(path + 'TestSuite/Scheduler/Correct/*.tjp').each do |f|
|
|
38
|
+
ENV['TZ'] = 'Europe/Berlin'
|
|
35
39
|
tj = TaskJuggler.new(true)
|
|
36
40
|
assert(tj.parse([ f ]), "Parser failed for ${f}")
|
|
37
41
|
assert(tj.schedule, "Scheduler failed for #{f}")
|
data/test/test_Syntax.rb
CHANGED
|
@@ -11,18 +11,20 @@
|
|
|
11
11
|
#
|
|
12
12
|
|
|
13
13
|
$:.unshift File.join(File.dirname(__FILE__), '..', 'lib') if __FILE__ == $0
|
|
14
|
+
$:.unshift File.dirname(__FILE__)
|
|
14
15
|
|
|
15
16
|
require 'test/unit'
|
|
16
17
|
require 'TaskJuggler'
|
|
17
|
-
|
|
18
|
-
require Path + 'MessageChecker'
|
|
18
|
+
require 'MessageChecker'
|
|
19
19
|
|
|
20
20
|
class TestScheduler < Test::Unit::TestCase
|
|
21
21
|
|
|
22
22
|
include MessageChecker
|
|
23
23
|
|
|
24
24
|
def test_syntaxCorrect
|
|
25
|
-
|
|
25
|
+
path = File.dirname(__FILE__) + '/'
|
|
26
|
+
Dir.glob(path + 'TestSuite/Syntax/Correct/*.tjp').each do |f|
|
|
27
|
+
ENV['TZ'] = 'Europe/Berlin'
|
|
26
28
|
tj = TaskJuggler.new(false)
|
|
27
29
|
assert(tj.parse([ f ]), "Parser failed for #{f}")
|
|
28
30
|
assert(tj.messageHandler.messages.empty?, "Unexpected error in #{f}")
|
|
@@ -30,7 +32,9 @@ class TestScheduler < Test::Unit::TestCase
|
|
|
30
32
|
end
|
|
31
33
|
|
|
32
34
|
def test_syntaxErrors
|
|
33
|
-
|
|
35
|
+
path = File.dirname(__FILE__) + '/'
|
|
36
|
+
Dir.glob(path + 'TestSuite/Syntax/Errors/*.tjp').each do |f|
|
|
37
|
+
ENV['TZ'] = 'Europe/Berlin'
|
|
34
38
|
tj = TaskJuggler.new(false)
|
|
35
39
|
assert(!tj.parse([ f ]), "Parser succedded for #{f}")
|
|
36
40
|
checkMessages(tj, f)
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
#!/usr/bin/env ruby -w
|
|
2
|
+
# encoding: UTF-8
|
|
3
|
+
#
|
|
4
|
+
# = test_Query.rb -- The TaskJuggler III Project Management Software
|
|
5
|
+
#
|
|
6
|
+
# Copyright (c) 2006, 2007, 2008, 2009 by Chris Schlaeger <cs@kde.org>
|
|
7
|
+
#
|
|
8
|
+
# This program is free software; you can redistribute it and/or modify
|
|
9
|
+
# it under the terms of version 2 of the GNU General Public License as
|
|
10
|
+
# published by the Free Software Foundation.
|
|
11
|
+
#
|
|
12
|
+
|
|
13
|
+
$:.unshift File.join(File.dirname(__FILE__), '..', 'lib') if __FILE__ == $0
|
|
14
|
+
|
|
15
|
+
require 'test/unit'
|
|
16
|
+
require 'deep_copy'
|
|
17
|
+
|
|
18
|
+
class A
|
|
19
|
+
def initialize
|
|
20
|
+
@a = [ 10, 11, 12 ]
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def mute
|
|
24
|
+
@a[1] = 'z'
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def muted
|
|
28
|
+
@a[1]
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
class B
|
|
33
|
+
def initialize
|
|
34
|
+
@a = 1
|
|
35
|
+
@b = 'abc'
|
|
36
|
+
@c = [ 1, 2, 3 ]
|
|
37
|
+
@d = [ [ 1, 2], [ 3, 4 ], A.new ]
|
|
38
|
+
@e = { '0' => 49, '1' => 50, '2' => 51 }
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def mute
|
|
42
|
+
@b[1] = '-'
|
|
43
|
+
@d[1][1] = 'x'
|
|
44
|
+
@d[2].mute
|
|
45
|
+
@e['1'] = 111
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def muted
|
|
49
|
+
[ @b[1, 1], @d[1][1], @d[2].muted, @e['1'] ]
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
class Test_deep_copy < Test::Unit::TestCase
|
|
54
|
+
|
|
55
|
+
def test_clone
|
|
56
|
+
a = B.new
|
|
57
|
+
b = a.deep_clone
|
|
58
|
+
a.mute
|
|
59
|
+
|
|
60
|
+
out = a.muted
|
|
61
|
+
refA = [ '-', 'x', 'z', 111 ]
|
|
62
|
+
refA.length.times do |i|
|
|
63
|
+
assert_equal(refA[i], out[i])
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
out = b.muted
|
|
67
|
+
refB = [ 'b', 4, 11, 50 ]
|
|
68
|
+
refB.length.times do |i|
|
|
69
|
+
assert_equal(refB[i], out[i])
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
def test_network
|
|
74
|
+
a = [ 0, '1', 'abc' ]
|
|
75
|
+
b = { 'a' => 0, 'b' => '123', 'c' => a }
|
|
76
|
+
a << b
|
|
77
|
+
|
|
78
|
+
c = a.deep_clone
|
|
79
|
+
d = b.deep_clone
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
end
|
|
83
|
+
|