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
|
@@ -133,6 +133,8 @@
|
|
|
133
133
|
|
|
134
134
|
<li><a href="../TaskJuggler/AttributeDefinition.html">TaskJuggler::AttributeDefinition</a></li>
|
|
135
135
|
|
|
136
|
+
<li><a href="../TaskJuggler/AttributeOverwrite.html">TaskJuggler::AttributeOverwrite</a></li>
|
|
137
|
+
|
|
136
138
|
<li><a href="../TaskJuggler/BatchProcessor.html">TaskJuggler::BatchProcessor</a></li>
|
|
137
139
|
|
|
138
140
|
<li><a href="../TaskJuggler/Booking.html">TaskJuggler::Booking</a></li>
|
|
@@ -211,6 +213,8 @@
|
|
|
211
213
|
|
|
212
214
|
<li><a href="../TaskJuggler/Interval.html">TaskJuggler::Interval</a></li>
|
|
213
215
|
|
|
216
|
+
<li><a href="../TaskJuggler/IntervalList.html">TaskJuggler::IntervalList</a></li>
|
|
217
|
+
|
|
214
218
|
<li><a href="../TaskJuggler/IntervalListAttribute.html">TaskJuggler::IntervalListAttribute</a></li>
|
|
215
219
|
|
|
216
220
|
<li><a href="../TaskJuggler/JobInfo.html">TaskJuggler::JobInfo</a></li>
|
|
@@ -243,6 +247,8 @@
|
|
|
243
247
|
|
|
244
248
|
<li><a href="../TaskJuggler/LogicalExpressionAttribute.html">TaskJuggler::LogicalExpressionAttribute</a></li>
|
|
245
249
|
|
|
250
|
+
<li><a href="../TaskJuggler/LogicalExpressionListAttribute.html">TaskJuggler::LogicalExpressionListAttribute</a></li>
|
|
251
|
+
|
|
246
252
|
<li><a href="../TaskJuggler/LogicalFlag.html">TaskJuggler::LogicalFlag</a></li>
|
|
247
253
|
|
|
248
254
|
<li><a href="../TaskJuggler/LogicalFunction.html">TaskJuggler::LogicalFunction</a></li>
|
|
@@ -523,6 +529,8 @@
|
|
|
523
529
|
|
|
524
530
|
<li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
|
|
525
531
|
|
|
532
|
+
<li><a href="../TaskJuggler/WelcomePage.html">TaskJuggler::WelcomePage</a></li>
|
|
533
|
+
|
|
526
534
|
<li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
|
|
527
535
|
|
|
528
536
|
<li><a href="../TaskJuggler/WorkingHoursAttribute.html">TaskJuggler::WorkingHoursAttribute</a></li>
|
|
@@ -549,8 +557,6 @@
|
|
|
549
557
|
|
|
550
558
|
<li><a href="../String.html">String</a></li>
|
|
551
559
|
|
|
552
|
-
<li><a href="../StringIO.html">StringIO</a></li>
|
|
553
|
-
|
|
554
560
|
</ul>
|
|
555
561
|
<div id="no-class-search-results" style="display: none;">No matching classes.</div>
|
|
556
562
|
</div>
|
|
@@ -598,17 +604,17 @@
|
|
|
598
604
|
<div class="method-source-code"
|
|
599
605
|
id="new-source">
|
|
600
606
|
<pre>
|
|
601
|
-
<span class="ruby-comment cmt"># File lib/Tj3AppBase.rb, line
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
607
|
+
<span class="ruby-comment cmt"># File lib/Tj3AppBase.rb, line 25</span>
|
|
608
|
+
25: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>
|
|
609
|
+
26: <span class="ruby-comment cmt"># Indent and width of options. The deriving class may has to change</span>
|
|
610
|
+
27: <span class="ruby-comment cmt"># this.</span>
|
|
611
|
+
28: <span class="ruby-ivar">@optsSummaryWidth</span> = <span class="ruby-value">22</span>
|
|
612
|
+
29: <span class="ruby-ivar">@optsSummaryIndent</span> = <span class="ruby-value">5</span>
|
|
613
|
+
30: <span class="ruby-comment cmt"># Show some progress information by default</span>
|
|
614
|
+
31: <span class="ruby-ivar">@silent</span> = <span class="ruby-keyword kw">false</span>
|
|
615
|
+
32: <span class="ruby-ivar">@configFile</span> = <span class="ruby-keyword kw">nil</span>
|
|
616
|
+
33: <span class="ruby-ivar">@mandatoryArgs</span> = <span class="ruby-value str">''</span>
|
|
617
|
+
34: <span class="ruby-keyword kw">end</span></pre>
|
|
612
618
|
</div>
|
|
613
619
|
|
|
614
620
|
</div>
|
|
@@ -645,32 +651,32 @@
|
|
|
645
651
|
<div class="method-source-code"
|
|
646
652
|
id="main-source">
|
|
647
653
|
<pre>
|
|
648
|
-
<span class="ruby-comment cmt"># File lib/Tj3AppBase.rb, line
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
654
|
+
<span class="ruby-comment cmt"># File lib/Tj3AppBase.rb, line 86</span>
|
|
655
|
+
86: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">main</span>
|
|
656
|
+
87: <span class="ruby-comment cmt"># Install signal handler to exit gracefully on CTRL-C.</span>
|
|
657
|
+
88: <span class="ruby-identifier">intHandler</span> = <span class="ruby-constant">Kernel</span>.<span class="ruby-identifier">trap</span>(<span class="ruby-value str">'INT'</span>) <span class="ruby-keyword kw">do</span>
|
|
658
|
+
89: <span class="ruby-identifier">puts</span> <span class="ruby-value str">"\nAborting on user request!"</span>
|
|
659
|
+
90: <span class="ruby-identifier">exit</span> <span class="ruby-value">1</span>
|
|
660
|
+
91: <span class="ruby-keyword kw">end</span>
|
|
661
|
+
92:
|
|
662
|
+
93: <span class="ruby-identifier">args</span> = <span class="ruby-identifier">processArguments</span>(<span class="ruby-constant">ARGV</span>)
|
|
663
|
+
94:
|
|
664
|
+
95: <span class="ruby-comment cmt"># If DEBUG mode has been enabled, we restore the INT trap handler again</span>
|
|
665
|
+
96: <span class="ruby-comment cmt"># to get Ruby backtrackes.</span>
|
|
666
|
+
97: <span class="ruby-constant">Kernel</span>.<span class="ruby-identifier">trap</span>(<span class="ruby-value str">'INT'</span>, <span class="ruby-identifier">intHandler</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$DEBUG</span>
|
|
667
|
+
98:
|
|
668
|
+
99: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@silent</span>
|
|
669
|
+
100: <span class="ruby-identifier">puts</span> <span class="ruby-node">"#{AppConfig.softwareName} v#{AppConfig.version} - "</span> <span class="ruby-operator">+</span>
|
|
670
|
+
101: <span class="ruby-node">"#{AppConfig.packageInfo}\n\n"</span> <span class="ruby-operator">+</span>
|
|
671
|
+
102: <span class="ruby-node">"Copyright (c) #{AppConfig.copyright.join(', ')}\n"</span> <span class="ruby-operator">+</span>
|
|
672
|
+
103: <span class="ruby-node">" by #{AppConfig.authors.join(', ')}\n\n"</span> <span class="ruby-operator">+</span>
|
|
673
|
+
104: <span class="ruby-node">"#{AppConfig.license}\n"</span>
|
|
674
|
+
105: <span class="ruby-keyword kw">end</span>
|
|
675
|
+
106:
|
|
676
|
+
107: <span class="ruby-ivar">@rc</span> = <span class="ruby-constant">RuntimeConfig</span>.<span class="ruby-identifier">new</span>(<span class="ruby-constant">AppConfig</span>.<span class="ruby-identifier">packageName</span>, <span class="ruby-ivar">@configFile</span>)
|
|
677
|
+
108:
|
|
678
|
+
109: <span class="ruby-identifier">args</span>
|
|
679
|
+
110: <span class="ruby-keyword kw">end</span></pre>
|
|
674
680
|
</div>
|
|
675
681
|
|
|
676
682
|
</div>
|
|
@@ -701,56 +707,56 @@
|
|
|
701
707
|
<div class="method-source-code"
|
|
702
708
|
id="process-rguments-source">
|
|
703
709
|
<pre>
|
|
704
|
-
<span class="ruby-comment cmt"># File lib/Tj3AppBase.rb, line
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
710
|
+
<span class="ruby-comment cmt"># File lib/Tj3AppBase.rb, line 36</span>
|
|
711
|
+
36: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">processArguments</span>(<span class="ruby-identifier">argv</span>)
|
|
712
|
+
37: <span class="ruby-ivar">@opts</span> = <span class="ruby-constant">OptionParser</span>.<span class="ruby-identifier">new</span>
|
|
713
|
+
38: <span class="ruby-ivar">@opts</span>.<span class="ruby-identifier">summary_width</span> = <span class="ruby-ivar">@optsSummaryWidth</span>
|
|
714
|
+
39: <span class="ruby-ivar">@opts</span>.<span class="ruby-identifier">summary_indent</span> = <span class="ruby-value str">' '</span> * <span class="ruby-ivar">@optsSummaryIndent</span>
|
|
715
|
+
40:
|
|
716
|
+
41: <span class="ruby-ivar">@opts</span>.<span class="ruby-identifier">banner</span> = <span class="ruby-node">"#{AppConfig.softwareName} v#{AppConfig.version} - "</span> <span class="ruby-operator">+</span>
|
|
717
|
+
42: <span class="ruby-node">"#{AppConfig.packageInfo}\n\n"</span> <span class="ruby-operator">+</span>
|
|
718
|
+
43: <span class="ruby-node">"Copyright (c) #{AppConfig.copyright.join(', ')}\n"</span> <span class="ruby-operator">+</span>
|
|
719
|
+
44: <span class="ruby-node">" by #{AppConfig.authors.join(', ')}\n\n"</span> <span class="ruby-operator">+</span>
|
|
720
|
+
45: <span class="ruby-node">"#{AppConfig.license}\n"</span> <span class="ruby-operator">+</span>
|
|
721
|
+
46: <span class="ruby-node">"For more info about #{AppConfig.softwareName} see "</span> <span class="ruby-operator">+</span>
|
|
722
|
+
47: <span class="ruby-node">"#{AppConfig.contact}\n\n"</span> <span class="ruby-operator">+</span>
|
|
723
|
+
48: <span class="ruby-node">"Usage: #{AppConfig.appName} [options] "</span> <span class="ruby-operator">+</span>
|
|
724
|
+
49: <span class="ruby-node">"#{@mandatoryArgs}\n\n"</span>
|
|
725
|
+
50: <span class="ruby-ivar">@opts</span>.<span class="ruby-identifier">separator</span> <span class="ruby-value str">""</span>
|
|
726
|
+
51: <span class="ruby-ivar">@opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'-c'</span>, <span class="ruby-value str">'--config <FILE>'</span>, <span class="ruby-constant">String</span>,
|
|
727
|
+
52: <span class="ruby-identifier">format</span>(<span class="ruby-value str">'Use the specified YAML configuration file'</span>)) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">arg</span><span class="ruby-operator">|</span>
|
|
728
|
+
53: <span class="ruby-ivar">@configFile</span> = <span class="ruby-identifier">arg</span>
|
|
729
|
+
54: <span class="ruby-keyword kw">end</span>
|
|
730
|
+
55: <span class="ruby-ivar">@opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'--silent'</span>,
|
|
731
|
+
56: <span class="ruby-identifier">format</span>(<span class="ruby-value str">"Don't show program and progress information"</span>)) <span class="ruby-keyword kw">do</span>
|
|
732
|
+
57: <span class="ruby-ivar">@silent</span> = <span class="ruby-keyword kw">true</span>
|
|
733
|
+
58: <span class="ruby-keyword kw">end</span>
|
|
734
|
+
59: <span class="ruby-ivar">@opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'--debug'</span>, <span class="ruby-identifier">format</span>(<span class="ruby-value str">'Enable Ruby debug mode'</span>)) <span class="ruby-keyword kw">do</span>
|
|
735
|
+
60: <span class="ruby-identifier">$DEBUG</span> = <span class="ruby-keyword kw">true</span>
|
|
736
|
+
61: <span class="ruby-keyword kw">end</span>
|
|
737
|
+
62:
|
|
738
|
+
63: <span class="ruby-keyword kw">yield</span>
|
|
739
|
+
64:
|
|
740
|
+
65: <span class="ruby-ivar">@opts</span>.<span class="ruby-identifier">on_tail</span>(<span class="ruby-value str">'-h'</span>, <span class="ruby-value str">'--help'</span>, <span class="ruby-identifier">format</span>(<span class="ruby-value str">'Show this message'</span>)) <span class="ruby-keyword kw">do</span>
|
|
741
|
+
66: <span class="ruby-identifier">puts</span> <span class="ruby-ivar">@opts</span>.<span class="ruby-identifier">to_s</span>
|
|
742
|
+
67: <span class="ruby-identifier">exit</span> <span class="ruby-value">0</span>
|
|
743
|
+
68: <span class="ruby-keyword kw">end</span>
|
|
744
|
+
69: <span class="ruby-ivar">@opts</span>.<span class="ruby-identifier">on_tail</span>(<span class="ruby-value str">'--version'</span>, <span class="ruby-identifier">format</span>(<span class="ruby-value str">'Show version info'</span>)) <span class="ruby-keyword kw">do</span>
|
|
745
|
+
70: <span class="ruby-identifier">puts</span> <span class="ruby-node">"#{AppConfig.softwareName} v#{AppConfig.version} - "</span> <span class="ruby-operator">+</span>
|
|
746
|
+
71: <span class="ruby-node">"#{AppConfig.packageInfo}"</span>
|
|
747
|
+
72: <span class="ruby-identifier">exit</span> <span class="ruby-value">0</span>
|
|
748
|
+
73: <span class="ruby-keyword kw">end</span>
|
|
749
|
+
74:
|
|
750
|
+
75: <span class="ruby-keyword kw">begin</span>
|
|
751
|
+
76: <span class="ruby-identifier">files</span> = <span class="ruby-ivar">@opts</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">argv</span>)
|
|
752
|
+
77: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">OptionParser</span><span class="ruby-operator">::</span><span class="ruby-constant">ParseError</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">msg</span>
|
|
753
|
+
78: <span class="ruby-identifier">puts</span> <span class="ruby-ivar">@opts</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-operator">+</span> <span class="ruby-value str">"\n"</span>
|
|
754
|
+
79: <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">puts</span> <span class="ruby-identifier">msg</span>
|
|
755
|
+
80: <span class="ruby-identifier">exit</span> <span class="ruby-value">2</span>
|
|
756
|
+
81: <span class="ruby-keyword kw">end</span>
|
|
757
|
+
82:
|
|
758
|
+
83: <span class="ruby-identifier">files</span>
|
|
759
|
+
84: <span class="ruby-keyword kw">end</span></pre>
|
|
754
760
|
</div>
|
|
755
761
|
|
|
756
762
|
</div>
|
|
@@ -787,11 +793,11 @@
|
|
|
787
793
|
<div class="method-source-code"
|
|
788
794
|
id="format-source">
|
|
789
795
|
<pre>
|
|
790
|
-
<span class="ruby-comment cmt"># File lib/Tj3AppBase.rb, line
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
796
|
+
<span class="ruby-comment cmt"># File lib/Tj3AppBase.rb, line 114</span>
|
|
797
|
+
114: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">format</span>(<span class="ruby-identifier">str</span>, <span class="ruby-identifier">indent</span> = <span class="ruby-keyword kw">nil</span>)
|
|
798
|
+
115: <span class="ruby-identifier">indent</span> = <span class="ruby-ivar">@optsSummaryWidth</span> <span class="ruby-operator">+</span> <span class="ruby-ivar">@optsSummaryIndent</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">indent</span>
|
|
799
|
+
116: <span class="ruby-constant">TextFormatter</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value">79</span>, <span class="ruby-identifier">indent</span>).<span class="ruby-identifier">format</span>(<span class="ruby-identifier">str</span>)[<span class="ruby-identifier">indent</span><span class="ruby-operator">..</span><span class="ruby-value">1</span>]
|
|
800
|
+
117: <span class="ruby-keyword kw">end</span></pre>
|
|
795
801
|
</div>
|
|
796
802
|
|
|
797
803
|
</div>
|
|
@@ -79,14 +79,10 @@
|
|
|
79
79
|
|
|
80
80
|
<li><a href="#method-i-connectDaemon">#connectDaemon</a></li>
|
|
81
81
|
|
|
82
|
-
<li><a href="#method-i-connectToProjectServer">#connectToProjectServer</a></li>
|
|
83
|
-
|
|
84
82
|
<li><a href="#method-i-connectToReportServer">#connectToReportServer</a></li>
|
|
85
83
|
|
|
86
84
|
<li><a href="#method-i-disconnectDaemon">#disconnectDaemon</a></li>
|
|
87
85
|
|
|
88
|
-
<li><a href="#method-i-disconnectProjectServer">#disconnectProjectServer</a></li>
|
|
89
|
-
|
|
90
86
|
<li><a href="#method-i-disconnectReportServer">#disconnectReportServer</a></li>
|
|
91
87
|
|
|
92
88
|
<li><a href="#method-i-error">#error</a></li>
|
|
@@ -157,6 +153,8 @@
|
|
|
157
153
|
|
|
158
154
|
<li><a href="../TaskJuggler/AttributeDefinition.html">TaskJuggler::AttributeDefinition</a></li>
|
|
159
155
|
|
|
156
|
+
<li><a href="../TaskJuggler/AttributeOverwrite.html">TaskJuggler::AttributeOverwrite</a></li>
|
|
157
|
+
|
|
160
158
|
<li><a href="../TaskJuggler/BatchProcessor.html">TaskJuggler::BatchProcessor</a></li>
|
|
161
159
|
|
|
162
160
|
<li><a href="../TaskJuggler/Booking.html">TaskJuggler::Booking</a></li>
|
|
@@ -235,6 +233,8 @@
|
|
|
235
233
|
|
|
236
234
|
<li><a href="../TaskJuggler/Interval.html">TaskJuggler::Interval</a></li>
|
|
237
235
|
|
|
236
|
+
<li><a href="../TaskJuggler/IntervalList.html">TaskJuggler::IntervalList</a></li>
|
|
237
|
+
|
|
238
238
|
<li><a href="../TaskJuggler/IntervalListAttribute.html">TaskJuggler::IntervalListAttribute</a></li>
|
|
239
239
|
|
|
240
240
|
<li><a href="../TaskJuggler/JobInfo.html">TaskJuggler::JobInfo</a></li>
|
|
@@ -267,6 +267,8 @@
|
|
|
267
267
|
|
|
268
268
|
<li><a href="../TaskJuggler/LogicalExpressionAttribute.html">TaskJuggler::LogicalExpressionAttribute</a></li>
|
|
269
269
|
|
|
270
|
+
<li><a href="../TaskJuggler/LogicalExpressionListAttribute.html">TaskJuggler::LogicalExpressionListAttribute</a></li>
|
|
271
|
+
|
|
270
272
|
<li><a href="../TaskJuggler/LogicalFlag.html">TaskJuggler::LogicalFlag</a></li>
|
|
271
273
|
|
|
272
274
|
<li><a href="../TaskJuggler/LogicalFunction.html">TaskJuggler::LogicalFunction</a></li>
|
|
@@ -547,6 +549,8 @@
|
|
|
547
549
|
|
|
548
550
|
<li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
|
|
549
551
|
|
|
552
|
+
<li><a href="../TaskJuggler/WelcomePage.html">TaskJuggler::WelcomePage</a></li>
|
|
553
|
+
|
|
550
554
|
<li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
|
|
551
555
|
|
|
552
556
|
<li><a href="../TaskJuggler/WorkingHoursAttribute.html">TaskJuggler::WorkingHoursAttribute</a></li>
|
|
@@ -573,8 +577,6 @@
|
|
|
573
577
|
|
|
574
578
|
<li><a href="../String.html">String</a></li>
|
|
575
579
|
|
|
576
|
-
<li><a href="../StringIO.html">StringIO</a></li>
|
|
577
|
-
|
|
578
580
|
</ul>
|
|
579
581
|
<div id="no-class-search-results" style="display: none;">No matching classes.</div>
|
|
580
582
|
</div>
|
|
@@ -630,70 +632,72 @@ configured tj3d to work.
|
|
|
630
632
|
<div class="method-source-code"
|
|
631
633
|
id="new-source">
|
|
632
634
|
<pre>
|
|
633
|
-
<span class="ruby-comment cmt"># File lib/tj3client.rb, line
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
61: { <span class="ruby-value">:label</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'terminate'</span>,
|
|
635
|
+
<span class="ruby-comment cmt"># File lib/tj3client.rb, line 31</span>
|
|
636
|
+
31: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>
|
|
637
|
+
32: <span class="ruby-keyword kw">super</span>
|
|
638
|
+
33:
|
|
639
|
+
34: <span class="ruby-comment cmt"># For security reasons, this will probably not change. All DRb</span>
|
|
640
|
+
35: <span class="ruby-comment cmt"># operations are limited to localhost only. The client and the sever</span>
|
|
641
|
+
36: <span class="ruby-comment cmt"># must have access to the identical file system.</span>
|
|
642
|
+
37: <span class="ruby-ivar">@host</span> = <span class="ruby-value str">'127.0.0.1'</span>
|
|
643
|
+
38: <span class="ruby-comment cmt"># The default port. 'T' and 'J' in ASCII decimal</span>
|
|
644
|
+
39: <span class="ruby-ivar">@port</span> = <span class="ruby-value">8474</span>
|
|
645
|
+
40: <span class="ruby-comment cmt"># The file with the server URI in case port is 0.</span>
|
|
646
|
+
41: <span class="ruby-ivar">@uriFile</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-constant">Dir</span>.<span class="ruby-identifier">getwd</span>, <span class="ruby-value str">'.tj3d.uri'</span>)
|
|
647
|
+
42: <span class="ruby-comment cmt"># This must must be changed for the communication to work.</span>
|
|
648
|
+
43: <span class="ruby-ivar">@authKey</span> = <span class="ruby-keyword kw">nil</span>
|
|
649
|
+
44: <span class="ruby-comment cmt"># Determines whether report IDs are fix IDs or regular expressions that</span>
|
|
650
|
+
45: <span class="ruby-comment cmt"># match a set of reports.</span>
|
|
651
|
+
46: <span class="ruby-ivar">@regExpMode</span> = <span class="ruby-keyword kw">false</span>
|
|
652
|
+
47: <span class="ruby-comment cmt"># List of requested output formats for reports.</span>
|
|
653
|
+
48: <span class="ruby-ivar">@formats</span> = <span class="ruby-keyword kw">nil</span>
|
|
654
|
+
49:
|
|
655
|
+
50: <span class="ruby-ivar">@mandatoryArgs</span> = <span class="ruby-value str">'<command> [arg1 arg2 ...]'</span>
|
|
656
|
+
51:
|
|
657
|
+
52: <span class="ruby-comment cmt"># This list describes the supported command line commands and their</span>
|
|
658
|
+
53: <span class="ruby-comment cmt"># parameter.</span>
|
|
659
|
+
54: <span class="ruby-comment cmt"># :label : The command name</span>
|
|
660
|
+
55: <span class="ruby-comment cmt"># :args : A list of parameters. If the first character is a '+' the</span>
|
|
661
|
+
56: <span class="ruby-comment cmt"># parameter must be provided 1 or more times. If the first character is</span>
|
|
662
|
+
57: <span class="ruby-comment cmt"># a '*' the parameter must be provided 0 or more times. Repeatable and</span>
|
|
663
|
+
58: <span class="ruby-comment cmt"># optional paramters must follow the mandatory ones.</span>
|
|
664
|
+
59: <span class="ruby-comment cmt"># :descr : A short description of the command used for the help text.</span>
|
|
665
|
+
60: <span class="ruby-ivar">@commands</span> = [
|
|
666
|
+
61: { <span class="ruby-value">:label</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'status'</span>,
|
|
666
667
|
62: <span class="ruby-value">:args</span> =<span class="ruby-operator">></span> [],
|
|
667
|
-
63: <span class="ruby-value">:descr</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'
|
|
668
|
-
64: { <span class="ruby-value">:label</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'
|
|
669
|
-
65: <span class="ruby-value">:args</span> =<span class="ruby-operator">></span> [
|
|
670
|
-
66: <span class="ruby-value">:descr</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'
|
|
671
|
-
67: { <span class="ruby-value">:label</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'
|
|
672
|
-
68: <span class="ruby-value">:args</span>
|
|
673
|
-
69: <span class="ruby-value">:descr</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'
|
|
674
|
-
70:
|
|
675
|
-
71:
|
|
676
|
-
72: <span class="ruby-value">:
|
|
677
|
-
73:
|
|
678
|
-
74:
|
|
679
|
-
75:
|
|
680
|
-
76: <span class="ruby-value">:
|
|
681
|
-
77:
|
|
682
|
-
78:
|
|
683
|
-
79:
|
|
684
|
-
80: <span class="ruby-value">:
|
|
685
|
-
81:
|
|
686
|
-
82:
|
|
687
|
-
83:
|
|
688
|
-
84: <span class="ruby-value">:
|
|
689
|
-
85:
|
|
690
|
-
86:
|
|
691
|
-
87:
|
|
692
|
-
88: <span class="ruby-value">:
|
|
693
|
-
89:
|
|
694
|
-
90:
|
|
695
|
-
91:
|
|
696
|
-
92:
|
|
668
|
+
63: <span class="ruby-value">:descr</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'Display the status of the available projects'</span> },
|
|
669
|
+
64: { <span class="ruby-value">:label</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'terminate'</span>,
|
|
670
|
+
65: <span class="ruby-value">:args</span> =<span class="ruby-operator">></span> [],
|
|
671
|
+
66: <span class="ruby-value">:descr</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'Terminate the TaskJuggler daemon'</span> },
|
|
672
|
+
67: { <span class="ruby-value">:label</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'add'</span>,
|
|
673
|
+
68: <span class="ruby-value">:args</span> =<span class="ruby-operator">></span> [ <span class="ruby-value str">'tjp file'</span>, <span class="ruby-value str">'*tji file'</span>],
|
|
674
|
+
69: <span class="ruby-value">:descr</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'Add a new project or update and existing one'</span> },
|
|
675
|
+
70: { <span class="ruby-value">:label</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'update'</span>,
|
|
676
|
+
71: <span class="ruby-value">:args</span> =<span class="ruby-operator">></span> [],
|
|
677
|
+
72: <span class="ruby-value">:descr</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'Reload all projects that have modified files and '</span><span class="ruby-operator">+</span>
|
|
678
|
+
73: <span class="ruby-value str">'are not being reloaded already'</span> },
|
|
679
|
+
74: { <span class="ruby-value">:label</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'remove'</span>,
|
|
680
|
+
75: <span class="ruby-value">:args</span> =<span class="ruby-operator">></span> [ <span class="ruby-value str">'+project ID'</span> ],
|
|
681
|
+
76: <span class="ruby-value">:descr</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'Remove the project with the specified ID from the '</span> <span class="ruby-operator">+</span>
|
|
682
|
+
77: <span class="ruby-value str">'daemon'</span> },
|
|
683
|
+
78: { <span class="ruby-value">:label</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'report'</span>,
|
|
684
|
+
79: <span class="ruby-value">:args</span> =<span class="ruby-operator">></span> [ <span class="ruby-value str">'project ID'</span>, <span class="ruby-value str">'+report ID'</span>, <span class="ruby-value str">'!='</span>, <span class="ruby-value str">'*tji file'</span>],
|
|
685
|
+
80: <span class="ruby-value">:descr</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'Generate the report with the provided ID for '</span> <span class="ruby-operator">+</span>
|
|
686
|
+
81: <span class="ruby-value str">'the project with the given ID'</span>},
|
|
687
|
+
82: { <span class="ruby-value">:label</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'list-reports'</span>,
|
|
688
|
+
83: <span class="ruby-value">:args</span> =<span class="ruby-operator">></span> [ <span class="ruby-value str">'project ID'</span>, <span class="ruby-value str">'!report ID'</span> ],
|
|
689
|
+
84: <span class="ruby-value">:descr</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'List all available reports of the project or those '</span> <span class="ruby-operator">+</span>
|
|
690
|
+
85: <span class="ruby-value str">'that match the provided report ID'</span> },
|
|
691
|
+
86: { <span class="ruby-value">:label</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'check-ts'</span>,
|
|
692
|
+
87: <span class="ruby-value">:args</span> =<span class="ruby-operator">></span> [ <span class="ruby-value str">'project ID'</span>, <span class="ruby-value str">'time sheet'</span> ],
|
|
693
|
+
88: <span class="ruby-value">:descr</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'Check the provided time sheet for correctness '</span> <span class="ruby-operator">+</span>
|
|
694
|
+
89: <span class="ruby-value str">'against the project with the given ID'</span>},
|
|
695
|
+
90: { <span class="ruby-value">:label</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'check-ss'</span>,
|
|
696
|
+
91: <span class="ruby-value">:args</span> =<span class="ruby-operator">></span> [ <span class="ruby-value str">'project ID'</span>, <span class="ruby-value str">'status sheet'</span> ],
|
|
697
|
+
92: <span class="ruby-value">:descr</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'Check the provided status sheet for correctness '</span> <span class="ruby-operator">+</span>
|
|
698
|
+
93: <span class="ruby-value str">'against the project with the given ID'</span>}
|
|
699
|
+
94: ]
|
|
700
|
+
95: <span class="ruby-keyword kw">end</span></pre>
|
|
697
701
|
</div>
|
|
698
702
|
|
|
699
703
|
</div>
|
|
@@ -730,21 +734,21 @@ configured tj3d to work.
|
|
|
730
734
|
<div class="method-source-code"
|
|
731
735
|
id="main-source">
|
|
732
736
|
<pre>
|
|
733
|
-
<span class="ruby-comment cmt"># File lib/tj3client.rb, line
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
737
|
+
<span class="ruby-comment cmt"># File lib/tj3client.rb, line 153</span>
|
|
738
|
+
153: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">main</span>
|
|
739
|
+
154: <span class="ruby-identifier">args</span> = <span class="ruby-keyword kw">super</span>
|
|
740
|
+
155: <span class="ruby-comment cmt"># Run a first check of the non-option command line arguments.</span>
|
|
741
|
+
156: <span class="ruby-identifier">checkCommand</span>(<span class="ruby-identifier">args</span>)
|
|
742
|
+
157: <span class="ruby-comment cmt"># Read some configuration variables. Except for the authKey, they are</span>
|
|
743
|
+
158: <span class="ruby-comment cmt"># all optional.</span>
|
|
744
|
+
159: <span class="ruby-ivar">@rc</span>.<span class="ruby-identifier">configure</span>(<span class="ruby-keyword kw">self</span>, <span class="ruby-value str">'global'</span>)
|
|
745
|
+
160:
|
|
746
|
+
161: <span class="ruby-identifier">connectDaemon</span>
|
|
747
|
+
162: <span class="ruby-identifier">retVal</span> = <span class="ruby-identifier">executeCommand</span>(<span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>], <span class="ruby-identifier">args</span>[<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">1</span>])
|
|
748
|
+
163: <span class="ruby-identifier">disconnectDaemon</span>
|
|
749
|
+
164:
|
|
750
|
+
165: <span class="ruby-identifier">retVal</span>
|
|
751
|
+
166: <span class="ruby-keyword kw">end</span></pre>
|
|
748
752
|
</div>
|
|
749
753
|
|
|
750
754
|
</div>
|
|
@@ -775,47 +779,56 @@ configured tj3d to work.
|
|
|
775
779
|
<div class="method-source-code"
|
|
776
780
|
id="process-rguments-source">
|
|
777
781
|
<pre>
|
|
778
|
-
<span class="ruby-comment cmt"># File lib/tj3client.rb, line
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
782
|
+
<span class="ruby-comment cmt"># File lib/tj3client.rb, line 97</span>
|
|
783
|
+
97: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">processArguments</span>(<span class="ruby-identifier">argv</span>)
|
|
784
|
+
98: <span class="ruby-keyword kw">super</span> <span class="ruby-keyword kw">do</span>
|
|
785
|
+
99: <span class="ruby-ivar">@opts</span>.<span class="ruby-identifier">banner</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">The TaskJuggler client is used to send commands and data to the TaskJugglerdaemon. The communication is done via TCP/IP.The following commands are supported:</span>
|
|
786
|
+
100:
|
|
787
|
+
101: <span class="ruby-comment cmt"># Convert the command list into a help text.</span>
|
|
788
|
+
102: <span class="ruby-ivar">@commands</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">cmd</span><span class="ruby-operator">|</span>
|
|
789
|
+
103: <span class="ruby-identifier">tail</span> = <span class="ruby-value str">''</span>
|
|
790
|
+
104: <span class="ruby-identifier">args</span> = <span class="ruby-identifier">cmd</span>[<span class="ruby-value">:args</span>].<span class="ruby-identifier">dup</span>
|
|
791
|
+
105: <span class="ruby-identifier">args</span>.<span class="ruby-identifier">map!</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">c</span><span class="ruby-operator">|</span>
|
|
792
|
+
106: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">c</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">'*'</span>
|
|
793
|
+
107: <span class="ruby-node">"[<#{c[1..-1]}> ...]"</span>
|
|
794
|
+
108: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">c</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">'+'</span>
|
|
795
|
+
109: <span class="ruby-node">"<#{c[1..-1]}> [<#{c[1..-1]}> ...]"</span>
|
|
796
|
+
110: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">c</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">'!'</span>
|
|
797
|
+
111: <span class="ruby-identifier">tail</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">']'</span>
|
|
798
|
+
112: <span class="ruby-node">"[#{c[1..-1]} "</span>
|
|
799
|
+
113: <span class="ruby-keyword kw">else</span>
|
|
800
|
+
114: <span class="ruby-node">"<#{c}>"</span>
|
|
801
|
+
115: <span class="ruby-keyword kw">end</span>
|
|
802
|
+
116: <span class="ruby-keyword kw">end</span>
|
|
803
|
+
117: <span class="ruby-identifier">args</span> = <span class="ruby-identifier">args</span>.<span class="ruby-identifier">join</span>(<span class="ruby-value str">' '</span>)
|
|
804
|
+
118: <span class="ruby-ivar">@opts</span>.<span class="ruby-identifier">banner</span> <span class="ruby-operator">+=</span> <span class="ruby-node">" #{cmd[:label] + ' ' + args + tail}"</span> <span class="ruby-operator">+</span>
|
|
805
|
+
119: <span class="ruby-node">"\n\n#{' ' * 10 + format(cmd[:descr], 10)}\n"</span>
|
|
806
|
+
120: <span class="ruby-keyword kw">end</span>
|
|
807
|
+
121: <span class="ruby-ivar">@opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'-p'</span>, <span class="ruby-value str">'--port <NUMBER>'</span>, <span class="ruby-constant">Integer</span>,
|
|
808
|
+
122: <span class="ruby-identifier">format</span>(<span class="ruby-value str">'Use the specified TCP/IP port'</span>)) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">arg</span><span class="ruby-operator">|</span>
|
|
809
|
+
123: <span class="ruby-ivar">@port</span> = <span class="ruby-identifier">arg</span>
|
|
810
|
+
124: <span class="ruby-keyword kw">end</span>
|
|
811
|
+
125: <span class="ruby-ivar">@opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'--urifile'</span>, <span class="ruby-constant">String</span>,
|
|
812
|
+
126: <span class="ruby-identifier">format</span>(<span class="ruby-value str">'If the port is 0, use this file to get the URI '</span> <span class="ruby-operator">+</span>
|
|
813
|
+
127: <span class="ruby-value str">'of the server.'</span>)) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">arg</span><span class="ruby-operator">|</span>
|
|
814
|
+
128: <span class="ruby-ivar">@uriFile</span> = <span class="ruby-identifier">arg</span>
|
|
815
|
+
129: <span class="ruby-keyword kw">end</span>
|
|
816
|
+
130: <span class="ruby-ivar">@opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'-r'</span>, <span class="ruby-value str">'--regexp'</span>,
|
|
817
|
+
131: <span class="ruby-identifier">format</span>(<span class="ruby-value str">'The report IDs are not fixed but regular expressions '</span> <span class="ruby-operator">+</span>
|
|
818
|
+
132: <span class="ruby-value str">'that match a set of reports'</span>)) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">arg</span><span class="ruby-operator">|</span>
|
|
819
|
+
133: <span class="ruby-ivar">@regExpMode</span> = <span class="ruby-keyword kw">true</span>
|
|
820
|
+
134: <span class="ruby-keyword kw">end</span>
|
|
821
|
+
135: <span class="ruby-ivar">@opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'--format [FORMAT]'</span>, [ <span class="ruby-value">:csv</span>, <span class="ruby-value">:html</span>, <span class="ruby-value">:niku</span>, <span class="ruby-value">:tjp</span> ],
|
|
822
|
+
136: <span class="ruby-identifier">format</span>(<span class="ruby-value str">'Request the report to be generated in the specified'</span> <span class="ruby-operator">+</span>
|
|
823
|
+
137: <span class="ruby-value str">'format. Use multiple options to request multiple '</span> <span class="ruby-operator">+</span>
|
|
824
|
+
138: <span class="ruby-value str">'formats. Supported formats are csv, html, niku and '</span> <span class="ruby-operator">+</span>
|
|
825
|
+
139: <span class="ruby-value str">'tjp. By default, the formats specified in the report '</span> <span class="ruby-operator">+</span>
|
|
826
|
+
140: <span class="ruby-value str">'definition are used.'</span>)) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">arg</span><span class="ruby-operator">|</span>
|
|
827
|
+
141: <span class="ruby-ivar">@formats</span> = [] <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@formats</span>
|
|
828
|
+
142: <span class="ruby-ivar">@formats</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">arg</span>
|
|
829
|
+
143: <span class="ruby-keyword kw">end</span>
|
|
830
|
+
144: <span class="ruby-keyword kw">end</span>
|
|
831
|
+
145: <span class="ruby-keyword kw">end</span></pre>
|
|
819
832
|
</div>
|
|
820
833
|
|
|
821
834
|
</div>
|
|
@@ -854,19 +867,19 @@ Transfer the <em>tjiFiles</em> to the <em>reportServer</em>.
|
|
|
854
867
|
<div class="method-source-code"
|
|
855
868
|
id="add-iles-source">
|
|
856
869
|
<pre>
|
|
857
|
-
<span class="ruby-comment cmt"># File lib/tj3client.rb, line
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
+
<span class="ruby-comment cmt"># File lib/tj3client.rb, line 429</span>
|
|
871
|
+
429: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">addFiles</span>(<span class="ruby-identifier">tjiFiles</span>)
|
|
872
|
+
430: <span class="ruby-identifier">tjiFiles</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">file</span><span class="ruby-operator">|</span>
|
|
873
|
+
431: <span class="ruby-keyword kw">begin</span>
|
|
874
|
+
432: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@reportServer</span>.<span class="ruby-identifier">addFile</span>(<span class="ruby-ivar">@rs_authKey</span>, <span class="ruby-identifier">file</span>)
|
|
875
|
+
433: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
|
|
876
|
+
434: <span class="ruby-keyword kw">end</span>
|
|
877
|
+
435: <span class="ruby-keyword kw">rescue</span>
|
|
878
|
+
436: <span class="ruby-identifier">error</span>(<span class="ruby-node">"Cannot add file #{file} to ReportServer"</span>)
|
|
879
|
+
437: <span class="ruby-keyword kw">end</span>
|
|
880
|
+
438: <span class="ruby-keyword kw">end</span>
|
|
881
|
+
439: <span class="ruby-keyword kw">true</span>
|
|
882
|
+
440: <span class="ruby-keyword kw">end</span></pre>
|
|
870
883
|
</div>
|
|
871
884
|
|
|
872
885
|
</div>
|
|
@@ -901,15 +914,15 @@ command with the provided arguments.
|
|
|
901
914
|
<div class="method-source-code"
|
|
902
915
|
id="call-aemon-source">
|
|
903
916
|
<pre>
|
|
904
|
-
<span class="ruby-comment cmt"># File lib/tj3client.rb, line
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
917
|
+
<span class="ruby-comment cmt"># File lib/tj3client.rb, line 398</span>
|
|
918
|
+
398: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">callDaemon</span>(<span class="ruby-identifier">command</span>, <span class="ruby-identifier">args</span>)
|
|
919
|
+
399: <span class="ruby-keyword kw">begin</span>
|
|
920
|
+
400: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@broker</span>.<span class="ruby-identifier">command</span>(<span class="ruby-ivar">@authKey</span>, <span class="ruby-identifier">command</span>, <span class="ruby-identifier">args</span>)
|
|
921
|
+
401: <span class="ruby-keyword kw">rescue</span>
|
|
922
|
+
402: <span class="ruby-identifier">error</span>(<span class="ruby-node">"Call to TaskJuggler server on host '#{@host}' "</span> <span class="ruby-operator">+</span>
|
|
923
|
+
403: <span class="ruby-node">"port #{@port} failed: #{$!}"</span>)
|
|
924
|
+
404: <span class="ruby-keyword kw">end</span>
|
|
925
|
+
405: <span class="ruby-keyword kw">end</span></pre>
|
|
913
926
|
</div>
|
|
914
927
|
|
|
915
928
|
</div>
|
|
@@ -940,35 +953,35 @@ command with the provided arguments.
|
|
|
940
953
|
<div class="method-source-code"
|
|
941
954
|
id="check-ommand-source">
|
|
942
955
|
<pre>
|
|
943
|
-
<span class="ruby-comment cmt"># File lib/tj3client.rb, line
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
956
|
+
<span class="ruby-comment cmt"># File lib/tj3client.rb, line 170</span>
|
|
957
|
+
170: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">checkCommand</span>(<span class="ruby-identifier">args</span>)
|
|
958
|
+
171: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">args</span>.<span class="ruby-identifier">empty?</span>
|
|
959
|
+
172: <span class="ruby-identifier">errorMessage</span> = <span class="ruby-value str">'You must specify a command!'</span>
|
|
960
|
+
173: <span class="ruby-keyword kw">else</span>
|
|
961
|
+
174: <span class="ruby-identifier">errorMessage</span> = <span class="ruby-node">"Unknown command #{args[0]}"</span>
|
|
962
|
+
175: <span class="ruby-ivar">@commands</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">cmd</span><span class="ruby-operator">|</span>
|
|
963
|
+
176: <span class="ruby-comment cmt"># The first value of args is the command name.</span>
|
|
964
|
+
177: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cmd</span>[<span class="ruby-value">:label</span>] <span class="ruby-operator">==</span> <span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>]
|
|
965
|
+
178: <span class="ruby-comment cmt"># Find out how many arguments we need to have and if that's a</span>
|
|
966
|
+
179: <span class="ruby-comment cmt"># lower limit or a fixed value.</span>
|
|
967
|
+
180: <span class="ruby-identifier">minArgs</span> = <span class="ruby-value">0</span>
|
|
968
|
+
181: <span class="ruby-identifier">varArgs</span> = <span class="ruby-keyword kw">false</span>
|
|
969
|
+
182: <span class="ruby-identifier">cmd</span>[<span class="ruby-value">:args</span>].<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">arg</span><span class="ruby-operator">|</span>
|
|
970
|
+
183: <span class="ruby-comment cmt"># Arguments starting with '+' must have 1 or more showings.</span>
|
|
971
|
+
184: <span class="ruby-comment cmt"># Arguments starting with '*' may show up 0 or more times.</span>
|
|
972
|
+
185: <span class="ruby-identifier">minArgs</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-value str">'!*'</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">arg</span>[<span class="ruby-value">0</span>])
|
|
973
|
+
186: <span class="ruby-identifier">varArgs</span> = <span class="ruby-keyword kw">true</span> <span class="ruby-keyword kw">if</span> <span class="ruby-value str">'!*+'</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">arg</span>[<span class="ruby-value">0</span>])
|
|
974
|
+
187: <span class="ruby-keyword kw">end</span>
|
|
975
|
+
188: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">args</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span> <span class="ruby-operator">>=</span> <span class="ruby-identifier">minArgs</span>
|
|
976
|
+
189: <span class="ruby-identifier">errorMessage</span> = <span class="ruby-node">"Command #{args[0]} must have "</span> <span class="ruby-operator">+</span>
|
|
977
|
+
190: <span class="ruby-node">"#{varArgs ? 'at least ' : ''}#{minArgs} "</span> <span class="ruby-operator">+</span>
|
|
978
|
+
191: <span class="ruby-value str">'arguments'</span>
|
|
979
|
+
192: <span class="ruby-keyword kw">end</span>
|
|
980
|
+
193: <span class="ruby-keyword kw">end</span>
|
|
981
|
+
194: <span class="ruby-keyword kw">end</span>
|
|
982
|
+
195:
|
|
983
|
+
196: <span class="ruby-identifier">error</span>(<span class="ruby-identifier">errorMessage</span>)
|
|
984
|
+
197: <span class="ruby-keyword kw">end</span></pre>
|
|
972
985
|
</div>
|
|
973
986
|
|
|
974
987
|
</div>
|
|
@@ -999,94 +1012,50 @@ command with the provided arguments.
|
|
|
999
1012
|
<div class="method-source-code"
|
|
1000
1013
|
id="connect-aemon-source">
|
|
1001
1014
|
<pre>
|
|
1002
|
-
<span class="ruby-comment cmt"># File lib/tj3client.rb, line
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
</div>
|
|
1047
|
-
|
|
1048
|
-
</div>
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
</div>
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
<div id="connect-o-roject-erver-method" class="method-detail ">
|
|
1057
|
-
<a name="method-i-connectToProjectServer"></a>
|
|
1058
|
-
|
|
1059
|
-
<div class="method-heading">
|
|
1060
|
-
|
|
1061
|
-
<span class="method-name">connectToProjectServer</span><span
|
|
1062
|
-
class="method-args">()</span>
|
|
1063
|
-
<span class="method-click-advice">click to toggle source</span>
|
|
1064
|
-
|
|
1065
|
-
</div>
|
|
1066
|
-
|
|
1067
|
-
<div class="method-description">
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
<div class="method-source-code"
|
|
1074
|
-
id="connect-o-roject-erver-source">
|
|
1075
|
-
<pre>
|
|
1076
|
-
<span class="ruby-comment cmt"># File lib/tj3client.rb, line 353</span>
|
|
1077
|
-
353: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">connectToProjectServer</span>
|
|
1078
|
-
354: <span class="ruby-ivar">@ps_uri</span>, <span class="ruby-ivar">@ps_authKey</span> = <span class="ruby-identifier">callDaemon</span>(<span class="ruby-value">:addProject</span>, [])
|
|
1079
|
-
355: <span class="ruby-keyword kw">begin</span>
|
|
1080
|
-
356: <span class="ruby-ivar">@projectServer</span> = <span class="ruby-constant">DRbObject</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">nil</span>, <span class="ruby-ivar">@ps_uri</span>)
|
|
1081
|
-
357: <span class="ruby-keyword kw">rescue</span>
|
|
1082
|
-
358: <span class="ruby-identifier">error</span>(<span class="ruby-node">"Can't get ProjectServer object: #{$!}"</span>)
|
|
1083
|
-
359: <span class="ruby-keyword kw">end</span>
|
|
1084
|
-
360: <span class="ruby-keyword kw">begin</span>
|
|
1085
|
-
361: <span class="ruby-ivar">@projectServer</span>.<span class="ruby-identifier">connect</span>(<span class="ruby-ivar">@ps_authKey</span>, <span class="ruby-identifier">$stdout</span>, <span class="ruby-identifier">$stderr</span>, <span class="ruby-identifier">$stdin</span>, <span class="ruby-ivar">@silent</span>)
|
|
1086
|
-
362: <span class="ruby-keyword kw">rescue</span>
|
|
1087
|
-
363: <span class="ruby-identifier">error</span>(<span class="ruby-node">"Can't connect IO: #{$!}"</span>)
|
|
1088
|
-
364: <span class="ruby-keyword kw">end</span>
|
|
1089
|
-
365: <span class="ruby-keyword kw">end</span></pre>
|
|
1015
|
+
<span class="ruby-comment cmt"># File lib/tj3client.rb, line 199</span>
|
|
1016
|
+
199: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">connectDaemon</span>
|
|
1017
|
+
200: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@authKey</span>
|
|
1018
|
+
201: <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">puts</span> <span class="ruby-value str">You must set an authentication key in the configuration file. Create a filenamed .taskjugglerrc or taskjuggler.rc that contains at least the followinglines. Replace 'your_secret_key' with some random character sequence._global: authKey: your_secret_key</span>
|
|
1019
|
+
202: <span class="ruby-keyword kw">end</span>
|
|
1020
|
+
203:
|
|
1021
|
+
204: <span class="ruby-identifier">uri</span> = <span class="ruby-node">"druby://#{@host}:#{@port}"</span>
|
|
1022
|
+
205: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@port</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
|
|
1023
|
+
206: <span class="ruby-comment cmt"># If the @port is configured to 0, we need to read the URI to connect</span>
|
|
1024
|
+
207: <span class="ruby-comment cmt"># to the server from the .tj3d.uri file that has been generated by the</span>
|
|
1025
|
+
208: <span class="ruby-comment cmt"># server.</span>
|
|
1026
|
+
209: <span class="ruby-keyword kw">begin</span>
|
|
1027
|
+
210: <span class="ruby-identifier">uri</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">read</span>(<span class="ruby-ivar">@uriFile</span>).<span class="ruby-identifier">chomp</span>
|
|
1028
|
+
211: <span class="ruby-keyword kw">rescue</span>
|
|
1029
|
+
212: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'The server port is configured to be 0, but no '</span> <span class="ruby-operator">+</span>
|
|
1030
|
+
213: <span class="ruby-node">".tj3d.uri file can be found: #{$!}"</span>)
|
|
1031
|
+
214: <span class="ruby-keyword kw">end</span>
|
|
1032
|
+
215: <span class="ruby-keyword kw">end</span>
|
|
1033
|
+
216:
|
|
1034
|
+
217: <span class="ruby-comment cmt"># We try to play it safe here. The client also starts a DRb server, so</span>
|
|
1035
|
+
218: <span class="ruby-comment cmt"># we need to make sure it's constricted to localhost only. We require</span>
|
|
1036
|
+
219: <span class="ruby-comment cmt"># the DRb server for the standard IO redirection to work.</span>
|
|
1037
|
+
220: <span class="ruby-identifier">$SAFE</span> = <span class="ruby-value">1</span>
|
|
1038
|
+
221: <span class="ruby-constant">DRb</span>.<span class="ruby-identifier">install_acl</span>(<span class="ruby-constant">ACL</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">] deny all
|
|
1039
|
+
222: allow 127.0.0.1 ]</span>))
|
|
1040
|
+
223: <span class="ruby-constant">DRb</span>.<span class="ruby-identifier">start_service</span>(<span class="ruby-value str">'druby://127.0.0.1:0'</span>)
|
|
1041
|
+
224:
|
|
1042
|
+
225: <span class="ruby-keyword kw">begin</span>
|
|
1043
|
+
226: <span class="ruby-comment cmt"># Get the ProjectBroker object from the tj3d.</span>
|
|
1044
|
+
227: <span class="ruby-ivar">@broker</span> = <span class="ruby-constant">DRbObject</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">uri</span>)
|
|
1045
|
+
228: <span class="ruby-comment cmt"># Client and server should always come from the same Gem. Since we</span>
|
|
1046
|
+
229: <span class="ruby-comment cmt"># restict communication to localhost, that's probably not a problem.</span>
|
|
1047
|
+
230: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">check</span> = <span class="ruby-ivar">@broker</span>.<span class="ruby-identifier">apiVersion</span>(<span class="ruby-ivar">@authKey</span>, <span class="ruby-value">1</span>)) <span class="ruby-operator"><</span> <span class="ruby-value">0</span>
|
|
1048
|
+
231: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'This client is too old for the server. Please '</span> <span class="ruby-operator">+</span>
|
|
1049
|
+
232: <span class="ruby-value str">'upgrade to a more recent version of the software.'</span>)
|
|
1050
|
+
233: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">check</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
|
|
1051
|
+
234: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'Authentication failed. Please check your authentication '</span> <span class="ruby-operator">+</span>
|
|
1052
|
+
235: <span class="ruby-value str">'key to match the server key.'</span>)
|
|
1053
|
+
236: <span class="ruby-keyword kw">end</span>
|
|
1054
|
+
237: <span class="ruby-keyword kw">rescue</span>
|
|
1055
|
+
238: <span class="ruby-identifier">error</span>(<span class="ruby-node">"TaskJuggler server on host '#{@host}' port "</span> <span class="ruby-operator">+</span>
|
|
1056
|
+
239: <span class="ruby-node">"#{@port} is not responding"</span>)
|
|
1057
|
+
240: <span class="ruby-keyword kw">end</span>
|
|
1058
|
+
241: <span class="ruby-keyword kw">end</span></pre>
|
|
1090
1059
|
</div>
|
|
1091
1060
|
|
|
1092
1061
|
</div>
|
|
@@ -1117,25 +1086,25 @@ command with the provided arguments.
|
|
|
1117
1086
|
<div class="method-source-code"
|
|
1118
1087
|
id="connect-o-eport-erver-source">
|
|
1119
1088
|
<pre>
|
|
1120
|
-
<span class="ruby-comment cmt"># File lib/tj3client.rb, line
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1089
|
+
<span class="ruby-comment cmt"># File lib/tj3client.rb, line 358</span>
|
|
1090
|
+
358: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">connectToReportServer</span>(<span class="ruby-identifier">projectId</span>)
|
|
1091
|
+
359: <span class="ruby-ivar">@ps_uri</span>, <span class="ruby-ivar">@ps_authKey</span> = <span class="ruby-identifier">callDaemon</span>(<span class="ruby-value">:getProject</span>, <span class="ruby-identifier">projectId</span>)
|
|
1092
|
+
360: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@ps_uri</span>.<span class="ruby-identifier">nil?</span>
|
|
1093
|
+
361: <span class="ruby-identifier">error</span>(<span class="ruby-node">"No project with ID #{projectId} loaded"</span>)
|
|
1094
|
+
362: <span class="ruby-keyword kw">end</span>
|
|
1095
|
+
363: <span class="ruby-keyword kw">begin</span>
|
|
1096
|
+
364: <span class="ruby-ivar">@projectServer</span> = <span class="ruby-constant">DRbObject</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">nil</span>, <span class="ruby-ivar">@ps_uri</span>)
|
|
1097
|
+
365: <span class="ruby-ivar">@rs_uri</span>, <span class="ruby-ivar">@rs_authKey</span> = <span class="ruby-ivar">@projectServer</span>.<span class="ruby-identifier">getReportServer</span>(<span class="ruby-ivar">@ps_authKey</span>)
|
|
1098
|
+
366: <span class="ruby-ivar">@reportServer</span> = <span class="ruby-constant">DRbObject</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">nil</span>, <span class="ruby-ivar">@rs_uri</span>)
|
|
1099
|
+
367: <span class="ruby-keyword kw">rescue</span>
|
|
1100
|
+
368: <span class="ruby-identifier">error</span>(<span class="ruby-value str">"Cannot get report server"</span>)
|
|
1101
|
+
369: <span class="ruby-keyword kw">end</span>
|
|
1102
|
+
370: <span class="ruby-keyword kw">begin</span>
|
|
1103
|
+
371: <span class="ruby-ivar">@reportServer</span>.<span class="ruby-identifier">connect</span>(<span class="ruby-ivar">@rs_authKey</span>, <span class="ruby-identifier">$stdout</span>, <span class="ruby-identifier">$stderr</span>, <span class="ruby-identifier">$stdin</span>, <span class="ruby-ivar">@silent</span>)
|
|
1104
|
+
372: <span class="ruby-keyword kw">rescue</span>
|
|
1105
|
+
373: <span class="ruby-identifier">error</span>(<span class="ruby-node">"Can't connect IO: #{$!}"</span>)
|
|
1106
|
+
374: <span class="ruby-keyword kw">end</span>
|
|
1107
|
+
375: <span class="ruby-keyword kw">end</span></pre>
|
|
1139
1108
|
</div>
|
|
1140
1109
|
|
|
1141
1110
|
</div>
|
|
@@ -1166,50 +1135,12 @@ command with the provided arguments.
|
|
|
1166
1135
|
<div class="method-source-code"
|
|
1167
1136
|
id="disconnect-aemon-source">
|
|
1168
1137
|
<pre>
|
|
1169
|
-
<span class="ruby-comment cmt"># File lib/tj3client.rb, line
|
|
1170
|
-
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
|
-
|
|
1174
|
-
|
|
1175
|
-
</div>
|
|
1176
|
-
|
|
1177
|
-
</div>
|
|
1178
|
-
|
|
1179
|
-
|
|
1180
|
-
|
|
1181
|
-
|
|
1182
|
-
</div>
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
<div id="disconnect-roject-erver-method" class="method-detail ">
|
|
1186
|
-
<a name="method-i-disconnectProjectServer"></a>
|
|
1187
|
-
|
|
1188
|
-
<div class="method-heading">
|
|
1189
|
-
|
|
1190
|
-
<span class="method-name">disconnectProjectServer</span><span
|
|
1191
|
-
class="method-args">()</span>
|
|
1192
|
-
<span class="method-click-advice">click to toggle source</span>
|
|
1193
|
-
|
|
1194
|
-
</div>
|
|
1195
|
-
|
|
1196
|
-
<div class="method-description">
|
|
1197
|
-
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
<div class="method-source-code"
|
|
1203
|
-
id="disconnect-roject-erver-source">
|
|
1204
|
-
<pre>
|
|
1205
|
-
<span class="ruby-comment cmt"># File lib/tj3client.rb, line 367</span>
|
|
1206
|
-
367: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">disconnectProjectServer</span>
|
|
1207
|
-
368: <span class="ruby-keyword kw">begin</span>
|
|
1208
|
-
369: <span class="ruby-ivar">@projectServer</span>.<span class="ruby-identifier">disconnect</span>(<span class="ruby-ivar">@ps_authKey</span>)
|
|
1209
|
-
370: <span class="ruby-keyword kw">rescue</span>
|
|
1210
|
-
371: <span class="ruby-identifier">error</span>(<span class="ruby-node">"Can't disconnect IO: #{$!}"</span>)
|
|
1211
|
-
372: <span class="ruby-keyword kw">end</span>
|
|
1212
|
-
373: <span class="ruby-keyword kw">end</span></pre>
|
|
1138
|
+
<span class="ruby-comment cmt"># File lib/tj3client.rb, line 250</span>
|
|
1139
|
+
250: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">disconnectDaemon</span>
|
|
1140
|
+
251: <span class="ruby-ivar">@broker</span> = <span class="ruby-keyword kw">nil</span>
|
|
1141
|
+
252:
|
|
1142
|
+
253: <span class="ruby-constant">DRb</span>.<span class="ruby-identifier">stop_service</span>
|
|
1143
|
+
254: <span class="ruby-keyword kw">end</span></pre>
|
|
1213
1144
|
</div>
|
|
1214
1145
|
|
|
1215
1146
|
</div>
|
|
@@ -1240,25 +1171,25 @@ command with the provided arguments.
|
|
|
1240
1171
|
<div class="method-source-code"
|
|
1241
1172
|
id="disconnect-eport-erver-source">
|
|
1242
1173
|
<pre>
|
|
1243
|
-
<span class="ruby-comment cmt"># File lib/tj3client.rb, line
|
|
1244
|
-
|
|
1245
|
-
|
|
1246
|
-
|
|
1247
|
-
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
|
|
1257
|
-
|
|
1258
|
-
|
|
1259
|
-
|
|
1260
|
-
|
|
1261
|
-
|
|
1174
|
+
<span class="ruby-comment cmt"># File lib/tj3client.rb, line 377</span>
|
|
1175
|
+
377: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">disconnectReportServer</span>
|
|
1176
|
+
378: <span class="ruby-keyword kw">begin</span>
|
|
1177
|
+
379: <span class="ruby-ivar">@reportServer</span>.<span class="ruby-identifier">disconnect</span>(<span class="ruby-ivar">@rs_authKey</span>)
|
|
1178
|
+
380: <span class="ruby-keyword kw">rescue</span>
|
|
1179
|
+
381: <span class="ruby-identifier">error</span>(<span class="ruby-node">"Can't disconnect IO: #{$!}"</span>)
|
|
1180
|
+
382: <span class="ruby-keyword kw">end</span>
|
|
1181
|
+
383: <span class="ruby-keyword kw">begin</span>
|
|
1182
|
+
384: <span class="ruby-ivar">@reportServer</span>.<span class="ruby-identifier">terminate</span>(<span class="ruby-ivar">@rs_authKey</span>)
|
|
1183
|
+
385: <span class="ruby-keyword kw">rescue</span>
|
|
1184
|
+
386: <span class="ruby-identifier">error</span>(<span class="ruby-node">"Report server termination failed: #{$!}"</span>)
|
|
1185
|
+
387: <span class="ruby-keyword kw">end</span>
|
|
1186
|
+
388: <span class="ruby-ivar">@reportServer</span> = <span class="ruby-keyword kw">nil</span>
|
|
1187
|
+
389: <span class="ruby-ivar">@rs_uri</span> = <span class="ruby-keyword kw">nil</span>
|
|
1188
|
+
390: <span class="ruby-ivar">@rs_authKey</span> = <span class="ruby-keyword kw">nil</span>
|
|
1189
|
+
391: <span class="ruby-ivar">@projectServer</span> = <span class="ruby-keyword kw">nil</span>
|
|
1190
|
+
392: <span class="ruby-ivar">@ps_uri</span> = <span class="ruby-keyword kw">nil</span>
|
|
1191
|
+
393: <span class="ruby-ivar">@ps_authKey</span> = <span class="ruby-keyword kw">nil</span>
|
|
1192
|
+
394: <span class="ruby-keyword kw">end</span></pre>
|
|
1262
1193
|
</div>
|
|
1263
1194
|
|
|
1264
1195
|
</div>
|
|
@@ -1289,11 +1220,11 @@ command with the provided arguments.
|
|
|
1289
1220
|
<div class="method-source-code"
|
|
1290
1221
|
id="error-source">
|
|
1291
1222
|
<pre>
|
|
1292
|
-
<span class="ruby-comment cmt"># File lib/tj3client.rb, line
|
|
1293
|
-
|
|
1294
|
-
|
|
1295
|
-
|
|
1296
|
-
|
|
1223
|
+
<span class="ruby-comment cmt"># File lib/tj3client.rb, line 447</span>
|
|
1224
|
+
447: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">error</span>(<span class="ruby-identifier">message</span>)
|
|
1225
|
+
448: <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">puts</span> <span class="ruby-node">"ERROR: #{message}"</span>
|
|
1226
|
+
449: <span class="ruby-identifier">exit</span> <span class="ruby-value">1</span>
|
|
1227
|
+
450: <span class="ruby-keyword kw">end</span></pre>
|
|
1297
1228
|
</div>
|
|
1298
1229
|
|
|
1299
1230
|
</div>
|
|
@@ -1324,115 +1255,108 @@ command with the provided arguments.
|
|
|
1324
1255
|
<div class="method-source-code"
|
|
1325
1256
|
id="execute-ommand-source">
|
|
1326
1257
|
<pre>
|
|
1327
|
-
<span class="ruby-comment cmt"># File lib/tj3client.rb, line
|
|
1328
|
-
|
|
1329
|
-
|
|
1330
|
-
|
|
1331
|
-
|
|
1332
|
-
|
|
1333
|
-
|
|
1334
|
-
|
|
1335
|
-
|
|
1336
|
-
|
|
1337
|
-
|
|
1338
|
-
|
|
1339
|
-
|
|
1340
|
-
|
|
1341
|
-
|
|
1342
|
-
|
|
1343
|
-
|
|
1344
|
-
|
|
1345
|
-
|
|
1346
|
-
|
|
1347
|
-
|
|
1348
|
-
|
|
1349
|
-
|
|
1350
|
-
|
|
1351
|
-
|
|
1352
|
-
|
|
1353
|
-
|
|
1354
|
-
|
|
1355
|
-
|
|
1356
|
-
|
|
1357
|
-
|
|
1358
|
-
|
|
1359
|
-
|
|
1360
|
-
|
|
1361
|
-
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
|
|
1365
|
-
|
|
1366
|
-
|
|
1367
|
-
|
|
1368
|
-
|
|
1369
|
-
|
|
1370
|
-
|
|
1371
|
-
|
|
1372
|
-
|
|
1373
|
-
|
|
1374
|
-
|
|
1375
|
-
|
|
1376
|
-
|
|
1377
|
-
|
|
1378
|
-
|
|
1379
|
-
|
|
1380
|
-
|
|
1381
|
-
|
|
1382
|
-
|
|
1383
|
-
|
|
1384
|
-
|
|
1385
|
-
|
|
1386
|
-
|
|
1387
|
-
|
|
1388
|
-
|
|
1389
|
-
|
|
1390
|
-
|
|
1391
|
-
|
|
1392
|
-
|
|
1393
|
-
|
|
1394
|
-
|
|
1395
|
-
|
|
1396
|
-
|
|
1397
|
-
|
|
1398
|
-
|
|
1399
|
-
|
|
1400
|
-
|
|
1401
|
-
|
|
1402
|
-
|
|
1403
|
-
|
|
1404
|
-
|
|
1405
|
-
|
|
1406
|
-
|
|
1407
|
-
|
|
1408
|
-
|
|
1409
|
-
|
|
1410
|
-
|
|
1411
|
-
|
|
1412
|
-
|
|
1413
|
-
|
|
1414
|
-
|
|
1415
|
-
|
|
1416
|
-
|
|
1417
|
-
|
|
1418
|
-
|
|
1419
|
-
|
|
1420
|
-
|
|
1421
|
-
|
|
1422
|
-
|
|
1423
|
-
|
|
1424
|
-
|
|
1425
|
-
|
|
1426
|
-
|
|
1427
|
-
|
|
1428
|
-
|
|
1429
|
-
345: <span class="ruby-identifier">disconnectReportServer</span>
|
|
1430
|
-
346: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">res</span> <span class="ruby-operator">?</span> <span class="ruby-value">0</span> <span class="ruby-operator">:</span> <span class="ruby-value">1</span>
|
|
1431
|
-
347: <span class="ruby-keyword kw">else</span>
|
|
1432
|
-
348: <span class="ruby-identifier">raise</span> <span class="ruby-node">"Unknown command #{command}"</span>
|
|
1433
|
-
349: <span class="ruby-keyword kw">end</span>
|
|
1434
|
-
350: <span class="ruby-value">0</span>
|
|
1435
|
-
351: <span class="ruby-keyword kw">end</span></pre>
|
|
1258
|
+
<span class="ruby-comment cmt"># File lib/tj3client.rb, line 256</span>
|
|
1259
|
+
256: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">executeCommand</span>(<span class="ruby-identifier">command</span>, <span class="ruby-identifier">args</span>)
|
|
1260
|
+
257: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">command</span>
|
|
1261
|
+
258: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'status'</span>
|
|
1262
|
+
259: <span class="ruby-identifier">$stdout</span>.<span class="ruby-identifier">puts</span> <span class="ruby-identifier">callDaemon</span>(<span class="ruby-value">:status</span>, [])
|
|
1263
|
+
260: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'terminate'</span>
|
|
1264
|
+
261: <span class="ruby-identifier">callDaemon</span>(<span class="ruby-value">:stop</span>, [])
|
|
1265
|
+
262: <span class="ruby-identifier">info</span>(<span class="ruby-value str">'Daemon terminated'</span>)
|
|
1266
|
+
263: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'add'</span>
|
|
1267
|
+
264: <span class="ruby-identifier">res</span> = <span class="ruby-identifier">callDaemon</span>(<span class="ruby-value">:addProject</span>, [ <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">getwd</span>, <span class="ruby-identifier">args</span>,
|
|
1268
|
+
265: <span class="ruby-identifier">$stdout</span>, <span class="ruby-identifier">$stderr</span>, <span class="ruby-identifier">$stdin</span>, <span class="ruby-ivar">@silent</span> ])
|
|
1269
|
+
266: <span class="ruby-identifier">info</span>(<span class="ruby-node">"Project(s) #{args.join(', ')} added"</span>)
|
|
1270
|
+
267: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">res</span> <span class="ruby-operator">?</span> <span class="ruby-value">0</span> <span class="ruby-operator">:</span> <span class="ruby-value">1</span>
|
|
1271
|
+
268: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'remove'</span>
|
|
1272
|
+
269: <span class="ruby-identifier">args</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">arg</span><span class="ruby-operator">|</span>
|
|
1273
|
+
270: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">callDaemon</span>(<span class="ruby-value">:removeProject</span>, <span class="ruby-identifier">arg</span>)
|
|
1274
|
+
271: <span class="ruby-identifier">error</span>(<span class="ruby-node">"Project '#{arg}' not found in list"</span>)
|
|
1275
|
+
272: <span class="ruby-keyword kw">end</span>
|
|
1276
|
+
273: <span class="ruby-keyword kw">end</span>
|
|
1277
|
+
274: <span class="ruby-identifier">info</span>(<span class="ruby-value str">'Project removed'</span>)
|
|
1278
|
+
275: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'update'</span>
|
|
1279
|
+
276: <span class="ruby-identifier">callDaemon</span>(<span class="ruby-value">:update</span>, [])
|
|
1280
|
+
277: <span class="ruby-identifier">info</span>(<span class="ruby-value str">'Reload requested'</span>)
|
|
1281
|
+
278: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'report'</span>
|
|
1282
|
+
279: <span class="ruby-comment cmt"># The first value of args is the project ID. The following values</span>
|
|
1283
|
+
280: <span class="ruby-comment cmt"># could be either report IDs or TJI file # names ('.' or '*.tji').</span>
|
|
1284
|
+
281: <span class="ruby-identifier">projectId</span> = <span class="ruby-identifier">args</span>.<span class="ruby-identifier">shift</span>
|
|
1285
|
+
282: <span class="ruby-comment cmt"># Ask the ProjectServer to launch a new ReportServer process and</span>
|
|
1286
|
+
283: <span class="ruby-comment cmt"># provide a DRbObject reference to it.</span>
|
|
1287
|
+
284: <span class="ruby-identifier">connectToReportServer</span>(<span class="ruby-identifier">projectId</span>)
|
|
1288
|
+
285:
|
|
1289
|
+
286: <span class="ruby-identifier">reportIds</span>, <span class="ruby-identifier">tjiFiles</span> = <span class="ruby-identifier">splitIdsAndFiles</span>(<span class="ruby-identifier">args</span>)
|
|
1290
|
+
287: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">reportIds</span>.<span class="ruby-identifier">empty?</span>
|
|
1291
|
+
288: <span class="ruby-identifier">disconnectReportServer</span>
|
|
1292
|
+
289: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'You must provide at least one report ID'</span>)
|
|
1293
|
+
290: <span class="ruby-keyword kw">end</span>
|
|
1294
|
+
291: <span class="ruby-comment cmt"># Send the provided .tji files to the ReportServer.</span>
|
|
1295
|
+
292: <span class="ruby-identifier">failed</span> = <span class="ruby-operator">!</span><span class="ruby-identifier">addFiles</span>(<span class="ruby-identifier">tjiFiles</span>)
|
|
1296
|
+
293: <span class="ruby-comment cmt"># Ask the ReportServer to generate the reports with the provided IDs.</span>
|
|
1297
|
+
294: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">failed</span>
|
|
1298
|
+
295: <span class="ruby-identifier">reportIds</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">reportId</span><span class="ruby-operator">|</span>
|
|
1299
|
+
296: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@reportServer</span>.<span class="ruby-identifier">generateReport</span>(<span class="ruby-ivar">@rs_authKey</span>, <span class="ruby-identifier">reportId</span>,
|
|
1300
|
+
297: <span class="ruby-ivar">@regExpMode</span>, <span class="ruby-ivar">@formats</span>, <span class="ruby-keyword kw">nil</span>)
|
|
1301
|
+
298: <span class="ruby-identifier">failed</span> = <span class="ruby-keyword kw">true</span>
|
|
1302
|
+
299: <span class="ruby-keyword kw">break</span>
|
|
1303
|
+
300: <span class="ruby-keyword kw">end</span>
|
|
1304
|
+
301: <span class="ruby-keyword kw">end</span>
|
|
1305
|
+
302: <span class="ruby-keyword kw">end</span>
|
|
1306
|
+
303: <span class="ruby-comment cmt"># Terminate the ReportServer</span>
|
|
1307
|
+
304: <span class="ruby-identifier">disconnectReportServer</span>
|
|
1308
|
+
305: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">failed</span> <span class="ruby-operator">?</span> <span class="ruby-value">1</span> <span class="ruby-operator">:</span> <span class="ruby-value">0</span>
|
|
1309
|
+
306: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'list-reports'</span>
|
|
1310
|
+
307: <span class="ruby-comment cmt"># The first value of args is the project ID. The following values</span>
|
|
1311
|
+
308: <span class="ruby-comment cmt"># could be either report IDs or TJI file # names ('.' or '*.tji').</span>
|
|
1312
|
+
309: <span class="ruby-identifier">projectId</span> = <span class="ruby-identifier">args</span>.<span class="ruby-identifier">shift</span>
|
|
1313
|
+
310: <span class="ruby-comment cmt"># Ask the ProjectServer to launch a new ReportServer process and</span>
|
|
1314
|
+
311: <span class="ruby-comment cmt"># provide a DRbObject reference to it.</span>
|
|
1315
|
+
312: <span class="ruby-identifier">connectToReportServer</span>(<span class="ruby-identifier">projectId</span>)
|
|
1316
|
+
313:
|
|
1317
|
+
314: <span class="ruby-identifier">reportIds</span>, <span class="ruby-identifier">tjiFiles</span> = <span class="ruby-identifier">splitIdsAndFiles</span>(<span class="ruby-identifier">args</span>)
|
|
1318
|
+
315: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">reportIds</span>.<span class="ruby-identifier">empty?</span>
|
|
1319
|
+
316: <span class="ruby-comment cmt"># If the user did not provide a report ID we generate a full list.</span>
|
|
1320
|
+
317: <span class="ruby-identifier">reportIds</span> = [ <span class="ruby-value str">'.*'</span> ]
|
|
1321
|
+
318: <span class="ruby-ivar">@regExpMode</span> = <span class="ruby-keyword kw">true</span>
|
|
1322
|
+
319: <span class="ruby-keyword kw">end</span>
|
|
1323
|
+
320: <span class="ruby-comment cmt"># Send the provided .tji files to the ReportServer.</span>
|
|
1324
|
+
321: <span class="ruby-identifier">failed</span> = <span class="ruby-operator">!</span><span class="ruby-identifier">addFiles</span>(<span class="ruby-identifier">tjiFiles</span>)
|
|
1325
|
+
322: <span class="ruby-comment cmt"># Ask the ReportServer to generate the reports with the provided IDs.</span>
|
|
1326
|
+
323: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">failed</span>
|
|
1327
|
+
324: <span class="ruby-identifier">reportIds</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">reportId</span><span class="ruby-operator">|</span>
|
|
1328
|
+
325: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@reportServer</span>.<span class="ruby-identifier">listReports</span>(<span class="ruby-ivar">@rs_authKey</span>, <span class="ruby-identifier">reportId</span>, <span class="ruby-ivar">@regExpMode</span>)
|
|
1329
|
+
326: <span class="ruby-identifier">failed</span> = <span class="ruby-keyword kw">true</span>
|
|
1330
|
+
327: <span class="ruby-keyword kw">break</span>
|
|
1331
|
+
328: <span class="ruby-keyword kw">end</span>
|
|
1332
|
+
329: <span class="ruby-keyword kw">end</span>
|
|
1333
|
+
330: <span class="ruby-keyword kw">end</span>
|
|
1334
|
+
331: <span class="ruby-comment cmt"># Terminate the ReportServer</span>
|
|
1335
|
+
332: <span class="ruby-identifier">disconnectReportServer</span>
|
|
1336
|
+
333: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">failed</span> <span class="ruby-operator">?</span> <span class="ruby-value">1</span> <span class="ruby-operator">:</span> <span class="ruby-value">0</span>
|
|
1337
|
+
334: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'check-ts'</span>
|
|
1338
|
+
335: <span class="ruby-identifier">connectToReportServer</span>(<span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>])
|
|
1339
|
+
336: <span class="ruby-keyword kw">begin</span>
|
|
1340
|
+
337: <span class="ruby-identifier">res</span> = <span class="ruby-ivar">@reportServer</span>.<span class="ruby-identifier">checkTimeSheet</span>(<span class="ruby-ivar">@rs_authKey</span>, <span class="ruby-identifier">args</span>[<span class="ruby-value">1</span>])
|
|
1341
|
+
338: <span class="ruby-keyword kw">rescue</span>
|
|
1342
|
+
339: <span class="ruby-identifier">error</span>(<span class="ruby-node">"Time sheet check failed: #{$!}"</span>)
|
|
1343
|
+
340: <span class="ruby-keyword kw">end</span>
|
|
1344
|
+
341: <span class="ruby-identifier">disconnectReportServer</span>
|
|
1345
|
+
342: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">res</span> <span class="ruby-operator">?</span> <span class="ruby-value">0</span> <span class="ruby-operator">:</span> <span class="ruby-value">1</span>
|
|
1346
|
+
343: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'check-ss'</span>
|
|
1347
|
+
344: <span class="ruby-identifier">connectToReportServer</span>(<span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>])
|
|
1348
|
+
345: <span class="ruby-keyword kw">begin</span>
|
|
1349
|
+
346: <span class="ruby-identifier">res</span> = <span class="ruby-ivar">@reportServer</span>.<span class="ruby-identifier">checkStatusSheet</span>(<span class="ruby-ivar">@rs_authKey</span>, <span class="ruby-identifier">args</span>[<span class="ruby-value">1</span>])
|
|
1350
|
+
347: <span class="ruby-keyword kw">rescue</span>
|
|
1351
|
+
348: <span class="ruby-identifier">error</span>(<span class="ruby-node">"Status sheet check failed: #{$!}"</span>)
|
|
1352
|
+
349: <span class="ruby-keyword kw">end</span>
|
|
1353
|
+
350: <span class="ruby-identifier">disconnectReportServer</span>
|
|
1354
|
+
351: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">res</span> <span class="ruby-operator">?</span> <span class="ruby-value">0</span> <span class="ruby-operator">:</span> <span class="ruby-value">1</span>
|
|
1355
|
+
352: <span class="ruby-keyword kw">else</span>
|
|
1356
|
+
353: <span class="ruby-identifier">raise</span> <span class="ruby-node">"Unknown command #{command}"</span>
|
|
1357
|
+
354: <span class="ruby-keyword kw">end</span>
|
|
1358
|
+
355: <span class="ruby-value">0</span>
|
|
1359
|
+
356: <span class="ruby-keyword kw">end</span></pre>
|
|
1436
1360
|
</div>
|
|
1437
1361
|
|
|
1438
1362
|
</div>
|
|
@@ -1463,11 +1387,11 @@ command with the provided arguments.
|
|
|
1463
1387
|
<div class="method-source-code"
|
|
1464
1388
|
id="info-source">
|
|
1465
1389
|
<pre>
|
|
1466
|
-
<span class="ruby-comment cmt"># File lib/tj3client.rb, line
|
|
1467
|
-
|
|
1468
|
-
|
|
1469
|
-
|
|
1470
|
-
|
|
1390
|
+
<span class="ruby-comment cmt"># File lib/tj3client.rb, line 442</span>
|
|
1391
|
+
442: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">info</span>(<span class="ruby-identifier">message</span>)
|
|
1392
|
+
443: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@silent</span>
|
|
1393
|
+
444: <span class="ruby-identifier">$stdout</span>.<span class="ruby-identifier">puts</span> <span class="ruby-node">"#{message}"</span>
|
|
1394
|
+
445: <span class="ruby-keyword kw">end</span></pre>
|
|
1471
1395
|
</div>
|
|
1472
1396
|
|
|
1473
1397
|
</div>
|
|
@@ -1502,24 +1426,24 @@ files are present, they must be separated from the report ID list by a
|
|
|
1502
1426
|
<div class="method-source-code"
|
|
1503
1427
|
id="split-ds-nd-iles-source">
|
|
1504
1428
|
<pre>
|
|
1505
|
-
<span class="ruby-comment cmt"># File lib/tj3client.rb, line
|
|
1506
|
-
|
|
1507
|
-
|
|
1508
|
-
|
|
1509
|
-
|
|
1510
|
-
|
|
1511
|
-
|
|
1512
|
-
|
|
1513
|
-
|
|
1514
|
-
|
|
1515
|
-
|
|
1516
|
-
|
|
1517
|
-
|
|
1518
|
-
|
|
1519
|
-
|
|
1520
|
-
|
|
1521
|
-
|
|
1522
|
-
|
|
1429
|
+
<span class="ruby-comment cmt"># File lib/tj3client.rb, line 410</span>
|
|
1430
|
+
410: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">splitIdsAndFiles</span>(<span class="ruby-identifier">args</span>)
|
|
1431
|
+
411: <span class="ruby-identifier">reportIds</span> = []
|
|
1432
|
+
412: <span class="ruby-identifier">tjiFiles</span> = []
|
|
1433
|
+
413: <span class="ruby-identifier">addToReports</span> = <span class="ruby-keyword kw">true</span>
|
|
1434
|
+
414: <span class="ruby-identifier">args</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">arg</span><span class="ruby-operator">|</span>
|
|
1435
|
+
415: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">arg</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'='</span>
|
|
1436
|
+
416: <span class="ruby-comment cmt"># Switch to tji file list.</span>
|
|
1437
|
+
417: <span class="ruby-identifier">addToReports</span> = <span class="ruby-keyword kw">false</span>
|
|
1438
|
+
418: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">addToReports</span>
|
|
1439
|
+
419: <span class="ruby-identifier">reportIds</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">arg</span>
|
|
1440
|
+
420: <span class="ruby-keyword kw">else</span>
|
|
1441
|
+
421: <span class="ruby-identifier">tjiFiles</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">arg</span>
|
|
1442
|
+
422: <span class="ruby-keyword kw">end</span>
|
|
1443
|
+
423: <span class="ruby-keyword kw">end</span>
|
|
1444
|
+
424:
|
|
1445
|
+
425: [ <span class="ruby-identifier">reportIds</span>, <span class="ruby-identifier">tjiFiles</span> ]
|
|
1446
|
+
426: <span class="ruby-keyword kw">end</span></pre>
|
|
1523
1447
|
</div>
|
|
1524
1448
|
|
|
1525
1449
|
</div>
|