taskjuggler 0.0.6 → 0.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG +160 -0
- data/benchmarks/UTF-8-Strings.rb +58 -0
- data/data/css/tjreport.css +7 -2
- data/doc/AppConfig.html +10 -4
- data/doc/Arguments.html +10 -4
- data/doc/CHANGELOG.html +171 -5
- data/doc/COPYING.html +10 -4
- data/doc/Object.html +11 -107
- data/doc/README.html +10 -4
- data/doc/RuntimeConfig.html +10 -4
- data/doc/String.html +16 -11
- data/doc/StringIO.html +10 -4
- data/doc/TaskJuggler.html +506 -435
- data/doc/TaskJuggler/Account.html +10 -4
- data/doc/TaskJuggler/AccountAttribute.html +10 -4
- data/doc/TaskJuggler/AccountScenario.html +10 -4
- data/doc/TaskJuggler/Allocation.html +69 -60
- data/doc/TaskJuggler/AllocationAttribute.html +10 -4
- data/doc/TaskJuggler/AttributeBase.html +10 -4
- data/doc/TaskJuggler/AttributeDefinition.html +10 -4
- data/doc/TaskJuggler/BatchProcessor.html +202 -192
- data/doc/TaskJuggler/Booking.html +10 -4
- data/doc/TaskJuggler/BookingListAttribute.html +10 -4
- data/doc/TaskJuggler/BooleanAttribute.html +10 -4
- data/doc/TaskJuggler/CSVFile.html +10 -4
- data/doc/TaskJuggler/CellSettingPattern.html +10 -4
- data/doc/TaskJuggler/CellSettingPatternList.html +10 -4
- data/doc/TaskJuggler/Charge.html +10 -4
- data/doc/TaskJuggler/ChargeListAttribute.html +10 -4
- data/doc/TaskJuggler/ChargeSet.html +10 -4
- data/doc/TaskJuggler/ChargeSetListAttribute.html +10 -4
- data/doc/TaskJuggler/ColumnListAttribute.html +10 -4
- data/doc/TaskJuggler/ColumnTable.html +10 -4
- data/doc/TaskJuggler/Daemon.html +71 -52
- data/doc/TaskJuggler/DateAttribute.html +10 -4
- data/doc/TaskJuggler/DefinitionListAttribute.html +10 -4
- data/doc/TaskJuggler/DependencyListAttribute.html +10 -4
- data/doc/TaskJuggler/DurationAttribute.html +10 -4
- data/doc/TaskJuggler/{MacroParser.html → FileList.html} +58 -173
- data/doc/TaskJuggler/{RichTextException.html → FileRecord.html} +59 -80
- data/doc/TaskJuggler/FixnumAttribute.html +10 -4
- data/doc/TaskJuggler/FlagListAttribute.html +10 -4
- data/doc/TaskJuggler/FloatAttribute.html +10 -4
- data/doc/TaskJuggler/FormatListAttribute.html +10 -4
- data/doc/TaskJuggler/GanttChart.html +10 -4
- data/doc/TaskJuggler/GanttContainer.html +14 -8
- data/doc/TaskJuggler/GanttHeader.html +10 -4
- data/doc/TaskJuggler/GanttHeaderScaleItem.html +10 -4
- data/doc/TaskJuggler/GanttLine.html +29 -24
- data/doc/TaskJuggler/GanttLoadStack.html +10 -4
- data/doc/TaskJuggler/GanttMilestone.html +10 -4
- data/doc/TaskJuggler/GanttRouter.html +10 -4
- data/doc/TaskJuggler/GanttTaskBar.html +20 -10
- data/doc/TaskJuggler/HTMLDocument.html +10 -4
- data/doc/TaskJuggler/HTMLGraphics.html +10 -4
- data/doc/TaskJuggler/Interval.html +10 -4
- data/doc/TaskJuggler/IntervalListAttribute.html +10 -4
- data/doc/TaskJuggler/JobInfo.html +10 -4
- data/doc/TaskJuggler/Journal.html +227 -160
- data/doc/TaskJuggler/JournalEntry.html +10 -4
- data/doc/TaskJuggler/JournalEntryList.html +158 -72
- data/doc/TaskJuggler/KeywordArray.html +21 -9
- data/doc/TaskJuggler/KeywordDocumentation.html +612 -475
- data/doc/TaskJuggler/Limits.html +13 -8
- data/doc/TaskJuggler/Limits/Limit.html +10 -4
- data/doc/TaskJuggler/LimitsAttribute.html +10 -4
- data/doc/TaskJuggler/ListAttributeBase.html +10 -4
- data/doc/TaskJuggler/Log.html +10 -4
- data/doc/TaskJuggler/LogFile.html +10 -4
- data/doc/TaskJuggler/LogicalAttribute.html +10 -4
- data/doc/TaskJuggler/LogicalExpression.html +11 -5
- data/doc/TaskJuggler/LogicalExpressionAttribute.html +10 -4
- data/doc/TaskJuggler/LogicalFlag.html +10 -4
- data/doc/TaskJuggler/LogicalFunction.html +132 -124
- data/doc/TaskJuggler/LogicalOperation.html +10 -4
- data/doc/TaskJuggler/Macro.html +16 -10
- data/doc/TaskJuggler/MacroTable.html +44 -38
- data/doc/TaskJuggler/ManagerResponsibilities.html +10 -4
- data/doc/TaskJuggler/ManagerStatusRecord.html +10 -4
- data/doc/TaskJuggler/Message.html +92 -68
- data/doc/TaskJuggler/MessageHandler.html +349 -28
- data/doc/TaskJuggler/Navigator.html +10 -4
- data/doc/TaskJuggler/NavigatorElement.html +10 -4
- data/doc/TaskJuggler/NikuProject.html +10 -4
- data/doc/TaskJuggler/NikuReport.html +10 -4
- data/doc/TaskJuggler/NikuResource.html +10 -4
- data/doc/TaskJuggler/NodeListAttribute.html +10 -4
- data/doc/TaskJuggler/OnShiftCache.html +10 -4
- data/doc/TaskJuggler/ProcessIntercom.html +118 -111
- data/doc/TaskJuggler/ProcessIntercomIface.html +75 -22
- data/doc/TaskJuggler/Project.html +886 -913
- data/doc/TaskJuggler/ProjectBroker.html +442 -331
- data/doc/TaskJuggler/ProjectBrokerIface.html +95 -38
- data/doc/TaskJuggler/ProjectFileParser.html +320 -317
- data/doc/TaskJuggler/ProjectFileScanner.html +336 -339
- data/doc/TaskJuggler/ProjectRecord.html +119 -56
- data/doc/TaskJuggler/ProjectServer.html +282 -237
- data/doc/TaskJuggler/ProjectServerIface.html +45 -39
- data/doc/TaskJuggler/PropertyAttribute.html +10 -4
- data/doc/TaskJuggler/PropertyList.html +177 -173
- data/doc/TaskJuggler/PropertySet.html +11 -5
- data/doc/TaskJuggler/PropertyTreeNode.html +194 -191
- data/doc/TaskJuggler/Query.html +280 -256
- data/doc/TaskJuggler/RTFHandlers.html +10 -4
- data/doc/TaskJuggler/RTFNavigator.html +33 -26
- data/doc/TaskJuggler/RTFQuery.html +135 -169
- data/doc/TaskJuggler/RTFReport.html +63 -56
- data/doc/TaskJuggler/RTFReportLink.html +58 -47
- data/doc/TaskJuggler/RTFWithQuerySupport.html +666 -0
- data/doc/TaskJuggler/RealFormat.html +10 -4
- data/doc/TaskJuggler/RealFormatAttribute.html +10 -4
- data/doc/TaskJuggler/ReferenceAttribute.html +10 -4
- data/doc/TaskJuggler/Report.html +333 -290
- data/doc/TaskJuggler/ReportBase.html +182 -174
- data/doc/TaskJuggler/ReportContext.html +10 -4
- data/doc/TaskJuggler/ReportServer.html +144 -126
- data/doc/TaskJuggler/ReportServerIface.html +50 -44
- data/doc/TaskJuggler/ReportServerRecord.html +38 -32
- data/doc/TaskJuggler/ReportServlet.html +144 -137
- data/doc/TaskJuggler/ReportTable.html +10 -4
- data/doc/TaskJuggler/ReportTableCell.html +169 -164
- data/doc/TaskJuggler/ReportTableColumn.html +10 -4
- data/doc/TaskJuggler/ReportTableLegend.html +10 -4
- data/doc/TaskJuggler/ReportTableLine.html +10 -4
- data/doc/TaskJuggler/Resource.html +121 -115
- data/doc/TaskJuggler/ResourceListAttribute.html +10 -4
- data/doc/TaskJuggler/ResourceListRE.html +10 -4
- data/doc/TaskJuggler/ResourceScenario.html +13 -7
- data/doc/TaskJuggler/RichText.html +61 -37
- data/doc/TaskJuggler/RichTextAttribute.html +10 -4
- data/doc/TaskJuggler/RichTextDocument.html +91 -81
- data/doc/TaskJuggler/RichTextElement.html +378 -317
- data/doc/TaskJuggler/RichTextFunctionExample.html +10 -4
- data/doc/TaskJuggler/RichTextFunctionHandler.html +16 -11
- data/doc/TaskJuggler/RichTextImage.html +10 -4
- data/doc/TaskJuggler/RichTextIntermediate.html +138 -70
- data/doc/TaskJuggler/RichTextParser.html +48 -40
- data/doc/TaskJuggler/RichTextScanner.html +328 -906
- data/doc/TaskJuggler/RichTextSnip.html +59 -57
- data/doc/TaskJuggler/RichTextSyntaxRules.html +458 -369
- data/doc/TaskJuggler/Scenario.html +10 -4
- data/doc/TaskJuggler/ScenarioData.html +33 -30
- data/doc/TaskJuggler/ScenarioListAttribute.html +10 -4
- data/doc/TaskJuggler/Scoreboard.html +10 -4
- data/doc/TaskJuggler/SheetHandlerBase.html +315 -191
- data/doc/TaskJuggler/SheetReceiver.html +334 -313
- data/doc/TaskJuggler/SheetSender.html +10 -4
- data/doc/TaskJuggler/Shift.html +10 -4
- data/doc/TaskJuggler/ShiftAssignment.html +10 -4
- data/doc/TaskJuggler/ShiftAssignments.html +10 -4
- data/doc/TaskJuggler/ShiftAssignmentsAttribute.html +10 -4
- data/doc/TaskJuggler/ShiftScenario.html +10 -4
- data/doc/TaskJuggler/SimpleQueryExpander.html +697 -0
- data/doc/TaskJuggler/SortListAttribute.html +10 -4
- data/doc/TaskJuggler/SourceFileInfo.html +10 -4
- data/doc/TaskJuggler/StatusSheetReceiver.html +10 -4
- data/doc/TaskJuggler/StatusSheetReport.html +10 -4
- data/doc/TaskJuggler/StatusSheetSender.html +10 -4
- data/doc/TaskJuggler/StringAttribute.html +10 -4
- data/doc/TaskJuggler/SymbolAttribute.html +10 -4
- data/doc/TaskJuggler/SyntaxReference.html +260 -230
- data/doc/TaskJuggler/TOCEntry.html +99 -42
- data/doc/TaskJuggler/TSResourceRecord.html +10 -4
- data/doc/TaskJuggler/TSTaskRecord.html +10 -4
- data/doc/TaskJuggler/TableColumnDefinition.html +10 -4
- data/doc/TaskJuggler/TableOfContents.html +54 -12
- data/doc/TaskJuggler/TableReport.html +877 -872
- data/doc/TaskJuggler/Task.html +117 -68
- data/doc/TaskJuggler/TaskDependency.html +10 -4
- data/doc/TaskJuggler/TaskListAttribute.html +10 -4
- data/doc/TaskJuggler/TaskListRE.html +10 -4
- data/doc/TaskJuggler/TaskScenario.html +1681 -1563
- data/doc/TaskJuggler/TextFormatter.html +10 -4
- data/doc/TaskJuggler/TextParser.html +567 -534
- data/doc/TaskJuggler/TextParser/Pattern.html +128 -118
- data/doc/TaskJuggler/TextParser/Rule.html +26 -15
- data/doc/TaskJuggler/TextParser/StackElement.html +10 -4
- data/doc/TaskJuggler/TextParser/TextParserResultArray.html +22 -16
- data/doc/TaskJuggler/TextParser/TokenDoc.html +10 -4
- data/doc/TaskJuggler/TextReport.html +15 -6
- data/doc/TaskJuggler/TextScanner.html +319 -287
- data/doc/TaskJuggler/TextScanner/BufferStreamHandle.html +16 -10
- data/doc/TaskJuggler/TextScanner/FileStreamHandle.html +23 -17
- data/doc/TaskJuggler/TextScanner/MacroStackEntry.html +17 -11
- data/doc/TaskJuggler/TextScanner/StreamHandle.html +102 -96
- data/doc/TaskJuggler/TimeSheet.html +138 -175
- data/doc/TaskJuggler/TimeSheetReceiver.html +10 -4
- data/doc/TaskJuggler/TimeSheetRecord.html +65 -58
- data/doc/TaskJuggler/TimeSheetReport.html +47 -42
- data/doc/TaskJuggler/TimeSheetSender.html +10 -4
- data/doc/TaskJuggler/TimeSheetSummary.html +91 -83
- data/doc/TaskJuggler/TimeSheets.html +22 -16
- data/doc/TaskJuggler/Tj3AppBase.html +10 -4
- data/doc/TaskJuggler/Tj3Client.html +399 -365
- data/doc/TaskJuggler/Tj3Daemon.html +107 -94
- data/doc/TaskJuggler/Tj3SheetAppBase.html +10 -4
- data/doc/TaskJuggler/Tj3SsReceiver.html +10 -4
- data/doc/TaskJuggler/Tj3SsSender.html +10 -4
- data/doc/TaskJuggler/Tj3TsReceiver.html +10 -4
- data/doc/TaskJuggler/Tj3TsSender.html +10 -4
- data/doc/TaskJuggler/Tj3TsSummary.html +10 -4
- data/doc/TaskJuggler/TjException.html +10 -4
- data/doc/TaskJuggler/TjTime.html +145 -140
- data/doc/TaskJuggler/TjpExample.html +10 -4
- data/doc/TaskJuggler/TjpExportRE.html +122 -118
- data/doc/TaskJuggler/TjpSyntaxRules.html +4065 -4052
- data/doc/TaskJuggler/URLParameter.html +10 -4
- data/doc/TaskJuggler/UserManual.html +162 -155
- data/doc/TaskJuggler/VimSyntax.html +1028 -0
- data/doc/TaskJuggler/WebServer.html +45 -27
- data/doc/TaskJuggler/WorkingHours.html +10 -4
- data/doc/TaskJuggler/WorkingHoursAttribute.html +10 -4
- data/doc/TaskJuggler/XMLBlob.html +10 -4
- data/doc/TaskJuggler/XMLComment.html +10 -4
- data/doc/TaskJuggler/XMLDocument.html +10 -4
- data/doc/TaskJuggler/XMLElement.html +10 -4
- data/doc/TaskJuggler/XMLNamedText.html +10 -4
- data/doc/TaskJuggler/XMLText.html +10 -4
- data/doc/index.html +735 -677
- data/doc/lib/AccountScenario_rb.html +1 -1
- data/doc/lib/Account_rb.html +1 -1
- data/doc/lib/Allocation_rb.html +1 -1
- data/doc/lib/AppConfig_rb.html +1 -1
- data/doc/lib/AttributeBase_rb.html +1 -1
- data/doc/lib/AttributeDefinition_rb.html +1 -1
- data/doc/lib/Attributes_rb.html +1 -1
- data/doc/lib/BatchProcessor_rb.html +1 -1
- data/doc/lib/Booking_rb.html +1 -1
- data/doc/lib/ChargeSet_rb.html +1 -1
- data/doc/lib/Charge_rb.html +1 -1
- data/doc/lib/{Message_rb.html → FileList_rb.html} +3 -5
- data/doc/lib/HTMLDocument_rb.html +1 -1
- data/doc/lib/Interval_rb.html +1 -1
- data/doc/lib/Journal_rb.html +1 -1
- data/doc/lib/KeywordArray_rb.html +1 -1
- data/doc/lib/KeywordDocumentation_rb.html +1 -1
- data/doc/lib/Limits_rb.html +1 -1
- data/doc/lib/LogFile_rb.html +1 -1
- data/doc/lib/Log_rb.html +1 -1
- data/doc/lib/LogicalExpression_rb.html +1 -1
- data/doc/lib/LogicalFunction_rb.html +1 -1
- data/doc/lib/LogicalOperation_rb.html +1 -1
- data/doc/lib/MacroTable_rb.html +1 -3
- data/doc/lib/MessageHandler_rb.html +1 -1
- data/doc/lib/ProjectFileParser_rb.html +1 -1
- data/doc/lib/ProjectFileScanner_rb.html +1 -1
- data/doc/lib/Project_rb.html +4 -2
- data/doc/lib/PropertyList_rb.html +1 -1
- data/doc/lib/PropertySet_rb.html +1 -1
- data/doc/lib/PropertyTreeNode_rb.html +1 -1
- data/doc/lib/Query_rb.html +1 -1
- data/doc/lib/RTFHandlers_rb.html +1 -1
- data/doc/lib/RTFNavigator_rb.html +1 -1
- data/doc/lib/RTFQuery_rb.html +2 -2
- data/doc/lib/RTFReportLink_rb.html +4 -2
- data/doc/lib/RTFReport_rb.html +1 -1
- data/doc/lib/{MacroParser_rb.html → RTFWithQuerySupport_rb.html} +4 -6
- data/doc/lib/RealFormat_rb.html +1 -1
- data/doc/lib/ResourceScenario_rb.html +1 -1
- data/doc/lib/Resource_rb.html +1 -1
- data/doc/lib/RichTextDocument_rb.html +1 -1
- data/doc/lib/RichTextElement_rb.html +1 -1
- data/doc/lib/RichTextFunctionExample_rb.html +1 -1
- data/doc/lib/RichTextFunctionHandler_rb.html +1 -1
- data/doc/lib/RichTextParser_rb.html +1 -1
- data/doc/lib/RichTextScanner_rb.html +3 -1
- data/doc/lib/RichTextSnip_rb.html +1 -1
- data/doc/lib/RichTextSyntaxRules_rb.html +1 -1
- data/doc/lib/RichText_rb.html +3 -1
- data/doc/lib/RuntimeConfig_rb.html +1 -1
- data/doc/lib/ScenarioData_rb.html +2 -2
- data/doc/lib/Scenario_rb.html +1 -1
- data/doc/lib/Scoreboard_rb.html +1 -1
- data/doc/lib/SheetHandlerBase_rb.html +5 -1
- data/doc/lib/SheetReceiver_rb.html +3 -1
- data/doc/lib/SheetSender_rb.html +1 -1
- data/doc/lib/ShiftAssignments_rb.html +1 -1
- data/doc/lib/ShiftScenario_rb.html +1 -1
- data/doc/lib/Shift_rb.html +1 -1
- data/doc/lib/SimpleQueryExpander_rb.html +67 -0
- data/doc/lib/SourceFileInfo_rb.html +1 -1
- data/doc/lib/StatusSheetReceiver_rb.html +1 -1
- data/doc/lib/StatusSheetSender_rb.html +1 -1
- data/doc/lib/SyntaxReference_rb.html +1 -1
- data/doc/lib/TOCEntry_rb.html +1 -1
- data/doc/lib/TableColumnDefinition_rb.html +1 -1
- data/doc/lib/TableOfContents_rb.html +1 -1
- data/doc/lib/TaskDependency_rb.html +1 -1
- data/doc/lib/TaskJuggler_rb.html +1 -1
- data/doc/lib/TaskScenario_rb.html +1 -1
- data/doc/lib/Task_rb.html +1 -1
- data/doc/lib/TextFormatter_rb.html +1 -1
- data/doc/lib/TextParser/Pattern_rb.html +1 -1
- data/doc/lib/TextParser/Rule_rb.html +1 -1
- data/doc/lib/TextParser/StackElement_rb.html +1 -1
- data/doc/lib/TextParser/TokenDoc_rb.html +1 -1
- data/doc/lib/TextParser_rb.html +3 -1
- data/doc/lib/TextScanner_rb.html +1 -3
- data/doc/lib/TimeSheetReceiver_rb.html +1 -1
- data/doc/lib/TimeSheetSender_rb.html +1 -1
- data/doc/lib/TimeSheetSummary_rb.html +1 -1
- data/doc/lib/TimeSheets_rb.html +1 -1
- data/doc/lib/Tj3AppBase_rb.html +1 -1
- data/doc/lib/Tj3Config_rb.html +1 -1
- data/doc/lib/Tj3SheetAppBase_rb.html +1 -1
- data/doc/lib/TjException_rb.html +1 -1
- data/doc/lib/TjTime_rb.html +1 -1
- data/doc/lib/TjpExample_rb.html +1 -1
- data/doc/lib/TjpSyntaxRules_rb.html +1 -1
- data/doc/lib/URLParameter_rb.html +1 -1
- data/doc/lib/UTF8String_rb.html +1 -1
- data/doc/lib/UserManual_rb.html +1 -1
- data/doc/lib/{ruby-signal-bug_rb.html → VimSyntax_rb.html} +17 -4
- data/doc/lib/WorkingHours_rb.html +1 -1
- data/doc/lib/XMLDocument_rb.html +1 -1
- data/doc/lib/XMLElement_rb.html +1 -1
- data/doc/lib/daemon/Daemon_rb.html +1 -1
- data/doc/lib/daemon/ProcessIntercom_rb.html +1 -1
- data/doc/lib/daemon/ProjectBroker_rb.html +1 -1
- data/doc/lib/daemon/ProjectServer_rb.html +1 -1
- data/doc/lib/daemon/ReportServer_rb.html +1 -3
- data/doc/lib/daemon/WebServer_rb.html +1 -1
- data/doc/lib/deep_copy_rb.html +1 -1
- data/doc/lib/reports/CSVFile_rb.html +1 -1
- data/doc/lib/reports/ColumnTable_rb.html +1 -1
- data/doc/lib/reports/GanttChart_rb.html +1 -1
- data/doc/lib/reports/GanttContainer_rb.html +1 -1
- data/doc/lib/reports/GanttHeaderScaleItem_rb.html +1 -1
- data/doc/lib/reports/GanttHeader_rb.html +1 -1
- data/doc/lib/reports/GanttLine_rb.html +1 -1
- data/doc/lib/reports/GanttLoadStack_rb.html +1 -1
- data/doc/lib/reports/GanttMilestone_rb.html +1 -1
- data/doc/lib/reports/GanttRouter_rb.html +1 -1
- data/doc/lib/reports/GanttTaskBar_rb.html +1 -1
- data/doc/lib/reports/HTMLGraphics_rb.html +1 -1
- data/doc/lib/reports/Navigator_rb.html +1 -1
- data/doc/lib/reports/NikuReport_rb.html +1 -1
- data/doc/lib/reports/ReportBase_rb.html +1 -1
- data/doc/lib/reports/ReportContext_rb.html +1 -1
- data/doc/lib/reports/ReportTableCell_rb.html +1 -1
- data/doc/lib/reports/ReportTableColumn_rb.html +1 -1
- data/doc/lib/reports/ReportTableLegend_rb.html +1 -1
- data/doc/lib/reports/ReportTableLine_rb.html +1 -1
- data/doc/lib/reports/ReportTable_rb.html +1 -1
- data/doc/lib/reports/Report_rb.html +1 -1
- data/doc/lib/reports/ResourceListRE_rb.html +1 -1
- data/doc/lib/reports/StatusSheetReport_rb.html +1 -1
- data/doc/lib/reports/TableReport_rb.html +1 -1
- data/doc/lib/reports/TaskListRE_rb.html +1 -1
- data/doc/lib/reports/TextReport_rb.html +1 -1
- data/doc/lib/reports/TimeSheetReport_rb.html +1 -1
- data/doc/lib/reports/TjpExportRE_rb.html +1 -1
- data/doc/lib/taskjuggler3_rb.html +1 -1
- data/doc/lib/tj3client_rb.html +1 -1
- data/doc/lib/tj3d_rb.html +1 -1
- data/doc/lib/tj3man_rb.html +1 -1
- data/doc/lib/tj3ss_receiver_rb.html +1 -1
- data/doc/lib/tj3ss_sender_rb.html +1 -1
- data/doc/lib/tj3ts_receiver_rb.html +1 -1
- data/doc/lib/tj3ts_sender_rb.html +1 -1
- data/doc/lib/tj3ts_summary_rb.html +1 -1
- data/lib/Allocation.rb +8 -5
- data/lib/BatchProcessor.rb +7 -3
- data/lib/FileList.rb +58 -0
- data/lib/Journal.rb +73 -33
- data/lib/KeywordArray.rb +4 -0
- data/lib/KeywordDocumentation.rb +45 -11
- data/lib/Limits.rb +0 -1
- data/lib/LogicalExpression.rb +1 -1
- data/lib/LogicalFunction.rb +14 -12
- data/lib/MacroTable.rb +3 -4
- data/lib/MessageHandler.rb +136 -7
- data/lib/Project.rb +72 -86
- data/lib/ProjectFileParser.rb +30 -33
- data/lib/ProjectFileScanner.rb +7 -16
- data/lib/PropertyList.rb +25 -27
- data/lib/PropertySet.rb +1 -1
- data/lib/PropertyTreeNode.rb +9 -12
- data/lib/Query.rb +5 -4
- data/lib/RTFNavigator.rb +2 -1
- data/lib/RTFQuery.rb +4 -11
- data/lib/RTFReport.rb +2 -1
- data/lib/RTFReportLink.rb +10 -4
- data/lib/RTFWithQuerySupport.rb +45 -0
- data/lib/Resource.rb +20 -20
- data/lib/ResourceScenario.rb +3 -3
- data/lib/RichText.rb +15 -7
- data/lib/RichTextDocument.rb +8 -4
- data/lib/RichTextElement.rb +35 -12
- data/lib/RichTextFunctionHandler.rb +11 -12
- data/lib/RichTextParser.rb +5 -3
- data/lib/RichTextScanner.rb +144 -565
- data/lib/RichTextSnip.rb +3 -7
- data/lib/RichTextSyntaxRules.rb +51 -32
- data/lib/ScenarioData.rb +16 -25
- data/lib/SheetHandlerBase.rb +59 -2
- data/lib/SheetReceiver.rb +36 -18
- data/lib/SimpleQueryExpander.rb +58 -0
- data/lib/SyntaxReference.rb +9 -5
- data/lib/TOCEntry.rb +2 -0
- data/lib/TableOfContents.rb +4 -0
- data/lib/Task.rb +23 -12
- data/lib/TaskJuggler.rb +72 -33
- data/lib/TaskScenario.rb +131 -53
- data/lib/TextParser.rb +43 -30
- data/lib/TextParser/Pattern.rb +17 -13
- data/lib/TextParser/Rule.rb +5 -0
- data/lib/TextScanner.rb +46 -25
- data/lib/TimeSheetSummary.rb +9 -7
- data/lib/TimeSheets.rb +14 -23
- data/lib/Tj3Config.rb +1 -1
- data/lib/TjTime.rb +1 -2
- data/lib/TjpSyntaxRules.rb +128 -104
- data/lib/UTF8String.rb +0 -1
- data/lib/UserManual.rb +5 -4
- data/lib/VimSyntax.rb +223 -0
- data/lib/daemon/Daemon.rb +9 -0
- data/lib/daemon/ProcessIntercom.rb +19 -4
- data/lib/daemon/ProjectBroker.rb +149 -68
- data/lib/daemon/ProjectServer.rb +119 -79
- data/lib/daemon/ReportServer.rb +42 -31
- data/lib/daemon/WebServer.rb +21 -2
- data/lib/deep_copy.rb +1 -1
- data/lib/reports/GanttContainer.rb +2 -2
- data/lib/reports/GanttLine.rb +2 -3
- data/lib/reports/GanttTaskBar.rb +7 -3
- data/lib/reports/Report.rb +62 -57
- data/lib/reports/ReportBase.rb +6 -4
- data/lib/reports/ReportTableCell.rb +13 -14
- data/lib/reports/TableReport.rb +2 -1
- data/lib/reports/TextReport.rb +3 -0
- data/lib/reports/TimeSheetReport.rb +2 -3
- data/lib/reports/TjpExportRE.rb +0 -2
- data/lib/tj3client.rb +31 -3
- data/lib/tj3d.rb +8 -1
- data/manual/Day_To_Day_Juggling +2 -95
- data/manual/How_To_Contribute +2 -1
- data/manual/Rich_Text_Attributes +37 -3
- data/manual/Software +203 -0
- data/test/MessageChecker.rb +4 -4
- data/test/TestSuite/HTML-Reports/Alerts.html +172 -0
- data/test/TestSuite/HTML-Reports/CellText.html +758 -0
- data/test/TestSuite/HTML-Reports/ColumnPeriods.html +156 -0
- data/test/TestSuite/HTML-Reports/IsOngoing.html +172 -0
- data/test/TestSuite/HTML-Reports/LogicalFunctions.html +245 -0
- data/test/TestSuite/HTML-Reports/Query.html +31 -0
- data/test/TestSuite/HTML-Reports/css/tjmanual.css +14 -0
- data/test/TestSuite/HTML-Reports/css/tjreport.css +233 -21
- data/test/TestSuite/HTML-Reports/depArrows.html +842 -0
- data/test/TestSuite/HTML-Reports/scripts/scripts/wz_tooltip.js +1301 -0
- data/test/TestSuite/HTML-Reports/scripts/wz_tooltip.js +20 -20
- data/test/TestSuite/ReportGenerator/Correct/Alerts.tjp +48 -0
- data/test/TestSuite/ReportGenerator/Correct/Macros.tjp +57 -0
- data/test/TestSuite/ReportGenerator/Correct/refs/Alerts-1.csv +386 -0
- data/test/TestSuite/ReportGenerator/Correct/refs/Macros-1.csv +6 -0
- data/test/TestSuite/ReportGenerator/{Correct → Errors}/css/tjmanual.css +0 -0
- data/test/TestSuite/ReportGenerator/{Correct → Errors}/css/tjreport.css +0 -0
- data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/details.png +0 -0
- data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/flag-green.png +0 -0
- data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/flag-red.png +0 -0
- data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/flag-yellow.png +0 -0
- data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/resource.png +0 -0
- data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/resourcegroup.png +0 -0
- data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/task.png +0 -0
- data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/taskgroup.png +0 -0
- data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/trend-down.png +0 -0
- data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/trend-flat.png +0 -0
- data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/trend-up.png +0 -0
- data/test/TestSuite/ReportGenerator/Errors/rtp_report_recursion.html +26 -0
- data/test/TestSuite/ReportGenerator/{Correct → Errors}/scripts/wz_tooltip.js +0 -0
- data/test/TestSuite/Scheduler/Correct/Allocate.html +3210 -0
- data/test/TestSuite/Scheduler/Correct/Allocate.tjp +19 -0
- data/test/TestSuite/Scheduler/Correct/Container.html +22 -22
- data/test/TestSuite/Scheduler/Correct/Limits.html +4964 -0
- data/test/TestSuite/Scheduler/Correct/Shift.html +1707 -417
- data/test/TestSuite/Scheduler/Correct/Shift2.html +9 -9
- data/test/TestSuite/Scheduler/Correct/css/tjreport.css +6 -2
- data/test/TestSuite/Scheduler/Errors/css/tjmanual.css +66 -0
- data/test/TestSuite/Scheduler/Errors/css/tjreport.css +407 -0
- data/test/TestSuite/Scheduler/Errors/icons/details.png +0 -0
- data/test/TestSuite/Scheduler/Errors/icons/flag-green.png +0 -0
- data/test/TestSuite/Scheduler/Errors/icons/flag-red.png +0 -0
- data/test/TestSuite/Scheduler/Errors/icons/flag-yellow.png +0 -0
- data/test/TestSuite/Scheduler/Errors/icons/resource.png +0 -0
- data/test/TestSuite/Scheduler/Errors/icons/resourcegroup.png +0 -0
- data/test/TestSuite/Scheduler/Errors/icons/task.png +0 -0
- data/test/TestSuite/Scheduler/Errors/icons/taskgroup.png +0 -0
- data/test/TestSuite/Scheduler/Errors/icons/trend-down.png +0 -0
- data/test/TestSuite/Scheduler/Errors/icons/trend-flat.png +0 -0
- data/test/TestSuite/Scheduler/Errors/icons/trend-up.png +0 -0
- data/test/TestSuite/Scheduler/Errors/loop_detected_1.tjp +1 -1
- data/test/TestSuite/Scheduler/Errors/loop_detected_10.tjp +1 -1
- data/test/TestSuite/Scheduler/Errors/loop_detected_11.tjp +1 -1
- data/test/TestSuite/Scheduler/Errors/loop_detected_12.tjp +1 -1
- data/test/TestSuite/Scheduler/Errors/loop_detected_13.tjp +1 -1
- data/test/TestSuite/Scheduler/Errors/loop_detected_14.tjp +1 -1
- data/test/TestSuite/Scheduler/Errors/loop_detected_2.tjp +1 -1
- data/test/TestSuite/Scheduler/Errors/loop_detected_3.tjp +1 -1
- data/test/TestSuite/Scheduler/Errors/loop_detected_4.tjp +1 -1
- data/test/TestSuite/Scheduler/Errors/loop_detected_5.tjp +1 -1
- data/test/TestSuite/Scheduler/Errors/loop_detected_6.tjp +1 -1
- data/test/TestSuite/Scheduler/Errors/loop_detected_7.tjp +1 -1
- data/test/TestSuite/Scheduler/Errors/loop_detected_8.tjp +1 -1
- data/test/TestSuite/Scheduler/Errors/loop_detected_9.tjp +1 -1
- data/test/TestSuite/Scheduler/Errors/scripts/wz_tooltip.js +1301 -0
- data/test/TestSuite/Scheduler/Errors/task_pred_before.tjp +11 -0
- data/test/TestSuite/Scheduler/Errors/task_pred_before_gd.tjp +11 -0
- data/test/TestSuite/Scheduler/Errors/task_pred_before_gl.tjp +11 -0
- data/test/TestSuite/Scheduler/Errors/task_succ_after.tjp +12 -0
- data/test/TestSuite/Scheduler/Errors/task_succ_after_gd.tjp +12 -0
- data/test/TestSuite/Scheduler/Errors/task_succ_after_gl.tjp +12 -0
- data/test/TestSuite/StatusSheets/dev2.tji +22 -0
- data/test/TestSuite/StatusSheets/resrep.tji +7 -0
- data/test/TestSuite/StatusSheets/run +6 -4
- data/test/TestSuite/StatusSheets/tj3d.log +312 -0
- data/test/TestSuite/Syntax/Correct/Managers.html +263 -0
- data/test/TestSuite/Syntax/Correct/tutorial.tjp +1 -2
- data/test/TestSuite/Syntax/Errors/empty.tjp +1 -1
- data/test/TestSuite/Syntax/Errors/macro_stack_overflow.tjp +1 -1
- data/test/TestSuite/TimeSheets/acceptable_intervals +1 -0
- data/test/TestSuite/TimeSheets/resrep.tji +7 -0
- data/test/TestSuite/TimeSheets/run +6 -5
- data/test/TestSuite/TimeSheets/statussheets.log +1 -0
- data/test/TestSuite/TimeSheets/ts.tji +351 -0
- data/test/TestSuite/TimeSheets/tsdef.tji +2 -0
- data/test/test_PropertySet.rb +2 -2
- data/test/test_RichText.rb +178 -387
- data/test/test_SimpleQueryExpander.rb +55 -0
- data/test/test_deep_copy.rb +2 -2
- metadata +854 -834
- data/lib/MacroParser.rb +0 -77
- data/lib/Message.rb +0 -56
- data/lib/ruby-signal-bug.rb +0 -43
- data/test/TestSuite/HTML-Reports/TimeSheet.html +0 -79
- data/test/TestSuite/HTML-Reports/reference.html +0 -51
- data/test/TestSuite/ReportGenerator/Correct/Journal.html +0 -63
- data/test/TestSuite/ReportGenerator/Correct/LogicalFunctions2.csv +0 -3
- data/test/TestSuite/ReportGenerator/Correct/opennodes.csv +0 -2
- data/test/TestSuite/ReportGenerator/Correct/opennodes.tjp +0 -26
- data/test/TestSuite/ReportGenerator/Correct/refs/opennodes-1.csv +0 -2
- data/test/TestSuite/Scheduler/Correct/Booking2.html +0 -603
- data/test/TestSuite/Scheduler/Correct/TimeSheet2.html +0 -108
- data/test/TestSuite/StatusSheetTemplates/project.tji +0 -35
- data/test/TestSuite/StatusSheetTemplates/project.tjp +0 -56
- data/test/TestSuite/Syntax/Correct/ResourcePrefix.html +0 -32
|
@@ -169,6 +169,10 @@
|
|
|
169
169
|
|
|
170
170
|
<li><a href="../TaskJuggler/DurationAttribute.html">TaskJuggler::DurationAttribute</a></li>
|
|
171
171
|
|
|
172
|
+
<li><a href="../TaskJuggler/FileList.html">TaskJuggler::FileList</a></li>
|
|
173
|
+
|
|
174
|
+
<li><a href="../TaskJuggler/FileRecord.html">TaskJuggler::FileRecord</a></li>
|
|
175
|
+
|
|
172
176
|
<li><a href="../TaskJuggler/FixnumAttribute.html">TaskJuggler::FixnumAttribute</a></li>
|
|
173
177
|
|
|
174
178
|
<li><a href="../TaskJuggler/FlagListAttribute.html">TaskJuggler::FlagListAttribute</a></li>
|
|
@@ -241,8 +245,6 @@
|
|
|
241
245
|
|
|
242
246
|
<li><a href="../TaskJuggler/Macro.html">TaskJuggler::Macro</a></li>
|
|
243
247
|
|
|
244
|
-
<li><a href="../TaskJuggler/MacroParser.html">TaskJuggler::MacroParser</a></li>
|
|
245
|
-
|
|
246
248
|
<li><a href="../TaskJuggler/MacroTable.html">TaskJuggler::MacroTable</a></li>
|
|
247
249
|
|
|
248
250
|
<li><a href="../TaskJuggler/ManagerResponsibilities.html">TaskJuggler::ManagerResponsibilities</a></li>
|
|
@@ -307,6 +309,8 @@
|
|
|
307
309
|
|
|
308
310
|
<li><a href="../TaskJuggler/RTFReportLink.html">TaskJuggler::RTFReportLink</a></li>
|
|
309
311
|
|
|
312
|
+
<li><a href="../TaskJuggler/RTFWithQuerySupport.html">TaskJuggler::RTFWithQuerySupport</a></li>
|
|
313
|
+
|
|
310
314
|
<li><a href="../TaskJuggler/RealFormat.html">TaskJuggler::RealFormat</a></li>
|
|
311
315
|
|
|
312
316
|
<li><a href="../TaskJuggler/RealFormatAttribute.html">TaskJuggler::RealFormatAttribute</a></li>
|
|
@@ -353,8 +357,6 @@
|
|
|
353
357
|
|
|
354
358
|
<li><a href="../TaskJuggler/RichTextElement.html">TaskJuggler::RichTextElement</a></li>
|
|
355
359
|
|
|
356
|
-
<li><a href="../TaskJuggler/RichTextException.html">TaskJuggler::RichTextException</a></li>
|
|
357
|
-
|
|
358
360
|
<li><a href="../TaskJuggler/RichTextFunctionExample.html">TaskJuggler::RichTextFunctionExample</a></li>
|
|
359
361
|
|
|
360
362
|
<li><a href="../TaskJuggler/RichTextFunctionHandler.html">TaskJuggler::RichTextFunctionHandler</a></li>
|
|
@@ -395,6 +397,8 @@
|
|
|
395
397
|
|
|
396
398
|
<li><a href="../TaskJuggler/ShiftScenario.html">TaskJuggler::ShiftScenario</a></li>
|
|
397
399
|
|
|
400
|
+
<li><a href="../TaskJuggler/SimpleQueryExpander.html">TaskJuggler::SimpleQueryExpander</a></li>
|
|
401
|
+
|
|
398
402
|
<li><a href="../TaskJuggler/SortListAttribute.html">TaskJuggler::SortListAttribute</a></li>
|
|
399
403
|
|
|
400
404
|
<li><a href="../TaskJuggler/SourceFileInfo.html">TaskJuggler::SourceFileInfo</a></li>
|
|
@@ -505,6 +509,8 @@
|
|
|
505
509
|
|
|
506
510
|
<li><a href="../TaskJuggler/UserManual.html">TaskJuggler::UserManual</a></li>
|
|
507
511
|
|
|
512
|
+
<li><a href="../TaskJuggler/VimSyntax.html">TaskJuggler::VimSyntax</a></li>
|
|
513
|
+
|
|
508
514
|
<li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
|
|
509
515
|
|
|
510
516
|
<li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
|
|
@@ -665,7 +671,7 @@ project data is accessed via tj3client on a tj3 server process.
|
|
|
665
671
|
41: <span class="ruby-comment cmt"># A list of email addresses to send the summary to</span>
|
|
666
672
|
42: <span class="ruby-ivar">@digestRecipients</span> = []
|
|
667
673
|
43:
|
|
668
|
-
44: <span class="ruby-ivar">@resourceIntro</span> = <span class="ruby-value str">"
|
|
674
|
+
44: <span class="ruby-ivar">@resourceIntro</span> = <span class="ruby-value str">"== Weekly Report from <nowiki>%s</nowiki> ==\n"</span>
|
|
669
675
|
45: <span class="ruby-ivar">@resourceSheetSubject</span> = <span class="ruby-value str">"Weekly report %s"</span>
|
|
670
676
|
46: <span class="ruby-ivar">@summarySubject</span> = <span class="ruby-value str">"Weekly staff reports %s"</span>
|
|
671
677
|
47: <span class="ruby-ivar">@reminderSubject</span> = <span class="ruby-value str">"Your time sheet for the period ending %s is overdue!"</span>
|
|
@@ -731,56 +737,57 @@ project data is accessed via tj3client on a tj3 server process.
|
|
|
731
737
|
84: <span class="ruby-comment cmt"># Resource has submitted a time sheet</span>
|
|
732
738
|
85: <span class="ruby-identifier">sheet</span> = <span class="ruby-identifier">getResourceJournal</span>(<span class="ruby-identifier">sheetFile</span>)
|
|
733
739
|
86: <span class="ruby-identifier">summary</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">sprintf</span>(<span class="ruby-ivar">@resourceIntro</span>, <span class="ruby-identifier">resourceName</span>)
|
|
734
|
-
87: <span class="ruby-identifier">summary</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">sheet</span> <span class="ruby-operator">+</span> <span class="ruby-
|
|
740
|
+
87: <span class="ruby-identifier">summary</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">sheet</span> <span class="ruby-operator">+</span> <span class="ruby-value str">"\n----\n"</span>
|
|
735
741
|
88: <span class="ruby-identifier">info</span>(<span class="ruby-node">"Adding report from #{resourceName} to summary"</span>)
|
|
736
742
|
89:
|
|
737
743
|
90: <span class="ruby-ivar">@sheetRecipients</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">to</span><span class="ruby-operator">|</span>
|
|
738
|
-
91: <span class="ruby-identifier">
|
|
739
|
-
92:
|
|
740
|
-
93:
|
|
741
|
-
94:
|
|
742
|
-
95:
|
|
743
|
-
96:
|
|
744
|
-
97: <span class="ruby-
|
|
745
|
-
98: <span class="ruby-
|
|
746
|
-
99:
|
|
747
|
-
100:
|
|
748
|
-
101:
|
|
749
|
-
102:
|
|
750
|
-
103:
|
|
751
|
-
104:
|
|
752
|
-
105: <span class="ruby-
|
|
753
|
-
106: <span class="ruby-identifier">
|
|
754
|
-
107:
|
|
755
|
-
108:
|
|
756
|
-
109: <span class="ruby-
|
|
757
|
-
110: <span class="ruby-identifier">
|
|
758
|
-
111:
|
|
759
|
-
112:
|
|
760
|
-
113: <span class="ruby-comment cmt">#
|
|
761
|
-
114: <span class="ruby-
|
|
762
|
-
115: <span class="ruby-
|
|
763
|
-
116:
|
|
764
|
-
117:
|
|
765
|
-
118:
|
|
766
|
-
119:
|
|
767
|
-
120:
|
|
768
|
-
121:
|
|
769
|
-
122:
|
|
770
|
-
123:
|
|
771
|
-
124:
|
|
772
|
-
125: <span class="ruby-
|
|
773
|
-
126:
|
|
774
|
-
127:
|
|
775
|
-
128:
|
|
776
|
-
129:
|
|
777
|
-
130: <span class="ruby-comment cmt">#
|
|
778
|
-
131: <span class="ruby-
|
|
779
|
-
132:
|
|
780
|
-
133:
|
|
781
|
-
134:
|
|
782
|
-
135:
|
|
783
|
-
136:
|
|
744
|
+
91: <span class="ruby-identifier">sendRichTextEmail</span>(<span class="ruby-identifier">to</span>, <span class="ruby-identifier">sprintf</span>(<span class="ruby-ivar">@resourceSheetSubject</span>, <span class="ruby-ivar">@date</span>),
|
|
745
|
+
92: <span class="ruby-identifier">sheet</span>, <span class="ruby-keyword kw">nil</span>,
|
|
746
|
+
93: <span class="ruby-node">"#{resourceName} <#{resourceEmail}>"</span>)
|
|
747
|
+
94: <span class="ruby-keyword kw">end</span>
|
|
748
|
+
95: <span class="ruby-keyword kw">end</span>
|
|
749
|
+
96: <span class="ruby-keyword kw">else</span>
|
|
750
|
+
97: <span class="ruby-identifier">defaulterList</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">resource</span>
|
|
751
|
+
98: <span class="ruby-comment cmt"># Resource did not submit a time sheet</span>
|
|
752
|
+
99: <span class="ruby-identifier">info</span>(<span class="ruby-node">"Report from #{resourceId} is missing"</span>)
|
|
753
|
+
100: <span class="ruby-keyword kw">end</span>
|
|
754
|
+
101: <span class="ruby-keyword kw">end</span>
|
|
755
|
+
102: <span class="ruby-keyword kw">end</span>
|
|
756
|
+
103:
|
|
757
|
+
104: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">defaulterList</span>.<span class="ruby-identifier">empty?</span>
|
|
758
|
+
105: <span class="ruby-comment cmt"># Prepend the defaulter list to the summary.</span>
|
|
759
|
+
106: <span class="ruby-identifier">text</span> = <span class="ruby-identifier">sprintf</span>(<span class="ruby-ivar">@defaulterHeader</span>, <span class="ruby-identifier">defaulterList</span>.<span class="ruby-identifier">length</span>)
|
|
760
|
+
107: <span class="ruby-identifier">defaulterList</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">resource</span><span class="ruby-operator">|</span>
|
|
761
|
+
108: <span class="ruby-identifier">text</span> <span class="ruby-operator">+=</span> <span class="ruby-node">"* <nowiki>#{resource[1]}</nowiki>\n"</span>
|
|
762
|
+
109: <span class="ruby-keyword kw">end</span>
|
|
763
|
+
110: <span class="ruby-identifier">text</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">"\n----\n"</span>
|
|
764
|
+
111: <span class="ruby-identifier">summary</span> = <span class="ruby-identifier">text</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">summary</span>
|
|
765
|
+
112:
|
|
766
|
+
113: <span class="ruby-comment cmt"># Create a file with the IDs of the resources who's reports are</span>
|
|
767
|
+
114: <span class="ruby-comment cmt"># missing.</span>
|
|
768
|
+
115: <span class="ruby-identifier">missingFile</span> = <span class="ruby-node">"#{@sheetDir}/#{@date}/missing-reports"</span>
|
|
769
|
+
116: <span class="ruby-keyword kw">begin</span>
|
|
770
|
+
117: <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">missingFile</span>, <span class="ruby-value str">'w'</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span>
|
|
771
|
+
118: <span class="ruby-identifier">defaulterList</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">resource</span><span class="ruby-operator">|</span> <span class="ruby-identifier">f</span>.<span class="ruby-identifier">puts</span> <span class="ruby-identifier">resource</span>[<span class="ruby-value">0</span>] }
|
|
772
|
+
119: <span class="ruby-keyword kw">end</span>
|
|
773
|
+
120: <span class="ruby-keyword kw">rescue</span>
|
|
774
|
+
121: <span class="ruby-identifier">error</span>(<span class="ruby-node">"Cannot write file with missing reports (#missingFile): #{$!}"</span>)
|
|
775
|
+
122: <span class="ruby-keyword kw">end</span>
|
|
776
|
+
123: <span class="ruby-keyword kw">end</span>
|
|
777
|
+
124:
|
|
778
|
+
125: <span class="ruby-comment cmt"># Send out the summary text to the list of digest recipients.</span>
|
|
779
|
+
126: <span class="ruby-ivar">@digestRecipients</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">to</span><span class="ruby-operator">|</span>
|
|
780
|
+
127: <span class="ruby-identifier">sendRichTextEmail</span>(<span class="ruby-identifier">to</span>, <span class="ruby-identifier">sprintf</span>(<span class="ruby-ivar">@summarySubject</span>, <span class="ruby-ivar">@date</span>), <span class="ruby-identifier">summary</span>)
|
|
781
|
+
128: <span class="ruby-keyword kw">end</span>
|
|
782
|
+
129:
|
|
783
|
+
130: <span class="ruby-comment cmt"># If there is a reminder text defined, resend the template to those</span>
|
|
784
|
+
131: <span class="ruby-comment cmt"># individuals that have not yet submitted their report yet.</span>
|
|
785
|
+
132: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@reminderText</span> <span class="ruby-operator">&&</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@reminderText</span>.<span class="ruby-identifier">empty?</span>
|
|
786
|
+
133: <span class="ruby-identifier">defaulterList</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">resource</span><span class="ruby-operator">|</span>
|
|
787
|
+
134: <span class="ruby-identifier">sendReminder</span>(<span class="ruby-identifier">resource</span>[<span class="ruby-value">0</span>], <span class="ruby-identifier">resource</span>[<span class="ruby-value">1</span>], <span class="ruby-identifier">resource</span>[<span class="ruby-value">2</span>])
|
|
788
|
+
135: <span class="ruby-keyword kw">end</span>
|
|
789
|
+
136: <span class="ruby-keyword kw">end</span>
|
|
790
|
+
137: <span class="ruby-keyword kw">end</span></pre>
|
|
784
791
|
</div>
|
|
785
792
|
|
|
786
793
|
</div>
|
|
@@ -817,25 +824,26 @@ project data is accessed via tj3client on a tj3 server process.
|
|
|
817
824
|
<div class="method-source-code"
|
|
818
825
|
id="get-esource-ournal-source">
|
|
819
826
|
<pre>
|
|
820
|
-
<span class="ruby-comment cmt"># File lib/TimeSheetSummary.rb, line
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
827
|
+
<span class="ruby-comment cmt"># File lib/TimeSheetSummary.rb, line 153</span>
|
|
828
|
+
153: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">getResourceJournal</span>(<span class="ruby-identifier">sheetFile</span>)
|
|
829
|
+
154: <span class="ruby-identifier">err</span> = <span class="ruby-value str">''</span>
|
|
830
|
+
155: <span class="ruby-identifier">status</span> = <span class="ruby-keyword kw">nil</span>
|
|
831
|
+
156: <span class="ruby-identifier">report</span> = <span class="ruby-keyword kw">nil</span>
|
|
832
|
+
157: <span class="ruby-identifier">warnings</span> = <span class="ruby-keyword kw">nil</span>
|
|
833
|
+
158: <span class="ruby-keyword kw">begin</span>
|
|
834
|
+
159: <span class="ruby-comment cmt"># Save a copy of the sheet for debugging purposes.</span>
|
|
835
|
+
160: <span class="ruby-identifier">command</span> = <span class="ruby-node">"tj3client --silent check-ts #{@projectId} #{sheetFile}"</span>
|
|
836
|
+
161: <span class="ruby-identifier">status</span> = <span class="ruby-constant">Open4</span>.<span class="ruby-identifier">popen4</span>(<span class="ruby-identifier">command</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">pid</span>, <span class="ruby-identifier">stdin</span>, <span class="ruby-identifier">stdout</span>, <span class="ruby-identifier">stderr</span><span class="ruby-operator">|</span>
|
|
837
|
+
162: <span class="ruby-comment cmt"># Send the report to the tj3client process via stdin.</span>
|
|
838
|
+
163: <span class="ruby-identifier">report</span> = <span class="ruby-identifier">stdout</span>.<span class="ruby-identifier">read</span>
|
|
839
|
+
164: <span class="ruby-identifier">warnings</span> = <span class="ruby-identifier">stderr</span>.<span class="ruby-identifier">read</span>
|
|
840
|
+
165: <span class="ruby-keyword kw">end</span>
|
|
841
|
+
166: <span class="ruby-keyword kw">rescue</span>
|
|
842
|
+
167: <span class="ruby-identifier">fatal</span>(<span class="ruby-node">"Cannot summarize sheet: #{$!}"</span>)
|
|
843
|
+
168: <span class="ruby-keyword kw">end</span>
|
|
844
|
+
169:
|
|
845
|
+
170: <span class="ruby-identifier">report</span>
|
|
846
|
+
171: <span class="ruby-keyword kw">end</span></pre>
|
|
839
847
|
</div>
|
|
840
848
|
|
|
841
849
|
</div>
|
|
@@ -866,18 +874,18 @@ project data is accessed via tj3client on a tj3 server process.
|
|
|
866
874
|
<div class="method-source-code"
|
|
867
875
|
id="send-eminder-source">
|
|
868
876
|
<pre>
|
|
869
|
-
<span class="ruby-comment cmt"># File lib/TimeSheetSummary.rb, line
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
877
|
+
<span class="ruby-comment cmt"># File lib/TimeSheetSummary.rb, line 141</span>
|
|
878
|
+
141: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sendReminder</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">name</span>, <span class="ruby-identifier">email</span>)
|
|
879
|
+
142: <span class="ruby-identifier">attachment</span> = <span class="ruby-node">"#{@templateDir}/#{@date}/#{id}_#{@date}.tji"</span>
|
|
880
|
+
143: <span class="ruby-keyword kw">unless</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">exist?</span>(<span class="ruby-identifier">attachment</span>)
|
|
881
|
+
144: <span class="ruby-identifier">error</span>(<span class="ruby-value str">"sendReportTemplates: "</span> <span class="ruby-operator">+</span>
|
|
882
|
+
145: <span class="ruby-node">"#{@sheetType} sheet #{attachment} for #{name} not found"</span>)
|
|
883
|
+
146: <span class="ruby-keyword kw">end</span>
|
|
884
|
+
147:
|
|
885
|
+
148: <span class="ruby-identifier">message</span> = <span class="ruby-node">"Hello #{name}!\n\n#{@reminderText}"</span> <span class="ruby-operator">+</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">read</span>(<span class="ruby-identifier">attachment</span>)
|
|
886
|
+
149:
|
|
887
|
+
150: <span class="ruby-identifier">sendEmail</span>(<span class="ruby-identifier">email</span>, <span class="ruby-identifier">sprintf</span>(<span class="ruby-ivar">@reminderSubject</span>, <span class="ruby-ivar">@date</span>), <span class="ruby-identifier">message</span>, <span class="ruby-identifier">attachment</span>)
|
|
888
|
+
151: <span class="ruby-keyword kw">end</span></pre>
|
|
881
889
|
</div>
|
|
882
890
|
|
|
883
891
|
</div>
|
|
@@ -167,6 +167,10 @@
|
|
|
167
167
|
|
|
168
168
|
<li><a href="../TaskJuggler/DurationAttribute.html">TaskJuggler::DurationAttribute</a></li>
|
|
169
169
|
|
|
170
|
+
<li><a href="../TaskJuggler/FileList.html">TaskJuggler::FileList</a></li>
|
|
171
|
+
|
|
172
|
+
<li><a href="../TaskJuggler/FileRecord.html">TaskJuggler::FileRecord</a></li>
|
|
173
|
+
|
|
170
174
|
<li><a href="../TaskJuggler/FixnumAttribute.html">TaskJuggler::FixnumAttribute</a></li>
|
|
171
175
|
|
|
172
176
|
<li><a href="../TaskJuggler/FlagListAttribute.html">TaskJuggler::FlagListAttribute</a></li>
|
|
@@ -239,8 +243,6 @@
|
|
|
239
243
|
|
|
240
244
|
<li><a href="../TaskJuggler/Macro.html">TaskJuggler::Macro</a></li>
|
|
241
245
|
|
|
242
|
-
<li><a href="../TaskJuggler/MacroParser.html">TaskJuggler::MacroParser</a></li>
|
|
243
|
-
|
|
244
246
|
<li><a href="../TaskJuggler/MacroTable.html">TaskJuggler::MacroTable</a></li>
|
|
245
247
|
|
|
246
248
|
<li><a href="../TaskJuggler/ManagerResponsibilities.html">TaskJuggler::ManagerResponsibilities</a></li>
|
|
@@ -305,6 +307,8 @@
|
|
|
305
307
|
|
|
306
308
|
<li><a href="../TaskJuggler/RTFReportLink.html">TaskJuggler::RTFReportLink</a></li>
|
|
307
309
|
|
|
310
|
+
<li><a href="../TaskJuggler/RTFWithQuerySupport.html">TaskJuggler::RTFWithQuerySupport</a></li>
|
|
311
|
+
|
|
308
312
|
<li><a href="../TaskJuggler/RealFormat.html">TaskJuggler::RealFormat</a></li>
|
|
309
313
|
|
|
310
314
|
<li><a href="../TaskJuggler/RealFormatAttribute.html">TaskJuggler::RealFormatAttribute</a></li>
|
|
@@ -351,8 +355,6 @@
|
|
|
351
355
|
|
|
352
356
|
<li><a href="../TaskJuggler/RichTextElement.html">TaskJuggler::RichTextElement</a></li>
|
|
353
357
|
|
|
354
|
-
<li><a href="../TaskJuggler/RichTextException.html">TaskJuggler::RichTextException</a></li>
|
|
355
|
-
|
|
356
358
|
<li><a href="../TaskJuggler/RichTextFunctionExample.html">TaskJuggler::RichTextFunctionExample</a></li>
|
|
357
359
|
|
|
358
360
|
<li><a href="../TaskJuggler/RichTextFunctionHandler.html">TaskJuggler::RichTextFunctionHandler</a></li>
|
|
@@ -393,6 +395,8 @@
|
|
|
393
395
|
|
|
394
396
|
<li><a href="../TaskJuggler/ShiftScenario.html">TaskJuggler::ShiftScenario</a></li>
|
|
395
397
|
|
|
398
|
+
<li><a href="../TaskJuggler/SimpleQueryExpander.html">TaskJuggler::SimpleQueryExpander</a></li>
|
|
399
|
+
|
|
396
400
|
<li><a href="../TaskJuggler/SortListAttribute.html">TaskJuggler::SortListAttribute</a></li>
|
|
397
401
|
|
|
398
402
|
<li><a href="../TaskJuggler/SourceFileInfo.html">TaskJuggler::SourceFileInfo</a></li>
|
|
@@ -503,6 +507,8 @@
|
|
|
503
507
|
|
|
504
508
|
<li><a href="../TaskJuggler/UserManual.html">TaskJuggler::UserManual</a></li>
|
|
505
509
|
|
|
510
|
+
<li><a href="../TaskJuggler/VimSyntax.html">TaskJuggler::VimSyntax</a></li>
|
|
511
|
+
|
|
506
512
|
<li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
|
|
507
513
|
|
|
508
514
|
<li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
|
|
@@ -583,10 +589,10 @@ A class to hold all time sheets of a project.
|
|
|
583
589
|
<div class="method-source-code"
|
|
584
590
|
id="new-source">
|
|
585
591
|
<pre>
|
|
586
|
-
<span class="ruby-comment cmt"># File lib/TimeSheets.rb, line
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
592
|
+
<span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 383</span>
|
|
593
|
+
383: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>
|
|
594
|
+
384: <span class="ruby-keyword kw">super</span>
|
|
595
|
+
385: <span class="ruby-keyword kw">end</span></pre>
|
|
590
596
|
</div>
|
|
591
597
|
|
|
592
598
|
</div>
|
|
@@ -623,10 +629,10 @@ A class to hold all time sheets of a project.
|
|
|
623
629
|
<div class="method-source-code"
|
|
624
630
|
id="check-source">
|
|
625
631
|
<pre>
|
|
626
|
-
<span class="ruby-comment cmt"># File lib/TimeSheets.rb, line
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
632
|
+
<span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 387</span>
|
|
633
|
+
387: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">check</span>
|
|
634
|
+
388: <span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">s</span><span class="ruby-operator">|</span> <span class="ruby-identifier">s</span>.<span class="ruby-identifier">check</span> }
|
|
635
|
+
389: <span class="ruby-keyword kw">end</span></pre>
|
|
630
636
|
</div>
|
|
631
637
|
|
|
632
638
|
</div>
|
|
@@ -657,10 +663,10 @@ A class to hold all time sheets of a project.
|
|
|
657
663
|
<div class="method-source-code"
|
|
658
664
|
id="warn-n-elta-source">
|
|
659
665
|
<pre>
|
|
660
|
-
<span class="ruby-comment cmt"># File lib/TimeSheets.rb, line
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
666
|
+
<span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 391</span>
|
|
667
|
+
391: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">warnOnDelta</span>
|
|
668
|
+
392: <span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">s</span><span class="ruby-operator">|</span> <span class="ruby-identifier">s</span>.<span class="ruby-identifier">warnOnDelta</span> }
|
|
669
|
+
393: <span class="ruby-keyword kw">end</span></pre>
|
|
664
670
|
</div>
|
|
665
671
|
|
|
666
672
|
</div>
|
|
@@ -169,6 +169,10 @@
|
|
|
169
169
|
|
|
170
170
|
<li><a href="../TaskJuggler/DurationAttribute.html">TaskJuggler::DurationAttribute</a></li>
|
|
171
171
|
|
|
172
|
+
<li><a href="../TaskJuggler/FileList.html">TaskJuggler::FileList</a></li>
|
|
173
|
+
|
|
174
|
+
<li><a href="../TaskJuggler/FileRecord.html">TaskJuggler::FileRecord</a></li>
|
|
175
|
+
|
|
172
176
|
<li><a href="../TaskJuggler/FixnumAttribute.html">TaskJuggler::FixnumAttribute</a></li>
|
|
173
177
|
|
|
174
178
|
<li><a href="../TaskJuggler/FlagListAttribute.html">TaskJuggler::FlagListAttribute</a></li>
|
|
@@ -241,8 +245,6 @@
|
|
|
241
245
|
|
|
242
246
|
<li><a href="../TaskJuggler/Macro.html">TaskJuggler::Macro</a></li>
|
|
243
247
|
|
|
244
|
-
<li><a href="../TaskJuggler/MacroParser.html">TaskJuggler::MacroParser</a></li>
|
|
245
|
-
|
|
246
248
|
<li><a href="../TaskJuggler/MacroTable.html">TaskJuggler::MacroTable</a></li>
|
|
247
249
|
|
|
248
250
|
<li><a href="../TaskJuggler/ManagerResponsibilities.html">TaskJuggler::ManagerResponsibilities</a></li>
|
|
@@ -307,6 +309,8 @@
|
|
|
307
309
|
|
|
308
310
|
<li><a href="../TaskJuggler/RTFReportLink.html">TaskJuggler::RTFReportLink</a></li>
|
|
309
311
|
|
|
312
|
+
<li><a href="../TaskJuggler/RTFWithQuerySupport.html">TaskJuggler::RTFWithQuerySupport</a></li>
|
|
313
|
+
|
|
310
314
|
<li><a href="../TaskJuggler/RealFormat.html">TaskJuggler::RealFormat</a></li>
|
|
311
315
|
|
|
312
316
|
<li><a href="../TaskJuggler/RealFormatAttribute.html">TaskJuggler::RealFormatAttribute</a></li>
|
|
@@ -353,8 +357,6 @@
|
|
|
353
357
|
|
|
354
358
|
<li><a href="../TaskJuggler/RichTextElement.html">TaskJuggler::RichTextElement</a></li>
|
|
355
359
|
|
|
356
|
-
<li><a href="../TaskJuggler/RichTextException.html">TaskJuggler::RichTextException</a></li>
|
|
357
|
-
|
|
358
360
|
<li><a href="../TaskJuggler/RichTextFunctionExample.html">TaskJuggler::RichTextFunctionExample</a></li>
|
|
359
361
|
|
|
360
362
|
<li><a href="../TaskJuggler/RichTextFunctionHandler.html">TaskJuggler::RichTextFunctionHandler</a></li>
|
|
@@ -395,6 +397,8 @@
|
|
|
395
397
|
|
|
396
398
|
<li><a href="../TaskJuggler/ShiftScenario.html">TaskJuggler::ShiftScenario</a></li>
|
|
397
399
|
|
|
400
|
+
<li><a href="../TaskJuggler/SimpleQueryExpander.html">TaskJuggler::SimpleQueryExpander</a></li>
|
|
401
|
+
|
|
398
402
|
<li><a href="../TaskJuggler/SortListAttribute.html">TaskJuggler::SortListAttribute</a></li>
|
|
399
403
|
|
|
400
404
|
<li><a href="../TaskJuggler/SourceFileInfo.html">TaskJuggler::SourceFileInfo</a></li>
|
|
@@ -505,6 +509,8 @@
|
|
|
505
509
|
|
|
506
510
|
<li><a href="../TaskJuggler/UserManual.html">TaskJuggler::UserManual</a></li>
|
|
507
511
|
|
|
512
|
+
<li><a href="../TaskJuggler/VimSyntax.html">TaskJuggler::VimSyntax</a></li>
|
|
513
|
+
|
|
508
514
|
<li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
|
|
509
515
|
|
|
510
516
|
<li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
|
|
@@ -193,6 +193,10 @@
|
|
|
193
193
|
|
|
194
194
|
<li><a href="../TaskJuggler/DurationAttribute.html">TaskJuggler::DurationAttribute</a></li>
|
|
195
195
|
|
|
196
|
+
<li><a href="../TaskJuggler/FileList.html">TaskJuggler::FileList</a></li>
|
|
197
|
+
|
|
198
|
+
<li><a href="../TaskJuggler/FileRecord.html">TaskJuggler::FileRecord</a></li>
|
|
199
|
+
|
|
196
200
|
<li><a href="../TaskJuggler/FixnumAttribute.html">TaskJuggler::FixnumAttribute</a></li>
|
|
197
201
|
|
|
198
202
|
<li><a href="../TaskJuggler/FlagListAttribute.html">TaskJuggler::FlagListAttribute</a></li>
|
|
@@ -265,8 +269,6 @@
|
|
|
265
269
|
|
|
266
270
|
<li><a href="../TaskJuggler/Macro.html">TaskJuggler::Macro</a></li>
|
|
267
271
|
|
|
268
|
-
<li><a href="../TaskJuggler/MacroParser.html">TaskJuggler::MacroParser</a></li>
|
|
269
|
-
|
|
270
272
|
<li><a href="../TaskJuggler/MacroTable.html">TaskJuggler::MacroTable</a></li>
|
|
271
273
|
|
|
272
274
|
<li><a href="../TaskJuggler/ManagerResponsibilities.html">TaskJuggler::ManagerResponsibilities</a></li>
|
|
@@ -331,6 +333,8 @@
|
|
|
331
333
|
|
|
332
334
|
<li><a href="../TaskJuggler/RTFReportLink.html">TaskJuggler::RTFReportLink</a></li>
|
|
333
335
|
|
|
336
|
+
<li><a href="../TaskJuggler/RTFWithQuerySupport.html">TaskJuggler::RTFWithQuerySupport</a></li>
|
|
337
|
+
|
|
334
338
|
<li><a href="../TaskJuggler/RealFormat.html">TaskJuggler::RealFormat</a></li>
|
|
335
339
|
|
|
336
340
|
<li><a href="../TaskJuggler/RealFormatAttribute.html">TaskJuggler::RealFormatAttribute</a></li>
|
|
@@ -377,8 +381,6 @@
|
|
|
377
381
|
|
|
378
382
|
<li><a href="../TaskJuggler/RichTextElement.html">TaskJuggler::RichTextElement</a></li>
|
|
379
383
|
|
|
380
|
-
<li><a href="../TaskJuggler/RichTextException.html">TaskJuggler::RichTextException</a></li>
|
|
381
|
-
|
|
382
384
|
<li><a href="../TaskJuggler/RichTextFunctionExample.html">TaskJuggler::RichTextFunctionExample</a></li>
|
|
383
385
|
|
|
384
386
|
<li><a href="../TaskJuggler/RichTextFunctionHandler.html">TaskJuggler::RichTextFunctionHandler</a></li>
|
|
@@ -419,6 +421,8 @@
|
|
|
419
421
|
|
|
420
422
|
<li><a href="../TaskJuggler/ShiftScenario.html">TaskJuggler::ShiftScenario</a></li>
|
|
421
423
|
|
|
424
|
+
<li><a href="../TaskJuggler/SimpleQueryExpander.html">TaskJuggler::SimpleQueryExpander</a></li>
|
|
425
|
+
|
|
422
426
|
<li><a href="../TaskJuggler/SortListAttribute.html">TaskJuggler::SortListAttribute</a></li>
|
|
423
427
|
|
|
424
428
|
<li><a href="../TaskJuggler/SourceFileInfo.html">TaskJuggler::SourceFileInfo</a></li>
|
|
@@ -529,6 +533,8 @@
|
|
|
529
533
|
|
|
530
534
|
<li><a href="../TaskJuggler/UserManual.html">TaskJuggler::UserManual</a></li>
|
|
531
535
|
|
|
536
|
+
<li><a href="../TaskJuggler/VimSyntax.html">TaskJuggler::VimSyntax</a></li>
|
|
537
|
+
|
|
532
538
|
<li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
|
|
533
539
|
|
|
534
540
|
<li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
|
|
@@ -624,53 +630,60 @@ configured tj3d to work.
|
|
|
624
630
|
36: <span class="ruby-ivar">@host</span> = <span class="ruby-value str">'127.0.0.1'</span>
|
|
625
631
|
37: <span class="ruby-comment cmt"># The default port. 'T' and 'J' in ASCII decimal</span>
|
|
626
632
|
38: <span class="ruby-ivar">@port</span> = <span class="ruby-value">8474</span>
|
|
627
|
-
39: <span class="ruby-comment cmt">#
|
|
628
|
-
40: <span class="ruby-ivar">@
|
|
629
|
-
41: <span class="ruby-comment cmt">#
|
|
630
|
-
42: <span class="ruby-
|
|
631
|
-
43: <span class="ruby-
|
|
632
|
-
44:
|
|
633
|
-
45: <span class="ruby-ivar">@
|
|
633
|
+
39: <span class="ruby-comment cmt"># The file with the server URI in case port is 0.</span>
|
|
634
|
+
40: <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>)
|
|
635
|
+
41: <span class="ruby-comment cmt"># This must must be changed for the communication to work.</span>
|
|
636
|
+
42: <span class="ruby-ivar">@authKey</span> = <span class="ruby-keyword kw">nil</span>
|
|
637
|
+
43: <span class="ruby-comment cmt"># Determines whether report IDs are fix IDs or regular expressions that</span>
|
|
638
|
+
44: <span class="ruby-comment cmt"># match a set of reports.</span>
|
|
639
|
+
45: <span class="ruby-ivar">@regExpMode</span> = <span class="ruby-keyword kw">false</span>
|
|
634
640
|
46:
|
|
635
|
-
47: <span class="ruby-
|
|
636
|
-
48:
|
|
637
|
-
49: <span class="ruby-comment cmt">#
|
|
638
|
-
50: <span class="ruby-comment cmt">#
|
|
639
|
-
51: <span class="ruby-comment cmt">#
|
|
640
|
-
52: <span class="ruby-comment cmt">#
|
|
641
|
-
53: <span class="ruby-comment cmt">#
|
|
642
|
-
54: <span class="ruby-comment cmt">#
|
|
643
|
-
55: <span class="ruby-
|
|
644
|
-
56:
|
|
645
|
-
57:
|
|
646
|
-
58:
|
|
647
|
-
59:
|
|
648
|
-
60: <span class="ruby-value">:
|
|
649
|
-
61:
|
|
650
|
-
62:
|
|
651
|
-
63: <span class="ruby-value">:
|
|
652
|
-
64:
|
|
653
|
-
65:
|
|
654
|
-
66: <span class="ruby-value">:
|
|
655
|
-
67:
|
|
656
|
-
68:
|
|
657
|
-
69: <span class="ruby-value">:
|
|
658
|
-
70:
|
|
659
|
-
71:
|
|
660
|
-
72:
|
|
661
|
-
73: <span class="ruby-value">:
|
|
662
|
-
74:
|
|
663
|
-
75:
|
|
664
|
-
76:
|
|
665
|
-
77: <span class="ruby-value">:
|
|
666
|
-
78:
|
|
667
|
-
79:
|
|
668
|
-
80:
|
|
669
|
-
81: <span class="ruby-value">:
|
|
670
|
-
82:
|
|
671
|
-
83:
|
|
672
|
-
84:
|
|
673
|
-
85:
|
|
641
|
+
47: <span class="ruby-ivar">@mandatoryArgs</span> = <span class="ruby-value str">'<command> [arg1 arg2 ...]'</span>
|
|
642
|
+
48:
|
|
643
|
+
49: <span class="ruby-comment cmt"># This list describes the supported command line commands and their</span>
|
|
644
|
+
50: <span class="ruby-comment cmt"># parameter.</span>
|
|
645
|
+
51: <span class="ruby-comment cmt"># :label : The command name</span>
|
|
646
|
+
52: <span class="ruby-comment cmt"># :args : A list of parameters. If the first character is a '+' the</span>
|
|
647
|
+
53: <span class="ruby-comment cmt"># parameter must be provided 1 or more times. If the first character is</span>
|
|
648
|
+
54: <span class="ruby-comment cmt"># a '*' the parameter must be provided 0 or more times. Repeatable and</span>
|
|
649
|
+
55: <span class="ruby-comment cmt"># optional paramters must follow the mandatory ones.</span>
|
|
650
|
+
56: <span class="ruby-comment cmt"># :descr : A short description of the command used for the help text.</span>
|
|
651
|
+
57: <span class="ruby-ivar">@commands</span> = [
|
|
652
|
+
58: { <span class="ruby-value">:label</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'status'</span>,
|
|
653
|
+
59: <span class="ruby-value">:args</span> =<span class="ruby-operator">></span> [],
|
|
654
|
+
60: <span class="ruby-value">:descr</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'Display the status of the available projects'</span> },
|
|
655
|
+
61: { <span class="ruby-value">:label</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'terminate'</span>,
|
|
656
|
+
62: <span class="ruby-value">:args</span> =<span class="ruby-operator">></span> [],
|
|
657
|
+
63: <span class="ruby-value">:descr</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'Terminate the TaskJuggler daemon'</span> },
|
|
658
|
+
64: { <span class="ruby-value">:label</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'add'</span>,
|
|
659
|
+
65: <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>],
|
|
660
|
+
66: <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> },
|
|
661
|
+
67: { <span class="ruby-value">:label</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'update'</span>,
|
|
662
|
+
68: <span class="ruby-value">:args</span> =<span class="ruby-operator">></span> [],
|
|
663
|
+
69: <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>
|
|
664
|
+
70: <span class="ruby-value str">'are not being reloaded already'</span> },
|
|
665
|
+
71: { <span class="ruby-value">:label</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'remove'</span>,
|
|
666
|
+
72: <span class="ruby-value">:args</span> =<span class="ruby-operator">></span> [ <span class="ruby-value str">'+project ID'</span> ],
|
|
667
|
+
73: <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>
|
|
668
|
+
74: <span class="ruby-value str">'daemon'</span> },
|
|
669
|
+
75: { <span class="ruby-value">:label</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'report'</span>,
|
|
670
|
+
76: <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>],
|
|
671
|
+
77: <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>
|
|
672
|
+
78: <span class="ruby-value str">'the project with the given ID'</span>},
|
|
673
|
+
79: { <span class="ruby-value">:label</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'list-reports'</span>,
|
|
674
|
+
80: <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> ],
|
|
675
|
+
81: <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>
|
|
676
|
+
82: <span class="ruby-value str">'that match the provided report ID'</span> },
|
|
677
|
+
83: { <span class="ruby-value">:label</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'check-ts'</span>,
|
|
678
|
+
84: <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> ],
|
|
679
|
+
85: <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>
|
|
680
|
+
86: <span class="ruby-value str">'against the project with the given ID'</span>},
|
|
681
|
+
87: { <span class="ruby-value">:label</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'check-ss'</span>,
|
|
682
|
+
88: <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> ],
|
|
683
|
+
89: <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>
|
|
684
|
+
90: <span class="ruby-value str">'against the project with the given ID'</span>}
|
|
685
|
+
91: ]
|
|
686
|
+
92: <span class="ruby-keyword kw">end</span></pre>
|
|
674
687
|
</div>
|
|
675
688
|
|
|
676
689
|
</div>
|
|
@@ -707,21 +720,21 @@ configured tj3d to work.
|
|
|
707
720
|
<div class="method-source-code"
|
|
708
721
|
id="main-source">
|
|
709
722
|
<pre>
|
|
710
|
-
<span class="ruby-comment cmt"># File lib/tj3client.rb, line
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
723
|
+
<span class="ruby-comment cmt"># File lib/tj3client.rb, line 141</span>
|
|
724
|
+
141: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">main</span>
|
|
725
|
+
142: <span class="ruby-identifier">args</span> = <span class="ruby-keyword kw">super</span>
|
|
726
|
+
143: <span class="ruby-comment cmt"># Run a first check of the non-option command line arguments.</span>
|
|
727
|
+
144: <span class="ruby-identifier">checkCommand</span>(<span class="ruby-identifier">args</span>)
|
|
728
|
+
145: <span class="ruby-comment cmt"># Read some configuration variables. Except for the authKey, they are</span>
|
|
729
|
+
146: <span class="ruby-comment cmt"># all optional.</span>
|
|
730
|
+
147: <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>)
|
|
731
|
+
148:
|
|
732
|
+
149: <span class="ruby-identifier">connectDaemon</span>
|
|
733
|
+
150: <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>])
|
|
734
|
+
151: <span class="ruby-identifier">disconnectDaemon</span>
|
|
735
|
+
152:
|
|
736
|
+
153: <span class="ruby-identifier">retVal</span>
|
|
737
|
+
154: <span class="ruby-keyword kw">end</span></pre>
|
|
725
738
|
</div>
|
|
726
739
|
|
|
727
740
|
</div>
|
|
@@ -752,42 +765,47 @@ configured tj3d to work.
|
|
|
752
765
|
<div class="method-source-code"
|
|
753
766
|
id="process-rguments-source">
|
|
754
767
|
<pre>
|
|
755
|
-
<span class="ruby-comment cmt"># File lib/tj3client.rb, line
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
768
|
+
<span class="ruby-comment cmt"># File lib/tj3client.rb, line 94</span>
|
|
769
|
+
94: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">processArguments</span>(<span class="ruby-identifier">argv</span>)
|
|
770
|
+
95: <span class="ruby-keyword kw">super</span> <span class="ruby-keyword kw">do</span>
|
|
771
|
+
96: <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>
|
|
772
|
+
97:
|
|
773
|
+
98: <span class="ruby-comment cmt"># Convert the command list into a help text.</span>
|
|
774
|
+
99: <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>
|
|
775
|
+
100: <span class="ruby-identifier">tail</span> = <span class="ruby-value str">''</span>
|
|
776
|
+
101: <span class="ruby-identifier">args</span> = <span class="ruby-identifier">cmd</span>[<span class="ruby-value">:args</span>].<span class="ruby-identifier">dup</span>
|
|
777
|
+
102: <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>
|
|
778
|
+
103: <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>
|
|
779
|
+
104: <span class="ruby-node">"[<#{c[1..-1]}> ...]"</span>
|
|
780
|
+
105: <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>
|
|
781
|
+
106: <span class="ruby-node">"<#{c[1..-1]}> [<#{c[1..-1]}> ...]"</span>
|
|
782
|
+
107: <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>
|
|
783
|
+
108: <span class="ruby-identifier">tail</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">']'</span>
|
|
784
|
+
109: <span class="ruby-node">"[#{c[1..-1]} "</span>
|
|
785
|
+
110: <span class="ruby-keyword kw">else</span>
|
|
786
|
+
111: <span class="ruby-node">"<#{c}>"</span>
|
|
787
|
+
112: <span class="ruby-keyword kw">end</span>
|
|
788
|
+
113: <span class="ruby-keyword kw">end</span>
|
|
789
|
+
114: <span class="ruby-identifier">args</span> = <span class="ruby-identifier">args</span>.<span class="ruby-identifier">join</span>(<span class="ruby-value str">' '</span>)
|
|
790
|
+
115: <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>
|
|
791
|
+
116: <span class="ruby-node">"\n\n#{' ' * 10 + format(cmd[:descr], 10)}\n"</span>
|
|
792
|
+
117: <span class="ruby-keyword kw">end</span>
|
|
793
|
+
118: <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>,
|
|
794
|
+
119: <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>
|
|
795
|
+
120: <span class="ruby-ivar">@port</span> = <span class="ruby-identifier">arg</span>
|
|
796
|
+
121: <span class="ruby-keyword kw">end</span>
|
|
797
|
+
122: <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>,
|
|
798
|
+
123: <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>
|
|
799
|
+
124: <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>
|
|
800
|
+
125: <span class="ruby-ivar">@uriFile</span> = <span class="ruby-identifier">arg</span>
|
|
801
|
+
126: <span class="ruby-keyword kw">end</span>
|
|
802
|
+
127: <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>,
|
|
803
|
+
128: <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>
|
|
804
|
+
129: <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>
|
|
805
|
+
130: <span class="ruby-ivar">@regExpMode</span> = <span class="ruby-keyword kw">true</span>
|
|
806
|
+
131: <span class="ruby-keyword kw">end</span>
|
|
807
|
+
132: <span class="ruby-keyword kw">end</span>
|
|
808
|
+
133: <span class="ruby-keyword kw">end</span></pre>
|
|
791
809
|
</div>
|
|
792
810
|
|
|
793
811
|
</div>
|
|
@@ -826,19 +844,19 @@ Transfer the <em>tjiFiles</em> to the <em>reportServer</em>.
|
|
|
826
844
|
<div class="method-source-code"
|
|
827
845
|
id="add-iles-source">
|
|
828
846
|
<pre>
|
|
829
|
-
<span class="ruby-comment cmt"># File lib/tj3client.rb, line
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
847
|
+
<span class="ruby-comment cmt"># File lib/tj3client.rb, line 446</span>
|
|
848
|
+
446: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">addFiles</span>(<span class="ruby-identifier">tjiFiles</span>)
|
|
849
|
+
447: <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>
|
|
850
|
+
448: <span class="ruby-keyword kw">begin</span>
|
|
851
|
+
449: <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>)
|
|
852
|
+
450: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
|
|
853
|
+
451: <span class="ruby-keyword kw">end</span>
|
|
854
|
+
452: <span class="ruby-keyword kw">rescue</span>
|
|
855
|
+
453: <span class="ruby-identifier">error</span>(<span class="ruby-node">"Cannot add file #{file} to ReportServer"</span>)
|
|
856
|
+
454: <span class="ruby-keyword kw">end</span>
|
|
857
|
+
455: <span class="ruby-keyword kw">end</span>
|
|
858
|
+
456: <span class="ruby-keyword kw">true</span>
|
|
859
|
+
457: <span class="ruby-keyword kw">end</span></pre>
|
|
842
860
|
</div>
|
|
843
861
|
|
|
844
862
|
</div>
|
|
@@ -873,15 +891,15 @@ command with the provided arguments.
|
|
|
873
891
|
<div class="method-source-code"
|
|
874
892
|
id="call-aemon-source">
|
|
875
893
|
<pre>
|
|
876
|
-
<span class="ruby-comment cmt"># File lib/tj3client.rb, line
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
894
|
+
<span class="ruby-comment cmt"># File lib/tj3client.rb, line 415</span>
|
|
895
|
+
415: <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>)
|
|
896
|
+
416: <span class="ruby-keyword kw">begin</span>
|
|
897
|
+
417: <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>)
|
|
898
|
+
418: <span class="ruby-keyword kw">rescue</span>
|
|
899
|
+
419: <span class="ruby-identifier">error</span>(<span class="ruby-node">"Call to TaskJuggler server on host '#{@host}' "</span> <span class="ruby-operator">+</span>
|
|
900
|
+
420: <span class="ruby-node">"port #{@port} failed: #{$!}"</span>)
|
|
901
|
+
421: <span class="ruby-keyword kw">end</span>
|
|
902
|
+
422: <span class="ruby-keyword kw">end</span></pre>
|
|
885
903
|
</div>
|
|
886
904
|
|
|
887
905
|
</div>
|
|
@@ -912,35 +930,35 @@ command with the provided arguments.
|
|
|
912
930
|
<div class="method-source-code"
|
|
913
931
|
id="check-ommand-source">
|
|
914
932
|
<pre>
|
|
915
|
-
<span class="ruby-comment cmt"># File lib/tj3client.rb, line
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
933
|
+
<span class="ruby-comment cmt"># File lib/tj3client.rb, line 158</span>
|
|
934
|
+
158: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">checkCommand</span>(<span class="ruby-identifier">args</span>)
|
|
935
|
+
159: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">args</span>.<span class="ruby-identifier">empty?</span>
|
|
936
|
+
160: <span class="ruby-identifier">errorMessage</span> = <span class="ruby-value str">'You must specify a command!'</span>
|
|
937
|
+
161: <span class="ruby-keyword kw">else</span>
|
|
938
|
+
162: <span class="ruby-identifier">errorMessage</span> = <span class="ruby-node">"Unknown command #{args[0]}"</span>
|
|
939
|
+
163: <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>
|
|
940
|
+
164: <span class="ruby-comment cmt"># The first value of args is the command name.</span>
|
|
941
|
+
165: <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>]
|
|
942
|
+
166: <span class="ruby-comment cmt"># Find out how many arguments we need to have and if that's a</span>
|
|
943
|
+
167: <span class="ruby-comment cmt"># lower limit or a fixed value.</span>
|
|
944
|
+
168: <span class="ruby-identifier">minArgs</span> = <span class="ruby-value">0</span>
|
|
945
|
+
169: <span class="ruby-identifier">varArgs</span> = <span class="ruby-keyword kw">false</span>
|
|
946
|
+
170: <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>
|
|
947
|
+
171: <span class="ruby-comment cmt"># Arguments starting with '+' must have 1 or more showings.</span>
|
|
948
|
+
172: <span class="ruby-comment cmt"># Arguments starting with '*' may show up 0 or more times.</span>
|
|
949
|
+
173: <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>])
|
|
950
|
+
174: <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>])
|
|
951
|
+
175: <span class="ruby-keyword kw">end</span>
|
|
952
|
+
176: <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>
|
|
953
|
+
177: <span class="ruby-identifier">errorMessage</span> = <span class="ruby-node">"Command #{args[0]} must have "</span> <span class="ruby-operator">+</span>
|
|
954
|
+
178: <span class="ruby-node">"#{varArgs ? 'at least ' : ''}#{minArgs} "</span> <span class="ruby-operator">+</span>
|
|
955
|
+
179: <span class="ruby-value str">'arguments'</span>
|
|
956
|
+
180: <span class="ruby-keyword kw">end</span>
|
|
957
|
+
181: <span class="ruby-keyword kw">end</span>
|
|
958
|
+
182: <span class="ruby-keyword kw">end</span>
|
|
959
|
+
183:
|
|
960
|
+
184: <span class="ruby-identifier">error</span>(<span class="ruby-identifier">errorMessage</span>)
|
|
961
|
+
185: <span class="ruby-keyword kw">end</span></pre>
|
|
944
962
|
</div>
|
|
945
963
|
|
|
946
964
|
</div>
|
|
@@ -971,37 +989,50 @@ command with the provided arguments.
|
|
|
971
989
|
<div class="method-source-code"
|
|
972
990
|
id="connect-aemon-source">
|
|
973
991
|
<pre>
|
|
974
|
-
<span class="ruby-comment cmt"># File lib/tj3client.rb, line
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
191: <span class="ruby-comment cmt"># Client and server should always come from the same Gem. Since we</span>
|
|
992
|
-
192: <span class="ruby-comment cmt"># restict communication to localhost, that's probably not a problem.</span>
|
|
993
|
-
193: <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>
|
|
994
|
-
194: <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>
|
|
995
|
-
195: <span class="ruby-value str">'upgrade to a more recent version of the software.'</span>)
|
|
996
|
-
196: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">check</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
|
|
997
|
-
197: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'Authentication failed. Please check your authentication '</span> <span class="ruby-operator">+</span>
|
|
998
|
-
198: <span class="ruby-value str">'key to match the server key.'</span>)
|
|
999
|
-
199: <span class="ruby-keyword kw">end</span>
|
|
1000
|
-
200: <span class="ruby-keyword kw">rescue</span>
|
|
1001
|
-
201: <span class="ruby-identifier">error</span>(<span class="ruby-node">"TaskJuggler server on host '#{@host}' port "</span> <span class="ruby-operator">+</span>
|
|
1002
|
-
202: <span class="ruby-node">"#{@port} is not responding"</span>)
|
|
992
|
+
<span class="ruby-comment cmt"># File lib/tj3client.rb, line 187</span>
|
|
993
|
+
187: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">connectDaemon</span>
|
|
994
|
+
188: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@authKey</span>
|
|
995
|
+
189: <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>
|
|
996
|
+
190: <span class="ruby-keyword kw">end</span>
|
|
997
|
+
191:
|
|
998
|
+
192: <span class="ruby-identifier">uri</span> = <span class="ruby-node">"druby://#{@host}:#{@port}"</span>
|
|
999
|
+
193: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@port</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
|
|
1000
|
+
194: <span class="ruby-comment cmt"># If the @port is configured to 0, we need to read the URI to connect</span>
|
|
1001
|
+
195: <span class="ruby-comment cmt"># to the server from the .tj3d.uri file that has been generated by the</span>
|
|
1002
|
+
196: <span class="ruby-comment cmt"># server.</span>
|
|
1003
|
+
197: <span class="ruby-keyword kw">begin</span>
|
|
1004
|
+
198: <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>
|
|
1005
|
+
199: <span class="ruby-keyword kw">rescue</span>
|
|
1006
|
+
200: <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>
|
|
1007
|
+
201: <span class="ruby-node">".tj3d.uri file can be found: #{$!}"</span>)
|
|
1008
|
+
202: <span class="ruby-keyword kw">end</span>
|
|
1003
1009
|
203: <span class="ruby-keyword kw">end</span>
|
|
1004
|
-
204:
|
|
1010
|
+
204:
|
|
1011
|
+
205: <span class="ruby-comment cmt"># We try to play it safe here. The client also starts a DRb server, so</span>
|
|
1012
|
+
206: <span class="ruby-comment cmt"># we need to make sure it's constricted to localhost only. We require</span>
|
|
1013
|
+
207: <span class="ruby-comment cmt"># the DRb server for the standard IO redirection to work.</span>
|
|
1014
|
+
208: <span class="ruby-identifier">$SAFE</span> = <span class="ruby-value">1</span>
|
|
1015
|
+
209: <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
|
|
1016
|
+
210: allow 127.0.0.1 ]</span>))
|
|
1017
|
+
211: <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>)
|
|
1018
|
+
212:
|
|
1019
|
+
213: <span class="ruby-keyword kw">begin</span>
|
|
1020
|
+
214: <span class="ruby-comment cmt"># Get the ProjectBroker object from the tj3d.</span>
|
|
1021
|
+
215: <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>)
|
|
1022
|
+
216: <span class="ruby-comment cmt"># Client and server should always come from the same Gem. Since we</span>
|
|
1023
|
+
217: <span class="ruby-comment cmt"># restict communication to localhost, that's probably not a problem.</span>
|
|
1024
|
+
218: <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>
|
|
1025
|
+
219: <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>
|
|
1026
|
+
220: <span class="ruby-value str">'upgrade to a more recent version of the software.'</span>)
|
|
1027
|
+
221: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">check</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
|
|
1028
|
+
222: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'Authentication failed. Please check your authentication '</span> <span class="ruby-operator">+</span>
|
|
1029
|
+
223: <span class="ruby-value str">'key to match the server key.'</span>)
|
|
1030
|
+
224: <span class="ruby-keyword kw">end</span>
|
|
1031
|
+
225: <span class="ruby-keyword kw">rescue</span>
|
|
1032
|
+
226: <span class="ruby-identifier">error</span>(<span class="ruby-node">"TaskJuggler server on host '#{@host}' port "</span> <span class="ruby-operator">+</span>
|
|
1033
|
+
227: <span class="ruby-node">"#{@port} is not responding"</span>)
|
|
1034
|
+
228: <span class="ruby-keyword kw">end</span>
|
|
1035
|
+
229: <span class="ruby-keyword kw">end</span></pre>
|
|
1005
1036
|
</div>
|
|
1006
1037
|
|
|
1007
1038
|
</div>
|
|
@@ -1032,20 +1063,20 @@ command with the provided arguments.
|
|
|
1032
1063
|
<div class="method-source-code"
|
|
1033
1064
|
id="connect-o-roject-erver-source">
|
|
1034
1065
|
<pre>
|
|
1035
|
-
<span class="ruby-comment cmt"># File lib/tj3client.rb, line
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1066
|
+
<span class="ruby-comment cmt"># File lib/tj3client.rb, line 353</span>
|
|
1067
|
+
353: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">connectToProjectServer</span>
|
|
1068
|
+
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>, [])
|
|
1069
|
+
355: <span class="ruby-keyword kw">begin</span>
|
|
1070
|
+
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>)
|
|
1071
|
+
357: <span class="ruby-keyword kw">rescue</span>
|
|
1072
|
+
358: <span class="ruby-identifier">error</span>(<span class="ruby-node">"Can't get ProjectServer object: #{$!}"</span>)
|
|
1073
|
+
359: <span class="ruby-keyword kw">end</span>
|
|
1074
|
+
360: <span class="ruby-keyword kw">begin</span>
|
|
1075
|
+
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>)
|
|
1076
|
+
362: <span class="ruby-keyword kw">rescue</span>
|
|
1077
|
+
363: <span class="ruby-identifier">error</span>(<span class="ruby-node">"Can't connect IO: #{$!}"</span>)
|
|
1078
|
+
364: <span class="ruby-keyword kw">end</span>
|
|
1079
|
+
365: <span class="ruby-keyword kw">end</span></pre>
|
|
1049
1080
|
</div>
|
|
1050
1081
|
|
|
1051
1082
|
</div>
|
|
@@ -1076,25 +1107,25 @@ command with the provided arguments.
|
|
|
1076
1107
|
<div class="method-source-code"
|
|
1077
1108
|
id="connect-o-eport-erver-source">
|
|
1078
1109
|
<pre>
|
|
1079
|
-
<span class="ruby-comment cmt"># File lib/tj3client.rb, line
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1110
|
+
<span class="ruby-comment cmt"># File lib/tj3client.rb, line 375</span>
|
|
1111
|
+
375: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">connectToReportServer</span>(<span class="ruby-identifier">projectId</span>)
|
|
1112
|
+
376: <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>)
|
|
1113
|
+
377: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@ps_uri</span>.<span class="ruby-identifier">nil?</span>
|
|
1114
|
+
378: <span class="ruby-identifier">error</span>(<span class="ruby-node">"No project with ID #{projectId} loaded"</span>)
|
|
1115
|
+
379: <span class="ruby-keyword kw">end</span>
|
|
1116
|
+
380: <span class="ruby-keyword kw">begin</span>
|
|
1117
|
+
381: <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>)
|
|
1118
|
+
382: <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>)
|
|
1119
|
+
383: <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>)
|
|
1120
|
+
384: <span class="ruby-keyword kw">rescue</span>
|
|
1121
|
+
385: <span class="ruby-identifier">error</span>(<span class="ruby-value str">"Cannot get report server"</span>)
|
|
1122
|
+
386: <span class="ruby-keyword kw">end</span>
|
|
1123
|
+
387: <span class="ruby-keyword kw">begin</span>
|
|
1124
|
+
388: <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>)
|
|
1125
|
+
389: <span class="ruby-keyword kw">rescue</span>
|
|
1126
|
+
390: <span class="ruby-identifier">error</span>(<span class="ruby-node">"Can't connect IO: #{$!}"</span>)
|
|
1127
|
+
391: <span class="ruby-keyword kw">end</span>
|
|
1128
|
+
392: <span class="ruby-keyword kw">end</span></pre>
|
|
1098
1129
|
</div>
|
|
1099
1130
|
|
|
1100
1131
|
</div>
|
|
@@ -1125,12 +1156,12 @@ command with the provided arguments.
|
|
|
1125
1156
|
<div class="method-source-code"
|
|
1126
1157
|
id="disconnect-aemon-source">
|
|
1127
1158
|
<pre>
|
|
1128
|
-
<span class="ruby-comment cmt"># File lib/tj3client.rb, line
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1159
|
+
<span class="ruby-comment cmt"># File lib/tj3client.rb, line 238</span>
|
|
1160
|
+
238: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">disconnectDaemon</span>
|
|
1161
|
+
239: <span class="ruby-ivar">@broker</span> = <span class="ruby-keyword kw">nil</span>
|
|
1162
|
+
240:
|
|
1163
|
+
241: <span class="ruby-constant">DRb</span>.<span class="ruby-identifier">stop_service</span>
|
|
1164
|
+
242: <span class="ruby-keyword kw">end</span></pre>
|
|
1134
1165
|
</div>
|
|
1135
1166
|
|
|
1136
1167
|
</div>
|
|
@@ -1161,14 +1192,14 @@ command with the provided arguments.
|
|
|
1161
1192
|
<div class="method-source-code"
|
|
1162
1193
|
id="disconnect-roject-erver-source">
|
|
1163
1194
|
<pre>
|
|
1164
|
-
<span class="ruby-comment cmt"># File lib/tj3client.rb, line
|
|
1165
|
-
|
|
1166
|
-
|
|
1167
|
-
|
|
1168
|
-
|
|
1169
|
-
|
|
1170
|
-
|
|
1171
|
-
|
|
1195
|
+
<span class="ruby-comment cmt"># File lib/tj3client.rb, line 367</span>
|
|
1196
|
+
367: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">disconnectProjectServer</span>
|
|
1197
|
+
368: <span class="ruby-keyword kw">begin</span>
|
|
1198
|
+
369: <span class="ruby-ivar">@projectServer</span>.<span class="ruby-identifier">disconnect</span>(<span class="ruby-ivar">@ps_authKey</span>)
|
|
1199
|
+
370: <span class="ruby-keyword kw">rescue</span>
|
|
1200
|
+
371: <span class="ruby-identifier">error</span>(<span class="ruby-node">"Can't disconnect IO: #{$!}"</span>)
|
|
1201
|
+
372: <span class="ruby-keyword kw">end</span>
|
|
1202
|
+
373: <span class="ruby-keyword kw">end</span></pre>
|
|
1172
1203
|
</div>
|
|
1173
1204
|
|
|
1174
1205
|
</div>
|
|
@@ -1199,25 +1230,25 @@ command with the provided arguments.
|
|
|
1199
1230
|
<div class="method-source-code"
|
|
1200
1231
|
id="disconnect-eport-erver-source">
|
|
1201
1232
|
<pre>
|
|
1202
|
-
<span class="ruby-comment cmt"># File lib/tj3client.rb, line
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
|
|
1206
|
-
|
|
1207
|
-
|
|
1208
|
-
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
|
|
1215
|
-
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
|
|
1220
|
-
|
|
1233
|
+
<span class="ruby-comment cmt"># File lib/tj3client.rb, line 394</span>
|
|
1234
|
+
394: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">disconnectReportServer</span>
|
|
1235
|
+
395: <span class="ruby-keyword kw">begin</span>
|
|
1236
|
+
396: <span class="ruby-ivar">@reportServer</span>.<span class="ruby-identifier">disconnect</span>(<span class="ruby-ivar">@rs_authKey</span>)
|
|
1237
|
+
397: <span class="ruby-keyword kw">rescue</span>
|
|
1238
|
+
398: <span class="ruby-identifier">error</span>(<span class="ruby-node">"Can't disconnect IO: #{$!}"</span>)
|
|
1239
|
+
399: <span class="ruby-keyword kw">end</span>
|
|
1240
|
+
400: <span class="ruby-keyword kw">begin</span>
|
|
1241
|
+
401: <span class="ruby-ivar">@reportServer</span>.<span class="ruby-identifier">terminate</span>(<span class="ruby-ivar">@rs_authKey</span>)
|
|
1242
|
+
402: <span class="ruby-keyword kw">rescue</span>
|
|
1243
|
+
403: <span class="ruby-identifier">error</span>(<span class="ruby-node">"Report server termination failed: #{$!}"</span>)
|
|
1244
|
+
404: <span class="ruby-keyword kw">end</span>
|
|
1245
|
+
405: <span class="ruby-ivar">@reportServer</span> = <span class="ruby-keyword kw">nil</span>
|
|
1246
|
+
406: <span class="ruby-ivar">@rs_uri</span> = <span class="ruby-keyword kw">nil</span>
|
|
1247
|
+
407: <span class="ruby-ivar">@rs_authKey</span> = <span class="ruby-keyword kw">nil</span>
|
|
1248
|
+
408: <span class="ruby-ivar">@projectServer</span> = <span class="ruby-keyword kw">nil</span>
|
|
1249
|
+
409: <span class="ruby-ivar">@ps_uri</span> = <span class="ruby-keyword kw">nil</span>
|
|
1250
|
+
410: <span class="ruby-ivar">@ps_authKey</span> = <span class="ruby-keyword kw">nil</span>
|
|
1251
|
+
411: <span class="ruby-keyword kw">end</span></pre>
|
|
1221
1252
|
</div>
|
|
1222
1253
|
|
|
1223
1254
|
</div>
|
|
@@ -1248,11 +1279,11 @@ command with the provided arguments.
|
|
|
1248
1279
|
<div class="method-source-code"
|
|
1249
1280
|
id="error-source">
|
|
1250
1281
|
<pre>
|
|
1251
|
-
<span class="ruby-comment cmt"># File lib/tj3client.rb, line
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
|
|
1282
|
+
<span class="ruby-comment cmt"># File lib/tj3client.rb, line 464</span>
|
|
1283
|
+
464: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">error</span>(<span class="ruby-identifier">message</span>)
|
|
1284
|
+
465: <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">puts</span> <span class="ruby-node">"ERROR: #{message}"</span>
|
|
1285
|
+
466: <span class="ruby-identifier">exit</span> <span class="ruby-value">1</span>
|
|
1286
|
+
467: <span class="ruby-keyword kw">end</span></pre>
|
|
1256
1287
|
</div>
|
|
1257
1288
|
|
|
1258
1289
|
</div>
|
|
@@ -1283,62 +1314,37 @@ command with the provided arguments.
|
|
|
1283
1314
|
<div class="method-source-code"
|
|
1284
1315
|
id="execute-ommand-source">
|
|
1285
1316
|
<pre>
|
|
1286
|
-
<span class="ruby-comment cmt"># File lib/tj3client.rb, line
|
|
1287
|
-
|
|
1288
|
-
|
|
1289
|
-
|
|
1290
|
-
|
|
1291
|
-
|
|
1292
|
-
|
|
1293
|
-
|
|
1294
|
-
|
|
1295
|
-
|
|
1296
|
-
|
|
1297
|
-
|
|
1298
|
-
|
|
1299
|
-
|
|
1300
|
-
|
|
1301
|
-
|
|
1302
|
-
|
|
1303
|
-
|
|
1304
|
-
|
|
1305
|
-
|
|
1306
|
-
|
|
1307
|
-
|
|
1308
|
-
|
|
1309
|
-
|
|
1310
|
-
|
|
1311
|
-
|
|
1312
|
-
|
|
1313
|
-
|
|
1314
|
-
|
|
1315
|
-
|
|
1316
|
-
|
|
1317
|
-
249: <span class="ruby-comment cmt"># Ask the ProjectServer to launch a new ReportServer process and</span>
|
|
1318
|
-
250: <span class="ruby-comment cmt"># provide a DRbObject reference to it.</span>
|
|
1319
|
-
251: <span class="ruby-identifier">connectToReportServer</span>(<span class="ruby-identifier">projectId</span>)
|
|
1320
|
-
252:
|
|
1321
|
-
253: <span class="ruby-identifier">reportIds</span>, <span class="ruby-identifier">tjiFiles</span> = <span class="ruby-identifier">splitIdsAndFiles</span>(<span class="ruby-identifier">args</span>)
|
|
1322
|
-
254: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">reportIds</span>.<span class="ruby-identifier">empty?</span>
|
|
1323
|
-
255: <span class="ruby-identifier">disconnectReportServer</span>
|
|
1324
|
-
256: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'You must provide at least one report ID'</span>)
|
|
1325
|
-
257: <span class="ruby-keyword kw">end</span>
|
|
1326
|
-
258: <span class="ruby-comment cmt"># Send the provided .tji files to the ReportServer.</span>
|
|
1327
|
-
259: <span class="ruby-identifier">failed</span> = <span class="ruby-operator">!</span><span class="ruby-identifier">addFiles</span>(<span class="ruby-identifier">tjiFiles</span>)
|
|
1328
|
-
260: <span class="ruby-comment cmt"># Ask the ReportServer to generate the reports with the provided IDs.</span>
|
|
1329
|
-
261: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">failed</span>
|
|
1330
|
-
262: <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>
|
|
1331
|
-
263: <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>,
|
|
1332
|
-
264: <span class="ruby-ivar">@regExpMode</span>, <span class="ruby-keyword kw">nil</span>)
|
|
1333
|
-
265: <span class="ruby-identifier">failed</span> = <span class="ruby-keyword kw">true</span>
|
|
1334
|
-
266: <span class="ruby-keyword kw">break</span>
|
|
1335
|
-
267: <span class="ruby-keyword kw">end</span>
|
|
1336
|
-
268: <span class="ruby-keyword kw">end</span>
|
|
1337
|
-
269: <span class="ruby-keyword kw">end</span>
|
|
1338
|
-
270: <span class="ruby-comment cmt"># Terminate the ReportServer</span>
|
|
1339
|
-
271: <span class="ruby-identifier">disconnectReportServer</span>
|
|
1340
|
-
272: <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>
|
|
1341
|
-
273: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'list-reports'</span>
|
|
1317
|
+
<span class="ruby-comment cmt"># File lib/tj3client.rb, line 244</span>
|
|
1318
|
+
244: <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>)
|
|
1319
|
+
245: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">command</span>
|
|
1320
|
+
246: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'status'</span>
|
|
1321
|
+
247: <span class="ruby-identifier">$stdout</span>.<span class="ruby-identifier">puts</span> <span class="ruby-identifier">callDaemon</span>(<span class="ruby-value">:status</span>, [])
|
|
1322
|
+
248: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'terminate'</span>
|
|
1323
|
+
249: <span class="ruby-identifier">callDaemon</span>(<span class="ruby-value">:stop</span>, [])
|
|
1324
|
+
250: <span class="ruby-identifier">info</span>(<span class="ruby-value str">'Daemon terminated'</span>)
|
|
1325
|
+
251: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'add'</span>
|
|
1326
|
+
252: <span class="ruby-comment cmt"># Ask the daemon to create a new ProjectServer process and return a</span>
|
|
1327
|
+
253: <span class="ruby-comment cmt"># DRbObject to access it.</span>
|
|
1328
|
+
254: <span class="ruby-identifier">connectToProjectServer</span>
|
|
1329
|
+
255: <span class="ruby-comment cmt"># Ask the server to load the files in _args_ into the ProjectServer.</span>
|
|
1330
|
+
256: <span class="ruby-keyword kw">begin</span>
|
|
1331
|
+
257: <span class="ruby-identifier">res</span> = <span class="ruby-ivar">@projectServer</span>.<span class="ruby-identifier">loadProject</span>(<span class="ruby-ivar">@ps_authKey</span>, [ <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">getwd</span>, *<span class="ruby-identifier">args</span> ])
|
|
1332
|
+
258: <span class="ruby-keyword kw">rescue</span>
|
|
1333
|
+
259: <span class="ruby-identifier">error</span>(<span class="ruby-node">"Loading of project failed: #{$!}"</span>)
|
|
1334
|
+
260: <span class="ruby-keyword kw">end</span>
|
|
1335
|
+
261: <span class="ruby-identifier">disconnectProjectServer</span>
|
|
1336
|
+
262: <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>
|
|
1337
|
+
263: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'remove'</span>
|
|
1338
|
+
264: <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>
|
|
1339
|
+
265: <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>)
|
|
1340
|
+
266: <span class="ruby-identifier">error</span>(<span class="ruby-node">"Project '#{arg}' not found in list"</span>)
|
|
1341
|
+
267: <span class="ruby-keyword kw">end</span>
|
|
1342
|
+
268: <span class="ruby-keyword kw">end</span>
|
|
1343
|
+
269: <span class="ruby-identifier">info</span>(<span class="ruby-value str">'Project removed'</span>)
|
|
1344
|
+
270: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'update'</span>
|
|
1345
|
+
271: <span class="ruby-identifier">callDaemon</span>(<span class="ruby-value">:update</span>, [])
|
|
1346
|
+
272: <span class="ruby-identifier">info</span>(<span class="ruby-value str">'Reload requested'</span>)
|
|
1347
|
+
273: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'report'</span>
|
|
1342
1348
|
274: <span class="ruby-comment cmt"># The first value of args is the project ID. The following values</span>
|
|
1343
1349
|
275: <span class="ruby-comment cmt"># could be either report IDs or TJI file # names ('.' or '*.tji').</span>
|
|
1344
1350
|
276: <span class="ruby-identifier">projectId</span> = <span class="ruby-identifier">args</span>.<span class="ruby-identifier">shift</span>
|
|
@@ -1348,16 +1354,16 @@ command with the provided arguments.
|
|
|
1348
1354
|
280:
|
|
1349
1355
|
281: <span class="ruby-identifier">reportIds</span>, <span class="ruby-identifier">tjiFiles</span> = <span class="ruby-identifier">splitIdsAndFiles</span>(<span class="ruby-identifier">args</span>)
|
|
1350
1356
|
282: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">reportIds</span>.<span class="ruby-identifier">empty?</span>
|
|
1351
|
-
283: <span class="ruby-
|
|
1352
|
-
284: <span class="ruby-identifier">
|
|
1353
|
-
285:
|
|
1354
|
-
286: <span class="ruby-
|
|
1355
|
-
287: <span class="ruby-
|
|
1356
|
-
288: <span class="ruby-
|
|
1357
|
-
289: <span class="ruby-
|
|
1358
|
-
290:
|
|
1359
|
-
291:
|
|
1360
|
-
292:
|
|
1357
|
+
283: <span class="ruby-identifier">disconnectReportServer</span>
|
|
1358
|
+
284: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'You must provide at least one report ID'</span>)
|
|
1359
|
+
285: <span class="ruby-keyword kw">end</span>
|
|
1360
|
+
286: <span class="ruby-comment cmt"># Send the provided .tji files to the ReportServer.</span>
|
|
1361
|
+
287: <span class="ruby-identifier">failed</span> = <span class="ruby-operator">!</span><span class="ruby-identifier">addFiles</span>(<span class="ruby-identifier">tjiFiles</span>)
|
|
1362
|
+
288: <span class="ruby-comment cmt"># Ask the ReportServer to generate the reports with the provided IDs.</span>
|
|
1363
|
+
289: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">failed</span>
|
|
1364
|
+
290: <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>
|
|
1365
|
+
291: <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>,
|
|
1366
|
+
292: <span class="ruby-ivar">@regExpMode</span>, <span class="ruby-keyword kw">nil</span>)
|
|
1361
1367
|
293: <span class="ruby-identifier">failed</span> = <span class="ruby-keyword kw">true</span>
|
|
1362
1368
|
294: <span class="ruby-keyword kw">break</span>
|
|
1363
1369
|
295: <span class="ruby-keyword kw">end</span>
|
|
@@ -1366,29 +1372,57 @@ command with the provided arguments.
|
|
|
1366
1372
|
298: <span class="ruby-comment cmt"># Terminate the ReportServer</span>
|
|
1367
1373
|
299: <span class="ruby-identifier">disconnectReportServer</span>
|
|
1368
1374
|
300: <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>
|
|
1369
|
-
301: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'
|
|
1370
|
-
302: <span class="ruby-
|
|
1371
|
-
303: <span class="ruby-
|
|
1372
|
-
304:
|
|
1373
|
-
305: <span class="ruby-
|
|
1374
|
-
306:
|
|
1375
|
-
307: <span class="ruby-
|
|
1376
|
-
308:
|
|
1377
|
-
309: <span class="ruby-
|
|
1378
|
-
310:
|
|
1379
|
-
311:
|
|
1380
|
-
312:
|
|
1381
|
-
313: <span class="ruby-
|
|
1382
|
-
314: <span class="ruby-keyword kw">
|
|
1383
|
-
315:
|
|
1384
|
-
316: <span class="ruby-
|
|
1385
|
-
317: <span class="ruby-
|
|
1386
|
-
318: <span class="ruby-keyword kw">
|
|
1387
|
-
319:
|
|
1388
|
-
320:
|
|
1389
|
-
321:
|
|
1390
|
-
322:
|
|
1391
|
-
323:
|
|
1375
|
+
301: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'list-reports'</span>
|
|
1376
|
+
302: <span class="ruby-comment cmt"># The first value of args is the project ID. The following values</span>
|
|
1377
|
+
303: <span class="ruby-comment cmt"># could be either report IDs or TJI file # names ('.' or '*.tji').</span>
|
|
1378
|
+
304: <span class="ruby-identifier">projectId</span> = <span class="ruby-identifier">args</span>.<span class="ruby-identifier">shift</span>
|
|
1379
|
+
305: <span class="ruby-comment cmt"># Ask the ProjectServer to launch a new ReportServer process and</span>
|
|
1380
|
+
306: <span class="ruby-comment cmt"># provide a DRbObject reference to it.</span>
|
|
1381
|
+
307: <span class="ruby-identifier">connectToReportServer</span>(<span class="ruby-identifier">projectId</span>)
|
|
1382
|
+
308:
|
|
1383
|
+
309: <span class="ruby-identifier">reportIds</span>, <span class="ruby-identifier">tjiFiles</span> = <span class="ruby-identifier">splitIdsAndFiles</span>(<span class="ruby-identifier">args</span>)
|
|
1384
|
+
310: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">reportIds</span>.<span class="ruby-identifier">empty?</span>
|
|
1385
|
+
311: <span class="ruby-comment cmt"># If the user did not provide a report ID we generate a full list.</span>
|
|
1386
|
+
312: <span class="ruby-identifier">reportIds</span> = [ <span class="ruby-value str">'.*'</span> ]
|
|
1387
|
+
313: <span class="ruby-ivar">@regExpMode</span> = <span class="ruby-keyword kw">true</span>
|
|
1388
|
+
314: <span class="ruby-keyword kw">end</span>
|
|
1389
|
+
315: <span class="ruby-comment cmt"># Send the provided .tji files to the ReportServer.</span>
|
|
1390
|
+
316: <span class="ruby-identifier">failed</span> = <span class="ruby-operator">!</span><span class="ruby-identifier">addFiles</span>(<span class="ruby-identifier">tjiFiles</span>)
|
|
1391
|
+
317: <span class="ruby-comment cmt"># Ask the ReportServer to generate the reports with the provided IDs.</span>
|
|
1392
|
+
318: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">failed</span>
|
|
1393
|
+
319: <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>
|
|
1394
|
+
320: <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>)
|
|
1395
|
+
321: <span class="ruby-identifier">failed</span> = <span class="ruby-keyword kw">true</span>
|
|
1396
|
+
322: <span class="ruby-keyword kw">break</span>
|
|
1397
|
+
323: <span class="ruby-keyword kw">end</span>
|
|
1398
|
+
324: <span class="ruby-keyword kw">end</span>
|
|
1399
|
+
325: <span class="ruby-keyword kw">end</span>
|
|
1400
|
+
326: <span class="ruby-comment cmt"># Terminate the ReportServer</span>
|
|
1401
|
+
327: <span class="ruby-identifier">disconnectReportServer</span>
|
|
1402
|
+
328: <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>
|
|
1403
|
+
329: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'check-ts'</span>
|
|
1404
|
+
330: <span class="ruby-identifier">connectToReportServer</span>(<span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>])
|
|
1405
|
+
331: <span class="ruby-keyword kw">begin</span>
|
|
1406
|
+
332: <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>])
|
|
1407
|
+
333: <span class="ruby-keyword kw">rescue</span>
|
|
1408
|
+
334: <span class="ruby-identifier">error</span>(<span class="ruby-node">"Time sheet check failed: #{$!}"</span>)
|
|
1409
|
+
335: <span class="ruby-keyword kw">end</span>
|
|
1410
|
+
336: <span class="ruby-identifier">disconnectReportServer</span>
|
|
1411
|
+
337: <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>
|
|
1412
|
+
338: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'check-ss'</span>
|
|
1413
|
+
339: <span class="ruby-identifier">connectToReportServer</span>(<span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>])
|
|
1414
|
+
340: <span class="ruby-keyword kw">begin</span>
|
|
1415
|
+
341: <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>])
|
|
1416
|
+
342: <span class="ruby-keyword kw">rescue</span>
|
|
1417
|
+
343: <span class="ruby-identifier">error</span>(<span class="ruby-node">"Status sheet check failed: #{$!}"</span>)
|
|
1418
|
+
344: <span class="ruby-keyword kw">end</span>
|
|
1419
|
+
345: <span class="ruby-identifier">disconnectReportServer</span>
|
|
1420
|
+
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>
|
|
1421
|
+
347: <span class="ruby-keyword kw">else</span>
|
|
1422
|
+
348: <span class="ruby-identifier">raise</span> <span class="ruby-node">"Unknown command #{command}"</span>
|
|
1423
|
+
349: <span class="ruby-keyword kw">end</span>
|
|
1424
|
+
350: <span class="ruby-value">0</span>
|
|
1425
|
+
351: <span class="ruby-keyword kw">end</span></pre>
|
|
1392
1426
|
</div>
|
|
1393
1427
|
|
|
1394
1428
|
</div>
|
|
@@ -1419,11 +1453,11 @@ command with the provided arguments.
|
|
|
1419
1453
|
<div class="method-source-code"
|
|
1420
1454
|
id="info-source">
|
|
1421
1455
|
<pre>
|
|
1422
|
-
<span class="ruby-comment cmt"># File lib/tj3client.rb, line
|
|
1423
|
-
|
|
1424
|
-
|
|
1425
|
-
|
|
1426
|
-
|
|
1456
|
+
<span class="ruby-comment cmt"># File lib/tj3client.rb, line 459</span>
|
|
1457
|
+
459: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">info</span>(<span class="ruby-identifier">message</span>)
|
|
1458
|
+
460: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@silent</span>
|
|
1459
|
+
461: <span class="ruby-identifier">$stdout</span>.<span class="ruby-identifier">puts</span> <span class="ruby-node">"#{message}"</span>
|
|
1460
|
+
462: <span class="ruby-keyword kw">end</span></pre>
|
|
1427
1461
|
</div>
|
|
1428
1462
|
|
|
1429
1463
|
</div>
|
|
@@ -1458,24 +1492,24 @@ files are present, they must be separated from the report ID list by a
|
|
|
1458
1492
|
<div class="method-source-code"
|
|
1459
1493
|
id="split-ds-nd-iles-source">
|
|
1460
1494
|
<pre>
|
|
1461
|
-
<span class="ruby-comment cmt"># File lib/tj3client.rb, line
|
|
1462
|
-
|
|
1463
|
-
|
|
1464
|
-
|
|
1465
|
-
|
|
1466
|
-
|
|
1467
|
-
|
|
1468
|
-
|
|
1469
|
-
|
|
1470
|
-
|
|
1471
|
-
|
|
1472
|
-
|
|
1473
|
-
|
|
1474
|
-
|
|
1475
|
-
|
|
1476
|
-
|
|
1477
|
-
|
|
1478
|
-
|
|
1495
|
+
<span class="ruby-comment cmt"># File lib/tj3client.rb, line 427</span>
|
|
1496
|
+
427: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">splitIdsAndFiles</span>(<span class="ruby-identifier">args</span>)
|
|
1497
|
+
428: <span class="ruby-identifier">reportIds</span> = []
|
|
1498
|
+
429: <span class="ruby-identifier">tjiFiles</span> = []
|
|
1499
|
+
430: <span class="ruby-identifier">addToReports</span> = <span class="ruby-keyword kw">true</span>
|
|
1500
|
+
431: <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>
|
|
1501
|
+
432: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">arg</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'='</span>
|
|
1502
|
+
433: <span class="ruby-comment cmt"># Switch to tji file list.</span>
|
|
1503
|
+
434: <span class="ruby-identifier">addToReports</span> = <span class="ruby-keyword kw">false</span>
|
|
1504
|
+
435: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">addToReports</span>
|
|
1505
|
+
436: <span class="ruby-identifier">reportIds</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">arg</span>
|
|
1506
|
+
437: <span class="ruby-keyword kw">else</span>
|
|
1507
|
+
438: <span class="ruby-identifier">tjiFiles</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">arg</span>
|
|
1508
|
+
439: <span class="ruby-keyword kw">end</span>
|
|
1509
|
+
440: <span class="ruby-keyword kw">end</span>
|
|
1510
|
+
441:
|
|
1511
|
+
442: [ <span class="ruby-identifier">reportIds</span>, <span class="ruby-identifier">tjiFiles</span> ]
|
|
1512
|
+
443: <span class="ruby-keyword kw">end</span></pre>
|
|
1479
1513
|
</div>
|
|
1480
1514
|
|
|
1481
1515
|
</div>
|