taskjuggler 0.0.8 → 0.0.9
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 +1144 -2047
- data/README +1 -1
- data/Rakefile +6 -6
- data/data/css/tjmanual.css +20 -0
- data/data/css/tjreport.css +7 -6
- data/doc/AppConfig.html +136 -130
- data/doc/Arguments.html +46 -40
- data/doc/CHANGELOG.html +1162 -2057
- data/doc/COPYING.html +8 -2
- data/doc/Object.html +205 -199
- data/doc/README.html +9 -3
- data/doc/RuntimeConfig.html +75 -69
- data/doc/String.html +69 -63
- data/doc/TaskJuggler.html +350 -291
- data/doc/TaskJuggler/Account.html +26 -20
- data/doc/TaskJuggler/AccountAttribute.html +24 -18
- data/doc/TaskJuggler/AccountScenario.html +24 -18
- data/doc/TaskJuggler/Allocation.html +74 -68
- data/doc/TaskJuggler/AllocationAttribute.html +54 -48
- data/doc/TaskJuggler/AttributeBase.html +172 -93
- data/doc/TaskJuggler/AttributeDefinition.html +22 -16
- data/doc/TaskJuggler/AttributeOverwrite.html +586 -0
- data/doc/TaskJuggler/BatchProcessor.html +263 -257
- data/doc/TaskJuggler/Booking.html +44 -38
- data/doc/TaskJuggler/BookingListAttribute.html +25 -21
- data/doc/TaskJuggler/BooleanAttribute.html +24 -18
- data/doc/TaskJuggler/CSVFile.html +193 -187
- data/doc/TaskJuggler/CellSettingPattern.html +13 -7
- data/doc/TaskJuggler/CellSettingPatternList.html +25 -19
- data/doc/TaskJuggler/Charge.html +49 -43
- data/doc/TaskJuggler/ChargeListAttribute.html +21 -15
- data/doc/TaskJuggler/ChargeSet.html +94 -88
- data/doc/TaskJuggler/ChargeSetListAttribute.html +29 -25
- data/doc/TaskJuggler/CollisionDetector.html +142 -136
- data/doc/TaskJuggler/ColumnListAttribute.html +21 -17
- data/doc/TaskJuggler/ColumnTable.html +50 -44
- data/doc/TaskJuggler/Daemon.html +71 -50
- data/doc/TaskJuggler/DataCache.html +110 -58
- data/doc/TaskJuggler/DataCacheEntry.html +22 -16
- data/doc/TaskJuggler/DateAttribute.html +24 -18
- data/doc/TaskJuggler/DefinitionListAttribute.html +12 -6
- data/doc/TaskJuggler/DependencyListAttribute.html +29 -25
- data/doc/TaskJuggler/DurationAttribute.html +25 -19
- data/doc/TaskJuggler/FileList.html +25 -19
- data/doc/TaskJuggler/FileRecord.html +17 -11
- data/doc/TaskJuggler/FixnumAttribute.html +16 -10
- data/doc/TaskJuggler/FlagListAttribute.html +25 -21
- data/doc/TaskJuggler/FloatAttribute.html +20 -14
- data/doc/TaskJuggler/FormatListAttribute.html +17 -11
- data/doc/TaskJuggler/GanttChart.html +242 -236
- data/doc/TaskJuggler/GanttContainer.html +71 -67
- data/doc/TaskJuggler/GanttHeader.html +113 -107
- data/doc/TaskJuggler/GanttHeaderScaleItem.html +26 -20
- data/doc/TaskJuggler/GanttLine.html +217 -210
- data/doc/TaskJuggler/GanttLoadStack.html +89 -83
- data/doc/TaskJuggler/GanttMilestone.html +11 -6
- data/doc/TaskJuggler/GanttRouter.html +194 -186
- data/doc/TaskJuggler/GanttTaskBar.html +41 -34
- data/doc/TaskJuggler/HTMLDocument.html +52 -46
- data/doc/TaskJuggler/HTMLGraphics.html +58 -52
- data/doc/TaskJuggler/Interval.html +90 -84
- data/doc/TaskJuggler/IntervalList.html +777 -0
- data/doc/TaskJuggler/IntervalListAttribute.html +29 -25
- data/doc/TaskJuggler/JobInfo.html +36 -30
- data/doc/TaskJuggler/Journal.html +188 -177
- data/doc/TaskJuggler/JournalEntry.html +36 -30
- data/doc/TaskJuggler/JournalEntryList.html +88 -82
- data/doc/TaskJuggler/KeywordArray.html +12 -6
- data/doc/TaskJuggler/KeywordDocumentation.html +512 -503
- data/doc/TaskJuggler/Limits.html +111 -105
- data/doc/TaskJuggler/Limits/Limit.html +71 -65
- data/doc/TaskJuggler/LimitsAttribute.html +21 -15
- data/doc/TaskJuggler/ListAttributeBase.html +16 -10
- data/doc/TaskJuggler/Log.html +111 -105
- data/doc/TaskJuggler/LogFile.html +54 -48
- data/doc/TaskJuggler/LogicalAttribute.html +35 -29
- data/doc/TaskJuggler/LogicalExpression.html +32 -26
- data/doc/TaskJuggler/LogicalExpressionAttribute.html +16 -10
- data/doc/TaskJuggler/LogicalExpressionListAttribute.html +671 -0
- data/doc/TaskJuggler/LogicalFlag.html +24 -18
- data/doc/TaskJuggler/LogicalFunction.html +164 -158
- data/doc/TaskJuggler/LogicalOperation.html +138 -132
- data/doc/TaskJuggler/Macro.html +14 -8
- data/doc/TaskJuggler/MacroTable.html +42 -36
- data/doc/TaskJuggler/ManagerResponsibilities.html +19 -13
- data/doc/TaskJuggler/ManagerStatusRecord.html +23 -17
- data/doc/TaskJuggler/Message.html +56 -50
- data/doc/TaskJuggler/MessageHandler.html +73 -67
- data/doc/TaskJuggler/Navigator.html +92 -86
- data/doc/TaskJuggler/NavigatorElement.html +88 -82
- data/doc/TaskJuggler/NikuProject.html +15 -9
- data/doc/TaskJuggler/NikuReport.html +405 -370
- data/doc/TaskJuggler/NikuResource.html +13 -7
- data/doc/TaskJuggler/NodeListAttribute.html +13 -9
- data/doc/TaskJuggler/PlaceHolderCell.html +22 -16
- data/doc/TaskJuggler/ProcessIntercom.html +116 -110
- data/doc/TaskJuggler/ProcessIntercomIface.html +39 -33
- data/doc/TaskJuggler/Project.html +1064 -895
- data/doc/TaskJuggler/ProjectBroker.html +439 -366
- data/doc/TaskJuggler/ProjectBrokerIface.html +63 -53
- data/doc/TaskJuggler/ProjectFileParser.html +329 -319
- data/doc/TaskJuggler/ProjectFileScanner.html +351 -345
- data/doc/TaskJuggler/ProjectRecord.html +66 -60
- data/doc/TaskJuggler/ProjectServer.html +287 -280
- data/doc/TaskJuggler/ProjectServerIface.html +43 -37
- data/doc/TaskJuggler/PropertyAttribute.html +16 -10
- data/doc/TaskJuggler/PropertyList.html +205 -199
- data/doc/TaskJuggler/PropertySet.html +264 -296
- data/doc/TaskJuggler/PropertyTreeNode.html +455 -505
- data/doc/TaskJuggler/Query.html +309 -524
- data/doc/TaskJuggler/RTFHandlers.html +17 -11
- data/doc/TaskJuggler/RTFNavigator.html +33 -27
- data/doc/TaskJuggler/RTFQuery.html +135 -129
- data/doc/TaskJuggler/RTFReport.html +63 -57
- data/doc/TaskJuggler/RTFReportLink.html +55 -49
- data/doc/TaskJuggler/RTFWithQuerySupport.html +17 -11
- data/doc/TaskJuggler/RealFormat.html +64 -58
- data/doc/TaskJuggler/RealFormatAttribute.html +12 -6
- data/doc/TaskJuggler/ReferenceAttribute.html +35 -29
- data/doc/TaskJuggler/Report.html +294 -249
- data/doc/TaskJuggler/ReportBase.html +229 -223
- data/doc/TaskJuggler/ReportContext.html +52 -46
- data/doc/TaskJuggler/ReportServer.html +143 -137
- data/doc/TaskJuggler/ReportServerIface.html +51 -43
- data/doc/TaskJuggler/ReportServerRecord.html +36 -30
- data/doc/TaskJuggler/ReportServlet.html +167 -140
- data/doc/TaskJuggler/ReportTable.html +137 -131
- data/doc/TaskJuggler/ReportTableCell.html +332 -292
- data/doc/TaskJuggler/ReportTableColumn.html +46 -40
- data/doc/TaskJuggler/ReportTableLegend.html +43 -38
- data/doc/TaskJuggler/ReportTableLine.html +66 -60
- data/doc/TaskJuggler/Resource.html +166 -160
- data/doc/TaskJuggler/ResourceListAttribute.html +54 -32
- data/doc/TaskJuggler/ResourceListRE.html +47 -41
- data/doc/TaskJuggler/ResourceScenario.html +671 -644
- data/doc/TaskJuggler/RichText.html +51 -45
- data/doc/TaskJuggler/RichTextAttribute.html +28 -22
- data/doc/TaskJuggler/RichTextDocument.html +96 -90
- data/doc/TaskJuggler/RichTextElement.html +503 -497
- data/doc/TaskJuggler/RichTextFunctionExample.html +41 -35
- data/doc/TaskJuggler/RichTextFunctionHandler.html +19 -13
- data/doc/TaskJuggler/RichTextImage.html +14 -8
- data/doc/TaskJuggler/RichTextIntermediate.html +86 -80
- data/doc/TaskJuggler/RichTextParser.html +59 -53
- data/doc/TaskJuggler/RichTextScanner.html +184 -178
- data/doc/TaskJuggler/RichTextSnip.html +69 -63
- data/doc/TaskJuggler/RichTextSyntaxRules.html +416 -410
- data/doc/TaskJuggler/Scenario.html +13 -7
- data/doc/TaskJuggler/ScenarioData.html +40 -34
- data/doc/TaskJuggler/ScenarioListAttribute.html +21 -15
- data/doc/TaskJuggler/Scoreboard.html +129 -107
- data/doc/TaskJuggler/SheetHandlerBase.html +245 -239
- data/doc/TaskJuggler/SheetReceiver.html +333 -327
- data/doc/TaskJuggler/SheetSender.html +227 -221
- data/doc/TaskJuggler/Shift.html +26 -20
- data/doc/TaskJuggler/ShiftAssignment.html +45 -39
- data/doc/TaskJuggler/ShiftAssignments.html +178 -172
- data/doc/TaskJuggler/ShiftAssignmentsAttribute.html +21 -15
- data/doc/TaskJuggler/ShiftScenario.html +29 -23
- data/doc/TaskJuggler/SimpleQueryExpander.html +36 -30
- data/doc/TaskJuggler/SortListAttribute.html +17 -13
- data/doc/TaskJuggler/SourceFileInfo.html +19 -13
- data/doc/TaskJuggler/StatusSheetReceiver.html +31 -25
- data/doc/TaskJuggler/StatusSheetReport.html +166 -159
- data/doc/TaskJuggler/StatusSheetSender.html +80 -74
- data/doc/TaskJuggler/StringAttribute.html +20 -14
- data/doc/TaskJuggler/SymbolAttribute.html +16 -10
- data/doc/TaskJuggler/SyntaxReference.html +231 -225
- data/doc/TaskJuggler/TOCEntry.html +46 -40
- data/doc/TaskJuggler/TSResourceRecord.html +15 -9
- data/doc/TaskJuggler/TSTaskRecord.html +16 -10
- data/doc/TaskJuggler/TableColumnDefinition.html +84 -39
- data/doc/TaskJuggler/TableOfContents.html +28 -22
- data/doc/TaskJuggler/TableReport.html +906 -866
- data/doc/TaskJuggler/Task.html +99 -93
- data/doc/TaskJuggler/TaskDependency.html +24 -18
- data/doc/TaskJuggler/TaskListAttribute.html +29 -25
- data/doc/TaskJuggler/TaskListRE.html +46 -39
- data/doc/TaskJuggler/TaskScenario.html +2218 -1965
- data/doc/TaskJuggler/TextFormatter.html +154 -148
- data/doc/TaskJuggler/TextParser.html +362 -348
- data/doc/TaskJuggler/TextParser/Pattern.html +313 -307
- data/doc/TaskJuggler/TextParser/Rule.html +147 -141
- data/doc/TaskJuggler/TextParser/StackElement.html +58 -52
- data/doc/TaskJuggler/TextParser/State.html +88 -82
- data/doc/TaskJuggler/TextParser/StateTransition.html +42 -36
- data/doc/TaskJuggler/TextParser/TextParserResultArray.html +20 -14
- data/doc/TaskJuggler/TextParser/TokenDoc.html +19 -13
- data/doc/TaskJuggler/TextReport.html +80 -74
- data/doc/TaskJuggler/TextScanner.html +284 -272
- data/doc/TaskJuggler/TextScanner/BufferStreamHandle.html +14 -8
- data/doc/TaskJuggler/TextScanner/FileStreamHandle.html +21 -15
- data/doc/TaskJuggler/TextScanner/MacroStackEntry.html +15 -9
- data/doc/TaskJuggler/TextScanner/StreamHandle.html +102 -96
- data/doc/TaskJuggler/TimeSheet.html +123 -117
- data/doc/TaskJuggler/TimeSheetReceiver.html +28 -22
- data/doc/TaskJuggler/TimeSheetRecord.html +212 -206
- data/doc/TaskJuggler/TimeSheetReport.html +206 -199
- data/doc/TaskJuggler/TimeSheetSender.html +27 -21
- data/doc/TaskJuggler/TimeSheetSummary.html +140 -134
- data/doc/TaskJuggler/TimeSheets.html +20 -14
- data/doc/TaskJuggler/Tj3AppBase.html +100 -94
- data/doc/TaskJuggler/Tj3Client.html +407 -483
- data/doc/TaskJuggler/Tj3Daemon.html +116 -107
- data/doc/TaskJuggler/Tj3SheetAppBase.html +45 -39
- data/doc/TaskJuggler/Tj3SsReceiver.html +31 -25
- data/doc/TaskJuggler/Tj3SsSender.html +64 -58
- data/doc/TaskJuggler/Tj3TsReceiver.html +31 -25
- data/doc/TaskJuggler/Tj3TsSender.html +51 -45
- data/doc/TaskJuggler/Tj3TsSummary.html +59 -53
- data/doc/TaskJuggler/TjException.html +13 -7
- data/doc/TaskJuggler/TjTime.html +444 -438
- data/doc/TaskJuggler/TjpExample.html +84 -78
- data/doc/TaskJuggler/TjpExportRE.html +356 -349
- data/doc/TaskJuggler/TjpSyntaxRules.html +4279 -4151
- data/doc/TaskJuggler/URLParameter.html +16 -10
- data/doc/TaskJuggler/UserManual.html +185 -179
- data/doc/TaskJuggler/VimSyntax.html +144 -138
- data/doc/TaskJuggler/WebServer.html +46 -39
- data/doc/TaskJuggler/WelcomePage.html +769 -0
- data/doc/TaskJuggler/WorkingHours.html +185 -179
- data/doc/TaskJuggler/WorkingHoursAttribute.html +42 -36
- data/doc/TaskJuggler/XMLBlob.html +21 -15
- data/doc/TaskJuggler/XMLComment.html +17 -11
- data/doc/TaskJuggler/XMLDocument.html +33 -27
- data/doc/TaskJuggler/XMLElement.html +97 -91
- data/doc/TaskJuggler/XMLNamedText.html +13 -7
- data/doc/TaskJuggler/XMLText.html +32 -26
- data/doc/index.html +601 -563
- data/doc/lib/AccountScenario_rb.html +5 -3
- data/doc/lib/Account_rb.html +5 -3
- data/doc/lib/Allocation_rb.html +5 -3
- data/doc/lib/AppConfig_rb.html +5 -3
- data/doc/lib/AttributeBase_rb.html +5 -3
- data/doc/lib/AttributeDefinition_rb.html +5 -3
- data/doc/lib/Attributes_rb.html +5 -3
- data/doc/lib/BatchProcessor_rb.html +5 -3
- data/doc/lib/Booking_rb.html +5 -3
- data/doc/lib/ChargeSet_rb.html +5 -3
- data/doc/lib/Charge_rb.html +5 -3
- data/doc/lib/DataCache_rb.html +5 -3
- data/doc/lib/FileList_rb.html +5 -3
- data/doc/lib/HTMLDocument_rb.html +5 -3
- data/doc/lib/IntervalList_rb.html +69 -0
- data/doc/lib/Interval_rb.html +5 -3
- data/doc/lib/Journal_rb.html +5 -3
- data/doc/lib/KeywordArray_rb.html +5 -3
- data/doc/lib/KeywordDocumentation_rb.html +5 -3
- data/doc/lib/Limits_rb.html +5 -3
- data/doc/lib/LogFile_rb.html +5 -3
- data/doc/lib/Log_rb.html +5 -3
- data/doc/lib/LogicalExpression_rb.html +5 -3
- data/doc/lib/LogicalFunction_rb.html +5 -3
- data/doc/lib/LogicalOperation_rb.html +5 -3
- data/doc/lib/MacroTable_rb.html +5 -3
- data/doc/lib/MessageHandler_rb.html +5 -3
- data/doc/lib/ProjectFileParser_rb.html +5 -3
- data/doc/lib/ProjectFileScanner_rb.html +5 -3
- data/doc/lib/Project_rb.html +5 -3
- data/doc/lib/PropertyList_rb.html +5 -3
- data/doc/lib/PropertySet_rb.html +5 -3
- data/doc/lib/PropertyTreeNode_rb.html +5 -3
- data/doc/lib/Query_rb.html +5 -3
- data/doc/lib/RTFHandlers_rb.html +5 -3
- data/doc/lib/RTFNavigator_rb.html +5 -3
- data/doc/lib/RTFQuery_rb.html +5 -3
- data/doc/lib/RTFReportLink_rb.html +5 -3
- data/doc/lib/RTFReport_rb.html +5 -3
- data/doc/lib/RTFWithQuerySupport_rb.html +5 -3
- data/doc/lib/RealFormat_rb.html +5 -3
- data/doc/lib/ResourceScenario_rb.html +5 -3
- data/doc/lib/Resource_rb.html +5 -3
- data/doc/lib/RichTextDocument_rb.html +5 -3
- data/doc/lib/RichTextElement_rb.html +5 -3
- data/doc/lib/RichTextFunctionExample_rb.html +5 -3
- data/doc/lib/RichTextFunctionHandler_rb.html +5 -3
- data/doc/lib/RichTextParser_rb.html +5 -3
- data/doc/lib/RichTextScanner_rb.html +5 -3
- data/doc/lib/RichTextSnip_rb.html +5 -3
- data/doc/lib/RichTextSyntaxRules_rb.html +5 -3
- data/doc/lib/RichText_rb.html +5 -3
- data/doc/lib/RuntimeConfig_rb.html +5 -3
- data/doc/lib/ScenarioData_rb.html +5 -3
- data/doc/lib/Scenario_rb.html +5 -3
- data/doc/lib/Scoreboard_rb.html +7 -3
- data/doc/lib/SheetHandlerBase_rb.html +5 -3
- data/doc/lib/SheetReceiver_rb.html +5 -3
- data/doc/lib/SheetSender_rb.html +5 -3
- data/doc/lib/ShiftAssignments_rb.html +5 -3
- data/doc/lib/ShiftScenario_rb.html +5 -3
- data/doc/lib/Shift_rb.html +5 -3
- data/doc/lib/SimpleQueryExpander_rb.html +5 -3
- data/doc/lib/SourceFileInfo_rb.html +5 -3
- data/doc/lib/StatusSheetReceiver_rb.html +5 -3
- data/doc/lib/StatusSheetSender_rb.html +5 -3
- data/doc/lib/SyntaxReference_rb.html +5 -3
- data/doc/lib/TOCEntry_rb.html +5 -3
- data/doc/lib/TableColumnDefinition_rb.html +5 -3
- data/doc/lib/TableOfContents_rb.html +5 -3
- data/doc/lib/TaskDependency_rb.html +5 -3
- data/doc/lib/TaskJuggler_rb.html +5 -3
- data/doc/lib/TaskScenario_rb.html +5 -3
- data/doc/lib/Task_rb.html +5 -3
- data/doc/lib/TextFormatter_rb.html +6 -4
- data/doc/lib/TextParser/Pattern_rb.html +5 -3
- data/doc/lib/TextParser/Rule_rb.html +5 -3
- data/doc/lib/TextParser/StackElement_rb.html +5 -3
- data/doc/lib/TextParser/State_rb.html +6 -4
- data/doc/lib/TextParser/TokenDoc_rb.html +5 -3
- data/doc/lib/TextParser_rb.html +5 -3
- data/doc/lib/TextScanner_rb.html +5 -3
- data/doc/lib/TimeSheetReceiver_rb.html +5 -3
- data/doc/lib/TimeSheetSender_rb.html +5 -3
- data/doc/lib/TimeSheetSummary_rb.html +6 -4
- data/doc/lib/TimeSheets_rb.html +5 -3
- data/doc/lib/Tj3AppBase_rb.html +5 -3
- data/doc/lib/Tj3Config_rb.html +5 -3
- data/doc/lib/Tj3SheetAppBase_rb.html +5 -3
- data/doc/lib/TjException_rb.html +5 -3
- data/doc/lib/TjTime_rb.html +5 -3
- data/doc/lib/TjpExample_rb.html +5 -3
- data/doc/lib/TjpSyntaxRules_rb.html +5 -3
- data/doc/lib/URLParameter_rb.html +5 -3
- data/doc/lib/UTF8String_rb.html +5 -3
- data/doc/lib/UserManual_rb.html +5 -3
- data/doc/lib/VimSyntax_rb.html +6 -4
- data/doc/lib/WorkingHours_rb.html +5 -3
- data/doc/lib/XMLDocument_rb.html +5 -3
- data/doc/lib/XMLElement_rb.html +5 -3
- data/doc/lib/daemon/Daemon_rb.html +5 -3
- data/doc/lib/daemon/ProcessIntercom_rb.html +7 -3
- data/doc/lib/daemon/ProjectBroker_rb.html +5 -3
- data/doc/lib/daemon/ProjectServer_rb.html +5 -3
- data/doc/lib/daemon/ReportServer_rb.html +5 -3
- data/doc/lib/daemon/ReportServlet_rb.html +69 -0
- data/doc/lib/daemon/WebServer_rb.html +9 -3
- data/doc/lib/daemon/WelcomePage_rb.html +71 -0
- data/doc/lib/deep_copy_rb.html +5 -3
- data/doc/lib/reports/CSVFile_rb.html +5 -3
- data/doc/lib/reports/CollisionDetector_rb.html +5 -3
- data/doc/lib/reports/ColumnTable_rb.html +5 -3
- data/doc/lib/reports/GanttChart_rb.html +5 -3
- data/doc/lib/reports/GanttContainer_rb.html +5 -3
- data/doc/lib/reports/GanttHeaderScaleItem_rb.html +5 -3
- data/doc/lib/reports/GanttHeader_rb.html +5 -3
- data/doc/lib/reports/GanttLine_rb.html +5 -3
- data/doc/lib/reports/GanttLoadStack_rb.html +5 -3
- data/doc/lib/reports/GanttMilestone_rb.html +5 -3
- data/doc/lib/reports/GanttRouter_rb.html +5 -3
- data/doc/lib/reports/GanttTaskBar_rb.html +5 -3
- data/doc/lib/reports/HTMLGraphics_rb.html +5 -3
- data/doc/lib/reports/Navigator_rb.html +5 -3
- data/doc/lib/reports/NikuReport_rb.html +5 -3
- data/doc/lib/reports/ReportBase_rb.html +5 -3
- data/doc/lib/reports/ReportContext_rb.html +5 -3
- data/doc/lib/reports/ReportTableCell_rb.html +5 -3
- data/doc/lib/reports/ReportTableColumn_rb.html +5 -3
- data/doc/lib/reports/ReportTableLegend_rb.html +5 -3
- data/doc/lib/reports/ReportTableLine_rb.html +5 -3
- data/doc/lib/reports/ReportTable_rb.html +5 -3
- data/doc/lib/reports/Report_rb.html +5 -3
- data/doc/lib/reports/ResourceListRE_rb.html +5 -3
- data/doc/lib/reports/StatusSheetReport_rb.html +5 -3
- data/doc/lib/reports/TableReport_rb.html +5 -3
- data/doc/lib/reports/TaskListRE_rb.html +5 -3
- data/doc/lib/reports/TextReport_rb.html +5 -3
- data/doc/lib/reports/TimeSheetReport_rb.html +5 -3
- data/doc/lib/reports/TjpExportRE_rb.html +5 -3
- data/doc/lib/{taskjuggler3_rb.html → tj3_rb.html} +7 -5
- data/doc/lib/tj3client_rb.html +5 -3
- data/doc/lib/tj3d_rb.html +6 -4
- data/doc/lib/tj3man_rb.html +5 -3
- data/doc/lib/tj3ss_receiver_rb.html +5 -3
- data/doc/lib/tj3ss_sender_rb.html +5 -3
- data/doc/lib/tj3ts_receiver_rb.html +5 -3
- data/doc/lib/tj3ts_sender_rb.html +5 -3
- data/doc/lib/tj3ts_summary_rb.html +5 -3
- data/examples/tutorial.tjp +13 -5
- data/gem_spec.rb +3 -0
- data/lib/Account.rb +2 -1
- data/lib/AccountScenario.rb +2 -1
- data/lib/Allocation.rb +2 -1
- data/lib/AppConfig.rb +2 -1
- data/lib/AttributeBase.rb +19 -5
- data/lib/AttributeDefinition.rb +2 -1
- data/lib/Attributes.rb +49 -38
- data/lib/BatchProcessor.rb +2 -1
- data/lib/Booking.rb +2 -1
- data/lib/Charge.rb +2 -1
- data/lib/ChargeSet.rb +2 -1
- data/lib/DataCache.rb +15 -1
- data/lib/FileList.rb +2 -1
- data/lib/HTMLDocument.rb +2 -1
- data/lib/Interval.rb +2 -1
- data/lib/IntervalList.rb +100 -0
- data/lib/Journal.rb +8 -2
- data/lib/KeywordArray.rb +2 -1
- data/lib/KeywordDocumentation.rb +10 -6
- data/lib/Limits.rb +2 -1
- data/lib/Log.rb +3 -2
- data/lib/LogFile.rb +2 -1
- data/lib/LogicalExpression.rb +2 -1
- data/lib/LogicalFunction.rb +2 -1
- data/lib/LogicalOperation.rb +2 -1
- data/lib/MacroTable.rb +2 -1
- data/lib/MessageHandler.rb +2 -1
- data/lib/Project.rb +92 -25
- data/lib/ProjectFileParser.rb +7 -2
- data/lib/ProjectFileScanner.rb +2 -1
- data/lib/PropertyList.rb +2 -1
- data/lib/PropertySet.rb +2 -6
- data/lib/PropertyTreeNode.rb +22 -44
- data/lib/Query.rb +32 -13
- data/lib/RTFHandlers.rb +2 -1
- data/lib/RTFNavigator.rb +2 -1
- data/lib/RTFQuery.rb +3 -2
- data/lib/RTFReport.rb +2 -1
- data/lib/RTFReportLink.rb +2 -1
- data/lib/RTFWithQuerySupport.rb +2 -1
- data/lib/RealFormat.rb +2 -1
- data/lib/Resource.rb +2 -1
- data/lib/ResourceScenario.rb +35 -14
- data/lib/RichText.rb +2 -1
- data/lib/RichTextDocument.rb +2 -1
- data/lib/RichTextElement.rb +2 -1
- data/lib/RichTextFunctionExample.rb +2 -1
- data/lib/RichTextFunctionHandler.rb +2 -1
- data/lib/RichTextParser.rb +2 -1
- data/lib/RichTextScanner.rb +2 -1
- data/lib/RichTextSnip.rb +2 -1
- data/lib/RichTextSyntaxRules.rb +2 -1
- data/lib/RuntimeConfig.rb +2 -1
- data/lib/Scenario.rb +2 -1
- data/lib/ScenarioData.rb +2 -1
- data/lib/Scoreboard.rb +27 -8
- data/lib/SheetHandlerBase.rb +2 -1
- data/lib/SheetReceiver.rb +2 -1
- data/lib/SheetSender.rb +2 -1
- data/lib/Shift.rb +2 -1
- data/lib/ShiftAssignments.rb +2 -1
- data/lib/ShiftScenario.rb +2 -1
- data/lib/SimpleQueryExpander.rb +2 -1
- data/lib/SourceFileInfo.rb +2 -1
- data/lib/StatusSheetReceiver.rb +2 -1
- data/lib/StatusSheetSender.rb +2 -1
- data/lib/SyntaxReference.rb +2 -1
- data/lib/TOCEntry.rb +2 -1
- data/lib/TableColumnDefinition.rb +9 -2
- data/lib/TableOfContents.rb +2 -1
- data/lib/Task.rb +2 -1
- data/lib/TaskDependency.rb +2 -1
- data/lib/TaskJuggler.rb +8 -6
- data/lib/TaskScenario.rb +337 -153
- data/lib/TextFormatter.rb +3 -2
- data/lib/TextParser.rb +7 -2
- data/lib/TextParser/Pattern.rb +2 -1
- data/lib/TextParser/Rule.rb +2 -1
- data/lib/TextParser/StackElement.rb +2 -1
- data/lib/TextParser/State.rb +3 -2
- data/lib/TextParser/TokenDoc.rb +2 -1
- data/lib/TextScanner.rb +12 -5
- data/lib/TimeSheetReceiver.rb +2 -1
- data/lib/TimeSheetSender.rb +2 -1
- data/lib/TimeSheetSummary.rb +3 -2
- data/lib/TimeSheets.rb +2 -1
- data/lib/Tj3AppBase.rb +6 -5
- data/lib/Tj3Config.rb +5 -4
- data/lib/Tj3SheetAppBase.rb +2 -1
- data/lib/TjException.rb +2 -1
- data/lib/TjTime.rb +2 -1
- data/lib/TjpExample.rb +2 -1
- data/lib/TjpSyntaxRules.rb +264 -65
- data/lib/URLParameter.rb +2 -1
- data/lib/UTF8String.rb +2 -1
- data/lib/UserManual.rb +2 -1
- data/lib/VimSyntax.rb +3 -2
- data/lib/WorkingHours.rb +2 -1
- data/lib/XMLDocument.rb +2 -1
- data/lib/XMLElement.rb +2 -1
- data/lib/daemon/Daemon.rb +3 -1
- data/lib/daemon/ProcessIntercom.rb +3 -1
- data/lib/daemon/ProjectBroker.rb +84 -32
- data/lib/daemon/ProjectServer.rb +5 -3
- data/lib/daemon/ReportServer.rb +8 -5
- data/lib/daemon/ReportServlet.rb +166 -0
- data/lib/daemon/WebServer.rb +6 -150
- data/lib/daemon/WelcomePage.rb +80 -0
- data/lib/deep_copy.rb +2 -1
- data/lib/reports/CSVFile.rb +2 -1
- data/lib/reports/CollisionDetector.rb +2 -1
- data/lib/reports/ColumnTable.rb +2 -1
- data/lib/reports/GanttChart.rb +2 -1
- data/lib/reports/GanttContainer.rb +3 -4
- data/lib/reports/GanttHeader.rb +2 -1
- data/lib/reports/GanttHeaderScaleItem.rb +2 -1
- data/lib/reports/GanttLine.rb +12 -10
- data/lib/reports/GanttLoadStack.rb +2 -1
- data/lib/reports/GanttMilestone.rb +3 -3
- data/lib/reports/GanttRouter.rb +4 -1
- data/lib/reports/GanttTaskBar.rb +9 -7
- data/lib/reports/HTMLGraphics.rb +2 -1
- data/lib/reports/Navigator.rb +2 -1
- data/lib/reports/NikuReport.rb +79 -49
- data/lib/reports/Report.rb +42 -10
- data/lib/reports/ReportBase.rb +2 -1
- data/lib/reports/ReportContext.rb +2 -1
- data/lib/reports/ReportTable.rb +2 -1
- data/lib/reports/ReportTableCell.rb +63 -28
- data/lib/reports/ReportTableColumn.rb +2 -1
- data/lib/reports/ReportTableLegend.rb +5 -5
- data/lib/reports/ReportTableLine.rb +2 -1
- data/lib/reports/ResourceListRE.rb +2 -1
- data/lib/reports/StatusSheetReport.rb +4 -2
- data/lib/reports/TableReport.rb +42 -38
- data/lib/reports/TaskListRE.rb +4 -2
- data/lib/reports/TextReport.rb +2 -1
- data/lib/reports/TimeSheetReport.rb +4 -2
- data/lib/reports/TjpExportRE.rb +4 -2
- data/lib/{taskjuggler3.rb → tj3.rb} +6 -5
- data/lib/tj3client.rb +19 -36
- data/lib/tj3d.rb +6 -2
- data/lib/tj3man.rb +4 -3
- data/lib/tj3ss_receiver.rb +2 -1
- data/lib/tj3ss_sender.rb +2 -1
- data/lib/tj3ts_receiver.rb +2 -1
- data/lib/tj3ts_sender.rb +2 -1
- data/lib/tj3ts_summary.rb +2 -1
- data/manual/Day_To_Day_Juggling +36 -0
- data/manual/How_To_Contribute +9 -4
- data/manual/Installation +10 -3
- data/manual/TaskJuggler_Internals +0 -2
- data/manual/Tutorial +25 -3
- data/prj_cfg.rb +4 -2
- data/spec/IntervalList_spec.rb +138 -0
- data/spec/ProjectBroker_spec.rb +133 -0
- data/tasks/changelog.rake +41 -24
- data/tasks/csts.rake +1 -0
- data/tasks/gem.rake +1 -0
- data/tasks/rcov.rake +1 -1
- data/tasks/spec.rake +7 -0
- data/tasks/test.rake +1 -0
- data/test/MessageChecker.rb +2 -1
- data/test/TestSuite/CSV-Reports/niku.tjp +70 -0
- data/test/TestSuite/CSV-Reports/{celltext-Reference.csv → refs/celltext.csv} +0 -0
- data/test/TestSuite/CSV-Reports/refs/niku.csv +5 -0
- data/test/TestSuite/CSV-Reports/{resourcereport-Reference.csv → refs/resourcereport.csv} +0 -0
- data/test/TestSuite/CSV-Reports/{resourcereport_with_tasks-Reference.csv → refs/resourcereport_with_tasks.csv} +0 -0
- data/test/TestSuite/CSV-Reports/{sortByTree-Reference.csv → refs/sortByTree.csv} +0 -0
- data/test/TestSuite/CSV-Reports/{sortBy_duration.down-Reference.csv → refs/sortBy_duration.down.csv} +0 -0
- data/test/TestSuite/CSV-Reports/{sortBy_effort.up-Reference.csv → refs/sortBy_effort.up.csv} +0 -0
- data/test/TestSuite/CSV-Reports/{sortBy_plan.start.down-Reference.csv → refs/sortBy_plan.start.down.csv} +0 -0
- data/test/TestSuite/CSV-Reports/{taskreport-Reference.csv → refs/taskreport.csv} +0 -0
- data/test/TestSuite/CSV-Reports/{taskreport_with_resources-Reference.csv → refs/taskreport_with_resources.csv} +0 -0
- data/test/TestSuite/CSV-Reports/{weekly-Reference.csv → refs/weekly.csv} +0 -0
- data/test/TestSuite/HTML-Reports/Alerts.tjp +12 -0
- data/test/TestSuite/Scheduler/Correct/Allocate.tjp +2 -2
- data/test/TestSuite/Scheduler/Correct/Container-2.tjp +1 -2
- data/test/TestSuite/Scheduler/Correct/InheritedAttributes.tjp +77 -0
- data/test/TestSuite/Scheduler/Correct/WeakDeps.tjp +40 -0
- data/test/TestSuite/Scheduler/Errors/loop_detected_12.tjp +2 -2
- data/test/TestSuite/Scheduler/Errors/loop_detected_13.tjp +3 -4
- data/test/TestSuite/Scheduler/Errors/loop_detected_3.tjp +2 -2
- data/test/TestSuite/Scheduler/Errors/loop_detected_6.tjp +8 -7
- data/test/TestSuite/Scheduler/Errors/onend_wrong_direction.tjp +19 -0
- data/test/TestSuite/Scheduler/Errors/onstart_wrong_direction.tjp +18 -0
- data/test/TestSuite/Scheduler/Errors/task_depend_multi.tjp +1 -2
- data/test/TestSuite/StatusSheets/StatusSheetTemplates/2002-03-02/boss_2002-03-02.tji +46 -0
- data/test/TestSuite/StatusSheets/StatusSheetTemplates/2002-03-02/dev2_2002-03-02.tji +22 -0
- data/test/TestSuite/StatusSheets/StatusSheetTemplates/2002-03-02/resources.yml +11 -0
- data/test/TestSuite/StatusSheets/StatusSheetTemplates/acceptable_intervals +1 -0
- data/test/TestSuite/StatusSheets/sender.log +256 -0
- data/test/TestSuite/StatusSheets/statussheets.log +9 -0
- data/test/TestSuite/StatusSheets/tj3d.log +395 -0
- data/test/TestSuite/Syntax/Correct/Limits-1.tjp +2 -0
- data/test/TestSuite/Syntax/Correct/Niku.tjp +6 -1
- data/test/TestSuite/Syntax/Correct/Scenario.tjp +4 -1
- data/test/TestSuite/Syntax/Correct/Supplement.tjp +12 -5
- data/test/TestSuite/Syntax/Correct/TaskPrefix.tji +3 -0
- data/test/TestSuite/Syntax/Correct/TaskPrefix.tjp +24 -0
- data/test/TestSuite/Syntax/Correct/css/tjreport.css +7 -2
- data/test/TestSuite/Syntax/Correct/tutorial.tjp +15 -5
- data/test/all.rb +2 -4
- data/test/test_BatchProcessor.rb +2 -1
- data/test/test_CSV-Reports.rb +34 -23
- data/test/test_CSVFile.rb +2 -1
- data/test/test_CollisionDetector.rb +3 -2
- data/test/test_Journal.rb +2 -1
- data/test/test_Limits.rb +2 -1
- data/test/test_LogicalExpression.rb +2 -1
- data/test/test_MacroTable.rb +2 -1
- data/test/test_Project.rb +3 -2
- data/test/test_ProjectFileScanner.rb +2 -1
- data/test/test_PropertySet.rb +2 -1
- data/test/test_Query.rb +2 -1
- data/test/test_RealFormat.rb +2 -1
- data/test/test_ReportGenerator.rb +2 -1
- data/test/test_RichText.rb +2 -1
- data/test/test_Scheduler.rb +2 -1
- data/test/test_ShiftAssignments.rb +2 -1
- data/test/test_SimpleQueryExpander.rb +2 -1
- data/test/test_Syntax.rb +2 -1
- data/test/test_TextFormatter.rb +3 -2
- data/test/test_TjTime.rb +2 -1
- data/test/test_TjpExample.rb +2 -1
- data/test/test_URLParameter.rb +2 -1
- data/test/test_UTF8String.rb +2 -1
- data/test/test_WorkingHours.rb +2 -1
- data/test/test_deep_copy.rb +2 -1
- metadata +74 -20
- data/doc/StringIO.html +0 -595
- data/test/TestSuite/Scheduler/Errors/loop_detected_7.tjp +0 -46
- data/test/TestSuite/Scheduler/Errors/loop_detected_8.tjp +0 -51
- data/test/TestSuite/Scheduler/Errors/multiple_durations.tjp +0 -11
|
@@ -149,6 +149,8 @@
|
|
|
149
149
|
|
|
150
150
|
<li><a href="../TaskJuggler/AttributeDefinition.html">TaskJuggler::AttributeDefinition</a></li>
|
|
151
151
|
|
|
152
|
+
<li><a href="../TaskJuggler/AttributeOverwrite.html">TaskJuggler::AttributeOverwrite</a></li>
|
|
153
|
+
|
|
152
154
|
<li><a href="../TaskJuggler/BatchProcessor.html">TaskJuggler::BatchProcessor</a></li>
|
|
153
155
|
|
|
154
156
|
<li><a href="../TaskJuggler/Booking.html">TaskJuggler::Booking</a></li>
|
|
@@ -227,6 +229,8 @@
|
|
|
227
229
|
|
|
228
230
|
<li><a href="../TaskJuggler/Interval.html">TaskJuggler::Interval</a></li>
|
|
229
231
|
|
|
232
|
+
<li><a href="../TaskJuggler/IntervalList.html">TaskJuggler::IntervalList</a></li>
|
|
233
|
+
|
|
230
234
|
<li><a href="../TaskJuggler/IntervalListAttribute.html">TaskJuggler::IntervalListAttribute</a></li>
|
|
231
235
|
|
|
232
236
|
<li><a href="../TaskJuggler/JobInfo.html">TaskJuggler::JobInfo</a></li>
|
|
@@ -259,6 +263,8 @@
|
|
|
259
263
|
|
|
260
264
|
<li><a href="../TaskJuggler/LogicalExpressionAttribute.html">TaskJuggler::LogicalExpressionAttribute</a></li>
|
|
261
265
|
|
|
266
|
+
<li><a href="../TaskJuggler/LogicalExpressionListAttribute.html">TaskJuggler::LogicalExpressionListAttribute</a></li>
|
|
267
|
+
|
|
262
268
|
<li><a href="../TaskJuggler/LogicalFlag.html">TaskJuggler::LogicalFlag</a></li>
|
|
263
269
|
|
|
264
270
|
<li><a href="../TaskJuggler/LogicalFunction.html">TaskJuggler::LogicalFunction</a></li>
|
|
@@ -539,6 +545,8 @@
|
|
|
539
545
|
|
|
540
546
|
<li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
|
|
541
547
|
|
|
548
|
+
<li><a href="../TaskJuggler/WelcomePage.html">TaskJuggler::WelcomePage</a></li>
|
|
549
|
+
|
|
542
550
|
<li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
|
|
543
551
|
|
|
544
552
|
<li><a href="../TaskJuggler/WorkingHoursAttribute.html">TaskJuggler::WorkingHoursAttribute</a></li>
|
|
@@ -565,8 +573,6 @@
|
|
|
565
573
|
|
|
566
574
|
<li><a href="../String.html">String</a></li>
|
|
567
575
|
|
|
568
|
-
<li><a href="../StringIO.html">StringIO</a></li>
|
|
569
|
-
|
|
570
576
|
</ul>
|
|
571
577
|
<div id="no-class-search-results" style="display: none;">No matching classes.</div>
|
|
572
578
|
</div>
|
|
@@ -654,33 +660,33 @@
|
|
|
654
660
|
<div class="method-source-code"
|
|
655
661
|
id="new-source">
|
|
656
662
|
<pre>
|
|
657
|
-
<span class="ruby-comment cmt"># File lib/SheetHandlerBase.rb, line
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
663
|
+
<span class="ruby-comment cmt"># File lib/SheetHandlerBase.rb, line 25</span>
|
|
664
|
+
25: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">appName</span>)
|
|
665
|
+
26: <span class="ruby-ivar">@appName</span> = <span class="ruby-identifier">appName</span>
|
|
666
|
+
27: <span class="ruby-comment cmt"># User specific settings</span>
|
|
667
|
+
28: <span class="ruby-ivar">@smtpServer</span>= <span class="ruby-keyword kw">nil</span>
|
|
668
|
+
29: <span class="ruby-ivar">@senderEmail</span> = <span class="ruby-keyword kw">nil</span>
|
|
669
|
+
30: <span class="ruby-ivar">@workingDir</span> = <span class="ruby-keyword kw">nil</span>
|
|
670
|
+
31: <span class="ruby-ivar">@scmCommand</span> = <span class="ruby-keyword kw">nil</span>
|
|
671
|
+
32: <span class="ruby-comment cmt"># The default project ID</span>
|
|
672
|
+
33: <span class="ruby-ivar">@projectId</span> = <span class="ruby-value str">'prj'</span>
|
|
673
|
+
34:
|
|
674
|
+
35: <span class="ruby-comment cmt"># Controls the amount of output that is sent to the terminal.</span>
|
|
675
|
+
36: <span class="ruby-comment cmt"># 0: No output</span>
|
|
676
|
+
37: <span class="ruby-comment cmt"># 1: only errors</span>
|
|
677
|
+
38: <span class="ruby-comment cmt"># 2: errors and warnings</span>
|
|
678
|
+
39: <span class="ruby-comment cmt"># 3: All messages</span>
|
|
679
|
+
40: <span class="ruby-ivar">@outputLevel</span> = <span class="ruby-value">2</span>
|
|
680
|
+
41: <span class="ruby-comment cmt"># Controls the amount of information that is added to the log file. The</span>
|
|
681
|
+
42: <span class="ruby-comment cmt"># levels are identical to @outputLevel.</span>
|
|
682
|
+
43: <span class="ruby-ivar">@logLevel</span> = <span class="ruby-value">3</span>
|
|
683
|
+
44: <span class="ruby-comment cmt"># Set to true to not send any emails. Instead the email (header + body) is</span>
|
|
684
|
+
45: <span class="ruby-comment cmt"># printed to the terminal.</span>
|
|
685
|
+
46: <span class="ruby-ivar">@dryRun</span> = <span class="ruby-keyword kw">false</span>
|
|
686
|
+
47:
|
|
687
|
+
48: <span class="ruby-ivar">@logFile</span> = <span class="ruby-value str">'timesheets.log'</span>
|
|
688
|
+
49: <span class="ruby-ivar">@emailFailure</span> = <span class="ruby-keyword kw">false</span>
|
|
689
|
+
50: <span class="ruby-keyword kw">end</span></pre>
|
|
684
690
|
</div>
|
|
685
691
|
|
|
686
692
|
</div>
|
|
@@ -717,19 +723,19 @@
|
|
|
717
723
|
<div class="method-source-code"
|
|
718
724
|
id="add-o-cm-source">
|
|
719
725
|
<pre>
|
|
720
|
-
<span class="ruby-comment cmt"># File lib/SheetHandlerBase.rb, line
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
726
|
+
<span class="ruby-comment cmt"># File lib/SheetHandlerBase.rb, line 121</span>
|
|
727
|
+
121: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">addToScm</span>(<span class="ruby-identifier">message</span>, <span class="ruby-identifier">fileName</span>)
|
|
728
|
+
122: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@scmCommand</span>
|
|
729
|
+
123:
|
|
730
|
+
124: <span class="ruby-identifier">cmd</span> = <span class="ruby-ivar">@scmCommand</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/%m/</span>, <span class="ruby-identifier">message</span>)
|
|
731
|
+
125: <span class="ruby-identifier">cmd</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/%f/</span>, <span class="ruby-identifier">fileName</span>)
|
|
732
|
+
126: <span class="ruby-node">`#{cmd}`</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@dryRun</span>
|
|
733
|
+
127: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$?</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
|
|
734
|
+
128: <span class="ruby-identifier">info</span>(<span class="ruby-node">"Added #{fileName} to SCM"</span>)
|
|
735
|
+
129: <span class="ruby-keyword kw">else</span>
|
|
736
|
+
130: <span class="ruby-identifier">error</span>(<span class="ruby-node">"SCM command #{cmd} failed: #{$?}"</span>)
|
|
737
|
+
131: <span class="ruby-keyword kw">end</span>
|
|
738
|
+
132: <span class="ruby-keyword kw">end</span></pre>
|
|
733
739
|
</div>
|
|
734
740
|
|
|
735
741
|
</div>
|
|
@@ -763,40 +769,40 @@ from the beginnin of the line.
|
|
|
763
769
|
<div class="method-source-code"
|
|
764
770
|
id="cut-ut-source">
|
|
765
771
|
<pre>
|
|
766
|
-
<span class="ruby-comment cmt"># File lib/SheetHandlerBase.rb, line
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
772
|
+
<span class="ruby-comment cmt"># File lib/SheetHandlerBase.rb, line 54</span>
|
|
773
|
+
54: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">cutOut</span>(<span class="ruby-identifier">text</span>)
|
|
774
|
+
55: <span class="ruby-comment cmt"># Pattern for the section start marker</span>
|
|
775
|
+
56: <span class="ruby-identifier">mark1</span> = <span class="ruby-node">/(.*)# --------8<--------8<--------/</span>
|
|
776
|
+
57: <span class="ruby-comment cmt"># Pattern for the section end marker</span>
|
|
777
|
+
58: <span class="ruby-identifier">mark2</span> = <span class="ruby-node">/# -------->8-------->8--------/</span>
|
|
778
|
+
59: <span class="ruby-comment cmt"># The cutOut section</span>
|
|
779
|
+
60: <span class="ruby-identifier">cutOutText</span> = <span class="ruby-keyword kw">nil</span>
|
|
780
|
+
61: <span class="ruby-identifier">quoteLen</span> = <span class="ruby-value">0</span>
|
|
781
|
+
62: <span class="ruby-identifier">quoteMarks</span> = <span class="ruby-identifier">emptyLine</span> = <span class="ruby-value str">''</span>
|
|
782
|
+
63: <span class="ruby-identifier">text</span>.<span class="ruby-identifier">each_line</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">line</span><span class="ruby-operator">|</span>
|
|
783
|
+
64: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cutOutText</span>.<span class="ruby-identifier">nil?</span>
|
|
784
|
+
65: <span class="ruby-comment cmt"># We are looking for the line with the start marker (mark1)</span>
|
|
785
|
+
66: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">matches</span> = <span class="ruby-identifier">mark1</span>.<span class="ruby-identifier">match</span>(<span class="ruby-identifier">line</span>))
|
|
786
|
+
67: <span class="ruby-identifier">quoteMarks</span> = <span class="ruby-identifier">matches</span>[<span class="ruby-value">1</span>]
|
|
787
|
+
68: <span class="ruby-identifier">quoteLen</span> = <span class="ruby-identifier">quoteMarks</span>.<span class="ruby-identifier">length</span>
|
|
788
|
+
69: <span class="ruby-comment cmt"># Special case for quoted empty lines without trailing spaces.</span>
|
|
789
|
+
70: <span class="ruby-identifier">emptyLine</span> = <span class="ruby-identifier">quoteMarks</span>.<span class="ruby-identifier">chomp</span>.<span class="ruby-identifier">chomp</span>(<span class="ruby-value str">' '</span>) <span class="ruby-operator">+</span> <span class="ruby-value str">"\n"</span>
|
|
790
|
+
71: <span class="ruby-identifier">cutOutText</span> = <span class="ruby-identifier">line</span>[<span class="ruby-identifier">quoteLen</span><span class="ruby-operator">..</span><span class="ruby-value">1</span>]
|
|
791
|
+
72: <span class="ruby-keyword kw">end</span>
|
|
792
|
+
73: <span class="ruby-keyword kw">else</span>
|
|
793
|
+
74: <span class="ruby-comment cmt"># Remove quote marks from the beginning of the line.</span>
|
|
794
|
+
75: <span class="ruby-identifier">line</span> = <span class="ruby-identifier">line</span>[<span class="ruby-identifier">quoteLen</span><span class="ruby-operator">..</span><span class="ruby-value">1</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">line</span>[<span class="ruby-value">0</span>, <span class="ruby-identifier">quoteLen</span>] <span class="ruby-operator">==</span> <span class="ruby-identifier">quoteMarks</span>
|
|
795
|
+
76: <span class="ruby-identifier">line</span> = <span class="ruby-value str">"\n"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">line</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">emptyLine</span>
|
|
796
|
+
77:
|
|
797
|
+
78: <span class="ruby-identifier">cutOutText</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">line</span>
|
|
798
|
+
79: <span class="ruby-comment cmt"># We are gathering text until we hit the end marker (mark2)</span>
|
|
799
|
+
80: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">cutOutText</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">mark2</span>.<span class="ruby-identifier">match</span>(<span class="ruby-identifier">line</span>)
|
|
800
|
+
81: <span class="ruby-keyword kw">end</span>
|
|
801
|
+
82: <span class="ruby-keyword kw">end</span>
|
|
802
|
+
83:
|
|
803
|
+
84: <span class="ruby-comment cmt"># There are no cut markers. We just return the original text.</span>
|
|
804
|
+
85: <span class="ruby-identifier">text</span>
|
|
805
|
+
86: <span class="ruby-keyword kw">end</span></pre>
|
|
800
806
|
</div>
|
|
801
807
|
|
|
802
808
|
</div>
|
|
@@ -827,12 +833,12 @@ from the beginnin of the line.
|
|
|
827
833
|
<div class="method-source-code"
|
|
828
834
|
id="error-source">
|
|
829
835
|
<pre>
|
|
830
|
-
<span class="ruby-comment cmt"># File lib/SheetHandlerBase.rb, line
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
+
<span class="ruby-comment cmt"># File lib/SheetHandlerBase.rb, line 144</span>
|
|
837
|
+
144: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">error</span>(<span class="ruby-identifier">message</span>)
|
|
838
|
+
145: <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">puts</span> <span class="ruby-identifier">message</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@outputLevel</span> <span class="ruby-operator">>=</span> <span class="ruby-value">1</span>
|
|
839
|
+
146: <span class="ruby-identifier">log</span>(<span class="ruby-value str">"ERROR"</span>, <span class="ruby-identifier">message</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@logLevel</span> <span class="ruby-operator">>=</span> <span class="ruby-value">1</span>
|
|
840
|
+
147: <span class="ruby-identifier">exit</span> <span class="ruby-value">1</span>
|
|
841
|
+
148: <span class="ruby-keyword kw">end</span></pre>
|
|
836
842
|
</div>
|
|
837
843
|
|
|
838
844
|
</div>
|
|
@@ -865,25 +871,25 @@ Convert all CR+LF and CR line breaks into LF line breaks.
|
|
|
865
871
|
<div class="method-source-code"
|
|
866
872
|
id="fix-ine-reaks-source">
|
|
867
873
|
<pre>
|
|
868
|
-
<span class="ruby-comment cmt"># File lib/SheetHandlerBase.rb, line
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
874
|
+
<span class="ruby-comment cmt"># File lib/SheetHandlerBase.rb, line 89</span>
|
|
875
|
+
89: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">fixLineBreaks</span>(<span class="ruby-identifier">text</span>)
|
|
876
|
+
90: <span class="ruby-identifier">out</span> = <span class="ruby-value str">''</span>
|
|
877
|
+
91: <span class="ruby-identifier">cr</span> = <span class="ruby-keyword kw">false</span>
|
|
878
|
+
92: <span class="ruby-identifier">text</span>.<span class="ruby-identifier">each_utf8_char</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">c</span><span class="ruby-operator">|</span>
|
|
879
|
+
93: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">c</span> <span class="ruby-operator">==</span> <span class="ruby-value str">"\r"</span>
|
|
880
|
+
94: <span class="ruby-comment cmt"># We don't know yet if it's a CR or CR+LF.</span>
|
|
881
|
+
95: <span class="ruby-identifier">cr</span> = <span class="ruby-keyword kw">true</span>
|
|
882
|
+
96: <span class="ruby-keyword kw">else</span>
|
|
883
|
+
97: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cr</span>
|
|
884
|
+
98: <span class="ruby-comment cmt"># If we only found a CR. Replace it with a LF.</span>
|
|
885
|
+
99: <span class="ruby-identifier">out</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">"\n"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">c</span> <span class="ruby-operator">!=</span> <span class="ruby-value str">"\n"</span>
|
|
886
|
+
100: <span class="ruby-identifier">cr</span> = <span class="ruby-keyword kw">false</span>
|
|
887
|
+
101: <span class="ruby-keyword kw">end</span>
|
|
888
|
+
102: <span class="ruby-identifier">out</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">c</span>
|
|
889
|
+
103: <span class="ruby-keyword kw">end</span>
|
|
890
|
+
104: <span class="ruby-keyword kw">end</span>
|
|
891
|
+
105: <span class="ruby-identifier">out</span>
|
|
892
|
+
106: <span class="ruby-keyword kw">end</span></pre>
|
|
887
893
|
</div>
|
|
888
894
|
|
|
889
895
|
</div>
|
|
@@ -914,33 +920,33 @@ Convert all CR+LF and CR line breaks into LF line breaks.
|
|
|
914
920
|
<div class="method-source-code"
|
|
915
921
|
id="html-ail-ody-source">
|
|
916
922
|
<pre>
|
|
917
|
-
<span class="ruby-comment cmt"># File lib/SheetHandlerBase.rb, line
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
923
|
+
<span class="ruby-comment cmt"># File lib/SheetHandlerBase.rb, line 241</span>
|
|
924
|
+
241: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">htmlMailBody</span>(<span class="ruby-identifier">message</span>)
|
|
925
|
+
242: <span class="ruby-identifier">html</span> = <span class="ruby-constant">HTMLDocument</span>.<span class="ruby-identifier">new</span>
|
|
926
|
+
243: <span class="ruby-identifier">head</span> = <span class="ruby-identifier">html</span>.<span class="ruby-identifier">generateHead</span>(<span class="ruby-node">"TaskJuggler Report - #{@name}"</span>,
|
|
927
|
+
244: <span class="ruby-value str">'description'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'TaskJuggler Report'</span>,
|
|
928
|
+
245: <span class="ruby-value str">'keywords'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'taskjuggler, project, management'</span>)
|
|
929
|
+
246:
|
|
930
|
+
247: <span class="ruby-identifier">auxSrcDir</span> = <span class="ruby-constant">AppConfig</span>.<span class="ruby-identifier">dataDirs</span>(<span class="ruby-value str">'data/css'</span>)[<span class="ruby-value">0</span>]
|
|
931
|
+
248: <span class="ruby-identifier">cssFileName</span> = (<span class="ruby-identifier">auxSrcDir</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">auxSrcDir</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'/tjreport.css'</span> <span class="ruby-operator">:</span> <span class="ruby-value str">''</span>)
|
|
932
|
+
249: <span class="ruby-comment cmt"># Raise an error if we haven't found the data directory</span>
|
|
933
|
+
250: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">auxSrcDir</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-operator">!</span><span class="ruby-constant">File</span>.<span class="ruby-identifier">exists?</span>(<span class="ruby-identifier">cssFileName</span>)
|
|
934
|
+
251: <span class="ruby-identifier">dataDirError</span>(<span class="ruby-identifier">cssFileName</span>)
|
|
935
|
+
252: <span class="ruby-keyword kw">end</span>
|
|
936
|
+
253: <span class="ruby-identifier">cssFile</span> = <span class="ruby-constant">IO</span>.<span class="ruby-identifier">read</span>(<span class="ruby-identifier">cssFileName</span>)
|
|
937
|
+
254: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cssFile</span>.<span class="ruby-identifier">empty?</span>
|
|
938
|
+
255: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>, <span class="ruby-value str">Cannot read '#{cssFileName}'. Make sure the file is not empty and you haveread access permission.</span>
|
|
939
|
+
256: <span class="ruby-keyword kw">end</span>
|
|
940
|
+
257: <span class="ruby-identifier">head</span> <span class="ruby-operator"><<</span> <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'meta'</span>, <span class="ruby-value str">'http-equiv'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'Content-Style-Type'</span>,
|
|
941
|
+
258: <span class="ruby-value str">'content'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'text/css; charset=utf-8'</span>)
|
|
942
|
+
259: <span class="ruby-identifier">head</span> <span class="ruby-operator"><<</span> (<span class="ruby-identifier">style</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'style'</span>, <span class="ruby-value str">'type'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'text/css'</span>))
|
|
943
|
+
260: <span class="ruby-identifier">style</span> <span class="ruby-operator"><<</span> <span class="ruby-constant">XMLBlob</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">"\n"</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">cssFile</span>)
|
|
944
|
+
261:
|
|
945
|
+
262: <span class="ruby-identifier">html</span> <span class="ruby-operator"><<</span> (<span class="ruby-identifier">body</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'body'</span>))
|
|
946
|
+
263: <span class="ruby-identifier">body</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">message</span>.<span class="ruby-identifier">to_html</span>
|
|
947
|
+
264:
|
|
948
|
+
265: <span class="ruby-identifier">html</span>.<span class="ruby-identifier">to_s</span>
|
|
949
|
+
266: <span class="ruby-keyword kw">end</span></pre>
|
|
944
950
|
</div>
|
|
945
951
|
|
|
946
952
|
</div>
|
|
@@ -971,11 +977,11 @@ Convert all CR+LF and CR line breaks into LF line breaks.
|
|
|
971
977
|
<div class="method-source-code"
|
|
972
978
|
id="info-source">
|
|
973
979
|
<pre>
|
|
974
|
-
<span class="ruby-comment cmt"># File lib/SheetHandlerBase.rb, line
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
980
|
+
<span class="ruby-comment cmt"># File lib/SheetHandlerBase.rb, line 134</span>
|
|
981
|
+
134: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">info</span>(<span class="ruby-identifier">message</span>)
|
|
982
|
+
135: <span class="ruby-identifier">puts</span> <span class="ruby-identifier">message</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@outputLevel</span> <span class="ruby-operator">>=</span> <span class="ruby-value">3</span>
|
|
983
|
+
136: <span class="ruby-identifier">log</span>(<span class="ruby-value str">'INFO'</span>, <span class="ruby-identifier">message</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@logLevel</span> <span class="ruby-operator">>=</span> <span class="ruby-value">3</span>
|
|
984
|
+
137: <span class="ruby-keyword kw">end</span></pre>
|
|
979
985
|
</div>
|
|
980
986
|
|
|
981
987
|
</div>
|
|
@@ -1006,13 +1012,13 @@ Convert all CR+LF and CR line breaks into LF line breaks.
|
|
|
1006
1012
|
<div class="method-source-code"
|
|
1007
1013
|
id="log-source">
|
|
1008
1014
|
<pre>
|
|
1009
|
-
<span class="ruby-comment cmt"># File lib/SheetHandlerBase.rb, line
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1015
|
+
<span class="ruby-comment cmt"># File lib/SheetHandlerBase.rb, line 150</span>
|
|
1016
|
+
150: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">log</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">message</span>)
|
|
1017
|
+
151: <span class="ruby-identifier">timeStamp</span> = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">new</span>.<span class="ruby-identifier">strftime</span>(<span class="ruby-value str">"%Y-%m-%d %H:%M:%S"</span>)
|
|
1018
|
+
152: <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-ivar">@logFile</span>, <span class="ruby-value str">'a'</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span>
|
|
1019
|
+
153: <span class="ruby-identifier">f</span>.<span class="ruby-identifier">write</span>(<span class="ruby-node">"#{timeStamp} #{type} #{@appName}: #{message}\n"</span>)
|
|
1020
|
+
154: <span class="ruby-keyword kw">end</span>
|
|
1021
|
+
155: <span class="ruby-keyword kw">end</span></pre>
|
|
1016
1022
|
</div>
|
|
1017
1023
|
|
|
1018
1024
|
</div>
|
|
@@ -1043,72 +1049,72 @@ Convert all CR+LF and CR line breaks into LF line breaks.
|
|
|
1043
1049
|
<div class="method-source-code"
|
|
1044
1050
|
id="send-mail-source">
|
|
1045
1051
|
<pre>
|
|
1046
|
-
<span class="ruby-comment cmt"># File lib/SheetHandlerBase.rb, line
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1052
|
+
<span class="ruby-comment cmt"># File lib/SheetHandlerBase.rb, line 175</span>
|
|
1053
|
+
175: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sendEmail</span>(<span class="ruby-identifier">to</span>, <span class="ruby-identifier">subject</span>, <span class="ruby-identifier">message</span>, <span class="ruby-identifier">attachment</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">from</span> = <span class="ruby-keyword kw">nil</span>,
|
|
1054
|
+
176: <span class="ruby-identifier">inReplyTo</span> = <span class="ruby-keyword kw">nil</span>)
|
|
1055
|
+
177: <span class="ruby-constant">Mail</span>.<span class="ruby-identifier">defaults</span> <span class="ruby-keyword kw">do</span>
|
|
1056
|
+
178: <span class="ruby-identifier">delivery_method</span> <span class="ruby-value">:smtp</span>, {
|
|
1057
|
+
179: <span class="ruby-value">:address</span> =<span class="ruby-operator">></span> <span class="ruby-ivar">@smtpServer</span>,
|
|
1058
|
+
180: <span class="ruby-value">:port</span> =<span class="ruby-operator">></span> <span class="ruby-value">25</span>
|
|
1059
|
+
181: }
|
|
1060
|
+
182: <span class="ruby-keyword kw">end</span>
|
|
1061
|
+
183:
|
|
1062
|
+
184: <span class="ruby-keyword kw">begin</span>
|
|
1063
|
+
185: <span class="ruby-identifier">self_</span> = <span class="ruby-keyword kw">self</span>
|
|
1064
|
+
186: <span class="ruby-identifier">mail</span> = <span class="ruby-constant">Mail</span>.<span class="ruby-identifier">new</span> <span class="ruby-keyword kw">do</span>
|
|
1065
|
+
187: <span class="ruby-identifier">subject</span> <span class="ruby-identifier">subject</span>
|
|
1066
|
+
188: <span class="ruby-identifier">text_part</span> <span class="ruby-keyword kw">do</span>
|
|
1067
|
+
189: <span class="ruby-identifier">content_type</span> [ <span class="ruby-value str">'text'</span>, <span class="ruby-value str">'plain'</span>, { <span class="ruby-value str">'charset'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'UTF-8'</span> } ]
|
|
1068
|
+
190: <span class="ruby-identifier">content_transfer_encoding</span> <span class="ruby-value str">'quoted-printable'</span>
|
|
1069
|
+
191: <span class="ruby-identifier">body</span> <span class="ruby-identifier">message</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">to_quoted_printable</span>
|
|
1070
|
+
192: <span class="ruby-keyword kw">end</span>
|
|
1071
|
+
193: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">message</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">RichTextIntermediate</span>)
|
|
1072
|
+
194: <span class="ruby-identifier">html_part</span> <span class="ruby-keyword kw">do</span>
|
|
1073
|
+
195: <span class="ruby-identifier">content_type</span> <span class="ruby-value str">'text/html; charset=UTF-8'</span>
|
|
1074
|
+
196: <span class="ruby-identifier">content_transfer_encoding</span> <span class="ruby-value str">'quoted-printable'</span>
|
|
1075
|
+
197: <span class="ruby-identifier">body</span> <span class="ruby-identifier">self_</span>.<span class="ruby-identifier">htmlMailBody</span>(<span class="ruby-identifier">message</span>).<span class="ruby-identifier">to_quoted_printable</span>
|
|
1076
|
+
198: <span class="ruby-keyword kw">end</span>
|
|
1077
|
+
199: <span class="ruby-keyword kw">end</span>
|
|
1078
|
+
200: <span class="ruby-keyword kw">end</span>
|
|
1079
|
+
201: <span class="ruby-identifier">mail</span>.<span class="ruby-identifier">to</span> = <span class="ruby-identifier">to</span>
|
|
1080
|
+
202: <span class="ruby-identifier">mail</span>.<span class="ruby-identifier">from</span> = <span class="ruby-identifier">from</span> <span class="ruby-operator">||</span> <span class="ruby-ivar">@senderEmail</span>
|
|
1081
|
+
203: <span class="ruby-identifier">mail</span>.<span class="ruby-identifier">in_reply_to</span> = <span class="ruby-identifier">inReplyTo</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">inReplyTo</span>
|
|
1082
|
+
204: <span class="ruby-identifier">mail</span>[<span class="ruby-value str">'User-Agent'</span>] = <span class="ruby-node">"#{AppConfig.softwareName}/#{AppConfig.version}"</span>
|
|
1083
|
+
205: <span class="ruby-identifier">mail</span>[<span class="ruby-value str">'X-TaskJuggler'</span>] = <span class="ruby-ivar">@appName</span>
|
|
1084
|
+
206: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">attachment</span>
|
|
1085
|
+
207: <span class="ruby-identifier">mail</span>.<span class="ruby-identifier">add_file</span> ({
|
|
1086
|
+
208: <span class="ruby-value">:filename</span> =<span class="ruby-operator">></span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">basename</span>(<span class="ruby-identifier">attachment</span>),
|
|
1087
|
+
209: <span class="ruby-value">:content</span> =<span class="ruby-operator">></span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">read</span>(<span class="ruby-identifier">attachment</span>)
|
|
1088
|
+
210: })
|
|
1089
|
+
211: <span class="ruby-keyword kw">end</span>
|
|
1090
|
+
212: <span class="ruby-comment cmt">#raise "Mail header problem" unless mail.errors.empty?</span>
|
|
1091
|
+
213: <span class="ruby-keyword kw">rescue</span>
|
|
1092
|
+
214: <span class="ruby-ivar">@emailFailure</span> = <span class="ruby-keyword kw">true</span>
|
|
1093
|
+
215: <span class="ruby-identifier">error</span>(<span class="ruby-node">"Email processing failed: #{$!}"</span>)
|
|
1094
|
+
216: <span class="ruby-keyword kw">end</span>
|
|
1095
|
+
217:
|
|
1096
|
+
218: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@dryRun</span>
|
|
1097
|
+
219: <span class="ruby-comment cmt"># For testing and debugging, we only print out the email.</span>
|
|
1098
|
+
220: <span class="ruby-identifier">puts</span> <span class="ruby-identifier">mail</span>.<span class="ruby-identifier">to_s</span>
|
|
1099
|
+
221: <span class="ruby-identifier">log</span>(<span class="ruby-value str">'INFO'</span>, <span class="ruby-node">"Show email '#{subject}' to #{to}"</span>)
|
|
1100
|
+
222: <span class="ruby-keyword kw">else</span>
|
|
1101
|
+
223: <span class="ruby-comment cmt"># Actually send out the email via SMTP.</span>
|
|
1102
|
+
224: <span class="ruby-keyword kw">begin</span>
|
|
1103
|
+
225: <span class="ruby-identifier">mail</span>.<span class="ruby-identifier">deliver</span>
|
|
1104
|
+
226: <span class="ruby-keyword kw">rescue</span>
|
|
1105
|
+
227: <span class="ruby-comment cmt"># We try to send out another email. If that fails again, we abort</span>
|
|
1106
|
+
228: <span class="ruby-comment cmt"># without further attempts.</span>
|
|
1107
|
+
229: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@emailFailure</span>
|
|
1108
|
+
230: <span class="ruby-identifier">log</span>(<span class="ruby-value str">'ERROR'</span>, <span class="ruby-node">"Email double fault: #{$!}"</span>)
|
|
1109
|
+
231: <span class="ruby-identifier">exit</span> <span class="ruby-value">1</span>
|
|
1110
|
+
232: <span class="ruby-keyword kw">else</span>
|
|
1111
|
+
233: <span class="ruby-ivar">@emailFailure</span> = <span class="ruby-keyword kw">true</span>
|
|
1112
|
+
234: <span class="ruby-identifier">error</span>(<span class="ruby-node">"Email transmission failed: #{$!}"</span>)
|
|
1113
|
+
235: <span class="ruby-keyword kw">end</span>
|
|
1114
|
+
236: <span class="ruby-keyword kw">end</span>
|
|
1115
|
+
237: <span class="ruby-identifier">log</span>(<span class="ruby-value str">'INFO'</span>, <span class="ruby-node">"Sent email '#{subject}' to #{to}"</span>)
|
|
1116
|
+
238: <span class="ruby-keyword kw">end</span>
|
|
1117
|
+
239: <span class="ruby-keyword kw">end</span></pre>
|
|
1112
1118
|
</div>
|
|
1113
1119
|
|
|
1114
1120
|
</div>
|
|
@@ -1143,21 +1149,21 @@ text/plain and a text/html part.
|
|
|
1143
1149
|
<div class="method-source-code"
|
|
1144
1150
|
id="send-ich-ext-mail-source">
|
|
1145
1151
|
<pre>
|
|
1146
|
-
<span class="ruby-comment cmt"># File lib/SheetHandlerBase.rb, line
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
|
|
1150
|
-
|
|
1151
|
-
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
|
|
1160
|
-
|
|
1152
|
+
<span class="ruby-comment cmt"># File lib/SheetHandlerBase.rb, line 160</span>
|
|
1153
|
+
160: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sendRichTextEmail</span>(<span class="ruby-identifier">to</span>, <span class="ruby-identifier">subject</span>, <span class="ruby-identifier">message</span>, <span class="ruby-identifier">attachment</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">from</span> = <span class="ruby-keyword kw">nil</span>,
|
|
1154
|
+
161: <span class="ruby-identifier">inReplyTo</span> = <span class="ruby-keyword kw">nil</span>)
|
|
1155
|
+
162: <span class="ruby-identifier">rti</span> = <span class="ruby-constant">RichText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">message</span>).<span class="ruby-identifier">generateIntermediateFormat</span>
|
|
1156
|
+
163: <span class="ruby-identifier">rti</span>.<span class="ruby-identifier">lineWidth</span> = <span class="ruby-value">72</span>
|
|
1157
|
+
164: <span class="ruby-identifier">rti</span>.<span class="ruby-identifier">indent</span> = <span class="ruby-value">2</span>
|
|
1158
|
+
165: <span class="ruby-identifier">rti</span>.<span class="ruby-identifier">titleIndent</span> = <span class="ruby-value">0</span>
|
|
1159
|
+
166: <span class="ruby-identifier">rti</span>.<span class="ruby-identifier">listIndent</span> = <span class="ruby-value">2</span>
|
|
1160
|
+
167: <span class="ruby-identifier">rti</span>.<span class="ruby-identifier">parIndent</span> = <span class="ruby-value">2</span>
|
|
1161
|
+
168: <span class="ruby-identifier">rti</span>.<span class="ruby-identifier">preIndent</span> = <span class="ruby-value">4</span>
|
|
1162
|
+
169: <span class="ruby-identifier">rti</span>.<span class="ruby-identifier">sectionNumbers</span> = <span class="ruby-keyword kw">false</span>
|
|
1163
|
+
170:
|
|
1164
|
+
171: <span class="ruby-comment cmt"># Send out the email.</span>
|
|
1165
|
+
172: <span class="ruby-identifier">sendEmail</span>(<span class="ruby-identifier">to</span>, <span class="ruby-identifier">subject</span>, <span class="ruby-identifier">rti</span>, <span class="ruby-identifier">attachment</span>, <span class="ruby-identifier">from</span>, <span class="ruby-identifier">inReplyTo</span>)
|
|
1166
|
+
173: <span class="ruby-keyword kw">end</span></pre>
|
|
1161
1167
|
</div>
|
|
1162
1168
|
|
|
1163
1169
|
</div>
|
|
@@ -1188,19 +1194,19 @@ text/plain and a text/html part.
|
|
|
1188
1194
|
<div class="method-source-code"
|
|
1189
1195
|
id="set-orking-ir-source">
|
|
1190
1196
|
<pre>
|
|
1191
|
-
<span class="ruby-comment cmt"># File lib/SheetHandlerBase.rb, line
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1197
|
+
<span class="ruby-comment cmt"># File lib/SheetHandlerBase.rb, line 108</span>
|
|
1198
|
+
108: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">setWorkingDir</span>
|
|
1199
|
+
109: <span class="ruby-comment cmt"># Make sure the user has provided a properly setup config file.</span>
|
|
1200
|
+
110: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'\smtpServer\ not configured'</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@smtpServer</span>
|
|
1201
|
+
111: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'\senderEmail\ not configured'</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@senderEmail</span>
|
|
1202
|
+
112:
|
|
1203
|
+
113: <span class="ruby-comment cmt"># Change into the specified working directory</span>
|
|
1204
|
+
114: <span class="ruby-keyword kw">begin</span>
|
|
1205
|
+
115: <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">chdir</span>(<span class="ruby-ivar">@workingDir</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@workingDir</span>
|
|
1206
|
+
116: <span class="ruby-keyword kw">rescue</span>
|
|
1207
|
+
117: <span class="ruby-identifier">error</span>(<span class="ruby-node">"Working directory #{@workingDir} not found"</span>)
|
|
1208
|
+
118: <span class="ruby-keyword kw">end</span>
|
|
1209
|
+
119: <span class="ruby-keyword kw">end</span></pre>
|
|
1204
1210
|
</div>
|
|
1205
1211
|
|
|
1206
1212
|
</div>
|
|
@@ -1231,11 +1237,11 @@ text/plain and a text/html part.
|
|
|
1231
1237
|
<div class="method-source-code"
|
|
1232
1238
|
id="warning-source">
|
|
1233
1239
|
<pre>
|
|
1234
|
-
<span class="ruby-comment cmt"># File lib/SheetHandlerBase.rb, line
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1240
|
+
<span class="ruby-comment cmt"># File lib/SheetHandlerBase.rb, line 139</span>
|
|
1241
|
+
139: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">warning</span>(<span class="ruby-identifier">message</span>)
|
|
1242
|
+
140: <span class="ruby-identifier">puts</span> <span class="ruby-identifier">message</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@outputLevel</span> <span class="ruby-operator">>=</span> <span class="ruby-value">2</span>
|
|
1243
|
+
141: <span class="ruby-identifier">log</span>(<span class="ruby-value str">'WARN'</span>, <span class="ruby-identifier">message</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@logLevel</span> <span class="ruby-operator">>=</span> <span class="ruby-value">2</span>
|
|
1244
|
+
142: <span class="ruby-keyword kw">end</span></pre>
|
|
1239
1245
|
</div>
|
|
1240
1246
|
|
|
1241
1247
|
</div>
|