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
|
@@ -70,8 +70,12 @@
|
|
|
70
70
|
<td><strong>Parent:</strong></td>
|
|
71
71
|
<td>
|
|
72
72
|
|
|
73
|
+
<a href="../Object.html">
|
|
74
|
+
|
|
73
75
|
Object
|
|
74
76
|
|
|
77
|
+
</a>
|
|
78
|
+
|
|
75
79
|
</td>
|
|
76
80
|
</tr>
|
|
77
81
|
|
|
@@ -105,21 +109,21 @@ generateByWidth or generateByResolution.
|
|
|
105
109
|
|
|
106
110
|
<div class="name-list">
|
|
107
111
|
|
|
108
|
-
<a href="#
|
|
112
|
+
<a href="#M000546">addTask</a>
|
|
109
113
|
|
|
110
|
-
<a href="#
|
|
114
|
+
<a href="#M000551">dateToX</a>
|
|
111
115
|
|
|
112
|
-
<a href="#
|
|
116
|
+
<a href="#M000548">generateByScale</a>
|
|
113
117
|
|
|
114
|
-
<a href="#
|
|
118
|
+
<a href="#M000547">generateByWidth</a>
|
|
115
119
|
|
|
116
|
-
<a href="#
|
|
120
|
+
<a href="#M000552">hasScrollbar?</a>
|
|
117
121
|
|
|
118
|
-
<a href="#
|
|
122
|
+
<a href="#M000545">new</a>
|
|
119
123
|
|
|
120
|
-
<a href="#
|
|
124
|
+
<a href="#M000550">to_csv</a>
|
|
121
125
|
|
|
122
|
-
<a href="#
|
|
126
|
+
<a href="#M000549">to_html</a>
|
|
123
127
|
|
|
124
128
|
</div>
|
|
125
129
|
</div>
|
|
@@ -140,6 +144,30 @@ generateByWidth or generateByResolution.
|
|
|
140
144
|
|
|
141
145
|
<div id="section">
|
|
142
146
|
|
|
147
|
+
<div id="constants-list">
|
|
148
|
+
<h3 class="section-bar">Constants</h3>
|
|
149
|
+
|
|
150
|
+
<div class="name-list">
|
|
151
|
+
<table summary="Constants">
|
|
152
|
+
|
|
153
|
+
<tr class="top-aligned-row context-row">
|
|
154
|
+
<td class="context-item-name">SCROLLBARHEIGHT</td>
|
|
155
|
+
<td>=</td>
|
|
156
|
+
<td class="context-item-value">20</td>
|
|
157
|
+
|
|
158
|
+
<td> </td>
|
|
159
|
+
<td class="context-item-desc">
|
|
160
|
+
The height in pixels of a horizontal scrollbar on an HTML page. This value
|
|
161
|
+
should be large enough to work for all browsers.
|
|
162
|
+
|
|
163
|
+
</td>
|
|
164
|
+
|
|
165
|
+
</tr>
|
|
166
|
+
|
|
167
|
+
</table>
|
|
168
|
+
</div>
|
|
169
|
+
</div>
|
|
170
|
+
|
|
143
171
|
|
|
144
172
|
|
|
145
173
|
<div id="attribute-list">
|
|
@@ -240,12 +268,12 @@ generateByWidth or generateByResolution.
|
|
|
240
268
|
<h3 class="section-bar">Public Class methods</h3>
|
|
241
269
|
|
|
242
270
|
|
|
243
|
-
<div id="method-
|
|
244
|
-
<a name="
|
|
271
|
+
<div id="method-M000545" class="method-detail">
|
|
272
|
+
<a name="M000545"></a>
|
|
245
273
|
|
|
246
274
|
<div class="method-heading">
|
|
247
275
|
|
|
248
|
-
<a href="#
|
|
276
|
+
<a href="#M000545" class="method-signature">
|
|
249
277
|
|
|
250
278
|
<span class="method-name">new</span><span class="method-args">(now, weekStartsMonday, table = nil)</span>
|
|
251
279
|
|
|
@@ -261,74 +289,73 @@ do much right now. We still need more information about the chart before we
|
|
|
261
289
|
can actually generate it. <em>now</em> is the date that should be used as
|
|
262
290
|
current date. <em>weekStartsMonday</em> is true if the weeks should start
|
|
263
291
|
on Mondays instead of Sundays. <em>table</em> is a reference to the <a
|
|
264
|
-
href="
|
|
265
|
-
part of.
|
|
292
|
+
href="TableReport.html">TableReport</a> that the chart is part of.
|
|
266
293
|
</p>
|
|
267
294
|
|
|
268
295
|
<p><a class="source-toggle" href="#"
|
|
269
|
-
onclick="toggleCode('
|
|
270
|
-
<div class="method-source-code" id="
|
|
296
|
+
onclick="toggleCode('M000545-source');return false;">[Source]</a></p>
|
|
297
|
+
<div class="method-source-code" id="M000545-source">
|
|
271
298
|
<pre>
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
299
|
+
<span class="ruby-comment cmt"># File lib/reports/GanttChart.rb, line 45</span>
|
|
300
|
+
45: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">now</span>, <span class="ruby-identifier">weekStartsMonday</span>, <span class="ruby-identifier">table</span> = <span class="ruby-keyword kw">nil</span>)
|
|
301
|
+
46: <span class="ruby-comment cmt"># The start and end dates of the reported interval.</span>
|
|
302
|
+
47: <span class="ruby-ivar">@start</span> = <span class="ruby-keyword kw">nil</span>
|
|
303
|
+
48: <span class="ruby-ivar">@end</span> = <span class="ruby-keyword kw">nil</span>
|
|
304
|
+
49: <span class="ruby-ivar">@now</span> = <span class="ruby-identifier">now</span>
|
|
305
|
+
50: <span class="ruby-ivar">@table</span> = <span class="ruby-identifier">table</span>
|
|
306
|
+
51:
|
|
307
|
+
52: <span class="ruby-comment cmt"># This defines the possible horizontal scales that the Gantt chart can</span>
|
|
308
|
+
53: <span class="ruby-comment cmt"># have. The scales differ in their resolution and the amount of detail</span>
|
|
309
|
+
54: <span class="ruby-comment cmt"># that is displayed. A scale is defined by its name. The _name_ must be</span>
|
|
310
|
+
55: <span class="ruby-comment cmt"># unique and can be used to select the scale. The _stepSize_ defines the</span>
|
|
311
|
+
56: <span class="ruby-comment cmt"># width of a scale step in pixels. The _stepsToFunc_ is a TjTime method</span>
|
|
312
|
+
57: <span class="ruby-comment cmt"># that determines the number of steps between 2 dates. _minTimeOff_</span>
|
|
313
|
+
58: <span class="ruby-comment cmt"># defines the minimum required length of an time-off interval that is</span>
|
|
314
|
+
59: <span class="ruby-comment cmt"># displayed in this scale.</span>
|
|
315
|
+
60: <span class="ruby-ivar">@@scales</span> = [
|
|
316
|
+
61: { <span class="ruby-value str">'name'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'hour'</span>, <span class="ruby-value str">'stepSize'</span> =<span class="ruby-operator">></span> <span class="ruby-value">20</span>, <span class="ruby-value str">'stepsToFunc'</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">:hoursTo</span>,
|
|
317
|
+
62: <span class="ruby-value str">'minTimeOff'</span> =<span class="ruby-operator">></span> <span class="ruby-value">5</span> <span class="ruby-operator">*</span> <span class="ruby-value">60</span> },
|
|
318
|
+
63: { <span class="ruby-value str">'name'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'day'</span>, <span class="ruby-value str">'stepSize'</span> =<span class="ruby-operator">></span> <span class="ruby-value">20</span>, <span class="ruby-value str">'stepsToFunc'</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">:daysTo</span>,
|
|
319
|
+
64: <span class="ruby-value str">'minTimeOff'</span> =<span class="ruby-operator">></span> <span class="ruby-value">6</span> <span class="ruby-operator">*</span> <span class="ruby-value">60</span> <span class="ruby-operator">*</span> <span class="ruby-value">60</span> },
|
|
320
|
+
65: { <span class="ruby-value str">'name'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'week'</span>, <span class="ruby-value str">'stepSize'</span> =<span class="ruby-operator">></span> <span class="ruby-value">20</span>, <span class="ruby-value str">'stepsToFunc'</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">:weeksTo</span>,
|
|
321
|
+
66: <span class="ruby-value str">'minTimeOff'</span> =<span class="ruby-operator">></span> <span class="ruby-value">24</span> <span class="ruby-operator">*</span> <span class="ruby-value">60</span> <span class="ruby-operator">*</span> <span class="ruby-value">60</span> },
|
|
322
|
+
67: { <span class="ruby-value str">'name'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'month'</span>, <span class="ruby-value str">'stepSize'</span> =<span class="ruby-operator">></span> <span class="ruby-value">35</span>, <span class="ruby-value str">'stepsToFunc'</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">:monthsTo</span>,
|
|
323
|
+
68: <span class="ruby-value str">'minTimeOff'</span> =<span class="ruby-operator">></span> <span class="ruby-value">5</span> <span class="ruby-operator">*</span> <span class="ruby-value">24</span> <span class="ruby-operator">*</span> <span class="ruby-value">60</span> <span class="ruby-operator">*</span> <span class="ruby-value">60</span> },
|
|
324
|
+
69: { <span class="ruby-value str">'name'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'quarter'</span>, <span class="ruby-value str">'stepSize'</span> =<span class="ruby-operator">></span> <span class="ruby-value">28</span>, <span class="ruby-value str">'stepsToFunc'</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">:quartersTo</span>,
|
|
325
|
+
70: <span class="ruby-value str">'minTimeOff'</span> =<span class="ruby-operator">></span> <span class="ruby-value">-1</span> },
|
|
326
|
+
71: { <span class="ruby-value str">'name'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'year'</span>, <span class="ruby-value str">'stepSize'</span> =<span class="ruby-operator">></span> <span class="ruby-value">20</span>, <span class="ruby-value str">'stepsToFunc'</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">:yearsTo</span>,
|
|
327
|
+
72: <span class="ruby-value str">'minTimeOff'</span> =<span class="ruby-operator">></span> <span class="ruby-value">-1</span> }
|
|
328
|
+
73: ]
|
|
329
|
+
74: <span class="ruby-comment cmt"># This points to one of the scales above and marks the current scale.</span>
|
|
330
|
+
75: <span class="ruby-ivar">@scale</span> = <span class="ruby-keyword kw">nil</span>
|
|
331
|
+
76: <span class="ruby-comment cmt"># The height of the chart (without the header)</span>
|
|
332
|
+
77: <span class="ruby-ivar">@height</span> = <span class="ruby-value">0</span>
|
|
333
|
+
78: <span class="ruby-comment cmt"># The width of the chart in pixels.</span>
|
|
334
|
+
79: <span class="ruby-ivar">@width</span> = <span class="ruby-value">0</span>
|
|
335
|
+
80: <span class="ruby-comment cmt"># The width of the view that the chart is presented in. If it's nil, the</span>
|
|
336
|
+
81: <span class="ruby-comment cmt"># view will be adapted to the width of the chart.</span>
|
|
337
|
+
82: <span class="ruby-ivar">@viewWidth</span> = <span class="ruby-keyword kw">nil</span>
|
|
338
|
+
83: <span class="ruby-comment cmt"># True of the week starts on a Monday.</span>
|
|
339
|
+
84: <span class="ruby-ivar">@weekStartsMonday</span> = <span class="ruby-identifier">weekStartsMonday</span>
|
|
340
|
+
85:
|
|
341
|
+
86: <span class="ruby-comment cmt"># Reference to the GanttHeader object that models the chart header.</span>
|
|
342
|
+
87: <span class="ruby-ivar">@header</span> = <span class="ruby-keyword kw">nil</span>
|
|
343
|
+
88: <span class="ruby-comment cmt"># The GanttLine objects that model the lines of the chart.</span>
|
|
344
|
+
89: <span class="ruby-ivar">@lines</span> = []
|
|
345
|
+
90: <span class="ruby-comment cmt"># The router for dependency lines.</span>
|
|
346
|
+
91: <span class="ruby-ivar">@router</span> = <span class="ruby-keyword kw">nil</span>
|
|
347
|
+
92: <span class="ruby-comment cmt"># This dictionary stores primary task lines indexed by their task. To</span>
|
|
348
|
+
93: <span class="ruby-comment cmt"># handle multiple scenarios, the dictionary stored the lines in an Array.</span>
|
|
349
|
+
94: <span class="ruby-comment cmt"># This is used to generate dependency arrows.</span>
|
|
350
|
+
95: <span class="ruby-ivar">@tasks</span> = {}
|
|
351
|
+
96: <span class="ruby-comment cmt"># This is a list of the dependency lines. Each entry is an Array of [x, y]</span>
|
|
352
|
+
97: <span class="ruby-comment cmt"># coordinate pairs.</span>
|
|
353
|
+
98: <span class="ruby-ivar">@depArrows</span> = []
|
|
354
|
+
99: <span class="ruby-comment cmt"># This is the list of arrow heads used for the dependency arrows. It</span>
|
|
355
|
+
100: <span class="ruby-comment cmt"># contains an Array of [ x, y ] coordinates that mark the tip of the</span>
|
|
356
|
+
101: <span class="ruby-comment cmt"># arrow.</span>
|
|
357
|
+
102: <span class="ruby-ivar">@arrowHeads</span> = []
|
|
358
|
+
103: <span class="ruby-keyword kw">end</span>
|
|
332
359
|
</pre>
|
|
333
360
|
</div>
|
|
334
361
|
|
|
@@ -339,12 +366,12 @@ part of.
|
|
|
339
366
|
<h3 class="section-bar">Public Instance methods</h3>
|
|
340
367
|
|
|
341
368
|
|
|
342
|
-
<div id="method-
|
|
343
|
-
<a name="
|
|
369
|
+
<div id="method-M000546" class="method-detail">
|
|
370
|
+
<a name="M000546"></a>
|
|
344
371
|
|
|
345
372
|
<div class="method-heading">
|
|
346
373
|
|
|
347
|
-
<a href="#
|
|
374
|
+
<a href="#M000546" class="method-signature">
|
|
348
375
|
|
|
349
376
|
<span class="method-name">addTask</span><span class="method-args">(task, line)</span>
|
|
350
377
|
|
|
@@ -361,19 +388,19 @@ corresponding primary <a href="ReportTableLine.html">ReportTableLine</a>.
|
|
|
361
388
|
</p>
|
|
362
389
|
|
|
363
390
|
<p><a class="source-toggle" href="#"
|
|
364
|
-
onclick="toggleCode('
|
|
365
|
-
<div class="method-source-code" id="
|
|
391
|
+
onclick="toggleCode('M000546-source');return false;">[Source]</a></p>
|
|
392
|
+
<div class="method-source-code" id="M000546-source">
|
|
366
393
|
<pre>
|
|
367
|
-
<span class="ruby-comment cmt"># File lib/reports/GanttChart.rb, line
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
394
|
+
<span class="ruby-comment cmt"># File lib/reports/GanttChart.rb, line 107</span>
|
|
395
|
+
107: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">addTask</span>(<span class="ruby-identifier">task</span>, <span class="ruby-identifier">line</span>)
|
|
396
|
+
108: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@tasks</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">task</span>)
|
|
397
|
+
109: <span class="ruby-comment cmt"># Append the line to the existing lines.</span>
|
|
398
|
+
110: <span class="ruby-ivar">@tasks</span>[<span class="ruby-identifier">task</span>] <span class="ruby-operator"><<</span> <span class="ruby-identifier">line</span>
|
|
399
|
+
111: <span class="ruby-keyword kw">else</span>
|
|
400
|
+
112: <span class="ruby-comment cmt"># Add a new Array for this tasks and store the first line.</span>
|
|
401
|
+
113: <span class="ruby-ivar">@tasks</span>[<span class="ruby-identifier">task</span>] = [ <span class="ruby-identifier">line</span> ]
|
|
402
|
+
114: <span class="ruby-keyword kw">end</span>
|
|
403
|
+
115: <span class="ruby-keyword kw">end</span>
|
|
377
404
|
</pre>
|
|
378
405
|
</div>
|
|
379
406
|
|
|
@@ -381,12 +408,12 @@ corresponding primary <a href="ReportTableLine.html">ReportTableLine</a>.
|
|
|
381
408
|
</div>
|
|
382
409
|
|
|
383
410
|
|
|
384
|
-
<div id="method-
|
|
385
|
-
<a name="
|
|
411
|
+
<div id="method-M000551" class="method-detail">
|
|
412
|
+
<a name="M000551"></a>
|
|
386
413
|
|
|
387
414
|
<div class="method-heading">
|
|
388
415
|
|
|
389
|
-
<a href="#
|
|
416
|
+
<a href="#M000551" class="method-signature">
|
|
390
417
|
|
|
391
418
|
<span class="method-name">dateToX</span><span class="method-args">(date)</span>
|
|
392
419
|
|
|
@@ -402,13 +429,13 @@ Gantt chart.
|
|
|
402
429
|
</p>
|
|
403
430
|
|
|
404
431
|
<p><a class="source-toggle" href="#"
|
|
405
|
-
onclick="toggleCode('
|
|
406
|
-
<div class="method-source-code" id="
|
|
432
|
+
onclick="toggleCode('M000551-source');return false;">[Source]</a></p>
|
|
433
|
+
<div class="method-source-code" id="M000551-source">
|
|
407
434
|
<pre>
|
|
408
|
-
<span class="ruby-comment cmt"># File lib/reports/GanttChart.rb, line
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
435
|
+
<span class="ruby-comment cmt"># File lib/reports/GanttChart.rb, line 209</span>
|
|
436
|
+
209: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">dateToX</span>(<span class="ruby-identifier">date</span>)
|
|
437
|
+
210: (<span class="ruby-ivar">@width</span> <span class="ruby-operator">/</span> (<span class="ruby-ivar">@end</span> <span class="ruby-operator">-</span> <span class="ruby-ivar">@start</span>)) <span class="ruby-operator">*</span> (<span class="ruby-identifier">date</span> <span class="ruby-operator">-</span> <span class="ruby-ivar">@start</span>)
|
|
438
|
+
211: <span class="ruby-keyword kw">end</span>
|
|
412
439
|
</pre>
|
|
413
440
|
</div>
|
|
414
441
|
|
|
@@ -416,12 +443,12 @@ Gantt chart.
|
|
|
416
443
|
</div>
|
|
417
444
|
|
|
418
445
|
|
|
419
|
-
<div id="method-
|
|
420
|
-
<a name="
|
|
446
|
+
<div id="method-M000548" class="method-detail">
|
|
447
|
+
<a name="M000548"></a>
|
|
421
448
|
|
|
422
449
|
<div class="method-heading">
|
|
423
450
|
|
|
424
|
-
<a href="#
|
|
451
|
+
<a href="#M000548" class="method-signature">
|
|
425
452
|
|
|
426
453
|
<span class="method-name">generateByScale</span><span class="method-args">(periodStart, periodEnd, scaleName)</span>
|
|
427
454
|
|
|
@@ -440,20 +467,20 @@ created for this chart.
|
|
|
440
467
|
</p>
|
|
441
468
|
|
|
442
469
|
<p><a class="source-toggle" href="#"
|
|
443
|
-
onclick="toggleCode('
|
|
444
|
-
<div class="method-source-code" id="
|
|
470
|
+
onclick="toggleCode('M000548-source');return false;">[Source]</a></p>
|
|
471
|
+
<div class="method-source-code" id="M000548-source">
|
|
445
472
|
<pre>
|
|
446
|
-
<span class="ruby-comment cmt"># File lib/reports/GanttChart.rb, line
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
473
|
+
<span class="ruby-comment cmt"># File lib/reports/GanttChart.rb, line 129</span>
|
|
474
|
+
129: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateByScale</span>(<span class="ruby-identifier">periodStart</span>, <span class="ruby-identifier">periodEnd</span>, <span class="ruby-identifier">scaleName</span>)
|
|
475
|
+
130: <span class="ruby-ivar">@start</span> = <span class="ruby-identifier">periodStart</span>
|
|
476
|
+
131: <span class="ruby-ivar">@end</span> = <span class="ruby-identifier">periodEnd</span>
|
|
477
|
+
132: <span class="ruby-ivar">@scale</span> = <span class="ruby-identifier">scaleByName</span>(<span class="ruby-identifier">scaleName</span>)
|
|
478
|
+
133: <span class="ruby-ivar">@stepSize</span> = <span class="ruby-ivar">@scale</span>[<span class="ruby-value str">'stepSize'</span>]
|
|
479
|
+
134: <span class="ruby-identifier">steps</span> = <span class="ruby-ivar">@start</span>.<span class="ruby-identifier">send</span>(<span class="ruby-ivar">@scale</span>[<span class="ruby-value str">'stepsToFunc'</span>], <span class="ruby-ivar">@end</span>)
|
|
480
|
+
135: <span class="ruby-ivar">@width</span> = <span class="ruby-ivar">@stepSize</span> <span class="ruby-operator">*</span> <span class="ruby-identifier">steps</span>
|
|
481
|
+
136:
|
|
482
|
+
137: <span class="ruby-ivar">@header</span> = <span class="ruby-constant">GanttHeader</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">self</span>)
|
|
483
|
+
138: <span class="ruby-keyword kw">end</span>
|
|
457
484
|
</pre>
|
|
458
485
|
</div>
|
|
459
486
|
|
|
@@ -461,12 +488,12 @@ created for this chart.
|
|
|
461
488
|
</div>
|
|
462
489
|
|
|
463
490
|
|
|
464
|
-
<div id="method-
|
|
465
|
-
<a name="
|
|
491
|
+
<div id="method-M000547" class="method-detail">
|
|
492
|
+
<a name="M000547"></a>
|
|
466
493
|
|
|
467
494
|
<div class="method-heading">
|
|
468
495
|
|
|
469
|
-
<a href="#
|
|
496
|
+
<a href="#M000547" class="method-signature">
|
|
470
497
|
|
|
471
498
|
<span class="method-name">generateByWidth</span><span class="method-args">(periodStart, periodEnd, width)</span>
|
|
472
499
|
|
|
@@ -477,16 +504,16 @@ created for this chart.
|
|
|
477
504
|
<div class="method-description">
|
|
478
505
|
|
|
479
506
|
<p><a class="source-toggle" href="#"
|
|
480
|
-
onclick="toggleCode('
|
|
481
|
-
<div class="method-source-code" id="
|
|
507
|
+
onclick="toggleCode('M000547-source');return false;">[Source]</a></p>
|
|
508
|
+
<div class="method-source-code" id="M000547-source">
|
|
482
509
|
<pre>
|
|
483
|
-
<span class="ruby-comment cmt"># File lib/reports/GanttChart.rb, line
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
510
|
+
<span class="ruby-comment cmt"># File lib/reports/GanttChart.rb, line 118</span>
|
|
511
|
+
118: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateByWidth</span>(<span class="ruby-identifier">periodStart</span>, <span class="ruby-identifier">periodEnd</span>, <span class="ruby-identifier">width</span>)
|
|
512
|
+
119: <span class="ruby-ivar">@start</span> = <span class="ruby-identifier">periodStart</span>
|
|
513
|
+
120: <span class="ruby-ivar">@end</span> = <span class="ruby-identifier">periodEnd</span>
|
|
514
|
+
121: <span class="ruby-ivar">@width</span> = <span class="ruby-identifier">width</span>
|
|
515
|
+
122: <span class="ruby-comment cmt"># TODO</span>
|
|
516
|
+
123: <span class="ruby-keyword kw">end</span>
|
|
490
517
|
</pre>
|
|
491
518
|
</div>
|
|
492
519
|
|
|
@@ -494,12 +521,12 @@ created for this chart.
|
|
|
494
521
|
</div>
|
|
495
522
|
|
|
496
523
|
|
|
497
|
-
<div id="method-
|
|
498
|
-
<a name="
|
|
524
|
+
<div id="method-M000552" class="method-detail">
|
|
525
|
+
<a name="M000552"></a>
|
|
499
526
|
|
|
500
527
|
<div class="method-heading">
|
|
501
528
|
|
|
502
|
-
<a href="#
|
|
529
|
+
<a href="#M000552" class="method-signature">
|
|
503
530
|
|
|
504
531
|
<span class="method-name">hasScrollbar?</span><span class="method-args">()</span>
|
|
505
532
|
|
|
@@ -514,13 +541,13 @@ Returns true if the chart includes a scrollbar.
|
|
|
514
541
|
</p>
|
|
515
542
|
|
|
516
543
|
<p><a class="source-toggle" href="#"
|
|
517
|
-
onclick="toggleCode('
|
|
518
|
-
<div class="method-source-code" id="
|
|
544
|
+
onclick="toggleCode('M000552-source');return false;">[Source]</a></p>
|
|
545
|
+
<div class="method-source-code" id="M000552-source">
|
|
519
546
|
<pre>
|
|
520
|
-
<span class="ruby-comment cmt"># File lib/reports/GanttChart.rb, line
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
547
|
+
<span class="ruby-comment cmt"># File lib/reports/GanttChart.rb, line 223</span>
|
|
548
|
+
223: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">hasScrollbar?</span>
|
|
549
|
+
224: <span class="ruby-ivar">@viewWidth</span> <span class="ruby-operator">&&</span> <span class="ruby-ivar">@viewWidth</span> <span class="ruby-operator"><</span> <span class="ruby-ivar">@width</span>
|
|
550
|
+
225: <span class="ruby-keyword kw">end</span>
|
|
524
551
|
</pre>
|
|
525
552
|
</div>
|
|
526
553
|
|
|
@@ -528,12 +555,12 @@ Returns true if the chart includes a scrollbar.
|
|
|
528
555
|
</div>
|
|
529
556
|
|
|
530
557
|
|
|
531
|
-
<div id="method-
|
|
532
|
-
<a name="
|
|
558
|
+
<div id="method-M000550" class="method-detail">
|
|
559
|
+
<a name="M000550"></a>
|
|
533
560
|
|
|
534
561
|
<div class="method-heading">
|
|
535
562
|
|
|
536
|
-
<a href="#
|
|
563
|
+
<a href="#M000550" class="method-signature">
|
|
537
564
|
|
|
538
565
|
<span class="method-name">to_csv</span><span class="method-args">(csv)</span>
|
|
539
566
|
|
|
@@ -548,13 +575,13 @@ This is a noop function.
|
|
|
548
575
|
</p>
|
|
549
576
|
|
|
550
577
|
<p><a class="source-toggle" href="#"
|
|
551
|
-
onclick="toggleCode('
|
|
552
|
-
<div class="method-source-code" id="
|
|
578
|
+
onclick="toggleCode('M000550-source');return false;">[Source]</a></p>
|
|
579
|
+
<div class="method-source-code" id="M000550-source">
|
|
553
580
|
<pre>
|
|
554
|
-
<span class="ruby-comment cmt"># File lib/reports/GanttChart.rb, line
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
581
|
+
<span class="ruby-comment cmt"># File lib/reports/GanttChart.rb, line 203</span>
|
|
582
|
+
203: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_csv</span>(<span class="ruby-identifier">csv</span>)
|
|
583
|
+
204: <span class="ruby-comment cmt"># Can't put a Gantt chart into a CSV file.</span>
|
|
584
|
+
205: <span class="ruby-keyword kw">end</span>
|
|
558
585
|
</pre>
|
|
559
586
|
</div>
|
|
560
587
|
|
|
@@ -562,12 +589,12 @@ This is a noop function.
|
|
|
562
589
|
</div>
|
|
563
590
|
|
|
564
591
|
|
|
565
|
-
<div id="method-
|
|
566
|
-
<a name="
|
|
592
|
+
<div id="method-M000549" class="method-detail">
|
|
593
|
+
<a name="M000549"></a>
|
|
567
594
|
|
|
568
595
|
<div class="method-heading">
|
|
569
596
|
|
|
570
|
-
<a href="#
|
|
597
|
+
<a href="#M000549" class="method-signature">
|
|
571
598
|
|
|
572
599
|
<span class="method-name">to_html</span><span class="method-args">()</span>
|
|
573
600
|
|
|
@@ -582,68 +609,70 @@ Convert the chart into an HTML representation.
|
|
|
582
609
|
</p>
|
|
583
610
|
|
|
584
611
|
<p><a class="source-toggle" href="#"
|
|
585
|
-
onclick="toggleCode('
|
|
586
|
-
<div class="method-source-code" id="
|
|
612
|
+
onclick="toggleCode('M000549-source');return false;">[Source]</a></p>
|
|
613
|
+
<div class="method-source-code" id="M000549-source">
|
|
587
614
|
<pre>
|
|
588
|
-
<span class="ruby-comment cmt"># File lib/reports/GanttChart.rb, line
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
186: <span class="ruby-comment cmt"># And the corresponsing arrow heads.</span>
|
|
639
|
-
187: <span class="ruby-ivar">@arrowHeads</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">x</span>, <span class="ruby-identifier">y</span><span class="ruby-operator">|</span>
|
|
640
|
-
188: <span class="ruby-value">6</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
|
|
641
|
-
189: <span class="ruby-identifier">div</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">lineToHTML</span>(<span class="ruby-identifier">x</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">i</span>, <span class="ruby-identifier">y</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">i</span>, <span class="ruby-identifier">x</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">i</span>, <span class="ruby-identifier">y</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">i</span>, <span class="ruby-value str">'depline'</span>)
|
|
615
|
+
<span class="ruby-comment cmt"># File lib/reports/GanttChart.rb, line 141</span>
|
|
616
|
+
141: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_html</span>
|
|
617
|
+
142: <span class="ruby-identifier">completeChart</span>
|
|
618
|
+
143:
|
|
619
|
+
144: <span class="ruby-comment cmt"># The chart is rendered into a cell that extends over the full height of</span>
|
|
620
|
+
145: <span class="ruby-comment cmt"># the table. No other cells for this column will be generated. In case</span>
|
|
621
|
+
146: <span class="ruby-comment cmt"># there is a scrollbar, the table will have an extra line to hold the</span>
|
|
622
|
+
147: <span class="ruby-comment cmt"># scrollbar.</span>
|
|
623
|
+
148: <span class="ruby-identifier">td</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'td'</span>,
|
|
624
|
+
149: <span class="ruby-value str">'rowspan'</span> =<span class="ruby-operator">></span> <span class="ruby-node">"#{2 + @lines.length + (hasScrollbar? ? 1 : 0)}"</span>,
|
|
625
|
+
150: <span class="ruby-value str">'style'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'padding:0px; vertical-align:top;'</span>)
|
|
626
|
+
151: <span class="ruby-comment cmt"># Now we generate two 'div's nested into each other. The first div is the</span>
|
|
627
|
+
152: <span class="ruby-comment cmt"># view. It may contain a scrollbar if the second div is wider than the</span>
|
|
628
|
+
153: <span class="ruby-comment cmt"># first one. In case we need a scrollbar The outer div is</span>
|
|
629
|
+
154: <span class="ruby-comment cmt"># SCROLLBARHEIGHT pixels heigher to hold the scrollbar. Unfortunately</span>
|
|
630
|
+
155: <span class="ruby-comment cmt"># this must be a hardcoded value even though the height of the scrollbar</span>
|
|
631
|
+
156: <span class="ruby-comment cmt"># varies from system to system. This value should be good enough for</span>
|
|
632
|
+
157: <span class="ruby-comment cmt"># most systems.</span>
|
|
633
|
+
158: <span class="ruby-identifier">td</span> <span class="ruby-operator"><<</span> (<span class="ruby-identifier">scrollDiv</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'div'</span>, <span class="ruby-value str">'class'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'tabback'</span>,
|
|
634
|
+
159: <span class="ruby-value str">'style'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'position:relative; '</span> <span class="ruby-operator">+</span>
|
|
635
|
+
160: <span class="ruby-value str">"overflow:auto; "</span> <span class="ruby-operator">+</span>
|
|
636
|
+
161: <span class="ruby-node">"width:#{hasScrollbar? ? @viewWidth : @width}px; "</span> <span class="ruby-operator">+</span>
|
|
637
|
+
162: <span class="ruby-node">"height:#{@height +
|
|
638
|
+
163: (hasScrollbar? ? SCROLLBARHEIGHT : 0)}px;"</span>))
|
|
639
|
+
164: <span class="ruby-identifier">scrollDiv</span> <span class="ruby-operator"><<</span> (<span class="ruby-identifier">div</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'div'</span>,
|
|
640
|
+
165: <span class="ruby-value str">'style'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">"margin:0px; padding:0px; "</span> <span class="ruby-operator">+</span>
|
|
641
|
+
166: <span class="ruby-value str">"position:absolute; "</span> <span class="ruby-operator">+</span>
|
|
642
|
+
167: <span class="ruby-value str">"top:0px; left:0px; "</span> <span class="ruby-operator">+</span>
|
|
643
|
+
168: <span class="ruby-node">"width:#{@width.to_i}px; "</span> <span class="ruby-operator">+</span>
|
|
644
|
+
169: <span class="ruby-node">"height:#{@height}px; "</span> <span class="ruby-operator">+</span>
|
|
645
|
+
170: <span class="ruby-value str">"font-size:10px;"</span>))
|
|
646
|
+
171: <span class="ruby-comment cmt"># Add the header.</span>
|
|
647
|
+
172: <span class="ruby-identifier">div</span> <span class="ruby-operator"><<</span> <span class="ruby-ivar">@header</span>.<span class="ruby-identifier">to_html</span>
|
|
648
|
+
173: <span class="ruby-comment cmt"># These are the lines of the chart.</span>
|
|
649
|
+
174: <span class="ruby-ivar">@lines</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">line</span><span class="ruby-operator">|</span>
|
|
650
|
+
175: <span class="ruby-identifier">div</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">line</span>.<span class="ruby-identifier">to_html</span>
|
|
651
|
+
176: <span class="ruby-keyword kw">end</span>
|
|
652
|
+
177:
|
|
653
|
+
178: <span class="ruby-comment cmt"># This is used for debugging and testing only.</span>
|
|
654
|
+
179: <span class="ruby-comment cmt">#div << @router.to_html</span>
|
|
655
|
+
180:
|
|
656
|
+
181: <span class="ruby-comment cmt"># Render the dependency lines.</span>
|
|
657
|
+
182: <span class="ruby-ivar">@depArrows</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">arrow</span><span class="ruby-operator">|</span>
|
|
658
|
+
183: <span class="ruby-identifier">xx</span> = <span class="ruby-identifier">yy</span> = <span class="ruby-keyword kw">nil</span>
|
|
659
|
+
184: <span class="ruby-identifier">arrow</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">x</span>, <span class="ruby-identifier">y</span><span class="ruby-operator">|</span>
|
|
660
|
+
185: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">xx</span>
|
|
661
|
+
186: <span class="ruby-identifier">div</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">lineToHTML</span>(<span class="ruby-identifier">xx</span>, <span class="ruby-identifier">yy</span>, <span class="ruby-identifier">x</span>, <span class="ruby-identifier">y</span>, <span class="ruby-value str">'depline'</span>)
|
|
662
|
+
187: <span class="ruby-keyword kw">end</span>
|
|
663
|
+
188: <span class="ruby-identifier">xx</span> = <span class="ruby-identifier">x</span>
|
|
664
|
+
189: <span class="ruby-identifier">yy</span> = <span class="ruby-identifier">y</span>
|
|
642
665
|
190: <span class="ruby-keyword kw">end</span>
|
|
643
666
|
191: <span class="ruby-keyword kw">end</span>
|
|
644
|
-
192:
|
|
645
|
-
193: <span class="ruby-identifier">
|
|
646
|
-
194:
|
|
667
|
+
192: <span class="ruby-comment cmt"># And the corresponsing arrow heads.</span>
|
|
668
|
+
193: <span class="ruby-ivar">@arrowHeads</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">x</span>, <span class="ruby-identifier">y</span><span class="ruby-operator">|</span>
|
|
669
|
+
194: <span class="ruby-value">6</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
|
|
670
|
+
195: <span class="ruby-identifier">div</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">lineToHTML</span>(<span class="ruby-identifier">x</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">i</span>, <span class="ruby-identifier">y</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">i</span>, <span class="ruby-identifier">x</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">i</span>, <span class="ruby-identifier">y</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">i</span>, <span class="ruby-value str">'depline'</span>)
|
|
671
|
+
196: <span class="ruby-keyword kw">end</span>
|
|
672
|
+
197: <span class="ruby-keyword kw">end</span>
|
|
673
|
+
198:
|
|
674
|
+
199: <span class="ruby-identifier">td</span>
|
|
675
|
+
200: <span class="ruby-keyword kw">end</span>
|
|
647
676
|
</pre>
|
|
648
677
|
</div>
|
|
649
678
|
|