taskjuggler 0.0.6 → 0.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG +160 -0
- data/benchmarks/UTF-8-Strings.rb +58 -0
- data/data/css/tjreport.css +7 -2
- data/doc/AppConfig.html +10 -4
- data/doc/Arguments.html +10 -4
- data/doc/CHANGELOG.html +171 -5
- data/doc/COPYING.html +10 -4
- data/doc/Object.html +11 -107
- data/doc/README.html +10 -4
- data/doc/RuntimeConfig.html +10 -4
- data/doc/String.html +16 -11
- data/doc/StringIO.html +10 -4
- data/doc/TaskJuggler.html +506 -435
- data/doc/TaskJuggler/Account.html +10 -4
- data/doc/TaskJuggler/AccountAttribute.html +10 -4
- data/doc/TaskJuggler/AccountScenario.html +10 -4
- data/doc/TaskJuggler/Allocation.html +69 -60
- data/doc/TaskJuggler/AllocationAttribute.html +10 -4
- data/doc/TaskJuggler/AttributeBase.html +10 -4
- data/doc/TaskJuggler/AttributeDefinition.html +10 -4
- data/doc/TaskJuggler/BatchProcessor.html +202 -192
- data/doc/TaskJuggler/Booking.html +10 -4
- data/doc/TaskJuggler/BookingListAttribute.html +10 -4
- data/doc/TaskJuggler/BooleanAttribute.html +10 -4
- data/doc/TaskJuggler/CSVFile.html +10 -4
- data/doc/TaskJuggler/CellSettingPattern.html +10 -4
- data/doc/TaskJuggler/CellSettingPatternList.html +10 -4
- data/doc/TaskJuggler/Charge.html +10 -4
- data/doc/TaskJuggler/ChargeListAttribute.html +10 -4
- data/doc/TaskJuggler/ChargeSet.html +10 -4
- data/doc/TaskJuggler/ChargeSetListAttribute.html +10 -4
- data/doc/TaskJuggler/ColumnListAttribute.html +10 -4
- data/doc/TaskJuggler/ColumnTable.html +10 -4
- data/doc/TaskJuggler/Daemon.html +71 -52
- data/doc/TaskJuggler/DateAttribute.html +10 -4
- data/doc/TaskJuggler/DefinitionListAttribute.html +10 -4
- data/doc/TaskJuggler/DependencyListAttribute.html +10 -4
- data/doc/TaskJuggler/DurationAttribute.html +10 -4
- data/doc/TaskJuggler/{MacroParser.html → FileList.html} +58 -173
- data/doc/TaskJuggler/{RichTextException.html → FileRecord.html} +59 -80
- data/doc/TaskJuggler/FixnumAttribute.html +10 -4
- data/doc/TaskJuggler/FlagListAttribute.html +10 -4
- data/doc/TaskJuggler/FloatAttribute.html +10 -4
- data/doc/TaskJuggler/FormatListAttribute.html +10 -4
- data/doc/TaskJuggler/GanttChart.html +10 -4
- data/doc/TaskJuggler/GanttContainer.html +14 -8
- data/doc/TaskJuggler/GanttHeader.html +10 -4
- data/doc/TaskJuggler/GanttHeaderScaleItem.html +10 -4
- data/doc/TaskJuggler/GanttLine.html +29 -24
- data/doc/TaskJuggler/GanttLoadStack.html +10 -4
- data/doc/TaskJuggler/GanttMilestone.html +10 -4
- data/doc/TaskJuggler/GanttRouter.html +10 -4
- data/doc/TaskJuggler/GanttTaskBar.html +20 -10
- data/doc/TaskJuggler/HTMLDocument.html +10 -4
- data/doc/TaskJuggler/HTMLGraphics.html +10 -4
- data/doc/TaskJuggler/Interval.html +10 -4
- data/doc/TaskJuggler/IntervalListAttribute.html +10 -4
- data/doc/TaskJuggler/JobInfo.html +10 -4
- data/doc/TaskJuggler/Journal.html +227 -160
- data/doc/TaskJuggler/JournalEntry.html +10 -4
- data/doc/TaskJuggler/JournalEntryList.html +158 -72
- data/doc/TaskJuggler/KeywordArray.html +21 -9
- data/doc/TaskJuggler/KeywordDocumentation.html +612 -475
- data/doc/TaskJuggler/Limits.html +13 -8
- data/doc/TaskJuggler/Limits/Limit.html +10 -4
- data/doc/TaskJuggler/LimitsAttribute.html +10 -4
- data/doc/TaskJuggler/ListAttributeBase.html +10 -4
- data/doc/TaskJuggler/Log.html +10 -4
- data/doc/TaskJuggler/LogFile.html +10 -4
- data/doc/TaskJuggler/LogicalAttribute.html +10 -4
- data/doc/TaskJuggler/LogicalExpression.html +11 -5
- data/doc/TaskJuggler/LogicalExpressionAttribute.html +10 -4
- data/doc/TaskJuggler/LogicalFlag.html +10 -4
- data/doc/TaskJuggler/LogicalFunction.html +132 -124
- data/doc/TaskJuggler/LogicalOperation.html +10 -4
- data/doc/TaskJuggler/Macro.html +16 -10
- data/doc/TaskJuggler/MacroTable.html +44 -38
- data/doc/TaskJuggler/ManagerResponsibilities.html +10 -4
- data/doc/TaskJuggler/ManagerStatusRecord.html +10 -4
- data/doc/TaskJuggler/Message.html +92 -68
- data/doc/TaskJuggler/MessageHandler.html +349 -28
- data/doc/TaskJuggler/Navigator.html +10 -4
- data/doc/TaskJuggler/NavigatorElement.html +10 -4
- data/doc/TaskJuggler/NikuProject.html +10 -4
- data/doc/TaskJuggler/NikuReport.html +10 -4
- data/doc/TaskJuggler/NikuResource.html +10 -4
- data/doc/TaskJuggler/NodeListAttribute.html +10 -4
- data/doc/TaskJuggler/OnShiftCache.html +10 -4
- data/doc/TaskJuggler/ProcessIntercom.html +118 -111
- data/doc/TaskJuggler/ProcessIntercomIface.html +75 -22
- data/doc/TaskJuggler/Project.html +886 -913
- data/doc/TaskJuggler/ProjectBroker.html +442 -331
- data/doc/TaskJuggler/ProjectBrokerIface.html +95 -38
- data/doc/TaskJuggler/ProjectFileParser.html +320 -317
- data/doc/TaskJuggler/ProjectFileScanner.html +336 -339
- data/doc/TaskJuggler/ProjectRecord.html +119 -56
- data/doc/TaskJuggler/ProjectServer.html +282 -237
- data/doc/TaskJuggler/ProjectServerIface.html +45 -39
- data/doc/TaskJuggler/PropertyAttribute.html +10 -4
- data/doc/TaskJuggler/PropertyList.html +177 -173
- data/doc/TaskJuggler/PropertySet.html +11 -5
- data/doc/TaskJuggler/PropertyTreeNode.html +194 -191
- data/doc/TaskJuggler/Query.html +280 -256
- data/doc/TaskJuggler/RTFHandlers.html +10 -4
- data/doc/TaskJuggler/RTFNavigator.html +33 -26
- data/doc/TaskJuggler/RTFQuery.html +135 -169
- data/doc/TaskJuggler/RTFReport.html +63 -56
- data/doc/TaskJuggler/RTFReportLink.html +58 -47
- data/doc/TaskJuggler/RTFWithQuerySupport.html +666 -0
- data/doc/TaskJuggler/RealFormat.html +10 -4
- data/doc/TaskJuggler/RealFormatAttribute.html +10 -4
- data/doc/TaskJuggler/ReferenceAttribute.html +10 -4
- data/doc/TaskJuggler/Report.html +333 -290
- data/doc/TaskJuggler/ReportBase.html +182 -174
- data/doc/TaskJuggler/ReportContext.html +10 -4
- data/doc/TaskJuggler/ReportServer.html +144 -126
- data/doc/TaskJuggler/ReportServerIface.html +50 -44
- data/doc/TaskJuggler/ReportServerRecord.html +38 -32
- data/doc/TaskJuggler/ReportServlet.html +144 -137
- data/doc/TaskJuggler/ReportTable.html +10 -4
- data/doc/TaskJuggler/ReportTableCell.html +169 -164
- data/doc/TaskJuggler/ReportTableColumn.html +10 -4
- data/doc/TaskJuggler/ReportTableLegend.html +10 -4
- data/doc/TaskJuggler/ReportTableLine.html +10 -4
- data/doc/TaskJuggler/Resource.html +121 -115
- data/doc/TaskJuggler/ResourceListAttribute.html +10 -4
- data/doc/TaskJuggler/ResourceListRE.html +10 -4
- data/doc/TaskJuggler/ResourceScenario.html +13 -7
- data/doc/TaskJuggler/RichText.html +61 -37
- data/doc/TaskJuggler/RichTextAttribute.html +10 -4
- data/doc/TaskJuggler/RichTextDocument.html +91 -81
- data/doc/TaskJuggler/RichTextElement.html +378 -317
- data/doc/TaskJuggler/RichTextFunctionExample.html +10 -4
- data/doc/TaskJuggler/RichTextFunctionHandler.html +16 -11
- data/doc/TaskJuggler/RichTextImage.html +10 -4
- data/doc/TaskJuggler/RichTextIntermediate.html +138 -70
- data/doc/TaskJuggler/RichTextParser.html +48 -40
- data/doc/TaskJuggler/RichTextScanner.html +328 -906
- data/doc/TaskJuggler/RichTextSnip.html +59 -57
- data/doc/TaskJuggler/RichTextSyntaxRules.html +458 -369
- data/doc/TaskJuggler/Scenario.html +10 -4
- data/doc/TaskJuggler/ScenarioData.html +33 -30
- data/doc/TaskJuggler/ScenarioListAttribute.html +10 -4
- data/doc/TaskJuggler/Scoreboard.html +10 -4
- data/doc/TaskJuggler/SheetHandlerBase.html +315 -191
- data/doc/TaskJuggler/SheetReceiver.html +334 -313
- data/doc/TaskJuggler/SheetSender.html +10 -4
- data/doc/TaskJuggler/Shift.html +10 -4
- data/doc/TaskJuggler/ShiftAssignment.html +10 -4
- data/doc/TaskJuggler/ShiftAssignments.html +10 -4
- data/doc/TaskJuggler/ShiftAssignmentsAttribute.html +10 -4
- data/doc/TaskJuggler/ShiftScenario.html +10 -4
- data/doc/TaskJuggler/SimpleQueryExpander.html +697 -0
- data/doc/TaskJuggler/SortListAttribute.html +10 -4
- data/doc/TaskJuggler/SourceFileInfo.html +10 -4
- data/doc/TaskJuggler/StatusSheetReceiver.html +10 -4
- data/doc/TaskJuggler/StatusSheetReport.html +10 -4
- data/doc/TaskJuggler/StatusSheetSender.html +10 -4
- data/doc/TaskJuggler/StringAttribute.html +10 -4
- data/doc/TaskJuggler/SymbolAttribute.html +10 -4
- data/doc/TaskJuggler/SyntaxReference.html +260 -230
- data/doc/TaskJuggler/TOCEntry.html +99 -42
- data/doc/TaskJuggler/TSResourceRecord.html +10 -4
- data/doc/TaskJuggler/TSTaskRecord.html +10 -4
- data/doc/TaskJuggler/TableColumnDefinition.html +10 -4
- data/doc/TaskJuggler/TableOfContents.html +54 -12
- data/doc/TaskJuggler/TableReport.html +877 -872
- data/doc/TaskJuggler/Task.html +117 -68
- data/doc/TaskJuggler/TaskDependency.html +10 -4
- data/doc/TaskJuggler/TaskListAttribute.html +10 -4
- data/doc/TaskJuggler/TaskListRE.html +10 -4
- data/doc/TaskJuggler/TaskScenario.html +1681 -1563
- data/doc/TaskJuggler/TextFormatter.html +10 -4
- data/doc/TaskJuggler/TextParser.html +567 -534
- data/doc/TaskJuggler/TextParser/Pattern.html +128 -118
- data/doc/TaskJuggler/TextParser/Rule.html +26 -15
- data/doc/TaskJuggler/TextParser/StackElement.html +10 -4
- data/doc/TaskJuggler/TextParser/TextParserResultArray.html +22 -16
- data/doc/TaskJuggler/TextParser/TokenDoc.html +10 -4
- data/doc/TaskJuggler/TextReport.html +15 -6
- data/doc/TaskJuggler/TextScanner.html +319 -287
- data/doc/TaskJuggler/TextScanner/BufferStreamHandle.html +16 -10
- data/doc/TaskJuggler/TextScanner/FileStreamHandle.html +23 -17
- data/doc/TaskJuggler/TextScanner/MacroStackEntry.html +17 -11
- data/doc/TaskJuggler/TextScanner/StreamHandle.html +102 -96
- data/doc/TaskJuggler/TimeSheet.html +138 -175
- data/doc/TaskJuggler/TimeSheetReceiver.html +10 -4
- data/doc/TaskJuggler/TimeSheetRecord.html +65 -58
- data/doc/TaskJuggler/TimeSheetReport.html +47 -42
- data/doc/TaskJuggler/TimeSheetSender.html +10 -4
- data/doc/TaskJuggler/TimeSheetSummary.html +91 -83
- data/doc/TaskJuggler/TimeSheets.html +22 -16
- data/doc/TaskJuggler/Tj3AppBase.html +10 -4
- data/doc/TaskJuggler/Tj3Client.html +399 -365
- data/doc/TaskJuggler/Tj3Daemon.html +107 -94
- data/doc/TaskJuggler/Tj3SheetAppBase.html +10 -4
- data/doc/TaskJuggler/Tj3SsReceiver.html +10 -4
- data/doc/TaskJuggler/Tj3SsSender.html +10 -4
- data/doc/TaskJuggler/Tj3TsReceiver.html +10 -4
- data/doc/TaskJuggler/Tj3TsSender.html +10 -4
- data/doc/TaskJuggler/Tj3TsSummary.html +10 -4
- data/doc/TaskJuggler/TjException.html +10 -4
- data/doc/TaskJuggler/TjTime.html +145 -140
- data/doc/TaskJuggler/TjpExample.html +10 -4
- data/doc/TaskJuggler/TjpExportRE.html +122 -118
- data/doc/TaskJuggler/TjpSyntaxRules.html +4065 -4052
- data/doc/TaskJuggler/URLParameter.html +10 -4
- data/doc/TaskJuggler/UserManual.html +162 -155
- data/doc/TaskJuggler/VimSyntax.html +1028 -0
- data/doc/TaskJuggler/WebServer.html +45 -27
- data/doc/TaskJuggler/WorkingHours.html +10 -4
- data/doc/TaskJuggler/WorkingHoursAttribute.html +10 -4
- data/doc/TaskJuggler/XMLBlob.html +10 -4
- data/doc/TaskJuggler/XMLComment.html +10 -4
- data/doc/TaskJuggler/XMLDocument.html +10 -4
- data/doc/TaskJuggler/XMLElement.html +10 -4
- data/doc/TaskJuggler/XMLNamedText.html +10 -4
- data/doc/TaskJuggler/XMLText.html +10 -4
- data/doc/index.html +735 -677
- data/doc/lib/AccountScenario_rb.html +1 -1
- data/doc/lib/Account_rb.html +1 -1
- data/doc/lib/Allocation_rb.html +1 -1
- data/doc/lib/AppConfig_rb.html +1 -1
- data/doc/lib/AttributeBase_rb.html +1 -1
- data/doc/lib/AttributeDefinition_rb.html +1 -1
- data/doc/lib/Attributes_rb.html +1 -1
- data/doc/lib/BatchProcessor_rb.html +1 -1
- data/doc/lib/Booking_rb.html +1 -1
- data/doc/lib/ChargeSet_rb.html +1 -1
- data/doc/lib/Charge_rb.html +1 -1
- data/doc/lib/{Message_rb.html → FileList_rb.html} +3 -5
- data/doc/lib/HTMLDocument_rb.html +1 -1
- data/doc/lib/Interval_rb.html +1 -1
- data/doc/lib/Journal_rb.html +1 -1
- data/doc/lib/KeywordArray_rb.html +1 -1
- data/doc/lib/KeywordDocumentation_rb.html +1 -1
- data/doc/lib/Limits_rb.html +1 -1
- data/doc/lib/LogFile_rb.html +1 -1
- data/doc/lib/Log_rb.html +1 -1
- data/doc/lib/LogicalExpression_rb.html +1 -1
- data/doc/lib/LogicalFunction_rb.html +1 -1
- data/doc/lib/LogicalOperation_rb.html +1 -1
- data/doc/lib/MacroTable_rb.html +1 -3
- data/doc/lib/MessageHandler_rb.html +1 -1
- data/doc/lib/ProjectFileParser_rb.html +1 -1
- data/doc/lib/ProjectFileScanner_rb.html +1 -1
- data/doc/lib/Project_rb.html +4 -2
- data/doc/lib/PropertyList_rb.html +1 -1
- data/doc/lib/PropertySet_rb.html +1 -1
- data/doc/lib/PropertyTreeNode_rb.html +1 -1
- data/doc/lib/Query_rb.html +1 -1
- data/doc/lib/RTFHandlers_rb.html +1 -1
- data/doc/lib/RTFNavigator_rb.html +1 -1
- data/doc/lib/RTFQuery_rb.html +2 -2
- data/doc/lib/RTFReportLink_rb.html +4 -2
- data/doc/lib/RTFReport_rb.html +1 -1
- data/doc/lib/{MacroParser_rb.html → RTFWithQuerySupport_rb.html} +4 -6
- data/doc/lib/RealFormat_rb.html +1 -1
- data/doc/lib/ResourceScenario_rb.html +1 -1
- data/doc/lib/Resource_rb.html +1 -1
- data/doc/lib/RichTextDocument_rb.html +1 -1
- data/doc/lib/RichTextElement_rb.html +1 -1
- data/doc/lib/RichTextFunctionExample_rb.html +1 -1
- data/doc/lib/RichTextFunctionHandler_rb.html +1 -1
- data/doc/lib/RichTextParser_rb.html +1 -1
- data/doc/lib/RichTextScanner_rb.html +3 -1
- data/doc/lib/RichTextSnip_rb.html +1 -1
- data/doc/lib/RichTextSyntaxRules_rb.html +1 -1
- data/doc/lib/RichText_rb.html +3 -1
- data/doc/lib/RuntimeConfig_rb.html +1 -1
- data/doc/lib/ScenarioData_rb.html +2 -2
- data/doc/lib/Scenario_rb.html +1 -1
- data/doc/lib/Scoreboard_rb.html +1 -1
- data/doc/lib/SheetHandlerBase_rb.html +5 -1
- data/doc/lib/SheetReceiver_rb.html +3 -1
- data/doc/lib/SheetSender_rb.html +1 -1
- data/doc/lib/ShiftAssignments_rb.html +1 -1
- data/doc/lib/ShiftScenario_rb.html +1 -1
- data/doc/lib/Shift_rb.html +1 -1
- data/doc/lib/SimpleQueryExpander_rb.html +67 -0
- data/doc/lib/SourceFileInfo_rb.html +1 -1
- data/doc/lib/StatusSheetReceiver_rb.html +1 -1
- data/doc/lib/StatusSheetSender_rb.html +1 -1
- data/doc/lib/SyntaxReference_rb.html +1 -1
- data/doc/lib/TOCEntry_rb.html +1 -1
- data/doc/lib/TableColumnDefinition_rb.html +1 -1
- data/doc/lib/TableOfContents_rb.html +1 -1
- data/doc/lib/TaskDependency_rb.html +1 -1
- data/doc/lib/TaskJuggler_rb.html +1 -1
- data/doc/lib/TaskScenario_rb.html +1 -1
- data/doc/lib/Task_rb.html +1 -1
- data/doc/lib/TextFormatter_rb.html +1 -1
- data/doc/lib/TextParser/Pattern_rb.html +1 -1
- data/doc/lib/TextParser/Rule_rb.html +1 -1
- data/doc/lib/TextParser/StackElement_rb.html +1 -1
- data/doc/lib/TextParser/TokenDoc_rb.html +1 -1
- data/doc/lib/TextParser_rb.html +3 -1
- data/doc/lib/TextScanner_rb.html +1 -3
- data/doc/lib/TimeSheetReceiver_rb.html +1 -1
- data/doc/lib/TimeSheetSender_rb.html +1 -1
- data/doc/lib/TimeSheetSummary_rb.html +1 -1
- data/doc/lib/TimeSheets_rb.html +1 -1
- data/doc/lib/Tj3AppBase_rb.html +1 -1
- data/doc/lib/Tj3Config_rb.html +1 -1
- data/doc/lib/Tj3SheetAppBase_rb.html +1 -1
- data/doc/lib/TjException_rb.html +1 -1
- data/doc/lib/TjTime_rb.html +1 -1
- data/doc/lib/TjpExample_rb.html +1 -1
- data/doc/lib/TjpSyntaxRules_rb.html +1 -1
- data/doc/lib/URLParameter_rb.html +1 -1
- data/doc/lib/UTF8String_rb.html +1 -1
- data/doc/lib/UserManual_rb.html +1 -1
- data/doc/lib/{ruby-signal-bug_rb.html → VimSyntax_rb.html} +17 -4
- data/doc/lib/WorkingHours_rb.html +1 -1
- data/doc/lib/XMLDocument_rb.html +1 -1
- data/doc/lib/XMLElement_rb.html +1 -1
- data/doc/lib/daemon/Daemon_rb.html +1 -1
- data/doc/lib/daemon/ProcessIntercom_rb.html +1 -1
- data/doc/lib/daemon/ProjectBroker_rb.html +1 -1
- data/doc/lib/daemon/ProjectServer_rb.html +1 -1
- data/doc/lib/daemon/ReportServer_rb.html +1 -3
- data/doc/lib/daemon/WebServer_rb.html +1 -1
- data/doc/lib/deep_copy_rb.html +1 -1
- data/doc/lib/reports/CSVFile_rb.html +1 -1
- data/doc/lib/reports/ColumnTable_rb.html +1 -1
- data/doc/lib/reports/GanttChart_rb.html +1 -1
- data/doc/lib/reports/GanttContainer_rb.html +1 -1
- data/doc/lib/reports/GanttHeaderScaleItem_rb.html +1 -1
- data/doc/lib/reports/GanttHeader_rb.html +1 -1
- data/doc/lib/reports/GanttLine_rb.html +1 -1
- data/doc/lib/reports/GanttLoadStack_rb.html +1 -1
- data/doc/lib/reports/GanttMilestone_rb.html +1 -1
- data/doc/lib/reports/GanttRouter_rb.html +1 -1
- data/doc/lib/reports/GanttTaskBar_rb.html +1 -1
- data/doc/lib/reports/HTMLGraphics_rb.html +1 -1
- data/doc/lib/reports/Navigator_rb.html +1 -1
- data/doc/lib/reports/NikuReport_rb.html +1 -1
- data/doc/lib/reports/ReportBase_rb.html +1 -1
- data/doc/lib/reports/ReportContext_rb.html +1 -1
- data/doc/lib/reports/ReportTableCell_rb.html +1 -1
- data/doc/lib/reports/ReportTableColumn_rb.html +1 -1
- data/doc/lib/reports/ReportTableLegend_rb.html +1 -1
- data/doc/lib/reports/ReportTableLine_rb.html +1 -1
- data/doc/lib/reports/ReportTable_rb.html +1 -1
- data/doc/lib/reports/Report_rb.html +1 -1
- data/doc/lib/reports/ResourceListRE_rb.html +1 -1
- data/doc/lib/reports/StatusSheetReport_rb.html +1 -1
- data/doc/lib/reports/TableReport_rb.html +1 -1
- data/doc/lib/reports/TaskListRE_rb.html +1 -1
- data/doc/lib/reports/TextReport_rb.html +1 -1
- data/doc/lib/reports/TimeSheetReport_rb.html +1 -1
- data/doc/lib/reports/TjpExportRE_rb.html +1 -1
- data/doc/lib/taskjuggler3_rb.html +1 -1
- data/doc/lib/tj3client_rb.html +1 -1
- data/doc/lib/tj3d_rb.html +1 -1
- data/doc/lib/tj3man_rb.html +1 -1
- data/doc/lib/tj3ss_receiver_rb.html +1 -1
- data/doc/lib/tj3ss_sender_rb.html +1 -1
- data/doc/lib/tj3ts_receiver_rb.html +1 -1
- data/doc/lib/tj3ts_sender_rb.html +1 -1
- data/doc/lib/tj3ts_summary_rb.html +1 -1
- data/lib/Allocation.rb +8 -5
- data/lib/BatchProcessor.rb +7 -3
- data/lib/FileList.rb +58 -0
- data/lib/Journal.rb +73 -33
- data/lib/KeywordArray.rb +4 -0
- data/lib/KeywordDocumentation.rb +45 -11
- data/lib/Limits.rb +0 -1
- data/lib/LogicalExpression.rb +1 -1
- data/lib/LogicalFunction.rb +14 -12
- data/lib/MacroTable.rb +3 -4
- data/lib/MessageHandler.rb +136 -7
- data/lib/Project.rb +72 -86
- data/lib/ProjectFileParser.rb +30 -33
- data/lib/ProjectFileScanner.rb +7 -16
- data/lib/PropertyList.rb +25 -27
- data/lib/PropertySet.rb +1 -1
- data/lib/PropertyTreeNode.rb +9 -12
- data/lib/Query.rb +5 -4
- data/lib/RTFNavigator.rb +2 -1
- data/lib/RTFQuery.rb +4 -11
- data/lib/RTFReport.rb +2 -1
- data/lib/RTFReportLink.rb +10 -4
- data/lib/RTFWithQuerySupport.rb +45 -0
- data/lib/Resource.rb +20 -20
- data/lib/ResourceScenario.rb +3 -3
- data/lib/RichText.rb +15 -7
- data/lib/RichTextDocument.rb +8 -4
- data/lib/RichTextElement.rb +35 -12
- data/lib/RichTextFunctionHandler.rb +11 -12
- data/lib/RichTextParser.rb +5 -3
- data/lib/RichTextScanner.rb +144 -565
- data/lib/RichTextSnip.rb +3 -7
- data/lib/RichTextSyntaxRules.rb +51 -32
- data/lib/ScenarioData.rb +16 -25
- data/lib/SheetHandlerBase.rb +59 -2
- data/lib/SheetReceiver.rb +36 -18
- data/lib/SimpleQueryExpander.rb +58 -0
- data/lib/SyntaxReference.rb +9 -5
- data/lib/TOCEntry.rb +2 -0
- data/lib/TableOfContents.rb +4 -0
- data/lib/Task.rb +23 -12
- data/lib/TaskJuggler.rb +72 -33
- data/lib/TaskScenario.rb +131 -53
- data/lib/TextParser.rb +43 -30
- data/lib/TextParser/Pattern.rb +17 -13
- data/lib/TextParser/Rule.rb +5 -0
- data/lib/TextScanner.rb +46 -25
- data/lib/TimeSheetSummary.rb +9 -7
- data/lib/TimeSheets.rb +14 -23
- data/lib/Tj3Config.rb +1 -1
- data/lib/TjTime.rb +1 -2
- data/lib/TjpSyntaxRules.rb +128 -104
- data/lib/UTF8String.rb +0 -1
- data/lib/UserManual.rb +5 -4
- data/lib/VimSyntax.rb +223 -0
- data/lib/daemon/Daemon.rb +9 -0
- data/lib/daemon/ProcessIntercom.rb +19 -4
- data/lib/daemon/ProjectBroker.rb +149 -68
- data/lib/daemon/ProjectServer.rb +119 -79
- data/lib/daemon/ReportServer.rb +42 -31
- data/lib/daemon/WebServer.rb +21 -2
- data/lib/deep_copy.rb +1 -1
- data/lib/reports/GanttContainer.rb +2 -2
- data/lib/reports/GanttLine.rb +2 -3
- data/lib/reports/GanttTaskBar.rb +7 -3
- data/lib/reports/Report.rb +62 -57
- data/lib/reports/ReportBase.rb +6 -4
- data/lib/reports/ReportTableCell.rb +13 -14
- data/lib/reports/TableReport.rb +2 -1
- data/lib/reports/TextReport.rb +3 -0
- data/lib/reports/TimeSheetReport.rb +2 -3
- data/lib/reports/TjpExportRE.rb +0 -2
- data/lib/tj3client.rb +31 -3
- data/lib/tj3d.rb +8 -1
- data/manual/Day_To_Day_Juggling +2 -95
- data/manual/How_To_Contribute +2 -1
- data/manual/Rich_Text_Attributes +37 -3
- data/manual/Software +203 -0
- data/test/MessageChecker.rb +4 -4
- data/test/TestSuite/HTML-Reports/Alerts.html +172 -0
- data/test/TestSuite/HTML-Reports/CellText.html +758 -0
- data/test/TestSuite/HTML-Reports/ColumnPeriods.html +156 -0
- data/test/TestSuite/HTML-Reports/IsOngoing.html +172 -0
- data/test/TestSuite/HTML-Reports/LogicalFunctions.html +245 -0
- data/test/TestSuite/HTML-Reports/Query.html +31 -0
- data/test/TestSuite/HTML-Reports/css/tjmanual.css +14 -0
- data/test/TestSuite/HTML-Reports/css/tjreport.css +233 -21
- data/test/TestSuite/HTML-Reports/depArrows.html +842 -0
- data/test/TestSuite/HTML-Reports/scripts/scripts/wz_tooltip.js +1301 -0
- data/test/TestSuite/HTML-Reports/scripts/wz_tooltip.js +20 -20
- data/test/TestSuite/ReportGenerator/Correct/Alerts.tjp +48 -0
- data/test/TestSuite/ReportGenerator/Correct/Macros.tjp +57 -0
- data/test/TestSuite/ReportGenerator/Correct/refs/Alerts-1.csv +386 -0
- data/test/TestSuite/ReportGenerator/Correct/refs/Macros-1.csv +6 -0
- data/test/TestSuite/ReportGenerator/{Correct → Errors}/css/tjmanual.css +0 -0
- data/test/TestSuite/ReportGenerator/{Correct → Errors}/css/tjreport.css +0 -0
- data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/details.png +0 -0
- data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/flag-green.png +0 -0
- data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/flag-red.png +0 -0
- data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/flag-yellow.png +0 -0
- data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/resource.png +0 -0
- data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/resourcegroup.png +0 -0
- data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/task.png +0 -0
- data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/taskgroup.png +0 -0
- data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/trend-down.png +0 -0
- data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/trend-flat.png +0 -0
- data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/trend-up.png +0 -0
- data/test/TestSuite/ReportGenerator/Errors/rtp_report_recursion.html +26 -0
- data/test/TestSuite/ReportGenerator/{Correct → Errors}/scripts/wz_tooltip.js +0 -0
- data/test/TestSuite/Scheduler/Correct/Allocate.html +3210 -0
- data/test/TestSuite/Scheduler/Correct/Allocate.tjp +19 -0
- data/test/TestSuite/Scheduler/Correct/Container.html +22 -22
- data/test/TestSuite/Scheduler/Correct/Limits.html +4964 -0
- data/test/TestSuite/Scheduler/Correct/Shift.html +1707 -417
- data/test/TestSuite/Scheduler/Correct/Shift2.html +9 -9
- data/test/TestSuite/Scheduler/Correct/css/tjreport.css +6 -2
- data/test/TestSuite/Scheduler/Errors/css/tjmanual.css +66 -0
- data/test/TestSuite/Scheduler/Errors/css/tjreport.css +407 -0
- data/test/TestSuite/Scheduler/Errors/icons/details.png +0 -0
- data/test/TestSuite/Scheduler/Errors/icons/flag-green.png +0 -0
- data/test/TestSuite/Scheduler/Errors/icons/flag-red.png +0 -0
- data/test/TestSuite/Scheduler/Errors/icons/flag-yellow.png +0 -0
- data/test/TestSuite/Scheduler/Errors/icons/resource.png +0 -0
- data/test/TestSuite/Scheduler/Errors/icons/resourcegroup.png +0 -0
- data/test/TestSuite/Scheduler/Errors/icons/task.png +0 -0
- data/test/TestSuite/Scheduler/Errors/icons/taskgroup.png +0 -0
- data/test/TestSuite/Scheduler/Errors/icons/trend-down.png +0 -0
- data/test/TestSuite/Scheduler/Errors/icons/trend-flat.png +0 -0
- data/test/TestSuite/Scheduler/Errors/icons/trend-up.png +0 -0
- data/test/TestSuite/Scheduler/Errors/loop_detected_1.tjp +1 -1
- data/test/TestSuite/Scheduler/Errors/loop_detected_10.tjp +1 -1
- data/test/TestSuite/Scheduler/Errors/loop_detected_11.tjp +1 -1
- data/test/TestSuite/Scheduler/Errors/loop_detected_12.tjp +1 -1
- data/test/TestSuite/Scheduler/Errors/loop_detected_13.tjp +1 -1
- data/test/TestSuite/Scheduler/Errors/loop_detected_14.tjp +1 -1
- data/test/TestSuite/Scheduler/Errors/loop_detected_2.tjp +1 -1
- data/test/TestSuite/Scheduler/Errors/loop_detected_3.tjp +1 -1
- data/test/TestSuite/Scheduler/Errors/loop_detected_4.tjp +1 -1
- data/test/TestSuite/Scheduler/Errors/loop_detected_5.tjp +1 -1
- data/test/TestSuite/Scheduler/Errors/loop_detected_6.tjp +1 -1
- data/test/TestSuite/Scheduler/Errors/loop_detected_7.tjp +1 -1
- data/test/TestSuite/Scheduler/Errors/loop_detected_8.tjp +1 -1
- data/test/TestSuite/Scheduler/Errors/loop_detected_9.tjp +1 -1
- data/test/TestSuite/Scheduler/Errors/scripts/wz_tooltip.js +1301 -0
- data/test/TestSuite/Scheduler/Errors/task_pred_before.tjp +11 -0
- data/test/TestSuite/Scheduler/Errors/task_pred_before_gd.tjp +11 -0
- data/test/TestSuite/Scheduler/Errors/task_pred_before_gl.tjp +11 -0
- data/test/TestSuite/Scheduler/Errors/task_succ_after.tjp +12 -0
- data/test/TestSuite/Scheduler/Errors/task_succ_after_gd.tjp +12 -0
- data/test/TestSuite/Scheduler/Errors/task_succ_after_gl.tjp +12 -0
- data/test/TestSuite/StatusSheets/dev2.tji +22 -0
- data/test/TestSuite/StatusSheets/resrep.tji +7 -0
- data/test/TestSuite/StatusSheets/run +6 -4
- data/test/TestSuite/StatusSheets/tj3d.log +312 -0
- data/test/TestSuite/Syntax/Correct/Managers.html +263 -0
- data/test/TestSuite/Syntax/Correct/tutorial.tjp +1 -2
- data/test/TestSuite/Syntax/Errors/empty.tjp +1 -1
- data/test/TestSuite/Syntax/Errors/macro_stack_overflow.tjp +1 -1
- data/test/TestSuite/TimeSheets/acceptable_intervals +1 -0
- data/test/TestSuite/TimeSheets/resrep.tji +7 -0
- data/test/TestSuite/TimeSheets/run +6 -5
- data/test/TestSuite/TimeSheets/statussheets.log +1 -0
- data/test/TestSuite/TimeSheets/ts.tji +351 -0
- data/test/TestSuite/TimeSheets/tsdef.tji +2 -0
- data/test/test_PropertySet.rb +2 -2
- data/test/test_RichText.rb +178 -387
- data/test/test_SimpleQueryExpander.rb +55 -0
- data/test/test_deep_copy.rb +2 -2
- metadata +854 -834
- data/lib/MacroParser.rb +0 -77
- data/lib/Message.rb +0 -56
- data/lib/ruby-signal-bug.rb +0 -43
- data/test/TestSuite/HTML-Reports/TimeSheet.html +0 -79
- data/test/TestSuite/HTML-Reports/reference.html +0 -51
- data/test/TestSuite/ReportGenerator/Correct/Journal.html +0 -63
- data/test/TestSuite/ReportGenerator/Correct/LogicalFunctions2.csv +0 -3
- data/test/TestSuite/ReportGenerator/Correct/opennodes.csv +0 -2
- data/test/TestSuite/ReportGenerator/Correct/opennodes.tjp +0 -26
- data/test/TestSuite/ReportGenerator/Correct/refs/opennodes-1.csv +0 -2
- data/test/TestSuite/Scheduler/Correct/Booking2.html +0 -603
- data/test/TestSuite/Scheduler/Correct/TimeSheet2.html +0 -108
- data/test/TestSuite/StatusSheetTemplates/project.tji +0 -35
- data/test/TestSuite/StatusSheetTemplates/project.tjp +0 -56
- data/test/TestSuite/Syntax/Correct/ResourcePrefix.html +0 -32
|
@@ -118,7 +118,6 @@ resource dev "Developers" {
|
|
|
118
118
|
Phone "x490"
|
|
119
119
|
vacation 2002-02-01 - 2002-02-05
|
|
120
120
|
}
|
|
121
|
-
|
|
122
121
|
flags team
|
|
123
122
|
}
|
|
124
123
|
resource misc "The Others" {
|
|
@@ -527,7 +526,7 @@ taskreport overview "" {
|
|
|
527
526
|
|
|
528
527
|
footer -8<-
|
|
529
528
|
=== Staffing ===
|
|
530
|
-
|
|
529
|
+
|
|
531
530
|
All project phases are properly staffed. See [[ResourceGraph]] for
|
|
532
531
|
detailed resource allocations.
|
|
533
532
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
# MARK: error
|
|
1
|
+
# MARK: error 2 unexpctd_token
|
|
@@ -2,7 +2,6 @@ project "Macro Stack Overflow" 2009-11-01 +2m
|
|
|
2
2
|
|
|
3
3
|
macro foo [ task "bar" { ${foo} } ]
|
|
4
4
|
|
|
5
|
-
# MARK: error 28 macro_stack_overflow
|
|
6
5
|
# MARK: info 3 macro_stack
|
|
7
6
|
# MARK: info 3 macro_stack
|
|
8
7
|
# MARK: info 3 macro_stack
|
|
@@ -25,5 +24,6 @@ macro foo [ task "bar" { ${foo} } ]
|
|
|
25
24
|
# MARK: info 3 macro_stack
|
|
26
25
|
# MARK: info 3 macro_stack
|
|
27
26
|
# MARK: info 3 macro_stack
|
|
27
|
+
# MARK: error 28 macro_stack_overflow
|
|
28
28
|
${foo}
|
|
29
29
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
2002-02-22-00:00-+0100 - 2002-03-01-00:00-+0100
|
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
function cleanup
|
|
4
4
|
{
|
|
5
5
|
tj3client --silent terminate 2> /dev/null
|
|
6
|
-
|
|
6
|
+
sleep 2
|
|
7
|
+
#killall -9 tj3d 2> /dev/null
|
|
7
8
|
/bin/rm -rf timesheets.log \
|
|
8
9
|
TimeSheets TimeSheetTemplates \
|
|
9
10
|
sender.log receiver.log summary.log tj3d.log
|
|
@@ -38,7 +39,7 @@ tj3ts_receiver --dryrun < dev2_mail1 >> receiver.log || error "rec1"
|
|
|
38
39
|
tj3ts_receiver --dryrun < dev2_mail2 >> receiver.log || error "rec2"
|
|
39
40
|
check "From: foo@bar.com" receiver.log 2
|
|
40
41
|
check "Report from " receiver.log 2
|
|
41
|
-
check "Green" receiver.log
|
|
42
|
+
check "Green" receiver.log 6
|
|
42
43
|
|
|
43
44
|
# Update the project with the server to include the submitted time
|
|
44
45
|
# sheets. This is only to test the time sheet data surpression.
|
|
@@ -50,9 +51,9 @@ check "To: archive@bar.com" summary.log 2
|
|
|
50
51
|
check "To: crew@bar.com" summary.log 1
|
|
51
52
|
check "From: foo@bar.com" summary.log 7
|
|
52
53
|
check "From: =?UTF-8?B?U8OpYmFzdGllbg==?= Bono <SBono@crappysoftware.com>" summary.log 1
|
|
53
|
-
check "The following 5 person(s) have not yet submitted their time sheets" summary.log
|
|
54
|
-
check "Weekly Report from" summary.log
|
|
55
|
-
check "Green" summary.log
|
|
54
|
+
check "The following 5 person(s) have not yet submitted their time sheets" summary.log 4
|
|
55
|
+
check "Weekly Report from" summary.log 4
|
|
56
|
+
check "Green" summary.log 12
|
|
56
57
|
check "Your time sheet for the period ending 2002-03-01 is overdue" summary.log 5
|
|
57
58
|
|
|
58
59
|
tj3client --silent terminate
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
2010-03-07 11:09:44 ERROR tj3ss_sender: 'senderEmail' not configured
|
|
@@ -0,0 +1,351 @@
|
|
|
1
|
+
# The status headline should be no more than 60 characters and may
|
|
2
|
+
# not be empty! The status summary is optional and should be no
|
|
3
|
+
# longer than one or two sentences of plain text. The details section
|
|
4
|
+
# is also optional has no length limitation. You can use simple
|
|
5
|
+
# markup in this section. It is recommended that you provide at
|
|
6
|
+
# least a summary or a details section.
|
|
7
|
+
# See http://www.taskjuggler.org/tj3/manual/timesheet.html for details.
|
|
8
|
+
timesheet boss 2002-01-16-00:00-+0100 - 2002-05-17-17:00-+0200 {
|
|
9
|
+
|
|
10
|
+
# Vacation time: 1.1506849315068493%
|
|
11
|
+
|
|
12
|
+
# There were no planned tasks assignements for this period!
|
|
13
|
+
|
|
14
|
+
# If you had unplanned tasks, uncomment and fill out the
|
|
15
|
+
# following lines:
|
|
16
|
+
# newtask new.task.id "A task title" {
|
|
17
|
+
# work X%
|
|
18
|
+
# remaining Y.Yd
|
|
19
|
+
# }
|
|
20
|
+
|
|
21
|
+
# You can use the following section to report personal notes.
|
|
22
|
+
# status green "A headline" {
|
|
23
|
+
# summary -8<-
|
|
24
|
+
# Uncomment and put one or two sentences here!
|
|
25
|
+
# ->8-
|
|
26
|
+
# details -8<-
|
|
27
|
+
# Uncomment and put markup text here.
|
|
28
|
+
# ->8-
|
|
29
|
+
# }
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
timesheet dev1 2002-01-16-00:00-+0100 - 2002-05-17-17:00-+0200 {
|
|
33
|
+
|
|
34
|
+
# Vacation time: 1.1506849315068493%
|
|
35
|
+
|
|
36
|
+
# Task: Specification
|
|
37
|
+
task AcSo.spec {
|
|
38
|
+
work 7.767123287671233%
|
|
39
|
+
remaining 0.0d
|
|
40
|
+
status green "Your headline here!" {
|
|
41
|
+
# summary -8<-
|
|
42
|
+
# Uncomment and put one or two sentences here!
|
|
43
|
+
# ->8-
|
|
44
|
+
# details -8<-
|
|
45
|
+
# Uncomment and put markup text here.
|
|
46
|
+
# ->8-
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
# Task: Database coupling
|
|
51
|
+
task AcSo.software.database {
|
|
52
|
+
work 11.506849315068495%
|
|
53
|
+
remaining 0.0d
|
|
54
|
+
status green "Your headline here!" {
|
|
55
|
+
# summary -8<-
|
|
56
|
+
# Uncomment and put one or two sentences here!
|
|
57
|
+
# ->8-
|
|
58
|
+
# details -8<-
|
|
59
|
+
# Uncomment and put markup text here.
|
|
60
|
+
# ->8-
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
# Task: Back-End Functions
|
|
65
|
+
task AcSo.software.backend {
|
|
66
|
+
work 17.26027397260274%
|
|
67
|
+
remaining 0.0d
|
|
68
|
+
status green "Your headline here!" {
|
|
69
|
+
# summary -8<-
|
|
70
|
+
# Uncomment and put one or two sentences here!
|
|
71
|
+
# ->8-
|
|
72
|
+
# details -8<-
|
|
73
|
+
# Uncomment and put markup text here.
|
|
74
|
+
# ->8-
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
# Task: Beta Test
|
|
79
|
+
task AcSo.test.beta {
|
|
80
|
+
work 13.08904109589041%
|
|
81
|
+
remaining 0.0d
|
|
82
|
+
status green "Your headline here!" {
|
|
83
|
+
# summary -8<-
|
|
84
|
+
# Uncomment and put one or two sentences here!
|
|
85
|
+
# ->8-
|
|
86
|
+
# details -8<-
|
|
87
|
+
# Uncomment and put markup text here.
|
|
88
|
+
# ->8-
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
# If you had unplanned tasks, uncomment and fill out the
|
|
93
|
+
# following lines:
|
|
94
|
+
# newtask new.task.id "A task title" {
|
|
95
|
+
# work X%
|
|
96
|
+
# remaining Y.Yd
|
|
97
|
+
# }
|
|
98
|
+
|
|
99
|
+
# You can use the following section to report personal notes.
|
|
100
|
+
# status green "A headline" {
|
|
101
|
+
# summary -8<-
|
|
102
|
+
# Uncomment and put one or two sentences here!
|
|
103
|
+
# ->8-
|
|
104
|
+
# details -8<-
|
|
105
|
+
# Uncomment and put markup text here.
|
|
106
|
+
# ->8-
|
|
107
|
+
# }
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
timesheet dev2 2002-01-16-00:00-+0100 - 2002-05-17-17:00-+0200 {
|
|
111
|
+
|
|
112
|
+
# Vacation time: 1.1506849315068493%
|
|
113
|
+
|
|
114
|
+
# Task: Specification
|
|
115
|
+
task AcSo.spec {
|
|
116
|
+
work 7.767123287671233%
|
|
117
|
+
remaining 0.0d
|
|
118
|
+
status green "Your headline here!" {
|
|
119
|
+
# summary -8<-
|
|
120
|
+
# Uncomment and put one or two sentences here!
|
|
121
|
+
# ->8-
|
|
122
|
+
# details -8<-
|
|
123
|
+
# Uncomment and put markup text here.
|
|
124
|
+
# ->8-
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
# Task: Database coupling
|
|
129
|
+
task AcSo.software.database {
|
|
130
|
+
work 11.506849315068495%
|
|
131
|
+
remaining 0.0d
|
|
132
|
+
status green "Your headline here!" {
|
|
133
|
+
# summary -8<-
|
|
134
|
+
# Uncomment and put one or two sentences here!
|
|
135
|
+
# ->8-
|
|
136
|
+
# details -8<-
|
|
137
|
+
# Uncomment and put markup text here.
|
|
138
|
+
# ->8-
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
# Task: Graphical User Interface
|
|
143
|
+
task AcSo.software.gui {
|
|
144
|
+
work 20.136986301369863%
|
|
145
|
+
remaining 0.0d
|
|
146
|
+
status green "Your headline here!" {
|
|
147
|
+
# summary -8<-
|
|
148
|
+
# Uncomment and put one or two sentences here!
|
|
149
|
+
# ->8-
|
|
150
|
+
# details -8<-
|
|
151
|
+
# Uncomment and put markup text here.
|
|
152
|
+
# ->8-
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
# Task: Back-End Functions
|
|
157
|
+
task AcSo.software.backend {
|
|
158
|
+
work 17.26027397260274%
|
|
159
|
+
remaining 0.0d
|
|
160
|
+
status green "Your headline here!" {
|
|
161
|
+
# summary -8<-
|
|
162
|
+
# Uncomment and put one or two sentences here!
|
|
163
|
+
# ->8-
|
|
164
|
+
# details -8<-
|
|
165
|
+
# Uncomment and put markup text here.
|
|
166
|
+
# ->8-
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
# Task: Alpha Test
|
|
171
|
+
task AcSo.test.alpha {
|
|
172
|
+
work 3.1643835616438363%
|
|
173
|
+
remaining 0.0d
|
|
174
|
+
status green "Your headline here!" {
|
|
175
|
+
# summary -8<-
|
|
176
|
+
# Uncomment and put one or two sentences here!
|
|
177
|
+
# ->8-
|
|
178
|
+
# details -8<-
|
|
179
|
+
# Uncomment and put markup text here.
|
|
180
|
+
# ->8-
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
# If you had unplanned tasks, uncomment and fill out the
|
|
185
|
+
# following lines:
|
|
186
|
+
# newtask new.task.id "A task title" {
|
|
187
|
+
# work X%
|
|
188
|
+
# remaining Y.Yd
|
|
189
|
+
# }
|
|
190
|
+
|
|
191
|
+
# You can use the following section to report personal notes.
|
|
192
|
+
# status green "A headline" {
|
|
193
|
+
# summary -8<-
|
|
194
|
+
# Uncomment and put one or two sentences here!
|
|
195
|
+
# ->8-
|
|
196
|
+
# details -8<-
|
|
197
|
+
# Uncomment and put markup text here.
|
|
198
|
+
# ->8-
|
|
199
|
+
# }
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
timesheet dev3 2002-01-16-00:00-+0100 - 2002-05-17-17:00-+0200 {
|
|
203
|
+
|
|
204
|
+
# Vacation time: 3.4520547945205484%
|
|
205
|
+
|
|
206
|
+
# Task: Specification
|
|
207
|
+
task AcSo.spec {
|
|
208
|
+
work 7.767123287671233%
|
|
209
|
+
remaining 0.0d
|
|
210
|
+
status green "Your headline here!" {
|
|
211
|
+
# summary -8<-
|
|
212
|
+
# Uncomment and put one or two sentences here!
|
|
213
|
+
# ->8-
|
|
214
|
+
# details -8<-
|
|
215
|
+
# Uncomment and put markup text here.
|
|
216
|
+
# ->8-
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
# Task: Graphical User Interface
|
|
221
|
+
task AcSo.software.gui {
|
|
222
|
+
work 20.136986301369863%
|
|
223
|
+
remaining 0.0d
|
|
224
|
+
status green "Your headline here!" {
|
|
225
|
+
# summary -8<-
|
|
226
|
+
# Uncomment and put one or two sentences here!
|
|
227
|
+
# ->8-
|
|
228
|
+
# details -8<-
|
|
229
|
+
# Uncomment and put markup text here.
|
|
230
|
+
# ->8-
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
# Task: Manual
|
|
235
|
+
task AcSo.manual {
|
|
236
|
+
work 23.732876712328768%
|
|
237
|
+
remaining 0.0d
|
|
238
|
+
status green "Your headline here!" {
|
|
239
|
+
# summary -8<-
|
|
240
|
+
# Uncomment and put one or two sentences here!
|
|
241
|
+
# ->8-
|
|
242
|
+
# details -8<-
|
|
243
|
+
# Uncomment and put markup text here.
|
|
244
|
+
# ->8-
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
# If you had unplanned tasks, uncomment and fill out the
|
|
249
|
+
# following lines:
|
|
250
|
+
# newtask new.task.id "A task title" {
|
|
251
|
+
# work X%
|
|
252
|
+
# remaining Y.Yd
|
|
253
|
+
# }
|
|
254
|
+
|
|
255
|
+
# You can use the following section to report personal notes.
|
|
256
|
+
# status green "A headline" {
|
|
257
|
+
# summary -8<-
|
|
258
|
+
# Uncomment and put one or two sentences here!
|
|
259
|
+
# ->8-
|
|
260
|
+
# details -8<-
|
|
261
|
+
# Uncomment and put markup text here.
|
|
262
|
+
# ->8-
|
|
263
|
+
# }
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
timesheet test 2002-01-16-00:00-+0100 - 2002-05-17-17:00-+0200 {
|
|
267
|
+
|
|
268
|
+
# Vacation time: 1.1506849315068493%
|
|
269
|
+
|
|
270
|
+
# Task: Alpha Test
|
|
271
|
+
task AcSo.test.alpha {
|
|
272
|
+
work 2.589041095890411%
|
|
273
|
+
remaining 0.0d
|
|
274
|
+
status green "Your headline here!" {
|
|
275
|
+
# summary -8<-
|
|
276
|
+
# Uncomment and put one or two sentences here!
|
|
277
|
+
# ->8-
|
|
278
|
+
# details -8<-
|
|
279
|
+
# Uncomment and put markup text here.
|
|
280
|
+
# ->8-
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
# Task: Beta Test
|
|
285
|
+
task AcSo.test.beta {
|
|
286
|
+
work 9.924657534246577%
|
|
287
|
+
remaining 0.0d
|
|
288
|
+
status green "Your headline here!" {
|
|
289
|
+
# summary -8<-
|
|
290
|
+
# Uncomment and put one or two sentences here!
|
|
291
|
+
# ->8-
|
|
292
|
+
# details -8<-
|
|
293
|
+
# Uncomment and put markup text here.
|
|
294
|
+
# ->8-
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
# If you had unplanned tasks, uncomment and fill out the
|
|
299
|
+
# following lines:
|
|
300
|
+
# newtask new.task.id "A task title" {
|
|
301
|
+
# work X%
|
|
302
|
+
# remaining Y.Yd
|
|
303
|
+
# }
|
|
304
|
+
|
|
305
|
+
# You can use the following section to report personal notes.
|
|
306
|
+
# status green "A headline" {
|
|
307
|
+
# summary -8<-
|
|
308
|
+
# Uncomment and put one or two sentences here!
|
|
309
|
+
# ->8-
|
|
310
|
+
# details -8<-
|
|
311
|
+
# Uncomment and put markup text here.
|
|
312
|
+
# ->8-
|
|
313
|
+
# }
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
timesheet doc 2002-01-16-00:00-+0100 - 2002-05-17-17:00-+0200 {
|
|
317
|
+
|
|
318
|
+
# Vacation time: 6.904109589041097%
|
|
319
|
+
|
|
320
|
+
# Task: Manual
|
|
321
|
+
task AcSo.manual {
|
|
322
|
+
work 33.801369863013704%
|
|
323
|
+
remaining 0.0d
|
|
324
|
+
status green "Your headline here!" {
|
|
325
|
+
# summary -8<-
|
|
326
|
+
# Uncomment and put one or two sentences here!
|
|
327
|
+
# ->8-
|
|
328
|
+
# details -8<-
|
|
329
|
+
# Uncomment and put markup text here.
|
|
330
|
+
# ->8-
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
# If you had unplanned tasks, uncomment and fill out the
|
|
335
|
+
# following lines:
|
|
336
|
+
# newtask new.task.id "A task title" {
|
|
337
|
+
# work X%
|
|
338
|
+
# remaining Y.Yd
|
|
339
|
+
# }
|
|
340
|
+
|
|
341
|
+
# You can use the following section to report personal notes.
|
|
342
|
+
# status green "A headline" {
|
|
343
|
+
# summary -8<-
|
|
344
|
+
# Uncomment and put one or two sentences here!
|
|
345
|
+
# ->8-
|
|
346
|
+
# details -8<-
|
|
347
|
+
# Uncomment and put markup text here.
|
|
348
|
+
# ->8-
|
|
349
|
+
# }
|
|
350
|
+
}
|
|
351
|
+
|
data/test/test_PropertySet.rb
CHANGED
|
@@ -45,8 +45,8 @@ class TestPropertySet < Test::Unit::TestCase
|
|
|
45
45
|
i = 0
|
|
46
46
|
nodes.each do |id, parent|
|
|
47
47
|
# For the node id we use the expected wbs result.
|
|
48
|
-
|
|
49
|
-
|
|
48
|
+
Task.new(p, id, "Node #{id}", parent ? p.task(parent) : nil)
|
|
49
|
+
Resource.new(p, id, "Node #{id}", parent ? p.resource(parent) : nil)
|
|
50
50
|
i += 1
|
|
51
51
|
end
|
|
52
52
|
p.tasks.index
|
data/test/test_RichText.rb
CHANGED
|
@@ -15,6 +15,7 @@ $:.unshift File.join(File.dirname(__FILE__), '..', 'lib') if __FILE__ == $0
|
|
|
15
15
|
require 'test/unit'
|
|
16
16
|
require 'RichText'
|
|
17
17
|
require 'RichTextFunctionHandler'
|
|
18
|
+
require 'MessageHandler'
|
|
18
19
|
|
|
19
20
|
class RTFDummy < TaskJuggler::RichTextFunctionHandler
|
|
20
21
|
|
|
@@ -23,11 +24,7 @@ require 'RichTextFunctionHandler'
|
|
|
23
24
|
@blockFunction = true
|
|
24
25
|
end
|
|
25
26
|
|
|
26
|
-
|
|
27
|
-
'<blockfunc:dummy/>'
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
# Return a XMLElement tree that represents the navigator in HTML code.
|
|
27
|
+
# Return a XMLElement tree that represents the blockfunc in HTML code.
|
|
31
28
|
def to_html(args)
|
|
32
29
|
TaskJuggler::XMLElement.new('blockfunc:dummy', args, true)
|
|
33
30
|
end
|
|
@@ -44,21 +41,11 @@ class TestRichText < Test::Unit::TestCase
|
|
|
44
41
|
|
|
45
42
|
def test_empty
|
|
46
43
|
inp = ''
|
|
44
|
+
tagged = "<div></div>\n"
|
|
45
|
+
str = "\n"
|
|
46
|
+
html = "<div></div>\n"
|
|
47
47
|
|
|
48
|
-
|
|
49
|
-
out = newRichText(inp).to_tagged + "\n"
|
|
50
|
-
ref = "<div></div>\n"
|
|
51
|
-
assert_equal(ref, out)
|
|
52
|
-
|
|
53
|
-
# Check ASCII output.
|
|
54
|
-
out = newRichText(inp).to_s
|
|
55
|
-
ref = ''
|
|
56
|
-
assert_equal(ref, out)
|
|
57
|
-
|
|
58
|
-
# Check HTML output.
|
|
59
|
-
out = newRichText(inp).to_html.to_s + "\n"
|
|
60
|
-
ref = "<div></div>\n"
|
|
61
|
-
assert_equal(ref, out)
|
|
48
|
+
assert_outputs(inp, tagged, str, html)
|
|
62
49
|
|
|
63
50
|
assert_equal(true, newRichText(inp).empty?)
|
|
64
51
|
assert_equal(true, newRichText("\n").empty?)
|
|
@@ -68,40 +55,20 @@ class TestRichText < Test::Unit::TestCase
|
|
|
68
55
|
|
|
69
56
|
def test_one_word
|
|
70
57
|
inp = "foo"
|
|
58
|
+
tagged = "<div>[foo]</div>\n"
|
|
59
|
+
str = "foo\n"
|
|
60
|
+
html= "<div>foo</div>\n"
|
|
71
61
|
|
|
72
|
-
|
|
73
|
-
out = newRichText(inp).to_tagged + "\n"
|
|
74
|
-
ref = "<div>[foo]</div>\n"
|
|
75
|
-
assert_equal(ref, out)
|
|
76
|
-
|
|
77
|
-
# Check ASCII output.
|
|
78
|
-
out = newRichText(inp).to_s
|
|
79
|
-
ref = 'foo'
|
|
80
|
-
assert_equal(ref, out)
|
|
81
|
-
|
|
82
|
-
# Check HTML output.
|
|
83
|
-
out = newRichText(inp).to_html.to_s + "\n"
|
|
84
|
-
ref = "<div>foo</div>\n"
|
|
85
|
-
assert_equal(ref, out)
|
|
62
|
+
assert_outputs(inp, tagged, str, html)
|
|
86
63
|
end
|
|
87
64
|
|
|
88
65
|
def test_two_words
|
|
89
66
|
inp = "foo bar"
|
|
67
|
+
tagged = "<div>[foo] [bar]</div>\n"
|
|
68
|
+
str = "foo bar\n"
|
|
69
|
+
html = "<div>foo bar</div>\n"
|
|
90
70
|
|
|
91
|
-
|
|
92
|
-
out = newRichText(inp).to_tagged + "\n"
|
|
93
|
-
ref = "<div>[foo] [bar]</div>\n"
|
|
94
|
-
assert_equal(ref, out)
|
|
95
|
-
|
|
96
|
-
# Check ASCII output.
|
|
97
|
-
out = newRichText(inp).to_s
|
|
98
|
-
ref = 'foo bar'
|
|
99
|
-
assert_equal(ref, out)
|
|
100
|
-
|
|
101
|
-
# Check HTML output.
|
|
102
|
-
out = newRichText(inp).to_html.to_s + "\n"
|
|
103
|
-
ref = "<div>foo bar</div>\n"
|
|
104
|
-
assert_equal(ref, out)
|
|
71
|
+
assert_outputs(inp, tagged, str, html)
|
|
105
72
|
end
|
|
106
73
|
|
|
107
74
|
def test_paragraph
|
|
@@ -117,10 +84,7 @@ I hope this example is
|
|
|
117
84
|
clear
|
|
118
85
|
now.
|
|
119
86
|
EOT
|
|
120
|
-
|
|
121
|
-
# Check tagged output.
|
|
122
|
-
out = newRichText(inp).to_tagged + "\n"
|
|
123
|
-
ref = <<'EOT'
|
|
87
|
+
tagged = <<'EOT'
|
|
124
88
|
<div><p>[A] [paragraph] [may] [span] [multiple] [lines] [of] [text.] [Single] [line] [breaks] [are] [ignored.]</p>
|
|
125
89
|
|
|
126
90
|
<p>[Only] [2] [successive] [newlines] [end] [the] [paragraph.]</p>
|
|
@@ -129,30 +93,21 @@ EOT
|
|
|
129
93
|
|
|
130
94
|
</div>
|
|
131
95
|
EOT
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
# Check ASCII output.
|
|
135
|
-
out = newRichText(inp).to_s
|
|
136
|
-
ref = <<'EOT'
|
|
96
|
+
str = <<'EOT'
|
|
137
97
|
A paragraph may span multiple lines of text. Single line breaks are ignored.
|
|
138
98
|
|
|
139
99
|
Only 2 successive newlines end the paragraph.
|
|
140
100
|
|
|
141
101
|
I hope this example is clear now.
|
|
142
|
-
|
|
143
102
|
EOT
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
# Check HTML output.
|
|
147
|
-
out = newRichText(inp).to_html.to_s + "\n"
|
|
148
|
-
ref = <<'EOT'
|
|
103
|
+
html = <<'EOT'
|
|
149
104
|
<div>
|
|
150
105
|
<p>A paragraph may span multiple lines of text. Single line breaks are ignored.</p>
|
|
151
106
|
<p>Only 2 successive newlines end the paragraph.</p>
|
|
152
107
|
<p>I hope this example is clear now.</p>
|
|
153
108
|
</div>
|
|
154
109
|
EOT
|
|
155
|
-
|
|
110
|
+
assert_outputs(inp, tagged, str, html)
|
|
156
111
|
end
|
|
157
112
|
|
|
158
113
|
def test_hline
|
|
@@ -168,10 +123,7 @@ Line above and below
|
|
|
168
123
|
Another bit of text.
|
|
169
124
|
----
|
|
170
125
|
EOT
|
|
171
|
-
|
|
172
|
-
# Check tagged output.
|
|
173
|
-
out = newRichText(inp).to_tagged + "\n"
|
|
174
|
-
ref = <<'EOT'
|
|
126
|
+
tagged = <<'EOT'
|
|
175
127
|
<div><hr>----</hr>
|
|
176
128
|
<p>[Line] [above] [and] [below]</p>
|
|
177
129
|
|
|
@@ -186,13 +138,7 @@ EOT
|
|
|
186
138
|
<hr>----</hr>
|
|
187
139
|
</div>
|
|
188
140
|
EOT
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
# Check ASCII output.
|
|
192
|
-
rt = newRichText(inp)
|
|
193
|
-
rt.lineWidth = 60
|
|
194
|
-
out = rt.to_s
|
|
195
|
-
ref = <<'EOT'
|
|
141
|
+
str = <<'EOT'
|
|
196
142
|
------------------------------------------------------------
|
|
197
143
|
Line above and below
|
|
198
144
|
|
|
@@ -206,11 +152,7 @@ Another bit of text.
|
|
|
206
152
|
|
|
207
153
|
------------------------------------------------------------
|
|
208
154
|
EOT
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
# Check HTML output.
|
|
212
|
-
out = newRichText(inp).to_html.to_s + "\n"
|
|
213
|
-
ref = <<'EOT'
|
|
155
|
+
html = <<'EOT'
|
|
214
156
|
<div>
|
|
215
157
|
<hr/>
|
|
216
158
|
<p>Line above and below</p>
|
|
@@ -223,85 +165,49 @@ EOT
|
|
|
223
165
|
<hr/>
|
|
224
166
|
</div>
|
|
225
167
|
EOT
|
|
226
|
-
|
|
168
|
+
assert_outputs(inp, tagged, str, html, 60)
|
|
227
169
|
end
|
|
228
170
|
|
|
229
171
|
def test_italic
|
|
230
172
|
inp = "This is a text with ''italic words '' in it."
|
|
231
|
-
|
|
232
|
-
# Check tagged output.
|
|
233
|
-
out = newRichText(inp).to_tagged + "\n"
|
|
234
|
-
ref = <<'EOT'
|
|
173
|
+
tagged = <<'EOT'
|
|
235
174
|
<div>[This] [is] [a] [text] [with] <i>[italic] [words]</i> [in] [it.]</div>
|
|
236
175
|
EOT
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
# Check ASCII output.
|
|
240
|
-
rt = newRichText(inp)
|
|
241
|
-
out = rt.to_s + "\n"
|
|
242
|
-
ref = <<'EOT'
|
|
176
|
+
str = <<'EOT'
|
|
243
177
|
This is a text with italic words in it.
|
|
244
178
|
EOT
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
# Check HTML output.
|
|
248
|
-
out = newRichText(inp).to_html.to_s + "\n"
|
|
249
|
-
ref = <<'EOT'
|
|
179
|
+
html = <<'EOT'
|
|
250
180
|
<div>This is a text with <i>italic words</i> in it.</div>
|
|
251
181
|
EOT
|
|
252
|
-
|
|
182
|
+
assert_outputs(inp, tagged, str, html)
|
|
253
183
|
end
|
|
254
184
|
|
|
255
185
|
def test_bold
|
|
256
186
|
inp = "This is a text with ''' bold words''' in it."
|
|
257
|
-
|
|
258
|
-
# Check tagged output.
|
|
259
|
-
out = newRichText(inp).to_tagged + "\n"
|
|
260
|
-
ref = <<'EOT'
|
|
187
|
+
tagged = <<'EOT'
|
|
261
188
|
<div>[This] [is] [a] [text] [with] <b>[bold] [words]</b> [in] [it.]</div>
|
|
262
189
|
EOT
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
# Check ASCII output.
|
|
266
|
-
rt = newRichText(inp)
|
|
267
|
-
out = rt.to_s + "\n"
|
|
268
|
-
ref = <<'EOT'
|
|
190
|
+
str = <<'EOT'
|
|
269
191
|
This is a text with bold words in it.
|
|
270
192
|
EOT
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
# Check HTML output.
|
|
274
|
-
out = newRichText(inp).to_html.to_s + "\n"
|
|
275
|
-
ref = <<'EOT'
|
|
193
|
+
html = <<'EOT'
|
|
276
194
|
<div>This is a text with <b>bold words</b> in it.</div>
|
|
277
195
|
EOT
|
|
278
|
-
|
|
196
|
+
assert_outputs(inp, tagged, str, html)
|
|
279
197
|
end
|
|
280
198
|
|
|
281
199
|
def test_code
|
|
282
200
|
inp = "This is a text with ''''monospaced words'''' in it."
|
|
283
|
-
|
|
284
|
-
# Check tagged output.
|
|
285
|
-
out = newRichText(inp).to_tagged + "\n"
|
|
286
|
-
ref = <<'EOT'
|
|
201
|
+
tagged = <<'EOT'
|
|
287
202
|
<div>[This] [is] [a] [text] [with] <code>[monospaced] [words]</code> [in] [it.]</div>
|
|
288
203
|
EOT
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
# Check ASCII output.
|
|
292
|
-
rt = newRichText(inp)
|
|
293
|
-
out = rt.to_s + "\n"
|
|
294
|
-
ref = <<'EOT'
|
|
204
|
+
str = <<'EOT'
|
|
295
205
|
This is a text with monospaced words in it.
|
|
296
206
|
EOT
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
# Check HTML output.
|
|
300
|
-
out = newRichText(inp).to_html.to_s + "\n"
|
|
301
|
-
ref = <<'EOT'
|
|
207
|
+
html = <<'EOT'
|
|
302
208
|
<div>This is a text with <code>monospaced words</code> in it.</div>
|
|
303
209
|
EOT
|
|
304
|
-
|
|
210
|
+
assert_outputs(inp, tagged, str, html)
|
|
305
211
|
end
|
|
306
212
|
|
|
307
213
|
def test_boldAndItalic
|
|
@@ -309,28 +215,16 @@ EOT
|
|
|
309
215
|
This is a text with some '''bold words''', some ''italic'' words and some
|
|
310
216
|
'''''bold and italic''''' words in it.
|
|
311
217
|
EOT
|
|
312
|
-
|
|
313
|
-
# Check tagged output.
|
|
314
|
-
out = newRichText(inp).to_tagged + "\n"
|
|
315
|
-
ref = <<'EOT'
|
|
218
|
+
tagged = <<'EOT'
|
|
316
219
|
<div>[This] [is] [a] [text] [with] [some] <b>[bold] [words]</b>[,] [some] <i>[italic]</i> [words] [and] [some] <b><i>[bold] [and] [italic]</i></b> [words] [in] [it.]</div>
|
|
317
220
|
EOT
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
# Check ASCII output.
|
|
321
|
-
rt = newRichText(inp)
|
|
322
|
-
out = rt.to_s + "\n"
|
|
323
|
-
ref = <<'EOT'
|
|
221
|
+
str = <<'EOT'
|
|
324
222
|
This is a text with some bold words, some italic words and some bold and italic words in it.
|
|
325
223
|
EOT
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
# Check HTML output.
|
|
329
|
-
out = newRichText(inp).to_html.to_s + "\n"
|
|
330
|
-
ref = <<'EOT'
|
|
224
|
+
html = <<'EOT'
|
|
331
225
|
<div>This is a text with some <b>bold words</b>, some <i>italic</i> words and some <b><i>bold and italic</i></b> words in it.</div>
|
|
332
226
|
EOT
|
|
333
|
-
|
|
227
|
+
assert_outputs(inp, tagged, str, html)
|
|
334
228
|
end
|
|
335
229
|
|
|
336
230
|
def test_ref
|
|
@@ -338,28 +232,16 @@ EOT
|
|
|
338
232
|
This is a reference [[item]].
|
|
339
233
|
For more info see [[manual|the user manual]].
|
|
340
234
|
EOT
|
|
341
|
-
|
|
342
|
-
# Check tagged output.
|
|
343
|
-
out = newRichText(inp).to_tagged + "\n"
|
|
344
|
-
ref = <<'EOT'
|
|
235
|
+
tagged = <<'EOT'
|
|
345
236
|
<div>[This] [is] [a] [reference] <ref data="item">[item]</ref>[.] [For] [more] [info] [see] <ref data="manual">[the user manual]</ref>[.]</div>
|
|
346
237
|
EOT
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
# Check ASCII output.
|
|
350
|
-
rt = newRichText(inp)
|
|
351
|
-
out = rt.to_s + "\n"
|
|
352
|
-
ref = <<'EOT'
|
|
238
|
+
str = <<'EOT'
|
|
353
239
|
This is a reference item. For more info see the user manual.
|
|
354
240
|
EOT
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
# Check HTML output.
|
|
358
|
-
out = newRichText(inp).to_html.to_s + "\n"
|
|
359
|
-
ref = <<'EOT'
|
|
241
|
+
html = <<'EOT'
|
|
360
242
|
<div>This is a reference <a href="item.html">item</a>. For more info see <a href="manual.html">the user manual</a>.</div>
|
|
361
243
|
EOT
|
|
362
|
-
|
|
244
|
+
assert_outputs(inp, tagged, str, html)
|
|
363
245
|
end
|
|
364
246
|
|
|
365
247
|
def test_img
|
|
@@ -367,28 +249,16 @@ EOT
|
|
|
367
249
|
This is an [[File:image.jpg]].
|
|
368
250
|
For more info see [[File:icon.png|alt=this image]].
|
|
369
251
|
EOT
|
|
370
|
-
|
|
371
|
-
# Check tagged output.
|
|
372
|
-
out = newRichText(inp).to_tagged + "\n"
|
|
373
|
-
ref = <<'EOT'
|
|
252
|
+
tagged = <<'EOT'
|
|
374
253
|
<div>[This] [is] [an] <img file="image.jpg"/>[.] [For] [more] [info] [see] <img file="icon.png"/>[.]</div>
|
|
375
254
|
EOT
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
# Check ASCII output.
|
|
379
|
-
rt = newRichText(inp)
|
|
380
|
-
out = rt.to_s + "\n"
|
|
381
|
-
ref = <<'EOT'
|
|
255
|
+
str = <<'EOT'
|
|
382
256
|
This is an . For more info see this image.
|
|
383
257
|
EOT
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
# Check HTML output.
|
|
387
|
-
out = newRichText(inp).to_html.to_s + "\n"
|
|
388
|
-
ref = <<'EOT'
|
|
389
|
-
<div>This is an <img src="image.jpg"></img>. For more info see <img alt="this image" src="icon.png"></img>.</div>
|
|
258
|
+
html = <<'EOT'
|
|
259
|
+
<div>This is an <object data="image.jpg" type="image/jpg"></object>. For more info see <object alt="this image" data="icon.png" type="image/png"></object>.</div>
|
|
390
260
|
EOT
|
|
391
|
-
|
|
261
|
+
assert_outputs(inp, tagged, str, html)
|
|
392
262
|
end
|
|
393
263
|
|
|
394
264
|
def test_href
|
|
@@ -396,28 +266,33 @@ EOT
|
|
|
396
266
|
This is a reference [http://www.taskjuggler.org].
|
|
397
267
|
For more info see [http://www.taskjuggler.org the TaskJuggler site].
|
|
398
268
|
EOT
|
|
399
|
-
|
|
400
|
-
# Check tagged output.
|
|
401
|
-
out = newRichText(inp).to_tagged + "\n"
|
|
402
|
-
ref = <<'EOT'
|
|
269
|
+
tagged = <<'EOT'
|
|
403
270
|
<div>[This] [is] [a] [reference] <a href="http://www.taskjuggler.org" target="_blank">[http://www.taskjuggler.org]</a>[.] [For] [more] [info] [see] <a href="http://www.taskjuggler.org" target="_blank">[the] [TaskJuggler] [site]</a>[.]</div>
|
|
404
271
|
EOT
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
# Check ASCII output.
|
|
408
|
-
rt = newRichText(inp)
|
|
409
|
-
out = rt.to_s + "\n"
|
|
410
|
-
ref = <<'EOT'
|
|
272
|
+
str = <<'EOT'
|
|
411
273
|
This is a reference http://www.taskjuggler.org. For more info see the TaskJuggler site.
|
|
412
274
|
EOT
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
# Check HTML output.
|
|
416
|
-
out = newRichText(inp).to_html.to_s + "\n"
|
|
417
|
-
ref = <<'EOT'
|
|
275
|
+
html = <<'EOT'
|
|
418
276
|
<div>This is a reference <a href="http://www.taskjuggler.org" target="_blank">http://www.taskjuggler.org</a>. For more info see <a href="http://www.taskjuggler.org" target="_blank">the TaskJuggler site</a>.</div>
|
|
419
277
|
EOT
|
|
420
|
-
|
|
278
|
+
assert_outputs(inp, tagged, str, html)
|
|
279
|
+
end
|
|
280
|
+
|
|
281
|
+
def test_hrefWithWrappedLines
|
|
282
|
+
inp = <<'EOT'
|
|
283
|
+
A [http://www.taskjuggler.org
|
|
284
|
+
multi line] reference.
|
|
285
|
+
EOT
|
|
286
|
+
tagged = <<'EOT'
|
|
287
|
+
<div>[A] <a href="http://www.taskjuggler.org" target="_blank">[multi] [line]</a> [reference.]</div>
|
|
288
|
+
EOT
|
|
289
|
+
str = <<'EOT'
|
|
290
|
+
A multi line reference.
|
|
291
|
+
EOT
|
|
292
|
+
html = <<'EOT'
|
|
293
|
+
<div>A <a href="http://www.taskjuggler.org" target="_blank">multi line</a> reference.</div>
|
|
294
|
+
EOT
|
|
295
|
+
assert_outputs(inp, tagged, str, html)
|
|
421
296
|
end
|
|
422
297
|
|
|
423
298
|
def test_headline
|
|
@@ -428,10 +303,7 @@ EOT
|
|
|
428
303
|
==== This is level 3 ====
|
|
429
304
|
===== This is level 4 =====
|
|
430
305
|
EOT
|
|
431
|
-
|
|
432
|
-
# Check tagged output.
|
|
433
|
-
out = newRichText(inp).to_tagged + "\n"
|
|
434
|
-
ref = <<'EOT'
|
|
306
|
+
tagged = <<'EOT'
|
|
435
307
|
<div><p>[=] [This] [is] [not] [a] [headline]</p>
|
|
436
308
|
|
|
437
309
|
<h1>1 [This] [is] [level] [1]</h1>
|
|
@@ -444,12 +316,7 @@ EOT
|
|
|
444
316
|
|
|
445
317
|
</div>
|
|
446
318
|
EOT
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
# Check ASCII output.
|
|
450
|
-
rt = newRichText(inp)
|
|
451
|
-
out = rt.to_s
|
|
452
|
-
ref = <<'EOT'
|
|
319
|
+
str = <<'EOT'
|
|
453
320
|
= This is not a headline
|
|
454
321
|
|
|
455
322
|
1) This is level 1
|
|
@@ -459,13 +326,8 @@ EOT
|
|
|
459
326
|
1.1.1) This is level 3
|
|
460
327
|
|
|
461
328
|
1.1.1.1) This is level 4
|
|
462
|
-
|
|
463
329
|
EOT
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
# Check HTML output.
|
|
467
|
-
out = newRichText(inp).to_html.to_s + "\n"
|
|
468
|
-
ref = <<'EOT'
|
|
330
|
+
html = <<'EOT'
|
|
469
331
|
<div>
|
|
470
332
|
<p>= This is not a headline</p>
|
|
471
333
|
<h1 id="This_is_level_1">1 This is level 1</h1>
|
|
@@ -474,7 +336,7 @@ EOT
|
|
|
474
336
|
<h4 id="This_is_level_4">1.1.1.1 This is level 4</h4>
|
|
475
337
|
</div>
|
|
476
338
|
EOT
|
|
477
|
-
|
|
339
|
+
assert_outputs(inp, tagged, str, html)
|
|
478
340
|
end
|
|
479
341
|
|
|
480
342
|
def test_bullet
|
|
@@ -484,22 +346,14 @@ EOT
|
|
|
484
346
|
*** This is a level 3 bullet item
|
|
485
347
|
**** This is a level 4 bullet item
|
|
486
348
|
EOT
|
|
487
|
-
|
|
488
|
-
# Check tagged output.
|
|
489
|
-
out = newRichText(inp).to_tagged + "\n"
|
|
490
|
-
ref = <<'EOT'
|
|
349
|
+
tagged = <<'EOT'
|
|
491
350
|
<div><ul><li>* [This] [is] [a] [bullet] [item]</li>
|
|
492
351
|
<ul><li> * [This] [is] [a] [level] [2] [bullet] [item]</li>
|
|
493
352
|
<ul><li> * [This] [is] [a] [level] [3] [bullet] [item]</li>
|
|
494
353
|
<ul><li> * [This] [is] [a] [level] [4] [bullet] [item]</li>
|
|
495
354
|
</ul></ul></ul></ul></div>
|
|
496
355
|
EOT
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
# Check ASCII output.
|
|
500
|
-
rt = newRichText(inp)
|
|
501
|
-
out = rt.to_s + "\n"
|
|
502
|
-
ref = <<'EOT'
|
|
356
|
+
str = <<'EOT'
|
|
503
357
|
* This is a bullet item
|
|
504
358
|
|
|
505
359
|
* This is a level 2 bullet item
|
|
@@ -507,14 +361,8 @@ EOT
|
|
|
507
361
|
* This is a level 3 bullet item
|
|
508
362
|
|
|
509
363
|
* This is a level 4 bullet item
|
|
510
|
-
|
|
511
|
-
|
|
512
364
|
EOT
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
# Check HTML output.
|
|
516
|
-
out = newRichText(inp).to_html.to_s + "\n"
|
|
517
|
-
ref = <<'EOT'
|
|
365
|
+
html = <<'EOT'
|
|
518
366
|
<div><ul>
|
|
519
367
|
<li>This is a bullet item</li>
|
|
520
368
|
<ul>
|
|
@@ -526,7 +374,7 @@ EOT
|
|
|
526
374
|
</ul>
|
|
527
375
|
</ul></div>
|
|
528
376
|
EOT
|
|
529
|
-
|
|
377
|
+
assert_outputs(inp, tagged, str, html)
|
|
530
378
|
end
|
|
531
379
|
|
|
532
380
|
def test_number
|
|
@@ -557,10 +405,7 @@ Normal text.
|
|
|
557
405
|
|
|
558
406
|
# This is item 1
|
|
559
407
|
EOT
|
|
560
|
-
|
|
561
|
-
# Check tagged output.
|
|
562
|
-
out = newRichText(inp).to_tagged + "\n"
|
|
563
|
-
ref = <<'EOT'
|
|
408
|
+
tagged = <<'EOT'
|
|
564
409
|
<div><ol><li>1 [This] [is] [item] [1]</li>
|
|
565
410
|
<li>2 [This] [is] [item] [2]</li>
|
|
566
411
|
<li>3 [This] [is] [item] [3]</li>
|
|
@@ -586,12 +431,7 @@ EOT
|
|
|
586
431
|
<ol><li>1 [This] [is] [item] [1]</li>
|
|
587
432
|
</ol></div>
|
|
588
433
|
EOT
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
# Check ASCII output.
|
|
592
|
-
rt = newRichText(inp)
|
|
593
|
-
out = rt.to_s + "\n"
|
|
594
|
-
ref = <<'EOT'
|
|
434
|
+
str = <<'EOT'
|
|
595
435
|
1. This is item 1
|
|
596
436
|
|
|
597
437
|
2. This is item 2
|
|
@@ -633,14 +473,8 @@ Normal text.
|
|
|
633
473
|
Normal text.
|
|
634
474
|
|
|
635
475
|
1. This is item 1
|
|
636
|
-
|
|
637
|
-
|
|
638
476
|
EOT
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
# Check HTML output.
|
|
642
|
-
out = newRichText(inp).to_html.to_s + "\n"
|
|
643
|
-
ref = <<'EOT'
|
|
477
|
+
html = <<'EOT'
|
|
644
478
|
<div>
|
|
645
479
|
<ol>
|
|
646
480
|
<li>This is item 1</li>
|
|
@@ -677,7 +511,7 @@ EOT
|
|
|
677
511
|
<ol><li>This is item 1</li></ol>
|
|
678
512
|
</div>
|
|
679
513
|
EOT
|
|
680
|
-
|
|
514
|
+
assert_outputs(inp, tagged, str, html)
|
|
681
515
|
end
|
|
682
516
|
|
|
683
517
|
def test_pre
|
|
@@ -697,10 +531,7 @@ Some normal text.
|
|
|
697
531
|
|
|
698
532
|
More text.
|
|
699
533
|
EOT
|
|
700
|
-
|
|
701
|
-
# Check tagged output.
|
|
702
|
-
out = newRichText(inp).to_tagged + "\n"
|
|
703
|
-
ref = <<'EOT'
|
|
534
|
+
tagged = <<'EOT'
|
|
704
535
|
<div><pre>#include <stdin.h>
|
|
705
536
|
main() {
|
|
706
537
|
printf("Hello, world!\n")
|
|
@@ -717,12 +548,7 @@ main() {
|
|
|
717
548
|
|
|
718
549
|
</div>
|
|
719
550
|
EOT
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
# Check ASCII output.
|
|
723
|
-
rt = newRichText(inp)
|
|
724
|
-
out = rt.to_s
|
|
725
|
-
ref = <<'EOT'
|
|
551
|
+
str = <<'EOT'
|
|
726
552
|
#include <stdin.h>
|
|
727
553
|
main() {
|
|
728
554
|
printf("Hello, world!\n")
|
|
@@ -735,13 +561,8 @@ Some normal text.
|
|
|
735
561
|
Some code
|
|
736
562
|
|
|
737
563
|
More text.
|
|
738
|
-
|
|
739
564
|
EOT
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
# Check HTML output.
|
|
743
|
-
out = newRichText(inp).to_html.to_s + "\n"
|
|
744
|
-
ref = <<'EOT'
|
|
565
|
+
html = <<'EOT'
|
|
745
566
|
<div>
|
|
746
567
|
<div codesection="1"><pre codesection="1">#include <stdin.h>
|
|
747
568
|
main() {
|
|
@@ -755,7 +576,7 @@ main() {
|
|
|
755
576
|
<p>More text.</p>
|
|
756
577
|
</div>
|
|
757
578
|
EOT
|
|
758
|
-
|
|
579
|
+
assert_outputs(inp, tagged, str, html)
|
|
759
580
|
end
|
|
760
581
|
|
|
761
582
|
def test_mix
|
|
@@ -778,10 +599,7 @@ just some silly text.
|
|
|
778
599
|
|
|
779
600
|
Some more text. And we're done.
|
|
780
601
|
EOT
|
|
781
|
-
|
|
782
|
-
# Check tagged output.
|
|
783
|
-
out = newRichText(inp).to_tagged + "\n"
|
|
784
|
-
ref = <<'EOT'
|
|
602
|
+
tagged = <<'EOT'
|
|
785
603
|
<div><h1>1 [This] [the] [first] [section]</h1>
|
|
786
604
|
|
|
787
605
|
<h2>1.1 [This] [is] [the] [section] [1.1]</h2>
|
|
@@ -797,16 +615,11 @@ EOT
|
|
|
797
615
|
|
|
798
616
|
<ul><li>* [Starts] [with] [bullets]</li>
|
|
799
617
|
<li>* [...]</li>
|
|
800
|
-
</ul><p>[Some] [more] [text.] [And] [we're] [done.]</p>
|
|
618
|
+
</ul><p>[Some] [more] [text.] [And] [we]['re] [done.]</p>
|
|
801
619
|
|
|
802
620
|
</div>
|
|
803
621
|
EOT
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
# Check ASCII output.
|
|
807
|
-
rt = newRichText(inp)
|
|
808
|
-
out = rt.to_s
|
|
809
|
-
ref = <<'EOT'
|
|
622
|
+
str = <<'EOT'
|
|
810
623
|
1) This the first section
|
|
811
624
|
|
|
812
625
|
1.1) This is the section 1.1
|
|
@@ -830,13 +643,8 @@ Not sure what to put here. Maybe just some silly text.
|
|
|
830
643
|
* ...
|
|
831
644
|
|
|
832
645
|
Some more text. And we're done.
|
|
833
|
-
|
|
834
646
|
EOT
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
# Check HTML output.
|
|
838
|
-
out = newRichText(inp).to_html.to_s + "\n"
|
|
839
|
-
ref = <<'EOT'
|
|
647
|
+
html = <<'EOT'
|
|
840
648
|
<div>
|
|
841
649
|
<h1 id="This_the_first_section">1 This the first section</h1>
|
|
842
650
|
<h2 id="This_is_the_section_11">1.1 This is the section 1.1</h2>
|
|
@@ -856,7 +664,7 @@ EOT
|
|
|
856
664
|
<p>Some more text. And we're done.</p>
|
|
857
665
|
</div>
|
|
858
666
|
EOT
|
|
859
|
-
|
|
667
|
+
assert_outputs(inp, tagged, str, html)
|
|
860
668
|
end
|
|
861
669
|
|
|
862
670
|
def test_nowiki
|
|
@@ -878,10 +686,7 @@ just some silly text.
|
|
|
878
686
|
|
|
879
687
|
Some more text. And we're done.
|
|
880
688
|
EOT
|
|
881
|
-
|
|
882
|
-
# Check tagged output.
|
|
883
|
-
out = newRichText(inp).to_tagged + "\n"
|
|
884
|
-
ref = <<'EOT'
|
|
689
|
+
tagged = <<'EOT'
|
|
885
690
|
<div><h1>1 [This] [the] [first] [section]</h1>
|
|
886
691
|
|
|
887
692
|
<h2>1.1 [This] [is] [the] [section] [1.1]</h2>
|
|
@@ -898,16 +703,11 @@ EOT
|
|
|
898
703
|
|
|
899
704
|
<ul><li>* [Starts] [with] [bullets]</li>
|
|
900
705
|
<li>* [...]</li>
|
|
901
|
-
</ul><p>[Some] [more] [text.] [And] [we're] [done.]</p>
|
|
706
|
+
</ul><p>[Some] [more] [text.] [And] [we]['re] [done.]</p>
|
|
902
707
|
|
|
903
708
|
</div>
|
|
904
709
|
EOT
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
# Check ASCII output.
|
|
908
|
-
rt = newRichText(inp)
|
|
909
|
-
out = rt.to_s
|
|
910
|
-
ref = <<'EOT'
|
|
710
|
+
str = <<'EOT'
|
|
911
711
|
1) This the first section
|
|
912
712
|
|
|
913
713
|
1.1) This is the section 1.1
|
|
@@ -931,13 +731,8 @@ Not sure ''what'' to put here. Maybe just some silly text.
|
|
|
931
731
|
* ...
|
|
932
732
|
|
|
933
733
|
Some more text. And we're done.
|
|
934
|
-
|
|
935
734
|
EOT
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
# Check HTML output.
|
|
939
|
-
out = newRichText(inp).to_html.to_s + "\n"
|
|
940
|
-
ref = <<'EOT'
|
|
735
|
+
html = <<'EOT'
|
|
941
736
|
<div>
|
|
942
737
|
<h1 id="This_the_first_section">1 This the first section</h1>
|
|
943
738
|
<h2 id="This_is_the_section_11">1.1 This is the section 1.1</h2>
|
|
@@ -957,115 +752,58 @@ EOT
|
|
|
957
752
|
<p>Some more text. And we're done.</p>
|
|
958
753
|
</div>
|
|
959
754
|
EOT
|
|
960
|
-
|
|
755
|
+
assert_outputs(inp, tagged, str, html)
|
|
961
756
|
end
|
|
962
757
|
|
|
963
|
-
# Need to find out why == without spaces don't work properly.
|
|
964
|
-
# def test_many_chapters
|
|
965
|
-
# inp = <<EOT
|
|
966
|
-
#==Red:==
|
|
967
|
-
#
|
|
968
|
-
#./.
|
|
969
|
-
#
|
|
970
|
-
#==Yellow:==
|
|
971
|
-
#
|
|
972
|
-
#./.
|
|
973
|
-
#
|
|
974
|
-
#==Green:==
|
|
975
|
-
#
|
|
976
|
-
#=== Task Graphical User Interface ===
|
|
977
|
-
#(ID: AcSo.software.gui)
|
|
978
|
-
#
|
|
979
|
-
#Your headline here!
|
|
980
|
-
#
|
|
981
|
-
#EOT
|
|
982
|
-
#
|
|
983
|
-
# # Check tagged output.
|
|
984
|
-
# out = newRichText(inp).to_tagged + "\n"
|
|
985
|
-
# ref = <<EOT
|
|
986
|
-
#<div></div>
|
|
987
|
-
#EOT
|
|
988
|
-
# assert_equal(ref, out)
|
|
989
|
-
#
|
|
990
|
-
# end
|
|
991
|
-
|
|
992
758
|
def test_hline_and_link
|
|
993
759
|
inp = <<EOT
|
|
994
760
|
----
|
|
995
761
|
[[foo|bar]]
|
|
996
762
|
EOT
|
|
997
|
-
|
|
998
|
-
# Check tagged output.
|
|
999
|
-
out = newRichText(inp).to_tagged + "\n"
|
|
1000
|
-
ref = <<EOT
|
|
763
|
+
tagged = <<EOT
|
|
1001
764
|
<div><hr>----</hr>
|
|
1002
765
|
<p><ref data=\"foo\">[bar]</ref></p>
|
|
1003
766
|
|
|
1004
767
|
</div>
|
|
1005
768
|
EOT
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
# Check ASCII output.
|
|
1009
|
-
rt = newRichText(inp)
|
|
1010
|
-
rt.lineWidth = 60
|
|
1011
|
-
out = rt.to_s
|
|
1012
|
-
ref = <<EOT
|
|
769
|
+
str = <<EOT
|
|
1013
770
|
------------------------------------------------------------
|
|
1014
771
|
bar
|
|
1015
|
-
|
|
1016
772
|
EOT
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
# Check HTML output.
|
|
1020
|
-
out = newRichText(inp).to_html.to_s + "\n"
|
|
1021
|
-
ref = "<div>\n <hr/>\n <p><a href=\"foo.html\">bar</a></p>\n</div>\n"
|
|
1022
|
-
assert_equal(ref, out)
|
|
773
|
+
html = "<div>\n <hr/>\n <p><a href=\"foo.html\">bar</a></p>\n</div>\n"
|
|
774
|
+
assert_outputs(inp, tagged, str, html, 60)
|
|
1023
775
|
end
|
|
1024
776
|
|
|
1025
777
|
def test_blockFunction
|
|
1026
|
-
inp = <<EOT
|
|
778
|
+
inp = <<'EOT'
|
|
1027
779
|
<[dummy id="foo" arg1="bar"]>
|
|
1028
780
|
=== Header ===
|
|
1029
|
-
<[dummy]>
|
|
781
|
+
<[dummy arg1="A \"good\" day"]>
|
|
1030
782
|
some text
|
|
1031
783
|
<[dummy]>
|
|
1032
784
|
EOT
|
|
1033
|
-
|
|
1034
|
-
# Check tagged output.
|
|
1035
|
-
out = newRichText(inp).to_tagged + "\n"
|
|
1036
|
-
ref = <<EOT
|
|
785
|
+
tagged = <<'EOT'
|
|
1037
786
|
<div><blockfunc:dummy arg1="bar" id="foo"/><h2>0.1 [Header]</h2>
|
|
1038
787
|
|
|
1039
|
-
<blockfunc:dummy/><p>[some] [text]</p>
|
|
788
|
+
<blockfunc:dummy arg1="A \"good\" day"/><p>[some] [text]</p>
|
|
1040
789
|
|
|
1041
790
|
<blockfunc:dummy/></div>
|
|
1042
791
|
EOT
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
# Check ASCII output.
|
|
1046
|
-
rt = newRichText(inp)
|
|
1047
|
-
rt.lineWidth = 60
|
|
1048
|
-
out = rt.to_s
|
|
1049
|
-
ref = <<EOT
|
|
792
|
+
str = <<EOT
|
|
1050
793
|
0.1) Header
|
|
1051
794
|
|
|
1052
795
|
some text
|
|
1053
|
-
|
|
1054
796
|
EOT
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
# Check HTML output.
|
|
1058
|
-
out = newRichText(inp).to_html.to_s + "\n"
|
|
1059
|
-
ref = <<EOT
|
|
797
|
+
html = <<'EOT'
|
|
1060
798
|
<div>
|
|
1061
|
-
<blockfunc:dummy arg1
|
|
799
|
+
<blockfunc:dummy arg1="bar" id="foo"/>
|
|
1062
800
|
<h2 id="Header">0.1 Header</h2>
|
|
1063
|
-
<blockfunc:dummy/>
|
|
801
|
+
<blockfunc:dummy arg1="A \"good\" day"/>
|
|
1064
802
|
<p>some text</p>
|
|
1065
803
|
<blockfunc:dummy/>
|
|
1066
804
|
</div>
|
|
1067
805
|
EOT
|
|
1068
|
-
|
|
806
|
+
assert_outputs(inp, tagged, str, html, 60)
|
|
1069
807
|
end
|
|
1070
808
|
|
|
1071
809
|
def test_stringLineWrapping
|
|
@@ -1080,7 +818,7 @@ EOT
|
|
|
1080
818
|
# Check ASCII output.
|
|
1081
819
|
rt = newRichText(inp)
|
|
1082
820
|
rt.lineWidth = 60
|
|
1083
|
-
out = rt.to_s
|
|
821
|
+
out = rt.to_s + "\n"
|
|
1084
822
|
ref = <<EOT
|
|
1085
823
|
The quick brown fox jumps over the lazy dog. The quick brown
|
|
1086
824
|
fox jumps over the lazy dog. The quick brown fox jumps over
|
|
@@ -1088,7 +826,7 @@ the lazy dog. The quick brown fox jumps over the lazy dog.
|
|
|
1088
826
|
|
|
1089
827
|
------------------------------------------------------------
|
|
1090
828
|
EOT
|
|
1091
|
-
|
|
829
|
+
match(ref, out)
|
|
1092
830
|
|
|
1093
831
|
inp = <<EOT
|
|
1094
832
|
The quick brown fox jumps over the lazy dog.
|
|
@@ -1102,7 +840,7 @@ EOT
|
|
|
1102
840
|
# Check ASCII output.
|
|
1103
841
|
rt = newRichText(inp)
|
|
1104
842
|
rt.lineWidth = 60
|
|
1105
|
-
out = rt.to_s
|
|
843
|
+
out = rt.to_s + "\n"
|
|
1106
844
|
ref = <<EOT
|
|
1107
845
|
The quick brown fox jumps over the lazy dog. The quick brown
|
|
1108
846
|
fox jumps over the lazy dog. The quick brown fox jumps over
|
|
@@ -1111,7 +849,7 @@ The quick brown fox jumps over the lazy dog.
|
|
|
1111
849
|
|
|
1112
850
|
------------------------------------------------------------
|
|
1113
851
|
EOT
|
|
1114
|
-
|
|
852
|
+
match(ref, out)
|
|
1115
853
|
|
|
1116
854
|
inp = <<EOT
|
|
1117
855
|
The_quick_brown_fox_jumps_over_the_lazy_dog.
|
|
@@ -1123,7 +861,7 @@ EOT
|
|
|
1123
861
|
# Check ASCII output.
|
|
1124
862
|
rt = newRichText(inp)
|
|
1125
863
|
rt.lineWidth = 60
|
|
1126
|
-
out = rt.to_s
|
|
864
|
+
out = rt.to_s + "\n"
|
|
1127
865
|
ref = <<EOT
|
|
1128
866
|
The_quick_brown_fox_jumps_over_the_lazy_dog.
|
|
1129
867
|
The_quick_brown_fox_jumps_over_the_lazy_dog.
|
|
@@ -1131,7 +869,7 @@ The_quick_brown_fox_jumps_over_the_lazy_dog.
|
|
|
1131
869
|
|
|
1132
870
|
------------------------------------------------------------
|
|
1133
871
|
EOT
|
|
1134
|
-
|
|
872
|
+
match(ref, out)
|
|
1135
873
|
|
|
1136
874
|
inp = <<EOT
|
|
1137
875
|
The_quick_brown_fox_jumps_over_the_lazy_dog.The_quick_brown_fox_jumps_over_the_lazy_dog.The_quick_brown_fox_jumps_over_the_lazy_dog.
|
|
@@ -1141,13 +879,13 @@ EOT
|
|
|
1141
879
|
# Check ASCII output.
|
|
1142
880
|
rt = newRichText(inp)
|
|
1143
881
|
rt.lineWidth = 60
|
|
1144
|
-
out = rt.to_s
|
|
882
|
+
out = rt.to_s + "\n"
|
|
1145
883
|
ref = <<EOT
|
|
1146
884
|
The_quick_brown_fox_jumps_over_the_lazy_dog.The_quick_brown_fox_jumps_over_the_lazy_dog.The_quick_brown_fox_jumps_over_the_lazy_dog.
|
|
1147
885
|
|
|
1148
886
|
------------------------------------------------------------
|
|
1149
887
|
EOT
|
|
1150
|
-
|
|
888
|
+
match(ref, out)
|
|
1151
889
|
end
|
|
1152
890
|
|
|
1153
891
|
def test_bulletWrapping
|
|
@@ -1162,7 +900,7 @@ EOT
|
|
|
1162
900
|
# Check ASCII output.
|
|
1163
901
|
rt = newRichText(inp)
|
|
1164
902
|
rt.lineWidth = 22
|
|
1165
|
-
out = rt.to_s
|
|
903
|
+
out = rt.to_s + "\n"
|
|
1166
904
|
ref = <<EOT
|
|
1167
905
|
* The quick brown fox
|
|
1168
906
|
jumps over the lazy
|
|
@@ -1182,19 +920,72 @@ EOT
|
|
|
1182
920
|
|
|
1183
921
|
----------------------
|
|
1184
922
|
EOT
|
|
1185
|
-
|
|
923
|
+
match(ref, out)
|
|
1186
924
|
end
|
|
1187
925
|
|
|
1188
926
|
def newRichText(text)
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
rescue TaskJuggler::RichTextException => msg
|
|
1194
|
-
$stderr.puts "Error in RichText Line #{msg.lineNo}: #{msg.text}\n" +
|
|
1195
|
-
"#{msg.line}"
|
|
1196
|
-
end
|
|
927
|
+
mh = TaskJuggler::MessageHandler.new(true)
|
|
928
|
+
rText = TaskJuggler::RichText.new(text, [ RTFDummy.new ], mh)
|
|
929
|
+
assert(rti = rText.generateIntermediateFormat, mh.to_s)
|
|
930
|
+
rti.linkTarget = '_blank'
|
|
1197
931
|
rti
|
|
1198
932
|
end
|
|
1199
933
|
|
|
934
|
+
def assert_outputs(inp, tagged, str, html, width = 80)
|
|
935
|
+
# Check tagged output.
|
|
936
|
+
assert_tagged(inp, tagged)
|
|
937
|
+
|
|
938
|
+
# Check ASCII output.
|
|
939
|
+
assert_str(inp, str, width)
|
|
940
|
+
|
|
941
|
+
# Check HTML output.
|
|
942
|
+
assert_html(inp, html, width)
|
|
943
|
+
end
|
|
944
|
+
|
|
945
|
+
def assert_tagged(inp, ref)
|
|
946
|
+
out = newRichText(inp).to_tagged + "\n"
|
|
947
|
+
match(ref, out)
|
|
948
|
+
end
|
|
949
|
+
|
|
950
|
+
def assert_str(inp, ref, width)
|
|
951
|
+
rt = newRichText(inp)
|
|
952
|
+
rt.lineWidth = width
|
|
953
|
+
out = rt.to_s + "\n"
|
|
954
|
+
match(ref, out)
|
|
955
|
+
end
|
|
956
|
+
|
|
957
|
+
def assert_html(inp, ref, width)
|
|
958
|
+
rt = newRichText(inp)
|
|
959
|
+
rt.lineWidth = width
|
|
960
|
+
out = rt.to_html.to_s + "\n"
|
|
961
|
+
match(ref, out)
|
|
962
|
+
end
|
|
963
|
+
|
|
964
|
+
def match(ref, out)
|
|
965
|
+
if ref != out
|
|
966
|
+
common = ''
|
|
967
|
+
refDiff = ''
|
|
968
|
+
outDiff = ''
|
|
969
|
+
diffI = nil
|
|
970
|
+
len = ref.length < out.length ? ref.length : out.length
|
|
971
|
+
len.times do |i|
|
|
972
|
+
if ref[i] == out[i]
|
|
973
|
+
common << ref[i]
|
|
974
|
+
else
|
|
975
|
+
diffI = i
|
|
976
|
+
break
|
|
977
|
+
end
|
|
978
|
+
end
|
|
979
|
+
refDiff = ref[diffI,20] + '...' if diffI && ref.length > diffI
|
|
980
|
+
outDiff = out[diffI,20] + '...' if diffI && out.length > diffI
|
|
981
|
+
end
|
|
982
|
+
|
|
983
|
+
assert_equal(ref, out, "=== Maching part: #{'=' * 40}\n" +
|
|
984
|
+
"#{common}\n" +
|
|
985
|
+
"=== ref diff #{'=' * 44}\n" +
|
|
986
|
+
"#{refDiff}\n" +
|
|
987
|
+
"=== out diff #{'=' * 44}\n" +
|
|
988
|
+
"#{outDiff}\n")
|
|
989
|
+
end
|
|
990
|
+
|
|
1200
991
|
end
|