taskjuggler 0.0.4 → 0.0.5
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/README +1 -1
- data/bin/tj3client +3 -0
- data/bin/tj3d +3 -0
- data/bin/tj3ts_receiver +3 -0
- data/bin/tj3ts_sender +3 -0
- data/bin/tj3ts_summary +3 -0
- data/data/css/tjmanual.css +14 -0
- data/data/css/tjreport.css +233 -21
- data/data/scripts/wz_tooltip.js +20 -20
- data/doc/AppConfig.html +1389 -0
- data/doc/Arguments.html +678 -0
- data/doc/COPYING.html +837 -0
- data/doc/Object.html +996 -0
- data/doc/README.html +523 -0
- data/doc/RuntimeConfig.html +762 -0
- data/doc/String.html +872 -0
- data/doc/TaskJuggler/Account.html +691 -0
- data/doc/TaskJuggler/AccountAttribute.html +707 -0
- data/doc/TaskJuggler/AccountScenario.html +650 -0
- data/doc/TaskJuggler/Allocation.html +898 -0
- data/doc/TaskJuggler/AllocationAttribute.html +737 -0
- data/doc/TaskJuggler/AttributeBase.html +1193 -0
- data/doc/TaskJuggler/AttributeDefinition.html +753 -0
- data/doc/TaskJuggler/BatchProcessor.html +1112 -0
- data/doc/TaskJuggler/Booking.html +797 -0
- data/doc/TaskJuggler/BookingListAttribute.html +709 -0
- data/doc/TaskJuggler/BooleanAttribute.html +707 -0
- data/doc/TaskJuggler/CSVFile.html +924 -0
- data/doc/TaskJuggler/CellSettingPattern.html +638 -0
- data/doc/TaskJuggler/CellSettingPatternList.html +687 -0
- data/doc/TaskJuggler/Charge.html +715 -0
- data/doc/TaskJuggler/ChargeListAttribute.html +671 -0
- data/doc/TaskJuggler/ChargeSet.html +887 -0
- data/doc/TaskJuggler/ChargeSetListAttribute.html +718 -0
- data/doc/TaskJuggler/ColumnListAttribute.html +673 -0
- data/doc/TaskJuggler/ColumnTable.html +701 -0
- data/doc/TaskJuggler/Daemon.html +728 -0
- data/doc/TaskJuggler/DateAttribute.html +675 -0
- data/doc/TaskJuggler/DefinitionListAttribute.html +593 -0
- data/doc/TaskJuggler/DependencyListAttribute.html +713 -0
- data/doc/TaskJuggler/DurationAttribute.html +707 -0
- data/doc/TaskJuggler/FixnumAttribute.html +629 -0
- data/doc/TaskJuggler/FlagListAttribute.html +709 -0
- data/doc/TaskJuggler/FloatAttribute.html +671 -0
- data/doc/TaskJuggler/FormatListAttribute.html +635 -0
- data/doc/TaskJuggler/GanttChart.html +1473 -0
- data/doc/TaskJuggler/GanttContainer.html +885 -0
- data/doc/TaskJuggler/GanttHeader.html +886 -0
- data/doc/TaskJuggler/GanttHeaderScaleItem.html +700 -0
- data/doc/TaskJuggler/GanttLine.html +1263 -0
- data/doc/TaskJuggler/GanttLoadStack.html +766 -0
- data/doc/TaskJuggler/GanttMilestone.html +865 -0
- data/doc/TaskJuggler/GanttRouter.html +1433 -0
- data/doc/TaskJuggler/GanttTaskBar.html +880 -0
- data/doc/TaskJuggler/HTMLDocument.html +719 -0
- data/doc/TaskJuggler/HTMLGraphics.html +775 -0
- data/doc/TaskJuggler/Interval.html +1016 -0
- data/doc/TaskJuggler/IntervalListAttribute.html +713 -0
- data/doc/TaskJuggler/JobInfo.html +881 -0
- data/doc/TaskJuggler/Journal.html +991 -0
- data/doc/TaskJuggler/JournalEntry.html +779 -0
- data/doc/TaskJuggler/JournalEntryList.html +952 -0
- data/doc/TaskJuggler/KeywordArray.html +628 -0
- data/doc/TaskJuggler/KeywordDocumentation.html +1662 -0
- data/doc/TaskJuggler/Limits/Limit.html +826 -0
- data/doc/TaskJuggler/Limits.html +966 -0
- data/doc/TaskJuggler/LimitsAttribute.html +707 -0
- data/doc/TaskJuggler/ListAttributeBase.html +641 -0
- data/doc/TaskJuggler/Log.html +1103 -0
- data/doc/TaskJuggler/LogFile.html +918 -0
- data/doc/TaskJuggler/LogicalAttribute.html +698 -0
- data/doc/TaskJuggler/LogicalExpression.html +739 -0
- data/doc/TaskJuggler/LogicalExpressionAttribute.html +629 -0
- data/doc/TaskJuggler/LogicalFlag.html +681 -0
- data/doc/TaskJuggler/LogicalFunction.html +1218 -0
- data/doc/TaskJuggler/LogicalOperation.html +1078 -0
- data/doc/TaskJuggler/Macro.html +646 -0
- data/doc/TaskJuggler/MacroParser.html +810 -0
- data/doc/TaskJuggler/MacroTable.html +810 -0
- data/doc/TaskJuggler/ManagerResponsibilities.html +674 -0
- data/doc/TaskJuggler/ManagerStatusRecord.html +678 -0
- data/doc/TaskJuggler/Message.html +757 -0
- data/doc/TaskJuggler/MessageHandler.html +679 -0
- data/doc/TaskJuggler/Navigator.html +867 -0
- data/doc/TaskJuggler/NavigatorElement.html +932 -0
- data/doc/TaskJuggler/NikuProject.html +662 -0
- data/doc/TaskJuggler/NikuReport.html +1316 -0
- data/doc/TaskJuggler/NikuResource.html +632 -0
- data/doc/TaskJuggler/OnShiftCache.html +864 -0
- data/doc/TaskJuggler/ProcessIntercom.html +847 -0
- data/doc/TaskJuggler/ProcessIntercomIface.html +664 -0
- data/doc/TaskJuggler/Project.html +3056 -0
- data/doc/TaskJuggler/ProjectBroker.html +1260 -0
- data/doc/TaskJuggler/ProjectBrokerIface.html +734 -0
- data/doc/TaskJuggler/ProjectFileParser.html +1951 -0
- data/doc/TaskJuggler/ProjectRecord.html +859 -0
- data/doc/TaskJuggler/ProjectServer.html +1092 -0
- data/doc/TaskJuggler/ProjectServerIface.html +768 -0
- data/doc/TaskJuggler/PropertyAttribute.html +629 -0
- data/doc/TaskJuggler/PropertyList.html +1336 -0
- data/doc/TaskJuggler/PropertySet.html +1785 -0
- data/doc/TaskJuggler/PropertyTreeNode.html +2482 -0
- data/doc/TaskJuggler/Query.html +1831 -0
- data/doc/TaskJuggler/RTFNavigator.html +729 -0
- data/doc/TaskJuggler/RTFQuery.html +1038 -0
- data/doc/TaskJuggler/RTFReport.html +740 -0
- data/doc/TaskJuggler/RealFormat.html +743 -0
- data/doc/TaskJuggler/RealFormatAttribute.html +593 -0
- data/doc/TaskJuggler/ReferenceAttribute.html +782 -0
- data/doc/TaskJuggler/Report.html +1255 -0
- data/doc/TaskJuggler/ReportBase.html +1198 -0
- data/doc/TaskJuggler/ReportContext.html +711 -0
- data/doc/TaskJuggler/ReportServer.html +988 -0
- data/doc/TaskJuggler/ReportServerIface.html +838 -0
- data/doc/TaskJuggler/ReportServerRecord.html +716 -0
- data/doc/TaskJuggler/ReportTable.html +1106 -0
- data/doc/TaskJuggler/ReportTableCell.html +1536 -0
- data/doc/TaskJuggler/ReportTableColumn.html +828 -0
- data/doc/TaskJuggler/ReportTableLegend.html +999 -0
- data/doc/TaskJuggler/ReportTableLine.html +1003 -0
- data/doc/TaskJuggler/Resource.html +938 -0
- data/doc/TaskJuggler/ResourceListAttribute.html +752 -0
- data/doc/TaskJuggler/ResourceListRE.html +674 -0
- data/doc/TaskJuggler/ResourceScenario.html +2457 -0
- data/doc/TaskJuggler/RichText.html +791 -0
- data/doc/TaskJuggler/RichTextAttribute.html +743 -0
- data/doc/TaskJuggler/RichTextDocument.html +972 -0
- data/doc/TaskJuggler/RichTextElement.html +1615 -0
- data/doc/TaskJuggler/RichTextException.html +667 -0
- data/doc/TaskJuggler/RichTextFunctionExample.html +737 -0
- data/doc/TaskJuggler/RichTextFunctionHandler.html +689 -0
- data/doc/TaskJuggler/RichTextImage.html +650 -0
- data/doc/TaskJuggler/RichTextIntermediate.html +1161 -0
- data/doc/TaskJuggler/RichTextParser.html +756 -0
- data/doc/TaskJuggler/RichTextScanner.html +2010 -0
- data/doc/TaskJuggler/RichTextSnip.html +942 -0
- data/doc/TaskJuggler/RichTextSyntaxRules.html +1722 -0
- data/doc/TaskJuggler/Scenario.html +594 -0
- data/doc/TaskJuggler/ScenarioData.html +815 -0
- data/doc/TaskJuggler/ScenarioListAttribute.html +671 -0
- data/doc/TaskJuggler/Scoreboard.html +1114 -0
- data/doc/TaskJuggler/SheetHandlerBase.html +1115 -0
- data/doc/TaskJuggler/SheetReceiver.html +1293 -0
- data/doc/TaskJuggler/SheetSender.html +1089 -0
- data/doc/TaskJuggler/Shift.html +689 -0
- data/doc/TaskJuggler/ShiftAssignment.html +950 -0
- data/doc/TaskJuggler/ShiftAssignments.html +1379 -0
- data/doc/TaskJuggler/ShiftAssignmentsAttribute.html +707 -0
- data/doc/TaskJuggler/ShiftScenario.html +720 -0
- data/doc/TaskJuggler/SortListAttribute.html +631 -0
- data/doc/TaskJuggler/SourceFileInfo.html +698 -0
- data/doc/TaskJuggler/StatusSheetReceiver.html +615 -0
- data/doc/TaskJuggler/StatusSheetReport.html +872 -0
- data/doc/TaskJuggler/StatusSheetSender.html +654 -0
- data/doc/TaskJuggler/StringAttribute.html +671 -0
- data/doc/TaskJuggler/SymbolAttribute.html +629 -0
- data/doc/TaskJuggler/SyntaxReference.html +1155 -0
- data/doc/TaskJuggler/TOCEntry.html +723 -0
- data/doc/TaskJuggler/TSResourceRecord.html +670 -0
- data/doc/TaskJuggler/TSTaskRecord.html +682 -0
- data/doc/TaskJuggler/TableColumnDefinition.html +830 -0
- data/doc/TaskJuggler/TableOfContents.html +692 -0
- data/doc/TaskJuggler/TableReport.html +2444 -0
- data/doc/TaskJuggler/Task.html +781 -0
- data/doc/TaskJuggler/TaskDependency.html +730 -0
- data/doc/TaskJuggler/TaskListAttribute.html +713 -0
- data/doc/TaskJuggler/TaskListRE.html +673 -0
- data/doc/TaskJuggler/TaskScenario.html +4380 -0
- data/doc/TaskJuggler/TextFormatter.html +911 -0
- data/doc/TaskJuggler/TextParser/Pattern.html +1482 -0
- data/doc/TaskJuggler/TextParser/Rule.html +1288 -0
- data/doc/TaskJuggler/TextParser/StackElement.html +726 -0
- data/doc/TaskJuggler/TextParser/TextParserResultArray.html +648 -0
- data/doc/TaskJuggler/TextParser/TokenDoc.html +680 -0
- data/doc/TaskJuggler/TextParser.html +1670 -0
- data/doc/TaskJuggler/TextReport.html +856 -0
- data/doc/TaskJuggler/TextScanner/BufferStreamHandle.html +831 -0
- data/doc/TaskJuggler/TextScanner/FileStreamHandle.html +832 -0
- data/doc/TaskJuggler/TextScanner/StreamHandle.html +737 -0
- data/doc/TaskJuggler/TextScanner.html +2430 -0
- data/doc/TaskJuggler/TimeSheet.html +1233 -0
- data/doc/TaskJuggler/TimeSheetReceiver.html +612 -0
- data/doc/TaskJuggler/TimeSheetRecord.html +1352 -0
- data/doc/TaskJuggler/TimeSheetReport.html +948 -0
- data/doc/TaskJuggler/TimeSheetSender.html +637 -0
- data/doc/TaskJuggler/TimeSheetSummary.html +865 -0
- data/doc/TaskJuggler/TimeSheets.html +674 -0
- data/doc/TaskJuggler/Tj3AppBase.html +782 -0
- data/doc/TaskJuggler/Tj3Client.html +1455 -0
- data/doc/TaskJuggler/Tj3Daemon.html +767 -0
- data/doc/TaskJuggler/Tj3SheetAppBase.html +696 -0
- data/doc/TaskJuggler/Tj3SsReceiver.html +682 -0
- data/doc/TaskJuggler/Tj3SsSender.html +708 -0
- data/doc/TaskJuggler/Tj3TsReceiver.html +681 -0
- data/doc/TaskJuggler/Tj3TsSender.html +702 -0
- data/doc/TaskJuggler/Tj3TsSummary.html +710 -0
- data/doc/TaskJuggler/TjException.html +630 -0
- data/doc/TaskJuggler/TjTime.html +2590 -0
- data/doc/TaskJuggler/TjpExample.html +835 -0
- data/doc/TaskJuggler/TjpExportRE.html +1581 -0
- data/doc/TaskJuggler/TjpSyntaxRules.html +13004 -0
- data/doc/TaskJuggler/UserManual.html +1145 -0
- data/doc/TaskJuggler/WorkingHours.html +1101 -0
- data/doc/TaskJuggler/WorkingHoursAttribute.html +694 -0
- data/doc/TaskJuggler/XMLBlob.html +645 -0
- data/doc/TaskJuggler/XMLComment.html +640 -0
- data/doc/TaskJuggler/XMLDocument.html +732 -0
- data/doc/TaskJuggler/XMLElement.html +900 -0
- data/doc/TaskJuggler/XMLNamedText.html +601 -0
- data/doc/TaskJuggler/XMLText.html +655 -0
- data/doc/TaskJuggler.html +2243 -0
- data/doc/index.html +3778 -17
- data/doc/lib/AccountScenario_rb.html +67 -0
- data/doc/lib/Account_rb.html +69 -0
- data/doc/lib/Allocation_rb.html +69 -0
- data/doc/lib/AppConfig_rb.html +69 -0
- data/doc/lib/AttributeBase_rb.html +67 -0
- data/doc/lib/AttributeDefinition_rb.html +65 -0
- data/doc/lib/Attributes_rb.html +81 -0
- data/doc/lib/BatchProcessor_rb.html +69 -0
- data/doc/lib/Booking_rb.html +65 -0
- data/doc/lib/ChargeSet_rb.html +67 -0
- data/doc/lib/Charge_rb.html +67 -0
- data/doc/lib/HTMLDocument_rb.html +67 -0
- data/doc/lib/Interval_rb.html +67 -0
- data/doc/lib/Journal_rb.html +65 -0
- data/doc/lib/KeywordArray_rb.html +65 -0
- data/doc/lib/KeywordDocumentation_rb.html +75 -0
- data/doc/lib/Limits_rb.html +67 -0
- data/doc/lib/LogFile_rb.html +67 -0
- data/doc/lib/Log_rb.html +69 -0
- data/doc/lib/LogicalExpression_rb.html +71 -0
- data/doc/lib/LogicalFunction_rb.html +67 -0
- data/doc/lib/LogicalOperation_rb.html +67 -0
- data/doc/lib/MacroParser_rb.html +69 -0
- data/doc/lib/MacroTable_rb.html +73 -0
- data/doc/lib/MessageHandler_rb.html +65 -0
- data/doc/lib/Message_rb.html +67 -0
- data/doc/lib/ProjectFileParser_rb.html +79 -0
- data/doc/lib/Project_rb.html +109 -0
- data/doc/lib/PropertyList_rb.html +65 -0
- data/doc/lib/PropertySet_rb.html +69 -0
- data/doc/lib/PropertyTreeNode_rb.html +65 -0
- data/doc/lib/Query_rb.html +67 -0
- data/doc/lib/RTFNavigator_rb.html +71 -0
- data/doc/lib/RTFQuery_rb.html +71 -0
- data/doc/lib/RTFReport_rb.html +69 -0
- data/doc/lib/RealFormat_rb.html +65 -0
- data/doc/lib/ResourceScenario_rb.html +67 -0
- data/doc/lib/Resource_rb.html +69 -0
- data/doc/lib/RichTextDocument_rb.html +71 -0
- data/doc/lib/RichTextElement_rb.html +73 -0
- data/doc/lib/RichTextFunctionExample_rb.html +71 -0
- data/doc/lib/RichTextFunctionHandler_rb.html +65 -0
- data/doc/lib/RichTextParser_rb.html +71 -0
- data/doc/lib/RichTextScanner_rb.html +67 -0
- data/doc/lib/RichTextSnip_rb.html +69 -0
- data/doc/lib/RichTextSyntaxRules_rb.html +65 -0
- data/doc/lib/RichText_rb.html +69 -0
- data/doc/lib/RuntimeConfig_rb.html +67 -0
- data/doc/lib/ScenarioData_rb.html +69 -0
- data/doc/lib/Scenario_rb.html +67 -0
- data/doc/lib/Scoreboard_rb.html +65 -0
- data/doc/lib/SheetHandlerBase_rb.html +69 -0
- data/doc/lib/SheetReceiver_rb.html +75 -0
- data/doc/lib/SheetSender_rb.html +73 -0
- data/doc/lib/ShiftAssignments_rb.html +67 -0
- data/doc/lib/ShiftScenario_rb.html +67 -0
- data/doc/lib/Shift_rb.html +69 -0
- data/doc/lib/SourceFileInfo_rb.html +65 -0
- data/doc/lib/StatusSheetReceiver_rb.html +67 -0
- data/doc/lib/StatusSheetSender_rb.html +67 -0
- data/doc/lib/SyntaxReference_rb.html +73 -0
- data/doc/lib/TOCEntry_rb.html +69 -0
- data/doc/lib/TableColumnDefinition_rb.html +65 -0
- data/doc/lib/TableOfContents_rb.html +69 -0
- data/doc/lib/TaskDependency_rb.html +65 -0
- data/doc/lib/TaskJuggler_rb.html +73 -0
- data/doc/lib/TaskScenario_rb.html +67 -0
- data/doc/lib/Task_rb.html +69 -0
- data/doc/lib/TextFormatter_rb.html +67 -0
- data/doc/lib/TextParser/Pattern_rb.html +67 -0
- data/doc/lib/TextParser/Rule_rb.html +65 -0
- data/doc/lib/TextParser/StackElement_rb.html +65 -0
- data/doc/lib/TextParser/TokenDoc_rb.html +65 -0
- data/doc/lib/TextParser_rb.html +75 -0
- data/doc/lib/TextScanner_rb.html +79 -0
- data/doc/lib/TimeSheetReceiver_rb.html +67 -0
- data/doc/lib/TimeSheetSender_rb.html +67 -0
- data/doc/lib/TimeSheetSummary_rb.html +67 -0
- data/doc/lib/TimeSheets_rb.html +65 -0
- data/doc/lib/Tj3AppBase_rb.html +77 -0
- data/doc/lib/Tj3Config_rb.html +69 -0
- data/doc/lib/Tj3SheetAppBase_rb.html +67 -0
- data/doc/lib/TjException_rb.html +65 -0
- data/doc/lib/TjTime_rb.html +69 -0
- data/doc/lib/TjpExample_rb.html +67 -0
- data/doc/lib/TjpSyntaxRules_rb.html +65 -0
- data/doc/lib/UTF8String_rb.html +65 -0
- data/doc/lib/UserManual_rb.html +77 -0
- data/doc/lib/WorkingHours_rb.html +67 -0
- data/doc/lib/XMLDocument_rb.html +67 -0
- data/doc/lib/XMLElement_rb.html +67 -0
- data/doc/lib/daemon/Daemon_rb.html +67 -0
- data/doc/lib/daemon/ProcessIntercom_rb.html +67 -0
- data/doc/lib/daemon/ProjectBroker_rb.html +79 -0
- data/doc/lib/daemon/ProjectServer_rb.html +83 -0
- data/doc/lib/daemon/ReportServer_rb.html +73 -0
- data/doc/lib/deep_copy_rb.html +65 -0
- data/doc/lib/reports/CSVFile_rb.html +67 -0
- data/doc/lib/reports/ColumnTable_rb.html +67 -0
- data/doc/lib/reports/GanttChart_rb.html +73 -0
- data/doc/lib/reports/GanttContainer_rb.html +67 -0
- data/doc/lib/reports/GanttHeaderScaleItem_rb.html +65 -0
- data/doc/lib/reports/GanttHeader_rb.html +67 -0
- data/doc/lib/reports/GanttLine_rb.html +77 -0
- data/doc/lib/reports/GanttLoadStack_rb.html +67 -0
- data/doc/lib/reports/GanttMilestone_rb.html +67 -0
- data/doc/lib/reports/GanttRouter_rb.html +65 -0
- data/doc/lib/reports/GanttTaskBar_rb.html +67 -0
- data/doc/lib/reports/HTMLGraphics_rb.html +65 -0
- data/doc/lib/reports/Navigator_rb.html +67 -0
- data/doc/lib/reports/NikuReport_rb.html +69 -0
- data/doc/lib/reports/ReportBase_rb.html +65 -0
- data/doc/lib/reports/ReportContext_rb.html +65 -0
- data/doc/lib/reports/ReportTableCell_rb.html +65 -0
- data/doc/lib/reports/ReportTableColumn_rb.html +65 -0
- data/doc/lib/reports/ReportTableLegend_rb.html +65 -0
- data/doc/lib/reports/ReportTableLine_rb.html +67 -0
- data/doc/lib/reports/ReportTable_rb.html +69 -0
- data/doc/lib/reports/Report_rb.html +91 -0
- data/doc/lib/reports/ResourceListRE_rb.html +73 -0
- data/doc/lib/reports/StatusSheetReport_rb.html +67 -0
- data/doc/lib/reports/TableReport_rb.html +75 -0
- data/doc/lib/reports/TaskListRE_rb.html +73 -0
- data/doc/lib/reports/TextReport_rb.html +67 -0
- data/doc/lib/reports/TimeSheetReport_rb.html +67 -0
- data/doc/lib/reports/TjpExportRE_rb.html +67 -0
- data/doc/lib/ruby-signal-bug_rb.html +54 -0
- data/doc/lib/taskjuggler3_rb.html +73 -0
- data/doc/lib/tj3client_rb.html +73 -0
- data/doc/lib/tj3d_rb.html +73 -0
- data/doc/lib/tj3man_rb.html +73 -0
- data/doc/lib/tj3ss_receiver_rb.html +69 -0
- data/doc/lib/tj3ss_sender_rb.html +69 -0
- data/doc/lib/tj3ts_receiver_rb.html +69 -0
- data/doc/lib/tj3ts_sender_rb.html +69 -0
- data/doc/lib/tj3ts_summary_rb.html +69 -0
- data/doc/rdoc.css +701 -0
- data/examples/tutorial.tjp +25 -6
- data/lib/Attributes.rb +6 -2
- data/lib/HTMLDocument.rb +18 -2
- data/lib/Journal.rb +47 -4
- data/lib/KeywordArray.rb +1 -1
- data/lib/KeywordDocumentation.rb +17 -77
- data/lib/Log.rb +3 -1
- data/lib/LogFile.rb +72 -0
- data/lib/LogicalExpression.rb +5 -10
- data/lib/LogicalFunction.rb +34 -18
- data/lib/LogicalOperation.rb +32 -18
- data/lib/Project.rb +85 -13
- data/lib/ProjectFileParser.rb +19 -6
- data/lib/PropertyList.rb +12 -2
- data/lib/PropertyTreeNode.rb +23 -9
- data/lib/Query.rb +51 -13
- data/lib/RTFReport.rb +2 -2
- data/lib/Resource.rb +157 -0
- data/lib/ResourceScenario.rb +215 -68
- data/lib/RichText.rb +15 -3
- data/lib/RichTextDocument.rb +2 -4
- data/lib/RichTextElement.rb +87 -25
- data/lib/RichTextScanner.rb +32 -5
- data/lib/RichTextSnip.rb +6 -4
- data/lib/RichTextSyntaxRules.rb +44 -8
- data/lib/RuntimeConfig.rb +93 -0
- data/lib/Scoreboard.rb +6 -6
- data/lib/SheetHandlerBase.rb +215 -0
- data/lib/SheetReceiver.rb +355 -0
- data/lib/SheetSender.rb +264 -0
- data/lib/ShiftAssignments.rb +35 -27
- data/lib/StatusSheetReceiver.rb +45 -0
- data/lib/StatusSheetSender.rb +54 -0
- data/lib/SyntaxReference.rb +2 -7
- data/lib/Task.rb +70 -0
- data/lib/TaskJuggler.rb +114 -12
- data/lib/TaskScenario.rb +131 -22
- data/lib/TextFormatter.rb +177 -0
- data/lib/TextParser.rb +10 -1
- data/lib/TextScanner.rb +63 -33
- data/lib/TimeSheetReceiver.rb +42 -0
- data/lib/TimeSheetSender.rb +55 -0
- data/lib/TimeSheetSummary.rb +149 -0
- data/lib/TimeSheets.rb +406 -0
- data/lib/Tj3AppBase.rb +114 -0
- data/lib/Tj3Config.rb +1 -1
- data/lib/Tj3SheetAppBase.rb +59 -0
- data/lib/TjTime.rb +14 -1
- data/lib/TjpSyntaxRules.rb +573 -211
- data/lib/UTF8String.rb +4 -0
- data/lib/UserManual.rb +8 -7
- data/lib/XMLElement.rb +27 -19
- data/lib/daemon/Daemon.rb +70 -0
- data/lib/daemon/ProcessIntercom.rb +117 -0
- data/lib/daemon/ProjectBroker.rb +450 -0
- data/lib/daemon/ProjectServer.rb +348 -0
- data/lib/daemon/ReportServer.rb +194 -0
- data/lib/reports/ColumnTable.rb +2 -0
- data/lib/reports/GanttChart.rb +5 -7
- data/lib/reports/GanttContainer.rb +5 -8
- data/lib/reports/GanttHeader.rb +1 -1
- data/lib/reports/GanttLine.rb +89 -53
- data/lib/reports/GanttMilestone.rb +7 -4
- data/lib/reports/GanttTaskBar.rb +7 -3
- data/lib/reports/HTMLGraphics.rb +24 -9
- data/lib/reports/NikuReport.rb +414 -0
- data/lib/reports/Report.rb +54 -20
- data/lib/reports/ReportBase.rb +21 -0
- data/lib/reports/ReportTable.rb +29 -11
- data/lib/reports/ReportTableCell.rb +154 -86
- data/lib/reports/ReportTableLegend.rb +77 -80
- data/lib/reports/ResourceListRE.rb +2 -3
- data/lib/reports/StatusSheetReport.rb +231 -0
- data/lib/reports/TableReport.rb +74 -65
- data/lib/reports/TaskListRE.rb +2 -4
- data/lib/reports/TextReport.rb +18 -12
- data/lib/reports/TimeSheetReport.rb +145 -80
- data/lib/reports/TjpExportRE.rb +4 -4
- data/lib/ruby-signal-bug.rb +43 -0
- data/lib/taskjuggler3.rb +27 -10
- data/lib/tj3client.rb +411 -77
- data/lib/tj3d.rb +110 -0
- data/lib/tj3ss_receiver.rb +56 -0
- data/lib/tj3ss_sender.rb +84 -0
- data/lib/tj3ts_receiver.rb +59 -0
- data/lib/tj3ts_sender.rb +78 -0
- data/lib/tj3ts_summary.rb +87 -0
- data/manual/Day_To_Day_Juggling +761 -32
- data/manual/Getting_Started +12 -12
- data/manual/Rich_Text_Attributes +13 -1
- data/manual/TaskJuggler_2x_Migration +41 -3
- data/manual/TaskJuggler_Internals +87 -0
- data/manual/The_TaskJuggler_Syntax +1 -2
- data/manual/Tutorial +10 -10
- data/test/TestSuite/CSV-Reports/celltext.tjp +1 -1
- data/test/TestSuite/HTML-Reports/TimeSheet.html +79 -0
- data/test/TestSuite/HTML-Reports/icons/trend-down.png +0 -0
- data/test/TestSuite/HTML-Reports/icons/trend-flat.png +0 -0
- data/test/TestSuite/HTML-Reports/icons/trend-up.png +0 -0
- data/test/TestSuite/HTML-Reports/reference.html +51 -0
- data/test/TestSuite/Scheduler/Correct/Booking2.html +603 -0
- data/test/TestSuite/Scheduler/Correct/Booking2.tjp +57 -0
- data/test/TestSuite/Scheduler/Correct/Duration.tjp +32 -18
- data/test/TestSuite/Scheduler/Correct/Manager.tjp +9 -0
- data/test/TestSuite/Scheduler/Correct/Shift.html +429 -0
- data/test/TestSuite/Scheduler/Correct/Shift2.html +162 -0
- data/test/TestSuite/Scheduler/Correct/Shift2.tjp +67 -0
- data/test/TestSuite/{Syntax/Correct/TimeSheet.tjp → Scheduler/Correct/TimeSheet2.tjp} +21 -8
- data/test/TestSuite/Scheduler/Correct/css/tjmanual.css +52 -0
- data/test/TestSuite/Scheduler/Correct/css/tjreport.css +195 -0
- data/test/TestSuite/{Syntax → Scheduler}/Correct/icons/details.png +0 -0
- data/test/TestSuite/Scheduler/Correct/icons/flag-green.png +0 -0
- data/test/TestSuite/Scheduler/Correct/icons/flag-red.png +0 -0
- data/test/TestSuite/Scheduler/Correct/icons/flag-yellow.png +0 -0
- data/test/TestSuite/{Syntax → Scheduler}/Correct/icons/resource.png +0 -0
- data/test/TestSuite/{Syntax → Scheduler}/Correct/icons/resourcegroup.png +0 -0
- data/test/TestSuite/{Syntax → Scheduler}/Correct/icons/task.png +0 -0
- data/test/TestSuite/{Syntax → Scheduler}/Correct/icons/taskgroup.png +0 -0
- data/test/TestSuite/Scheduler/Correct/icons/trend-down.png +0 -0
- data/test/TestSuite/Scheduler/Correct/icons/trend-flat.png +0 -0
- data/test/TestSuite/Scheduler/Correct/icons/trend-up.png +0 -0
- data/test/TestSuite/{HTML-Reports/scripts → Scheduler/Correct}/scripts/wz_tooltip.js +0 -0
- data/test/TestSuite/Scheduler/Errors/manager_is_group.tjp +15 -0
- data/test/TestSuite/Scheduler/Errors/manager_is_self.tjp +11 -0
- data/test/TestSuite/Scheduler/Errors/resource_fail_check.tjp +12 -0
- data/test/TestSuite/Scheduler/Errors/resource_warn_check.tjp +12 -0
- data/test/TestSuite/Scheduler/Errors/task_fail_check.tjp +8 -0
- data/test/TestSuite/Scheduler/Errors/task_warn_check.tjp +8 -0
- data/test/TestSuite/Scheduler/Errors/ts_alert1_more_details.tjp +20 -0
- data/test/TestSuite/Scheduler/Errors/ts_alert2_more_details.tjp +21 -0
- data/test/TestSuite/Scheduler/Errors/ts_no_expected_end.tjp +26 -0
- data/test/TestSuite/Scheduler/Errors/ts_no_headline1.tjp +27 -0
- data/test/TestSuite/Scheduler/Errors/ts_no_rem_or_end.tjp +26 -0
- data/test/TestSuite/Scheduler/Errors/ts_no_remaining.tjp +26 -0
- data/test/TestSuite/Scheduler/Errors/ts_no_status_work.tjp +18 -0
- data/test/TestSuite/Scheduler/Errors/ts_no_work.tjp +26 -0
- data/test/TestSuite/Scheduler/Errors/ts_res_new_task.tjp +20 -0
- data/test/TestSuite/Scheduler/Errors/ts_work_too_high.tjp +27 -0
- data/test/TestSuite/Scheduler/Errors/ts_work_too_low.tjp +27 -0
- data/test/TestSuite/StatusSheets/boss.tji +45 -0
- data/test/TestSuite/StatusSheets/boss_mail +51 -0
- data/test/TestSuite/StatusSheets/dev2_mail +37 -0
- data/test/TestSuite/StatusSheets/project.tjp +275 -0
- data/test/TestSuite/StatusSheets/run +50 -0
- data/test/TestSuite/Syntax/Correct/Include.tjp +4 -0
- data/test/TestSuite/Syntax/Correct/Limits-1.tjp +10 -1
- data/test/TestSuite/Syntax/Correct/Manager.tjp +30 -0
- data/test/TestSuite/Syntax/Correct/Niku.tjp +66 -0
- data/test/TestSuite/Syntax/Correct/TimeSheet1.tjp +83 -0
- data/test/TestSuite/Syntax/Correct/include/dir1/file2.tji +1 -0
- data/test/TestSuite/Syntax/Correct/include/dir2/file3.tji +2 -0
- data/test/TestSuite/Syntax/Correct/include/file1.tji +3 -0
- data/test/TestSuite/Syntax/Correct/tutorial.tjp +29 -8
- data/test/TestSuite/Syntax/Errors/ts_bad_priority.tjp +19 -0
- data/test/TestSuite/Syntax/Errors/ts_default_details.tjp +22 -0
- data/test/TestSuite/Syntax/Errors/ts_default_summary.tjp +22 -0
- data/test/TestSuite/Syntax/Errors/ts_duplicate_task.tjp +23 -0
- data/test/TestSuite/Syntax/Errors/ts_end_too_early.tjp +18 -0
- data/test/TestSuite/Syntax/Errors/ts_headline_too_long.tjp +19 -0
- data/test/TestSuite/Syntax/Errors/ts_no_headline2.tjp +27 -0
- data/test/TestSuite/Syntax/Errors/ts_summary_too_long.tjp +29 -0
- data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/boss_2002-03-01.tji +36 -0
- data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/dev1_2002-03-01.tji +48 -0
- data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/dev2_2002-03-01.tji +67 -0
- data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/dev3_2002-03-01.tji +67 -0
- data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/doc_2002-03-01.tji +48 -0
- data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/resources.yml +31 -0
- data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/test_2002-03-01.tji +36 -0
- data/test/TestSuite/TimeSheets/TimeSheetTemplates/acceptable_intervals +1 -0
- data/test/TestSuite/TimeSheets/TimeSheets/2002-03-01/all.tji +1 -0
- data/test/TestSuite/TimeSheets/TimeSheets/2002-03-01/dev2_2002-03-01.tji +54 -0
- data/test/TestSuite/TimeSheets/TimeSheets/all.tji +2 -0
- data/test/TestSuite/TimeSheets/dev2_mail1 +84 -0
- data/test/TestSuite/TimeSheets/dev2_mail2 +87 -0
- data/test/TestSuite/TimeSheets/project.tjp +271 -0
- data/test/TestSuite/TimeSheets/receiver.log +102 -0
- data/test/TestSuite/TimeSheets/run +75 -0
- data/test/TestSuite/TimeSheets/sender.log +794 -0
- data/test/TestSuite/TimeSheets/summary.log +884 -0
- data/test/TestSuite/TimeSheets/timesheets.log +45 -0
- data/test/TestSuite/TimeSheets/tj3d.log +292 -0
- data/test/test_CSV-Reports.rb +5 -3
- data/test/test_RichText.rb +264 -56
- data/test/test_Scheduler.rb +1 -0
- data/test/test_TextFormatter.rb +142 -0
- data/test/test_TjTime.rb +15 -0
- metadata +816 -644
- data/benchmarks/UTF-8-Strings.rb +0 -58
- data/doc/classes/AppConfig.html +0 -880
- data/doc/classes/Arguments.html +0 -230
- data/doc/classes/Object.html +0 -229
- data/doc/classes/String.html +0 -399
- data/doc/classes/TaskJuggler/Account.html +0 -257
- data/doc/classes/TaskJuggler/AccountAttribute.html +0 -261
- data/doc/classes/TaskJuggler/AccountScenario.html +0 -218
- data/doc/classes/TaskJuggler/Allocation.html +0 -423
- data/doc/classes/TaskJuggler/AllocationAttribute.html +0 -291
- data/doc/classes/TaskJuggler/AttributeBase.html +0 -704
- data/doc/classes/TaskJuggler/AttributeDefinition.html +0 -276
- data/doc/classes/TaskJuggler/BatchProcessor.html +0 -347
- data/doc/classes/TaskJuggler/Booking.html +0 -311
- data/doc/classes/TaskJuggler/BookingListAttribute.html +0 -263
- data/doc/classes/TaskJuggler/BooleanAttribute.html +0 -261
- data/doc/classes/TaskJuggler/CSVFile.html +0 -329
- data/doc/classes/TaskJuggler/CellSettingPattern.html +0 -201
- data/doc/classes/TaskJuggler/CellSettingPatternList.html +0 -253
- data/doc/classes/TaskJuggler/Charge.html +0 -283
- data/doc/classes/TaskJuggler/ChargeListAttribute.html +0 -229
- data/doc/classes/TaskJuggler/ChargeSet.html +0 -444
- data/doc/classes/TaskJuggler/ChargeSetListAttribute.html +0 -276
- data/doc/classes/TaskJuggler/ColumnListAttribute.html +0 -231
- data/doc/classes/TaskJuggler/ColumnTable.html +0 -262
- data/doc/classes/TaskJuggler/DateAttribute.html +0 -233
- data/doc/classes/TaskJuggler/DefinitionListAttribute.html +0 -162
- data/doc/classes/TaskJuggler/DependencyListAttribute.html +0 -267
- data/doc/classes/TaskJuggler/DurationAttribute.html +0 -229
- data/doc/classes/TaskJuggler/FixnumAttribute.html +0 -194
- data/doc/classes/TaskJuggler/FlagListAttribute.html +0 -263
- data/doc/classes/TaskJuggler/FloatAttribute.html +0 -229
- data/doc/classes/TaskJuggler/FormatListAttribute.html +0 -197
- data/doc/classes/TaskJuggler/GanttChart.html +0 -696
- data/doc/classes/TaskJuggler/GanttContainer.html +0 -445
- data/doc/classes/TaskJuggler/GanttHeader.html +0 -284
- data/doc/classes/TaskJuggler/GanttHeaderScaleItem.html +0 -249
- data/doc/classes/TaskJuggler/GanttLine.html +0 -402
- data/doc/classes/TaskJuggler/GanttLoadStack.html +0 -331
- data/doc/classes/TaskJuggler/GanttMilestone.html +0 -419
- data/doc/classes/TaskJuggler/GanttRouter.html +0 -431
- data/doc/classes/TaskJuggler/GanttTaskBar.html +0 -433
- data/doc/classes/TaskJuggler/HTMLDocument.html +0 -240
- data/doc/classes/TaskJuggler/HTMLGraphics.html +0 -231
- data/doc/classes/TaskJuggler/Interval.html +0 -558
- data/doc/classes/TaskJuggler/IntervalListAttribute.html +0 -267
- data/doc/classes/TaskJuggler/JobInfo.html +0 -340
- data/doc/classes/TaskJuggler/Journal.html +0 -443
- data/doc/classes/TaskJuggler/JournalEntry.html +0 -274
- data/doc/classes/TaskJuggler/JournalEntryList.html +0 -454
- data/doc/classes/TaskJuggler/KeywordArray.html +0 -179
- data/doc/classes/TaskJuggler/KeywordDocumentation.html +0 -846
- data/doc/classes/TaskJuggler/Limits/Limit.html +0 -385
- data/doc/classes/TaskJuggler/Limits.html +0 -422
- data/doc/classes/TaskJuggler/LimitsAttribute.html +0 -261
- data/doc/classes/TaskJuggler/ListAttributeBase.html +0 -207
- data/doc/classes/TaskJuggler/Log.html +0 -655
- data/doc/classes/TaskJuggler/LogicalAttribute.html +0 -259
- data/doc/classes/TaskJuggler/LogicalExpression.html +0 -292
- data/doc/classes/TaskJuggler/LogicalExpressionAttribute.html +0 -194
- data/doc/classes/TaskJuggler/LogicalFlag.html +0 -209
- data/doc/classes/TaskJuggler/LogicalFunction.html +0 -339
- data/doc/classes/TaskJuggler/LogicalOperation.html +0 -351
- data/doc/classes/TaskJuggler/Macro.html +0 -198
- data/doc/classes/TaskJuggler/MacroParser.html +0 -360
- data/doc/classes/TaskJuggler/MacroTable.html +0 -370
- data/doc/classes/TaskJuggler/Message.html +0 -285
- data/doc/classes/TaskJuggler/MessageHandler.html +0 -231
- data/doc/classes/TaskJuggler/Navigator.html +0 -313
- data/doc/classes/TaskJuggler/NavigatorElement.html +0 -449
- data/doc/classes/TaskJuggler/OnShiftCache.html +0 -316
- data/doc/classes/TaskJuggler/Project.html +0 -2257
- data/doc/classes/TaskJuggler/ProjectFileParser.html +0 -420
- data/doc/classes/TaskJuggler/PropertyAttribute.html +0 -194
- data/doc/classes/TaskJuggler/PropertyList.html +0 -668
- data/doc/classes/TaskJuggler/PropertySet.html +0 -1286
- data/doc/classes/TaskJuggler/PropertyTreeNode.html +0 -1742
- data/doc/classes/TaskJuggler/Query.html +0 -870
- data/doc/classes/TaskJuggler/RTFNavigator.html +0 -293
- data/doc/classes/TaskJuggler/RTFQuery.html +0 -343
- data/doc/classes/TaskJuggler/RTFReport.html +0 -304
- data/doc/classes/TaskJuggler/RealFormat.html +0 -309
- data/doc/classes/TaskJuggler/RealFormatAttribute.html +0 -162
- data/doc/classes/TaskJuggler/ReferenceAttribute.html +0 -328
- data/doc/classes/TaskJuggler/RemoteServiceManager.html +0 -335
- data/doc/classes/TaskJuggler/Report.html +0 -321
- data/doc/classes/TaskJuggler/ReportBase.html +0 -437
- data/doc/classes/TaskJuggler/ReportContext.html +0 -248
- data/doc/classes/TaskJuggler/ReportServer.html +0 -320
- data/doc/classes/TaskJuggler/ReportTable.html +0 -526
- data/doc/classes/TaskJuggler/ReportTableCell.html +0 -614
- data/doc/classes/TaskJuggler/ReportTableColumn.html +0 -368
- data/doc/classes/TaskJuggler/ReportTableLegend.html +0 -347
- data/doc/classes/TaskJuggler/ReportTableLine.html +0 -481
- data/doc/classes/TaskJuggler/Resource.html +0 -211
- data/doc/classes/TaskJuggler/ResourceListAttribute.html +0 -302
- data/doc/classes/TaskJuggler/ResourceListRE.html +0 -245
- data/doc/classes/TaskJuggler/ResourceScenario.html +0 -1229
- data/doc/classes/TaskJuggler/RichText.html +0 -357
- data/doc/classes/TaskJuggler/RichTextAttribute.html +0 -293
- data/doc/classes/TaskJuggler/RichTextDocument.html +0 -424
- data/doc/classes/TaskJuggler/RichTextElement.html +0 -932
- data/doc/classes/TaskJuggler/RichTextException.html +0 -212
- data/doc/classes/TaskJuggler/RichTextFunctionExample.html +0 -301
- data/doc/classes/TaskJuggler/RichTextFunctionHandler.html +0 -245
- data/doc/classes/TaskJuggler/RichTextIntermediate.html +0 -563
- data/doc/classes/TaskJuggler/RichTextParser.html +0 -321
- data/doc/classes/TaskJuggler/RichTextScanner.html +0 -424
- data/doc/classes/TaskJuggler/RichTextSnip.html +0 -404
- data/doc/classes/TaskJuggler/RichTextSyntaxRules.html +0 -1105
- data/doc/classes/TaskJuggler/Scenario.html +0 -163
- data/doc/classes/TaskJuggler/ScenarioData.html +0 -358
- data/doc/classes/TaskJuggler/ScenarioListAttribute.html +0 -229
- data/doc/classes/TaskJuggler/Scoreboard.html +0 -642
- data/doc/classes/TaskJuggler/Shift.html +0 -255
- data/doc/classes/TaskJuggler/ShiftAssignment.html +0 -492
- data/doc/classes/TaskJuggler/ShiftAssignments.html +0 -719
- data/doc/classes/TaskJuggler/ShiftAssignmentsAttribute.html +0 -261
- data/doc/classes/TaskJuggler/ShiftScenario.html +0 -282
- data/doc/classes/TaskJuggler/SortListAttribute.html +0 -196
- data/doc/classes/TaskJuggler/SourceFileInfo.html +0 -251
- data/doc/classes/TaskJuggler/StringAttribute.html +0 -229
- data/doc/classes/TaskJuggler/SymbolAttribute.html +0 -194
- data/doc/classes/TaskJuggler/SyntaxReference.html +0 -520
- data/doc/classes/TaskJuggler/TOCEntry.html +0 -246
- data/doc/classes/TaskJuggler/TSResourceRecord.html +0 -197
- data/doc/classes/TaskJuggler/TSTaskRecord.html +0 -215
- data/doc/classes/TaskJuggler/TableColumnDefinition.html +0 -309
- data/doc/classes/TaskJuggler/TableOfContents.html +0 -260
- data/doc/classes/TaskJuggler/TableReport.html +0 -1015
- data/doc/classes/TaskJuggler/Task.html +0 -203
- data/doc/classes/TaskJuggler/TaskDependency.html +0 -255
- data/doc/classes/TaskJuggler/TaskListAttribute.html +0 -267
- data/doc/classes/TaskJuggler/TaskListRE.html +0 -245
- data/doc/classes/TaskJuggler/TaskScenario.html +0 -2543
- data/doc/classes/TaskJuggler/TextParser/Pattern.html +0 -927
- data/doc/classes/TaskJuggler/TextParser/Rule.html +0 -783
- data/doc/classes/TaskJuggler/TextParser/StackElement.html +0 -272
- data/doc/classes/TaskJuggler/TextParser/TextParserResultArray.html +0 -212
- data/doc/classes/TaskJuggler/TextParser/TokenDoc.html +0 -225
- data/doc/classes/TaskJuggler/TextParser.html +0 -754
- data/doc/classes/TaskJuggler/TextReport.html +0 -367
- data/doc/classes/TaskJuggler/TextScanner/BufferStreamHandle.html +0 -355
- data/doc/classes/TaskJuggler/TextScanner/FileStreamHandle.html +0 -348
- data/doc/classes/TaskJuggler/TextScanner/StreamHandle.html +0 -264
- data/doc/classes/TaskJuggler/TextScanner.html +0 -815
- data/doc/classes/TaskJuggler/TimeSheetReport.html +0 -406
- data/doc/classes/TaskJuggler/TjException.html +0 -185
- data/doc/classes/TaskJuggler/TjTime.html +0 -1904
- data/doc/classes/TaskJuggler/TjpExample.html +0 -314
- data/doc/classes/TaskJuggler/TjpExportRE.html +0 -306
- data/doc/classes/TaskJuggler/TjpSyntaxRules.html +0 -10812
- data/doc/classes/TaskJuggler/UserManual.html +0 -605
- data/doc/classes/TaskJuggler/WorkingHours.html +0 -586
- data/doc/classes/TaskJuggler/WorkingHoursAttribute.html +0 -252
- data/doc/classes/TaskJuggler/XMLBlob.html +0 -207
- data/doc/classes/TaskJuggler/XMLComment.html +0 -206
- data/doc/classes/TaskJuggler/XMLDocument.html +0 -298
- data/doc/classes/TaskJuggler/XMLElement.html +0 -389
- data/doc/classes/TaskJuggler/XMLNamedText.html +0 -174
- data/doc/classes/TaskJuggler/XMLText.html +0 -221
- data/doc/classes/TaskJuggler.html +0 -1573
- data/doc/files/COPYING.html +0 -448
- data/doc/files/README.html +0 -134
- data/doc/files/lib/AccountScenario_rb.html +0 -117
- data/doc/files/lib/Account_rb.html +0 -119
- data/doc/files/lib/Allocation_rb.html +0 -119
- data/doc/files/lib/AppConfig_rb.html +0 -119
- data/doc/files/lib/AttributeBase_rb.html +0 -117
- data/doc/files/lib/AttributeDefinition_rb.html +0 -107
- data/doc/files/lib/Attributes_rb.html +0 -131
- data/doc/files/lib/BatchProcessor_rb.html +0 -119
- data/doc/files/lib/Booking_rb.html +0 -107
- data/doc/files/lib/ChargeSet_rb.html +0 -117
- data/doc/files/lib/Charge_rb.html +0 -117
- data/doc/files/lib/HTMLDocument_rb.html +0 -117
- data/doc/files/lib/Interval_rb.html +0 -117
- data/doc/files/lib/Journal_rb.html +0 -107
- data/doc/files/lib/KeywordArray_rb.html +0 -107
- data/doc/files/lib/KeywordDocumentation_rb.html +0 -123
- data/doc/files/lib/Limits_rb.html +0 -117
- data/doc/files/lib/Log_rb.html +0 -117
- data/doc/files/lib/LogicalExpression_rb.html +0 -121
- data/doc/files/lib/LogicalFunction_rb.html +0 -117
- data/doc/files/lib/LogicalOperation_rb.html +0 -117
- data/doc/files/lib/MacroParser_rb.html +0 -119
- data/doc/files/lib/MacroTable_rb.html +0 -123
- data/doc/files/lib/MessageHandler_rb.html +0 -107
- data/doc/files/lib/Message_rb.html +0 -117
- data/doc/files/lib/ProjectFileParser_rb.html +0 -129
- data/doc/files/lib/Project_rb.html +0 -153
- data/doc/files/lib/PropertyList_rb.html +0 -107
- data/doc/files/lib/PropertySet_rb.html +0 -119
- data/doc/files/lib/PropertyTreeNode_rb.html +0 -107
- data/doc/files/lib/Query_rb.html +0 -117
- data/doc/files/lib/RTFNavigator_rb.html +0 -121
- data/doc/files/lib/RTFQuery_rb.html +0 -121
- data/doc/files/lib/RTFReport_rb.html +0 -119
- data/doc/files/lib/RealFormat_rb.html +0 -107
- data/doc/files/lib/RemoteServiceManager_rb.html +0 -117
- data/doc/files/lib/ReportServer_rb.html +0 -107
- data/doc/files/lib/ResourceScenario_rb.html +0 -117
- data/doc/files/lib/Resource_rb.html +0 -119
- data/doc/files/lib/RichTextDocument_rb.html +0 -121
- data/doc/files/lib/RichTextElement_rb.html +0 -121
- data/doc/files/lib/RichTextFunctionExample_rb.html +0 -121
- data/doc/files/lib/RichTextFunctionHandler_rb.html +0 -107
- data/doc/files/lib/RichTextParser_rb.html +0 -121
- data/doc/files/lib/RichTextScanner_rb.html +0 -117
- data/doc/files/lib/RichTextSnip_rb.html +0 -119
- data/doc/files/lib/RichTextSyntaxRules_rb.html +0 -107
- data/doc/files/lib/RichText_rb.html +0 -119
- data/doc/files/lib/ScenarioData_rb.html +0 -119
- data/doc/files/lib/Scenario_rb.html +0 -117
- data/doc/files/lib/Scoreboard_rb.html +0 -107
- data/doc/files/lib/ShiftAssignments_rb.html +0 -117
- data/doc/files/lib/ShiftScenario_rb.html +0 -117
- data/doc/files/lib/Shift_rb.html +0 -119
- data/doc/files/lib/SourceFileInfo_rb.html +0 -107
- data/doc/files/lib/SyntaxReference_rb.html +0 -123
- data/doc/files/lib/TOCEntry_rb.html +0 -119
- data/doc/files/lib/TableColumnDefinition_rb.html +0 -107
- data/doc/files/lib/TableOfContents_rb.html +0 -119
- data/doc/files/lib/TaskDependency_rb.html +0 -107
- data/doc/files/lib/TaskJuggler_rb.html +0 -125
- data/doc/files/lib/TaskScenario_rb.html +0 -117
- data/doc/files/lib/Task_rb.html +0 -119
- data/doc/files/lib/TextParser/Pattern_rb.html +0 -117
- data/doc/files/lib/TextParser/Rule_rb.html +0 -107
- data/doc/files/lib/TextParser/StackElement_rb.html +0 -107
- data/doc/files/lib/TextParser/TokenDoc_rb.html +0 -107
- data/doc/files/lib/TextParser_rb.html +0 -125
- data/doc/files/lib/TextScanner_rb.html +0 -129
- data/doc/files/lib/Tj3Config_rb.html +0 -119
- data/doc/files/lib/TjException_rb.html +0 -107
- data/doc/files/lib/TjTime_rb.html +0 -119
- data/doc/files/lib/TjpExample_rb.html +0 -117
- data/doc/files/lib/TjpSyntaxRules_rb.html +0 -107
- data/doc/files/lib/UTF8String_rb.html +0 -140
- data/doc/files/lib/UserManual_rb.html +0 -127
- data/doc/files/lib/WorkingHours_rb.html +0 -117
- data/doc/files/lib/XMLDocument_rb.html +0 -117
- data/doc/files/lib/XMLElement_rb.html +0 -117
- data/doc/files/lib/deep_copy_rb.html +0 -107
- data/doc/files/lib/reports/CSVFile_rb.html +0 -117
- data/doc/files/lib/reports/ColumnTable_rb.html +0 -117
- data/doc/files/lib/reports/GanttChart_rb.html +0 -123
- data/doc/files/lib/reports/GanttContainer_rb.html +0 -117
- data/doc/files/lib/reports/GanttHeaderScaleItem_rb.html +0 -107
- data/doc/files/lib/reports/GanttHeader_rb.html +0 -117
- data/doc/files/lib/reports/GanttLine_rb.html +0 -127
- data/doc/files/lib/reports/GanttLoadStack_rb.html +0 -117
- data/doc/files/lib/reports/GanttMilestone_rb.html +0 -117
- data/doc/files/lib/reports/GanttRouter_rb.html +0 -107
- data/doc/files/lib/reports/GanttTaskBar_rb.html +0 -117
- data/doc/files/lib/reports/HTMLGraphics_rb.html +0 -107
- data/doc/files/lib/reports/Navigator_rb.html +0 -117
- data/doc/files/lib/reports/ReportBase_rb.html +0 -107
- data/doc/files/lib/reports/ReportContext_rb.html +0 -107
- data/doc/files/lib/reports/ReportTableCell_rb.html +0 -107
- data/doc/files/lib/reports/ReportTableColumn_rb.html +0 -107
- data/doc/files/lib/reports/ReportTableLegend_rb.html +0 -107
- data/doc/files/lib/reports/ReportTableLine_rb.html +0 -117
- data/doc/files/lib/reports/ReportTable_rb.html +0 -119
- data/doc/files/lib/reports/Report_rb.html +0 -137
- data/doc/files/lib/reports/ResourceListRE_rb.html +0 -123
- data/doc/files/lib/reports/TableReport_rb.html +0 -125
- data/doc/files/lib/reports/TaskListRE_rb.html +0 -123
- data/doc/files/lib/reports/TextReport_rb.html +0 -117
- data/doc/files/lib/reports/TimeSheetReport_rb.html +0 -117
- data/doc/files/lib/reports/TjpExportRE_rb.html +0 -117
- data/doc/files/lib/taskjuggler3_rb.html +0 -298
- data/doc/files/lib/tj3client_rb.html +0 -280
- data/doc/files/lib/tj3man_rb.html +0 -190
- data/doc/fr_class_index.html +0 -345
- data/doc/fr_file_index.html +0 -247
- data/doc/fr_method_index.html +0 -2355
- data/doc/rdoc-style.css +0 -299
- data/lib/RemoteServiceManager.rb +0 -80
- data/lib/ReportServer.rb +0 -66
- data/test/TestSuite/HTML-Reports/Alerts.html +0 -172
- data/test/TestSuite/HTML-Reports/CellText.html +0 -758
- data/test/TestSuite/HTML-Reports/ColumnPeriods.html +0 -156
- data/test/TestSuite/HTML-Reports/IsOngoing.html +0 -172
- data/test/TestSuite/HTML-Reports/LogicalFunctions.html +0 -80
- data/test/TestSuite/HTML-Reports/Query.html +0 -31
- data/test/TestSuite/HTML-Reports/depArrows.html +0 -842
- data/test/TestSuite/Syntax/Correct/RawHTML.tjp +0 -31
- data/test/TestSuite/Syntax/Correct/icons/flag-green.png +0 -0
- data/test/TestSuite/Syntax/Correct/icons/flag-red.png +0 -0
- data/test/TestSuite/Syntax/Correct/icons/flag-yellow.png +0 -0
- data/test/TestSuite/Syntax/Correct/scripts/wz_tooltip.js +0 -1301
- data/test/TestSuite/Syntax/Errors/export_bad_extn.tjp +0 -9
@@ -0,0 +1,1089 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
3
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
4
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
5
|
+
<head>
|
6
|
+
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
|
7
|
+
|
8
|
+
<title>Class: TaskJuggler::SheetSender</title>
|
9
|
+
|
10
|
+
<link rel="stylesheet" href="../rdoc.css" type="text/css" media="screen" />
|
11
|
+
|
12
|
+
<script src="../js/jquery.js" type="text/javascript"
|
13
|
+
charset="utf-8"></script>
|
14
|
+
<script src="../js/thickbox-compressed.js" type="text/javascript"
|
15
|
+
charset="utf-8"></script>
|
16
|
+
<script src="../js/quicksearch.js" type="text/javascript"
|
17
|
+
charset="utf-8"></script>
|
18
|
+
<script src="../js/darkfish.js" type="text/javascript"
|
19
|
+
charset="utf-8"></script>
|
20
|
+
|
21
|
+
</head>
|
22
|
+
<body class="class">
|
23
|
+
|
24
|
+
<div id="metadata">
|
25
|
+
<div id="home-metadata">
|
26
|
+
<div id="home-section" class="section">
|
27
|
+
<h3 class="section-header">
|
28
|
+
<a href="../index.html">Home</a>
|
29
|
+
<a href="../index.html#classes">Classes</a>
|
30
|
+
<a href="../index.html#methods">Methods</a>
|
31
|
+
</h3>
|
32
|
+
</div>
|
33
|
+
</div>
|
34
|
+
|
35
|
+
<div id="file-metadata">
|
36
|
+
<div id="file-list-section" class="section">
|
37
|
+
<h3 class="section-header">In Files</h3>
|
38
|
+
<div class="section-body">
|
39
|
+
<ul>
|
40
|
+
|
41
|
+
<li><a href="../lib/SheetSender_rb.html?TB_iframe=true&height=550&width=785"
|
42
|
+
class="thickbox" title="lib/SheetSender.rb">lib/SheetSender.rb</a></li>
|
43
|
+
|
44
|
+
</ul>
|
45
|
+
</div>
|
46
|
+
</div>
|
47
|
+
|
48
|
+
|
49
|
+
</div>
|
50
|
+
|
51
|
+
<div id="class-metadata">
|
52
|
+
|
53
|
+
<!-- Parent Class -->
|
54
|
+
|
55
|
+
<div id="parent-class-section" class="section">
|
56
|
+
<h3 class="section-header">Parent</h3>
|
57
|
+
|
58
|
+
<p class="link"><a href="SheetHandlerBase.html">TaskJuggler::SheetHandlerBase</a></p>
|
59
|
+
|
60
|
+
</div>
|
61
|
+
|
62
|
+
|
63
|
+
<!-- Namespace Contents -->
|
64
|
+
|
65
|
+
|
66
|
+
<!-- Method Quickref -->
|
67
|
+
|
68
|
+
<div id="method-list-section" class="section">
|
69
|
+
<h3 class="section-header">Methods</h3>
|
70
|
+
<ul class="link-list">
|
71
|
+
|
72
|
+
<li><a href="#M001457">::new</a></li>
|
73
|
+
|
74
|
+
<li><a href="#M001459">#createDirectories</a></li>
|
75
|
+
|
76
|
+
<li><a href="#M001463">#enableSignatureForReporting</a></li>
|
77
|
+
|
78
|
+
<li><a href="#M001460">#genResourceList</a></li>
|
79
|
+
|
80
|
+
<li><a href="#M001461">#genTemplates</a></li>
|
81
|
+
|
82
|
+
<li><a href="#M001464">#generateReport</a></li>
|
83
|
+
|
84
|
+
<li><a href="#M001462">#sendReportTemplates</a></li>
|
85
|
+
|
86
|
+
<li><a href="#M001458">#sendTemplates</a></li>
|
87
|
+
|
88
|
+
</ul>
|
89
|
+
</div>
|
90
|
+
|
91
|
+
|
92
|
+
<!-- Included Modules -->
|
93
|
+
|
94
|
+
</div>
|
95
|
+
|
96
|
+
<div id="project-metadata">
|
97
|
+
|
98
|
+
|
99
|
+
<div id="fileindex-section" class="section project-section">
|
100
|
+
<h3 class="section-header">Files</h3>
|
101
|
+
<ul>
|
102
|
+
|
103
|
+
<li class="file"><a href="../COPYING.html">COPYING</a></li>
|
104
|
+
|
105
|
+
<li class="file"><a href="../README.html">README</a></li>
|
106
|
+
|
107
|
+
</ul>
|
108
|
+
</div>
|
109
|
+
|
110
|
+
|
111
|
+
<div id="classindex-section" class="section project-section">
|
112
|
+
<h3 class="section-header">Class Index
|
113
|
+
<span class="search-toggle"><img src="../images/find.png"
|
114
|
+
height="16" width="16" alt="[+]"
|
115
|
+
title="show/hide quicksearch" /></span></h3>
|
116
|
+
<form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
|
117
|
+
<fieldset>
|
118
|
+
<legend>Quicksearch</legend>
|
119
|
+
<input type="text" name="quicksearch" value=""
|
120
|
+
class="quicksearch-field" />
|
121
|
+
</fieldset>
|
122
|
+
</form>
|
123
|
+
|
124
|
+
<ul class="link-list">
|
125
|
+
|
126
|
+
<li><a href="../TaskJuggler.html">TaskJuggler</a></li>
|
127
|
+
|
128
|
+
<li><a href="../TaskJuggler/Account.html">TaskJuggler::Account</a></li>
|
129
|
+
|
130
|
+
<li><a href="../TaskJuggler/AccountAttribute.html">TaskJuggler::AccountAttribute</a></li>
|
131
|
+
|
132
|
+
<li><a href="../TaskJuggler/AccountScenario.html">TaskJuggler::AccountScenario</a></li>
|
133
|
+
|
134
|
+
<li><a href="../TaskJuggler/Allocation.html">TaskJuggler::Allocation</a></li>
|
135
|
+
|
136
|
+
<li><a href="../TaskJuggler/AllocationAttribute.html">TaskJuggler::AllocationAttribute</a></li>
|
137
|
+
|
138
|
+
<li><a href="../TaskJuggler/AttributeBase.html">TaskJuggler::AttributeBase</a></li>
|
139
|
+
|
140
|
+
<li><a href="../TaskJuggler/AttributeDefinition.html">TaskJuggler::AttributeDefinition</a></li>
|
141
|
+
|
142
|
+
<li><a href="../TaskJuggler/BatchProcessor.html">TaskJuggler::BatchProcessor</a></li>
|
143
|
+
|
144
|
+
<li><a href="../TaskJuggler/Booking.html">TaskJuggler::Booking</a></li>
|
145
|
+
|
146
|
+
<li><a href="../TaskJuggler/BookingListAttribute.html">TaskJuggler::BookingListAttribute</a></li>
|
147
|
+
|
148
|
+
<li><a href="../TaskJuggler/BooleanAttribute.html">TaskJuggler::BooleanAttribute</a></li>
|
149
|
+
|
150
|
+
<li><a href="../TaskJuggler/CSVFile.html">TaskJuggler::CSVFile</a></li>
|
151
|
+
|
152
|
+
<li><a href="../TaskJuggler/CellSettingPattern.html">TaskJuggler::CellSettingPattern</a></li>
|
153
|
+
|
154
|
+
<li><a href="../TaskJuggler/CellSettingPatternList.html">TaskJuggler::CellSettingPatternList</a></li>
|
155
|
+
|
156
|
+
<li><a href="../TaskJuggler/Charge.html">TaskJuggler::Charge</a></li>
|
157
|
+
|
158
|
+
<li><a href="../TaskJuggler/ChargeListAttribute.html">TaskJuggler::ChargeListAttribute</a></li>
|
159
|
+
|
160
|
+
<li><a href="../TaskJuggler/ChargeSet.html">TaskJuggler::ChargeSet</a></li>
|
161
|
+
|
162
|
+
<li><a href="../TaskJuggler/ChargeSetListAttribute.html">TaskJuggler::ChargeSetListAttribute</a></li>
|
163
|
+
|
164
|
+
<li><a href="../TaskJuggler/ColumnListAttribute.html">TaskJuggler::ColumnListAttribute</a></li>
|
165
|
+
|
166
|
+
<li><a href="../TaskJuggler/ColumnTable.html">TaskJuggler::ColumnTable</a></li>
|
167
|
+
|
168
|
+
<li><a href="../TaskJuggler/Daemon.html">TaskJuggler::Daemon</a></li>
|
169
|
+
|
170
|
+
<li><a href="../TaskJuggler/DateAttribute.html">TaskJuggler::DateAttribute</a></li>
|
171
|
+
|
172
|
+
<li><a href="../TaskJuggler/DefinitionListAttribute.html">TaskJuggler::DefinitionListAttribute</a></li>
|
173
|
+
|
174
|
+
<li><a href="../TaskJuggler/DependencyListAttribute.html">TaskJuggler::DependencyListAttribute</a></li>
|
175
|
+
|
176
|
+
<li><a href="../TaskJuggler/DurationAttribute.html">TaskJuggler::DurationAttribute</a></li>
|
177
|
+
|
178
|
+
<li><a href="../TaskJuggler/FixnumAttribute.html">TaskJuggler::FixnumAttribute</a></li>
|
179
|
+
|
180
|
+
<li><a href="../TaskJuggler/FlagListAttribute.html">TaskJuggler::FlagListAttribute</a></li>
|
181
|
+
|
182
|
+
<li><a href="../TaskJuggler/FloatAttribute.html">TaskJuggler::FloatAttribute</a></li>
|
183
|
+
|
184
|
+
<li><a href="../TaskJuggler/FormatListAttribute.html">TaskJuggler::FormatListAttribute</a></li>
|
185
|
+
|
186
|
+
<li><a href="../TaskJuggler/GanttChart.html">TaskJuggler::GanttChart</a></li>
|
187
|
+
|
188
|
+
<li><a href="../TaskJuggler/GanttContainer.html">TaskJuggler::GanttContainer</a></li>
|
189
|
+
|
190
|
+
<li><a href="../TaskJuggler/GanttHeader.html">TaskJuggler::GanttHeader</a></li>
|
191
|
+
|
192
|
+
<li><a href="../TaskJuggler/GanttHeaderScaleItem.html">TaskJuggler::GanttHeaderScaleItem</a></li>
|
193
|
+
|
194
|
+
<li><a href="../TaskJuggler/GanttLine.html">TaskJuggler::GanttLine</a></li>
|
195
|
+
|
196
|
+
<li><a href="../TaskJuggler/GanttLoadStack.html">TaskJuggler::GanttLoadStack</a></li>
|
197
|
+
|
198
|
+
<li><a href="../TaskJuggler/GanttMilestone.html">TaskJuggler::GanttMilestone</a></li>
|
199
|
+
|
200
|
+
<li><a href="../TaskJuggler/GanttRouter.html">TaskJuggler::GanttRouter</a></li>
|
201
|
+
|
202
|
+
<li><a href="../TaskJuggler/GanttTaskBar.html">TaskJuggler::GanttTaskBar</a></li>
|
203
|
+
|
204
|
+
<li><a href="../TaskJuggler/HTMLDocument.html">TaskJuggler::HTMLDocument</a></li>
|
205
|
+
|
206
|
+
<li><a href="../TaskJuggler/HTMLGraphics.html">TaskJuggler::HTMLGraphics</a></li>
|
207
|
+
|
208
|
+
<li><a href="../TaskJuggler/Interval.html">TaskJuggler::Interval</a></li>
|
209
|
+
|
210
|
+
<li><a href="../TaskJuggler/IntervalListAttribute.html">TaskJuggler::IntervalListAttribute</a></li>
|
211
|
+
|
212
|
+
<li><a href="../TaskJuggler/JobInfo.html">TaskJuggler::JobInfo</a></li>
|
213
|
+
|
214
|
+
<li><a href="../TaskJuggler/Journal.html">TaskJuggler::Journal</a></li>
|
215
|
+
|
216
|
+
<li><a href="../TaskJuggler/JournalEntry.html">TaskJuggler::JournalEntry</a></li>
|
217
|
+
|
218
|
+
<li><a href="../TaskJuggler/JournalEntryList.html">TaskJuggler::JournalEntryList</a></li>
|
219
|
+
|
220
|
+
<li><a href="../TaskJuggler/KeywordArray.html">TaskJuggler::KeywordArray</a></li>
|
221
|
+
|
222
|
+
<li><a href="../TaskJuggler/KeywordDocumentation.html">TaskJuggler::KeywordDocumentation</a></li>
|
223
|
+
|
224
|
+
<li><a href="../TaskJuggler/Limits.html">TaskJuggler::Limits</a></li>
|
225
|
+
|
226
|
+
<li><a href="../TaskJuggler/Limits/Limit.html">TaskJuggler::Limits::Limit</a></li>
|
227
|
+
|
228
|
+
<li><a href="../TaskJuggler/LimitsAttribute.html">TaskJuggler::LimitsAttribute</a></li>
|
229
|
+
|
230
|
+
<li><a href="../TaskJuggler/ListAttributeBase.html">TaskJuggler::ListAttributeBase</a></li>
|
231
|
+
|
232
|
+
<li><a href="../TaskJuggler/Log.html">TaskJuggler::Log</a></li>
|
233
|
+
|
234
|
+
<li><a href="../TaskJuggler/LogFile.html">TaskJuggler::LogFile</a></li>
|
235
|
+
|
236
|
+
<li><a href="../TaskJuggler/LogicalAttribute.html">TaskJuggler::LogicalAttribute</a></li>
|
237
|
+
|
238
|
+
<li><a href="../TaskJuggler/LogicalExpression.html">TaskJuggler::LogicalExpression</a></li>
|
239
|
+
|
240
|
+
<li><a href="../TaskJuggler/LogicalExpressionAttribute.html">TaskJuggler::LogicalExpressionAttribute</a></li>
|
241
|
+
|
242
|
+
<li><a href="../TaskJuggler/LogicalFlag.html">TaskJuggler::LogicalFlag</a></li>
|
243
|
+
|
244
|
+
<li><a href="../TaskJuggler/LogicalFunction.html">TaskJuggler::LogicalFunction</a></li>
|
245
|
+
|
246
|
+
<li><a href="../TaskJuggler/LogicalOperation.html">TaskJuggler::LogicalOperation</a></li>
|
247
|
+
|
248
|
+
<li><a href="../TaskJuggler/Macro.html">TaskJuggler::Macro</a></li>
|
249
|
+
|
250
|
+
<li><a href="../TaskJuggler/MacroParser.html">TaskJuggler::MacroParser</a></li>
|
251
|
+
|
252
|
+
<li><a href="../TaskJuggler/MacroTable.html">TaskJuggler::MacroTable</a></li>
|
253
|
+
|
254
|
+
<li><a href="../TaskJuggler/ManagerResponsibilities.html">TaskJuggler::ManagerResponsibilities</a></li>
|
255
|
+
|
256
|
+
<li><a href="../TaskJuggler/ManagerStatusRecord.html">TaskJuggler::ManagerStatusRecord</a></li>
|
257
|
+
|
258
|
+
<li><a href="../TaskJuggler/Message.html">TaskJuggler::Message</a></li>
|
259
|
+
|
260
|
+
<li><a href="../TaskJuggler/MessageHandler.html">TaskJuggler::MessageHandler</a></li>
|
261
|
+
|
262
|
+
<li><a href="../TaskJuggler/Navigator.html">TaskJuggler::Navigator</a></li>
|
263
|
+
|
264
|
+
<li><a href="../TaskJuggler/NavigatorElement.html">TaskJuggler::NavigatorElement</a></li>
|
265
|
+
|
266
|
+
<li><a href="../TaskJuggler/NikuProject.html">TaskJuggler::NikuProject</a></li>
|
267
|
+
|
268
|
+
<li><a href="../TaskJuggler/NikuReport.html">TaskJuggler::NikuReport</a></li>
|
269
|
+
|
270
|
+
<li><a href="../TaskJuggler/NikuResource.html">TaskJuggler::NikuResource</a></li>
|
271
|
+
|
272
|
+
<li><a href="../TaskJuggler/OnShiftCache.html">TaskJuggler::OnShiftCache</a></li>
|
273
|
+
|
274
|
+
<li><a href="../TaskJuggler/ProcessIntercom.html">TaskJuggler::ProcessIntercom</a></li>
|
275
|
+
|
276
|
+
<li><a href="../TaskJuggler/ProcessIntercomIface.html">TaskJuggler::ProcessIntercomIface</a></li>
|
277
|
+
|
278
|
+
<li><a href="../TaskJuggler/Project.html">TaskJuggler::Project</a></li>
|
279
|
+
|
280
|
+
<li><a href="../TaskJuggler/ProjectBroker.html">TaskJuggler::ProjectBroker</a></li>
|
281
|
+
|
282
|
+
<li><a href="../TaskJuggler/ProjectBrokerIface.html">TaskJuggler::ProjectBrokerIface</a></li>
|
283
|
+
|
284
|
+
<li><a href="../TaskJuggler/ProjectFileParser.html">TaskJuggler::ProjectFileParser</a></li>
|
285
|
+
|
286
|
+
<li><a href="../TaskJuggler/ProjectRecord.html">TaskJuggler::ProjectRecord</a></li>
|
287
|
+
|
288
|
+
<li><a href="../TaskJuggler/ProjectServer.html">TaskJuggler::ProjectServer</a></li>
|
289
|
+
|
290
|
+
<li><a href="../TaskJuggler/ProjectServerIface.html">TaskJuggler::ProjectServerIface</a></li>
|
291
|
+
|
292
|
+
<li><a href="../TaskJuggler/PropertyAttribute.html">TaskJuggler::PropertyAttribute</a></li>
|
293
|
+
|
294
|
+
<li><a href="../TaskJuggler/PropertyList.html">TaskJuggler::PropertyList</a></li>
|
295
|
+
|
296
|
+
<li><a href="../TaskJuggler/PropertySet.html">TaskJuggler::PropertySet</a></li>
|
297
|
+
|
298
|
+
<li><a href="../TaskJuggler/PropertyTreeNode.html">TaskJuggler::PropertyTreeNode</a></li>
|
299
|
+
|
300
|
+
<li><a href="../TaskJuggler/Query.html">TaskJuggler::Query</a></li>
|
301
|
+
|
302
|
+
<li><a href="../TaskJuggler/RTFNavigator.html">TaskJuggler::RTFNavigator</a></li>
|
303
|
+
|
304
|
+
<li><a href="../TaskJuggler/RTFQuery.html">TaskJuggler::RTFQuery</a></li>
|
305
|
+
|
306
|
+
<li><a href="../TaskJuggler/RTFReport.html">TaskJuggler::RTFReport</a></li>
|
307
|
+
|
308
|
+
<li><a href="../TaskJuggler/RealFormat.html">TaskJuggler::RealFormat</a></li>
|
309
|
+
|
310
|
+
<li><a href="../TaskJuggler/RealFormatAttribute.html">TaskJuggler::RealFormatAttribute</a></li>
|
311
|
+
|
312
|
+
<li><a href="../TaskJuggler/ReferenceAttribute.html">TaskJuggler::ReferenceAttribute</a></li>
|
313
|
+
|
314
|
+
<li><a href="../TaskJuggler/Report.html">TaskJuggler::Report</a></li>
|
315
|
+
|
316
|
+
<li><a href="../TaskJuggler/ReportBase.html">TaskJuggler::ReportBase</a></li>
|
317
|
+
|
318
|
+
<li><a href="../TaskJuggler/ReportContext.html">TaskJuggler::ReportContext</a></li>
|
319
|
+
|
320
|
+
<li><a href="../TaskJuggler/ReportServer.html">TaskJuggler::ReportServer</a></li>
|
321
|
+
|
322
|
+
<li><a href="../TaskJuggler/ReportServerIface.html">TaskJuggler::ReportServerIface</a></li>
|
323
|
+
|
324
|
+
<li><a href="../TaskJuggler/ReportServerRecord.html">TaskJuggler::ReportServerRecord</a></li>
|
325
|
+
|
326
|
+
<li><a href="../TaskJuggler/ReportTable.html">TaskJuggler::ReportTable</a></li>
|
327
|
+
|
328
|
+
<li><a href="../TaskJuggler/ReportTableCell.html">TaskJuggler::ReportTableCell</a></li>
|
329
|
+
|
330
|
+
<li><a href="../TaskJuggler/ReportTableColumn.html">TaskJuggler::ReportTableColumn</a></li>
|
331
|
+
|
332
|
+
<li><a href="../TaskJuggler/ReportTableLegend.html">TaskJuggler::ReportTableLegend</a></li>
|
333
|
+
|
334
|
+
<li><a href="../TaskJuggler/ReportTableLine.html">TaskJuggler::ReportTableLine</a></li>
|
335
|
+
|
336
|
+
<li><a href="../TaskJuggler/Resource.html">TaskJuggler::Resource</a></li>
|
337
|
+
|
338
|
+
<li><a href="../TaskJuggler/ResourceListAttribute.html">TaskJuggler::ResourceListAttribute</a></li>
|
339
|
+
|
340
|
+
<li><a href="../TaskJuggler/ResourceListRE.html">TaskJuggler::ResourceListRE</a></li>
|
341
|
+
|
342
|
+
<li><a href="../TaskJuggler/ResourceScenario.html">TaskJuggler::ResourceScenario</a></li>
|
343
|
+
|
344
|
+
<li><a href="../TaskJuggler/RichText.html">TaskJuggler::RichText</a></li>
|
345
|
+
|
346
|
+
<li><a href="../TaskJuggler/RichTextAttribute.html">TaskJuggler::RichTextAttribute</a></li>
|
347
|
+
|
348
|
+
<li><a href="../TaskJuggler/RichTextDocument.html">TaskJuggler::RichTextDocument</a></li>
|
349
|
+
|
350
|
+
<li><a href="../TaskJuggler/RichTextElement.html">TaskJuggler::RichTextElement</a></li>
|
351
|
+
|
352
|
+
<li><a href="../TaskJuggler/RichTextException.html">TaskJuggler::RichTextException</a></li>
|
353
|
+
|
354
|
+
<li><a href="../TaskJuggler/RichTextFunctionExample.html">TaskJuggler::RichTextFunctionExample</a></li>
|
355
|
+
|
356
|
+
<li><a href="../TaskJuggler/RichTextFunctionHandler.html">TaskJuggler::RichTextFunctionHandler</a></li>
|
357
|
+
|
358
|
+
<li><a href="../TaskJuggler/RichTextImage.html">TaskJuggler::RichTextImage</a></li>
|
359
|
+
|
360
|
+
<li><a href="../TaskJuggler/RichTextIntermediate.html">TaskJuggler::RichTextIntermediate</a></li>
|
361
|
+
|
362
|
+
<li><a href="../TaskJuggler/RichTextParser.html">TaskJuggler::RichTextParser</a></li>
|
363
|
+
|
364
|
+
<li><a href="../TaskJuggler/RichTextScanner.html">TaskJuggler::RichTextScanner</a></li>
|
365
|
+
|
366
|
+
<li><a href="../TaskJuggler/RichTextSnip.html">TaskJuggler::RichTextSnip</a></li>
|
367
|
+
|
368
|
+
<li><a href="../TaskJuggler/RichTextSyntaxRules.html">TaskJuggler::RichTextSyntaxRules</a></li>
|
369
|
+
|
370
|
+
<li><a href="../TaskJuggler/Scenario.html">TaskJuggler::Scenario</a></li>
|
371
|
+
|
372
|
+
<li><a href="../TaskJuggler/ScenarioData.html">TaskJuggler::ScenarioData</a></li>
|
373
|
+
|
374
|
+
<li><a href="../TaskJuggler/ScenarioListAttribute.html">TaskJuggler::ScenarioListAttribute</a></li>
|
375
|
+
|
376
|
+
<li><a href="../TaskJuggler/Scoreboard.html">TaskJuggler::Scoreboard</a></li>
|
377
|
+
|
378
|
+
<li><a href="../TaskJuggler/SheetHandlerBase.html">TaskJuggler::SheetHandlerBase</a></li>
|
379
|
+
|
380
|
+
<li><a href="../TaskJuggler/SheetReceiver.html">TaskJuggler::SheetReceiver</a></li>
|
381
|
+
|
382
|
+
<li><a href="../TaskJuggler/SheetSender.html">TaskJuggler::SheetSender</a></li>
|
383
|
+
|
384
|
+
<li><a href="../TaskJuggler/Shift.html">TaskJuggler::Shift</a></li>
|
385
|
+
|
386
|
+
<li><a href="../TaskJuggler/ShiftAssignment.html">TaskJuggler::ShiftAssignment</a></li>
|
387
|
+
|
388
|
+
<li><a href="../TaskJuggler/ShiftAssignments.html">TaskJuggler::ShiftAssignments</a></li>
|
389
|
+
|
390
|
+
<li><a href="../TaskJuggler/ShiftAssignmentsAttribute.html">TaskJuggler::ShiftAssignmentsAttribute</a></li>
|
391
|
+
|
392
|
+
<li><a href="../TaskJuggler/ShiftScenario.html">TaskJuggler::ShiftScenario</a></li>
|
393
|
+
|
394
|
+
<li><a href="../TaskJuggler/SortListAttribute.html">TaskJuggler::SortListAttribute</a></li>
|
395
|
+
|
396
|
+
<li><a href="../TaskJuggler/SourceFileInfo.html">TaskJuggler::SourceFileInfo</a></li>
|
397
|
+
|
398
|
+
<li><a href="../TaskJuggler/StatusSheetReceiver.html">TaskJuggler::StatusSheetReceiver</a></li>
|
399
|
+
|
400
|
+
<li><a href="../TaskJuggler/StatusSheetReport.html">TaskJuggler::StatusSheetReport</a></li>
|
401
|
+
|
402
|
+
<li><a href="../TaskJuggler/StatusSheetSender.html">TaskJuggler::StatusSheetSender</a></li>
|
403
|
+
|
404
|
+
<li><a href="../TaskJuggler/StringAttribute.html">TaskJuggler::StringAttribute</a></li>
|
405
|
+
|
406
|
+
<li><a href="../TaskJuggler/SymbolAttribute.html">TaskJuggler::SymbolAttribute</a></li>
|
407
|
+
|
408
|
+
<li><a href="../TaskJuggler/SyntaxReference.html">TaskJuggler::SyntaxReference</a></li>
|
409
|
+
|
410
|
+
<li><a href="../TaskJuggler/TOCEntry.html">TaskJuggler::TOCEntry</a></li>
|
411
|
+
|
412
|
+
<li><a href="../TaskJuggler/TSResourceRecord.html">TaskJuggler::TSResourceRecord</a></li>
|
413
|
+
|
414
|
+
<li><a href="../TaskJuggler/TSTaskRecord.html">TaskJuggler::TSTaskRecord</a></li>
|
415
|
+
|
416
|
+
<li><a href="../TaskJuggler/TableColumnDefinition.html">TaskJuggler::TableColumnDefinition</a></li>
|
417
|
+
|
418
|
+
<li><a href="../TaskJuggler/TableOfContents.html">TaskJuggler::TableOfContents</a></li>
|
419
|
+
|
420
|
+
<li><a href="../TaskJuggler/TableReport.html">TaskJuggler::TableReport</a></li>
|
421
|
+
|
422
|
+
<li><a href="../TaskJuggler/Task.html">TaskJuggler::Task</a></li>
|
423
|
+
|
424
|
+
<li><a href="../TaskJuggler/TaskDependency.html">TaskJuggler::TaskDependency</a></li>
|
425
|
+
|
426
|
+
<li><a href="../TaskJuggler/TaskListAttribute.html">TaskJuggler::TaskListAttribute</a></li>
|
427
|
+
|
428
|
+
<li><a href="../TaskJuggler/TaskListRE.html">TaskJuggler::TaskListRE</a></li>
|
429
|
+
|
430
|
+
<li><a href="../TaskJuggler/TaskScenario.html">TaskJuggler::TaskScenario</a></li>
|
431
|
+
|
432
|
+
<li><a href="../TaskJuggler/TextFormatter.html">TaskJuggler::TextFormatter</a></li>
|
433
|
+
|
434
|
+
<li><a href="../TaskJuggler/TextParser.html">TaskJuggler::TextParser</a></li>
|
435
|
+
|
436
|
+
<li><a href="../TaskJuggler/TextParser/Pattern.html">TaskJuggler::TextParser::Pattern</a></li>
|
437
|
+
|
438
|
+
<li><a href="../TaskJuggler/TextParser/Rule.html">TaskJuggler::TextParser::Rule</a></li>
|
439
|
+
|
440
|
+
<li><a href="../TaskJuggler/TextParser/StackElement.html">TaskJuggler::TextParser::StackElement</a></li>
|
441
|
+
|
442
|
+
<li><a href="../TaskJuggler/TextParser/TextParserResultArray.html">TaskJuggler::TextParser::TextParserResultArray</a></li>
|
443
|
+
|
444
|
+
<li><a href="../TaskJuggler/TextParser/TokenDoc.html">TaskJuggler::TextParser::TokenDoc</a></li>
|
445
|
+
|
446
|
+
<li><a href="../TaskJuggler/TextReport.html">TaskJuggler::TextReport</a></li>
|
447
|
+
|
448
|
+
<li><a href="../TaskJuggler/TextScanner.html">TaskJuggler::TextScanner</a></li>
|
449
|
+
|
450
|
+
<li><a href="../TaskJuggler/TextScanner/BufferStreamHandle.html">TaskJuggler::TextScanner::BufferStreamHandle</a></li>
|
451
|
+
|
452
|
+
<li><a href="../TaskJuggler/TextScanner/FileStreamHandle.html">TaskJuggler::TextScanner::FileStreamHandle</a></li>
|
453
|
+
|
454
|
+
<li><a href="../TaskJuggler/TextScanner/StreamHandle.html">TaskJuggler::TextScanner::StreamHandle</a></li>
|
455
|
+
|
456
|
+
<li><a href="../TaskJuggler/TimeSheet.html">TaskJuggler::TimeSheet</a></li>
|
457
|
+
|
458
|
+
<li><a href="../TaskJuggler/TimeSheetReceiver.html">TaskJuggler::TimeSheetReceiver</a></li>
|
459
|
+
|
460
|
+
<li><a href="../TaskJuggler/TimeSheetRecord.html">TaskJuggler::TimeSheetRecord</a></li>
|
461
|
+
|
462
|
+
<li><a href="../TaskJuggler/TimeSheetReport.html">TaskJuggler::TimeSheetReport</a></li>
|
463
|
+
|
464
|
+
<li><a href="../TaskJuggler/TimeSheetSender.html">TaskJuggler::TimeSheetSender</a></li>
|
465
|
+
|
466
|
+
<li><a href="../TaskJuggler/TimeSheetSummary.html">TaskJuggler::TimeSheetSummary</a></li>
|
467
|
+
|
468
|
+
<li><a href="../TaskJuggler/TimeSheets.html">TaskJuggler::TimeSheets</a></li>
|
469
|
+
|
470
|
+
<li><a href="../TaskJuggler/Tj3AppBase.html">TaskJuggler::Tj3AppBase</a></li>
|
471
|
+
|
472
|
+
<li><a href="../TaskJuggler/Tj3Client.html">TaskJuggler::Tj3Client</a></li>
|
473
|
+
|
474
|
+
<li><a href="../TaskJuggler/Tj3Daemon.html">TaskJuggler::Tj3Daemon</a></li>
|
475
|
+
|
476
|
+
<li><a href="../TaskJuggler/Tj3SheetAppBase.html">TaskJuggler::Tj3SheetAppBase</a></li>
|
477
|
+
|
478
|
+
<li><a href="../TaskJuggler/Tj3SsReceiver.html">TaskJuggler::Tj3SsReceiver</a></li>
|
479
|
+
|
480
|
+
<li><a href="../TaskJuggler/Tj3SsSender.html">TaskJuggler::Tj3SsSender</a></li>
|
481
|
+
|
482
|
+
<li><a href="../TaskJuggler/Tj3TsReceiver.html">TaskJuggler::Tj3TsReceiver</a></li>
|
483
|
+
|
484
|
+
<li><a href="../TaskJuggler/Tj3TsSender.html">TaskJuggler::Tj3TsSender</a></li>
|
485
|
+
|
486
|
+
<li><a href="../TaskJuggler/Tj3TsSummary.html">TaskJuggler::Tj3TsSummary</a></li>
|
487
|
+
|
488
|
+
<li><a href="../TaskJuggler/TjException.html">TaskJuggler::TjException</a></li>
|
489
|
+
|
490
|
+
<li><a href="../TaskJuggler/TjTime.html">TaskJuggler::TjTime</a></li>
|
491
|
+
|
492
|
+
<li><a href="../TaskJuggler/TjpExample.html">TaskJuggler::TjpExample</a></li>
|
493
|
+
|
494
|
+
<li><a href="../TaskJuggler/TjpExportRE.html">TaskJuggler::TjpExportRE</a></li>
|
495
|
+
|
496
|
+
<li><a href="../TaskJuggler/TjpSyntaxRules.html">TaskJuggler::TjpSyntaxRules</a></li>
|
497
|
+
|
498
|
+
<li><a href="../TaskJuggler/UserManual.html">TaskJuggler::UserManual</a></li>
|
499
|
+
|
500
|
+
<li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
|
501
|
+
|
502
|
+
<li><a href="../TaskJuggler/WorkingHoursAttribute.html">TaskJuggler::WorkingHoursAttribute</a></li>
|
503
|
+
|
504
|
+
<li><a href="../TaskJuggler/XMLBlob.html">TaskJuggler::XMLBlob</a></li>
|
505
|
+
|
506
|
+
<li><a href="../TaskJuggler/XMLComment.html">TaskJuggler::XMLComment</a></li>
|
507
|
+
|
508
|
+
<li><a href="../TaskJuggler/XMLDocument.html">TaskJuggler::XMLDocument</a></li>
|
509
|
+
|
510
|
+
<li><a href="../TaskJuggler/XMLElement.html">TaskJuggler::XMLElement</a></li>
|
511
|
+
|
512
|
+
<li><a href="../TaskJuggler/XMLNamedText.html">TaskJuggler::XMLNamedText</a></li>
|
513
|
+
|
514
|
+
<li><a href="../TaskJuggler/XMLText.html">TaskJuggler::XMLText</a></li>
|
515
|
+
|
516
|
+
<li><a href="../AppConfig.html">AppConfig</a></li>
|
517
|
+
|
518
|
+
<li><a href="../Arguments.html">Arguments</a></li>
|
519
|
+
|
520
|
+
<li><a href="../Object.html">Object</a></li>
|
521
|
+
|
522
|
+
<li><a href="../RuntimeConfig.html">RuntimeConfig</a></li>
|
523
|
+
|
524
|
+
<li><a href="../String.html">String</a></li>
|
525
|
+
|
526
|
+
</ul>
|
527
|
+
<div id="no-class-search-results" style="display: none;">No matching classes.</div>
|
528
|
+
</div>
|
529
|
+
|
530
|
+
|
531
|
+
</div>
|
532
|
+
</div>
|
533
|
+
|
534
|
+
<div id="documentation">
|
535
|
+
<h1 class="class">TaskJuggler::SheetSender</h1>
|
536
|
+
|
537
|
+
<div id="description">
|
538
|
+
<p>
|
539
|
+
A base class for sheet senders.
|
540
|
+
</p>
|
541
|
+
|
542
|
+
</div>
|
543
|
+
|
544
|
+
<!-- Constants -->
|
545
|
+
|
546
|
+
|
547
|
+
<!-- Attributes -->
|
548
|
+
|
549
|
+
<div id="attribute-method-details" class="method-section section">
|
550
|
+
<h3 class="section-header">Attributes</h3>
|
551
|
+
|
552
|
+
|
553
|
+
<div id="force-attribute-method" class="method-detail">
|
554
|
+
<a name="force"></a>
|
555
|
+
|
556
|
+
<a name="force="></a>
|
557
|
+
|
558
|
+
<div class="method-heading attribute-method-heading">
|
559
|
+
<span class="method-name">force</span><span
|
560
|
+
class="attribute-access-type">[RW]</span>
|
561
|
+
</div>
|
562
|
+
|
563
|
+
<div class="method-description">
|
564
|
+
|
565
|
+
|
566
|
+
|
567
|
+
</div>
|
568
|
+
</div>
|
569
|
+
|
570
|
+
<div id="interval-uration-attribute-method" class="method-detail">
|
571
|
+
<a name="intervalDuration"></a>
|
572
|
+
|
573
|
+
<a name="intervalDuration="></a>
|
574
|
+
|
575
|
+
<div class="method-heading attribute-method-heading">
|
576
|
+
<span class="method-name">intervalDuration</span><span
|
577
|
+
class="attribute-access-type">[RW]</span>
|
578
|
+
</div>
|
579
|
+
|
580
|
+
<div class="method-description">
|
581
|
+
|
582
|
+
|
583
|
+
|
584
|
+
</div>
|
585
|
+
</div>
|
586
|
+
|
587
|
+
</div>
|
588
|
+
|
589
|
+
|
590
|
+
<!-- Methods -->
|
591
|
+
|
592
|
+
<div id="public-class-method-details" class="method-section section">
|
593
|
+
<h3 class="section-header">Public Class Methods</h3>
|
594
|
+
|
595
|
+
|
596
|
+
<div id="new-method" class="method-detail ">
|
597
|
+
<a name="M001457"></a>
|
598
|
+
|
599
|
+
<div class="method-heading">
|
600
|
+
|
601
|
+
<span class="method-name">new</span><span
|
602
|
+
class="method-args">(appName, type)</span>
|
603
|
+
<span class="method-click-advice">click to toggle source</span>
|
604
|
+
|
605
|
+
</div>
|
606
|
+
|
607
|
+
<div class="method-description">
|
608
|
+
|
609
|
+
|
610
|
+
|
611
|
+
|
612
|
+
|
613
|
+
<div class="method-source-code"
|
614
|
+
id="new-source">
|
615
|
+
<pre>
|
616
|
+
<span class="ruby-comment cmt"># File lib/SheetSender.rb, line 25</span>
|
617
|
+
25: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">appName</span>, <span class="ruby-identifier">type</span>)
|
618
|
+
26: <span class="ruby-keyword kw">super</span>(<span class="ruby-identifier">appName</span>)
|
619
|
+
27:
|
620
|
+
28: <span class="ruby-ivar">@sheetType</span> = <span class="ruby-identifier">type</span>
|
621
|
+
29: <span class="ruby-comment cmt"># The following settings must be provided by the deriving class.</span>
|
622
|
+
30: <span class="ruby-comment cmt"># This is a LogicalExpression string that controls what resources should</span>
|
623
|
+
31: <span class="ruby-comment cmt"># not be getting a report sheet template.</span>
|
624
|
+
32: <span class="ruby-ivar">@hideResource</span> = <span class="ruby-keyword kw">nil</span>
|
625
|
+
33: <span class="ruby-comment cmt"># This file contains the signature (date or interval) that the</span>
|
626
|
+
34: <span class="ruby-comment cmt"># SheetReceiver will accept as a valid signature.</span>
|
627
|
+
35: <span class="ruby-ivar">@signatureFile</span> = <span class="ruby-keyword kw">nil</span>
|
628
|
+
36: <span class="ruby-comment cmt"># The base directory of the sheet templates.</span>
|
629
|
+
37: <span class="ruby-ivar">@templateDir</span> = <span class="ruby-keyword kw">nil</span>
|
630
|
+
38: <span class="ruby-comment cmt"># When true, existing templates will be regenerated and send out again.</span>
|
631
|
+
39: <span class="ruby-comment cmt"># Otherwise the existing template will not be send out again.</span>
|
632
|
+
40: <span class="ruby-ivar">@force</span> = <span class="ruby-keyword kw">false</span>
|
633
|
+
41:
|
634
|
+
42: <span class="ruby-ivar">@signatureFilter</span> = <span class="ruby-keyword kw">nil</span>
|
635
|
+
43: <span class="ruby-ivar">@introText</span> = <span class="ruby-keyword kw">nil</span>
|
636
|
+
44:
|
637
|
+
45: <span class="ruby-comment cmt"># The end date of the reported interval.</span>
|
638
|
+
46: <span class="ruby-ivar">@date</span> = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">new</span>.<span class="ruby-identifier">strftime</span>(<span class="ruby-value str">'%Y-%m-%d'</span>)
|
639
|
+
47: <span class="ruby-comment cmt"># Determines the length of the reported interval.</span>
|
640
|
+
48: <span class="ruby-ivar">@intervalDuration</span> = <span class="ruby-value str">'1w'</span>
|
641
|
+
49: <span class="ruby-comment cmt"># We need this to determine if we already sent out a report.</span>
|
642
|
+
50: <span class="ruby-ivar">@timeStamp</span> = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">new</span>
|
643
|
+
51: <span class="ruby-keyword kw">end</span></pre>
|
644
|
+
</div>
|
645
|
+
|
646
|
+
</div>
|
647
|
+
|
648
|
+
|
649
|
+
|
650
|
+
|
651
|
+
</div>
|
652
|
+
|
653
|
+
|
654
|
+
</div>
|
655
|
+
|
656
|
+
<div id="public-instance-method-details" class="method-section section">
|
657
|
+
<h3 class="section-header">Public Instance Methods</h3>
|
658
|
+
|
659
|
+
|
660
|
+
<div id="send-emplates-method" class="method-detail ">
|
661
|
+
<a name="M001458"></a>
|
662
|
+
|
663
|
+
<div class="method-heading">
|
664
|
+
|
665
|
+
<span class="method-name">sendTemplates</span><span
|
666
|
+
class="method-args">(resourceList)</span>
|
667
|
+
<span class="method-click-advice">click to toggle source</span>
|
668
|
+
|
669
|
+
</div>
|
670
|
+
|
671
|
+
<div class="method-description">
|
672
|
+
|
673
|
+
<p>
|
674
|
+
Send out report templates to a list of project resources. The resources are
|
675
|
+
selected by the @hide<a href="Resource.html">Resource</a> filter expression
|
676
|
+
and can be further limited with a list of resource IDs passed by
|
677
|
+
<em>resourceList</em>.
|
678
|
+
</p>
|
679
|
+
|
680
|
+
|
681
|
+
|
682
|
+
<div class="method-source-code"
|
683
|
+
id="send-emplates-source">
|
684
|
+
<pre>
|
685
|
+
<span class="ruby-comment cmt"># File lib/SheetSender.rb, line 56</span>
|
686
|
+
56: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sendTemplates</span>(<span class="ruby-identifier">resourceList</span>)
|
687
|
+
57: <span class="ruby-identifier">setWorkingDir</span>
|
688
|
+
58: <span class="ruby-identifier">createDirectories</span>
|
689
|
+
59:
|
690
|
+
60: <span class="ruby-identifier">resources</span> = <span class="ruby-identifier">genResourceList</span>(<span class="ruby-identifier">resourceList</span>)
|
691
|
+
61: <span class="ruby-identifier">genTemplates</span>(<span class="ruby-identifier">resources</span>)
|
692
|
+
62: <span class="ruby-identifier">sendReportTemplates</span>(<span class="ruby-identifier">resources</span>)
|
693
|
+
63: <span class="ruby-keyword kw">end</span></pre>
|
694
|
+
</div>
|
695
|
+
|
696
|
+
</div>
|
697
|
+
|
698
|
+
|
699
|
+
|
700
|
+
|
701
|
+
</div>
|
702
|
+
|
703
|
+
|
704
|
+
</div>
|
705
|
+
|
706
|
+
<div id="private-instance-method-details" class="method-section section">
|
707
|
+
<h3 class="section-header">Private Instance Methods</h3>
|
708
|
+
|
709
|
+
|
710
|
+
<div id="create-irectories-method" class="method-detail ">
|
711
|
+
<a name="M001459"></a>
|
712
|
+
|
713
|
+
<div class="method-heading">
|
714
|
+
|
715
|
+
<span class="method-name">createDirectories</span><span
|
716
|
+
class="method-args">()</span>
|
717
|
+
<span class="method-click-advice">click to toggle source</span>
|
718
|
+
|
719
|
+
</div>
|
720
|
+
|
721
|
+
<div class="method-description">
|
722
|
+
|
723
|
+
|
724
|
+
|
725
|
+
|
726
|
+
|
727
|
+
<div class="method-source-code"
|
728
|
+
id="create-irectories-source">
|
729
|
+
<pre>
|
730
|
+
<span class="ruby-comment cmt"># File lib/SheetSender.rb, line 67</span>
|
731
|
+
67: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">createDirectories</span>
|
732
|
+
68: <span class="ruby-keyword kw">unless</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">directory?</span>(<span class="ruby-ivar">@templateDir</span>)
|
733
|
+
69: <span class="ruby-identifier">warning</span>(<span class="ruby-node">"Creating directory #{@templateDir}"</span>)
|
734
|
+
70: <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">mkdir</span>(<span class="ruby-ivar">@templateDir</span>)
|
735
|
+
71: <span class="ruby-keyword kw">end</span>
|
736
|
+
72: <span class="ruby-ivar">@templateDir</span> <span class="ruby-operator">+=</span> <span class="ruby-node">"/#{@date}"</span>
|
737
|
+
73: <span class="ruby-keyword kw">unless</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">directory?</span>(<span class="ruby-ivar">@templateDir</span>)
|
738
|
+
74: <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">mkdir</span>(<span class="ruby-ivar">@templateDir</span>)
|
739
|
+
75: <span class="ruby-keyword kw">end</span>
|
740
|
+
76: <span class="ruby-keyword kw">end</span></pre>
|
741
|
+
</div>
|
742
|
+
|
743
|
+
</div>
|
744
|
+
|
745
|
+
|
746
|
+
|
747
|
+
|
748
|
+
</div>
|
749
|
+
|
750
|
+
|
751
|
+
<div id="enable-ignature-or-eporting-method" class="method-detail ">
|
752
|
+
<a name="M001463"></a>
|
753
|
+
|
754
|
+
<div class="method-heading">
|
755
|
+
|
756
|
+
<span class="method-name">enableSignatureForReporting</span><span
|
757
|
+
class="method-args">(templateFile)</span>
|
758
|
+
<span class="method-click-advice">click to toggle source</span>
|
759
|
+
|
760
|
+
</div>
|
761
|
+
|
762
|
+
<div class="method-description">
|
763
|
+
|
764
|
+
|
765
|
+
|
766
|
+
|
767
|
+
|
768
|
+
<div class="method-source-code"
|
769
|
+
id="enable-ignature-or-eporting-source">
|
770
|
+
<pre>
|
771
|
+
<span class="ruby-comment cmt"># File lib/SheetSender.rb, line 189</span>
|
772
|
+
189: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">enableSignatureForReporting</span>(<span class="ruby-identifier">templateFile</span>)
|
773
|
+
190: <span class="ruby-identifier">signature</span> = <span class="ruby-keyword kw">nil</span>
|
774
|
+
191: <span class="ruby-comment cmt"># That's a pretty bad hack to make reasonably certain that the tj3 server</span>
|
775
|
+
192: <span class="ruby-comment cmt"># process has put the complete file into the file system.</span>
|
776
|
+
193: <span class="ruby-identifier">i</span> = <span class="ruby-value">0</span>
|
777
|
+
194: <span class="ruby-keyword kw">begin</span>
|
778
|
+
195: <span class="ruby-keyword kw">if</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">exist?</span>(<span class="ruby-identifier">templateFile</span>)
|
779
|
+
196: <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">templateFile</span>, <span class="ruby-value str">'r'</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">file</span><span class="ruby-operator">|</span>
|
780
|
+
197: <span class="ruby-keyword kw">while</span> (<span class="ruby-identifier">line</span> = <span class="ruby-identifier">file</span>.<span class="ruby-identifier">gets</span>)
|
781
|
+
198: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">matches</span> = <span class="ruby-ivar">@signatureFilter</span>.<span class="ruby-identifier">match</span>(<span class="ruby-identifier">line</span>)
|
782
|
+
199: <span class="ruby-identifier">signature</span> = <span class="ruby-identifier">matches</span>[<span class="ruby-value">1</span>]
|
783
|
+
200: <span class="ruby-keyword kw">end</span>
|
784
|
+
201: <span class="ruby-keyword kw">end</span>
|
785
|
+
202: <span class="ruby-keyword kw">end</span>
|
786
|
+
203: <span class="ruby-keyword kw">end</span>
|
787
|
+
204: <span class="ruby-identifier">i</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
|
788
|
+
205: <span class="ruby-comment cmt"># If the file doesn't exist yet or the cannot yet be read, wait for</span>
|
789
|
+
206: <span class="ruby-comment cmt"># 300ms. We try this 100 times.</span>
|
790
|
+
207: <span class="ruby-identifier">sleep</span>(<span class="ruby-value">0.3</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">signature</span>
|
791
|
+
208: <span class="ruby-keyword kw">end</span> <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">signature</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">i</span> <span class="ruby-operator"><</span> <span class="ruby-value">100</span>
|
792
|
+
209: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">signature</span>
|
793
|
+
210: <span class="ruby-identifier">error</span>(<span class="ruby-value str">"enableSignatureForReporting: Cannot find signature in file "</span> <span class="ruby-operator">+</span>
|
794
|
+
211: <span class="ruby-node">"#{templateFile}"</span>)
|
795
|
+
212: <span class="ruby-keyword kw">end</span>
|
796
|
+
213:
|
797
|
+
214: <span class="ruby-identifier">acceptedSignatures</span> = []
|
798
|
+
215: <span class="ruby-keyword kw">if</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">exist?</span>(<span class="ruby-ivar">@signatureFile</span>)
|
799
|
+
216: <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-ivar">@signatureFile</span>, <span class="ruby-value str">'r'</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">file</span><span class="ruby-operator">|</span>
|
800
|
+
217: <span class="ruby-identifier">acceptedSignatures</span> = <span class="ruby-identifier">file</span>.<span class="ruby-identifier">readlines</span>
|
801
|
+
218: <span class="ruby-keyword kw">end</span>
|
802
|
+
219: <span class="ruby-identifier">acceptedSignatures</span>.<span class="ruby-identifier">map!</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">chomp</span> }
|
803
|
+
220: <span class="ruby-identifier">acceptedSignatures</span>.<span class="ruby-identifier">delete_if</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">chomp</span>.<span class="ruby-identifier">empty?</span> }
|
804
|
+
221: <span class="ruby-keyword kw">else</span>
|
805
|
+
222: <span class="ruby-identifier">info</span>(<span class="ruby-node">"#{@signatureFile} does not exist yet."</span>)
|
806
|
+
223: <span class="ruby-keyword kw">end</span>
|
807
|
+
224: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">acceptedSignatures</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">signature</span>)
|
808
|
+
225: <span class="ruby-comment cmt"># Add the new signature</span>
|
809
|
+
226: <span class="ruby-identifier">info</span>(<span class="ruby-node">"Adding #{signature} to #{@signatureFile}"</span>)
|
810
|
+
227: <span class="ruby-identifier">acceptedSignatures</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">signature</span>
|
811
|
+
228: <span class="ruby-comment cmt"># And write back the adapted file.</span>
|
812
|
+
229: <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-ivar">@signatureFile</span>, <span class="ruby-value str">'w'</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">file</span><span class="ruby-operator">|</span>
|
813
|
+
230: <span class="ruby-identifier">acceptedSignatures</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">iv</span><span class="ruby-operator">|</span>
|
814
|
+
231: <span class="ruby-identifier">file</span>.<span class="ruby-identifier">write</span>(<span class="ruby-node">"#{iv}\n"</span>)
|
815
|
+
232: <span class="ruby-keyword kw">end</span>
|
816
|
+
233: <span class="ruby-keyword kw">end</span>
|
817
|
+
234: <span class="ruby-keyword kw">else</span>
|
818
|
+
235: <span class="ruby-identifier">info</span>(<span class="ruby-node">"Signature #{signature} is already listed in #{@signatureFile}"</span>)
|
819
|
+
236: <span class="ruby-keyword kw">end</span>
|
820
|
+
237: <span class="ruby-keyword kw">end</span></pre>
|
821
|
+
</div>
|
822
|
+
|
823
|
+
</div>
|
824
|
+
|
825
|
+
|
826
|
+
|
827
|
+
|
828
|
+
</div>
|
829
|
+
|
830
|
+
|
831
|
+
<div id="gen-esource-ist-method" class="method-detail ">
|
832
|
+
<a name="M001460"></a>
|
833
|
+
|
834
|
+
<div class="method-heading">
|
835
|
+
|
836
|
+
<span class="method-name">genResourceList</span><span
|
837
|
+
class="method-args">(resourceList)</span>
|
838
|
+
<span class="method-click-advice">click to toggle source</span>
|
839
|
+
|
840
|
+
</div>
|
841
|
+
|
842
|
+
<div class="method-description">
|
843
|
+
|
844
|
+
|
845
|
+
|
846
|
+
|
847
|
+
|
848
|
+
<div class="method-source-code"
|
849
|
+
id="gen-esource-ist-source">
|
850
|
+
<pre>
|
851
|
+
<span class="ruby-comment cmt"># File lib/SheetSender.rb, line 78</span>
|
852
|
+
78: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">genResourceList</span>(<span class="ruby-identifier">resourceList</span>)
|
853
|
+
79: <span class="ruby-identifier">list</span> = []
|
854
|
+
80: <span class="ruby-identifier">info</span>(<span class="ruby-value str">'Retrieving resource list...'</span>)
|
855
|
+
81: <span class="ruby-identifier">reportDef</span> = <span class="ruby-value str">resourcereport rl_21497214 '.' { formats csv columns id, name, email, effort, freework hideresource #{@hideResource} sortresources id.up loadunit days period %{#{@date} - 1w} +1w}</span>
|
856
|
+
82: <span class="ruby-identifier">report</span> = <span class="ruby-identifier">generateReport</span>(<span class="ruby-value str">'rl_21497214'</span>, <span class="ruby-identifier">reportDef</span>)
|
857
|
+
83: <span class="ruby-identifier">first</span> = <span class="ruby-keyword kw">true</span>
|
858
|
+
84: <span class="ruby-identifier">report</span>.<span class="ruby-identifier">each_line</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">line</span><span class="ruby-operator">|</span>
|
859
|
+
85: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">first</span>
|
860
|
+
86: <span class="ruby-identifier">first</span> = <span class="ruby-keyword kw">false</span>
|
861
|
+
87: <span class="ruby-keyword kw">next</span>
|
862
|
+
88: <span class="ruby-keyword kw">end</span>
|
863
|
+
89: <span class="ruby-identifier">id</span>, <span class="ruby-identifier">name</span>, <span class="ruby-identifier">email</span>, <span class="ruby-identifier">effort</span>, <span class="ruby-identifier">free</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">split</span>(<span class="ruby-value str">';'</span>)
|
864
|
+
90: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">email</span>.<span class="ruby-identifier">empty?</span>
|
865
|
+
91: <span class="ruby-identifier">error</span>(<span class="ruby-node">"Resource '#{id}' must have a valid email address"</span>)
|
866
|
+
92: <span class="ruby-keyword kw">end</span>
|
867
|
+
93: <span class="ruby-comment cmt"># Convert effort and free values into Float objects.</span>
|
868
|
+
94: <span class="ruby-identifier">effort</span> = <span class="ruby-identifier">effort</span>.<span class="ruby-identifier">to_f</span>
|
869
|
+
95: <span class="ruby-identifier">free</span> = <span class="ruby-identifier">free</span>.<span class="ruby-identifier">to_f</span>
|
870
|
+
96:
|
871
|
+
97: <span class="ruby-comment cmt"># Ignore resources that are on vacation for the whole period.</span>
|
872
|
+
98: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">effort</span> <span class="ruby-operator">==</span> <span class="ruby-value">0.0</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">free</span> <span class="ruby-operator">==</span> <span class="ruby-value">0.0</span>
|
873
|
+
99: <span class="ruby-identifier">info</span>(<span class="ruby-node">"Resource '#{id}' was on vacation the whole period"</span>)
|
874
|
+
100: <span class="ruby-keyword kw">next</span>
|
875
|
+
101: <span class="ruby-keyword kw">end</span>
|
876
|
+
102:
|
877
|
+
103: <span class="ruby-identifier">list</span> <span class="ruby-operator"><<</span> [ <span class="ruby-identifier">id</span>, <span class="ruby-identifier">name</span>, <span class="ruby-identifier">email</span>, <span class="ruby-identifier">effort</span>, <span class="ruby-identifier">free</span> ]
|
878
|
+
104: <span class="ruby-keyword kw">end</span>
|
879
|
+
105:
|
880
|
+
106: <span class="ruby-comment cmt"># Save the resource list to a file. We'll need it in the receiver again.</span>
|
881
|
+
107: <span class="ruby-keyword kw">begin</span>
|
882
|
+
108: <span class="ruby-identifier">fileName</span> = <span class="ruby-ivar">@templateDir</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'/resources.yml'</span>
|
883
|
+
109: <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">fileName</span>, <span class="ruby-value str">'w'</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">file</span><span class="ruby-operator">|</span>
|
884
|
+
110: <span class="ruby-constant">YAML</span>.<span class="ruby-identifier">dump</span>(<span class="ruby-identifier">list</span>, <span class="ruby-identifier">file</span>)
|
885
|
+
111: <span class="ruby-keyword kw">end</span>
|
886
|
+
112: <span class="ruby-keyword kw">rescue</span>
|
887
|
+
113: <span class="ruby-identifier">error</span>(<span class="ruby-node">"Saving of #{fileName} failed: #{$!}"</span>)
|
888
|
+
114: <span class="ruby-keyword kw">end</span>
|
889
|
+
115:
|
890
|
+
116: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">resourceList</span>.<span class="ruby-identifier">empty?</span>
|
891
|
+
117: <span class="ruby-comment cmt"># When the user specified resource list is empty, we generate templates</span>
|
892
|
+
118: <span class="ruby-comment cmt"># for all users that don't match the @hideResource filter. Otherwise we</span>
|
893
|
+
119: <span class="ruby-comment cmt"># only generate templates for those in the list and that are not hidden</span>
|
894
|
+
120: <span class="ruby-comment cmt"># by the filter.</span>
|
895
|
+
121: <span class="ruby-identifier">list</span>.<span class="ruby-identifier">delete_if</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">item</span><span class="ruby-operator">|</span> <span class="ruby-operator">!</span><span class="ruby-identifier">resourceList</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">item</span>[<span class="ruby-value">0</span>]) }
|
896
|
+
122: <span class="ruby-keyword kw">end</span>
|
897
|
+
123:
|
898
|
+
124: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'genResourceList: list is empty'</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">list</span>.<span class="ruby-identifier">empty?</span>
|
899
|
+
125:
|
900
|
+
126: <span class="ruby-identifier">info</span>(<span class="ruby-node">"#{list.length} resources found"</span>)
|
901
|
+
127: <span class="ruby-identifier">list</span>
|
902
|
+
128: <span class="ruby-keyword kw">end</span></pre>
|
903
|
+
</div>
|
904
|
+
|
905
|
+
</div>
|
906
|
+
|
907
|
+
|
908
|
+
|
909
|
+
|
910
|
+
</div>
|
911
|
+
|
912
|
+
|
913
|
+
<div id="gen-emplates-method" class="method-detail ">
|
914
|
+
<a name="M001461"></a>
|
915
|
+
|
916
|
+
<div class="method-heading">
|
917
|
+
|
918
|
+
<span class="method-name">genTemplates</span><span
|
919
|
+
class="method-args">(resources)</span>
|
920
|
+
<span class="method-click-advice">click to toggle source</span>
|
921
|
+
|
922
|
+
</div>
|
923
|
+
|
924
|
+
<div class="method-description">
|
925
|
+
|
926
|
+
|
927
|
+
|
928
|
+
|
929
|
+
|
930
|
+
<div class="method-source-code"
|
931
|
+
id="gen-emplates-source">
|
932
|
+
<pre>
|
933
|
+
<span class="ruby-comment cmt"># File lib/SheetSender.rb, line 139</span>
|
934
|
+
139: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">genTemplates</span>(<span class="ruby-identifier">resources</span>)
|
935
|
+
140: <span class="ruby-identifier">firstTemplateFile</span> = <span class="ruby-keyword kw">nil</span>
|
936
|
+
141: <span class="ruby-identifier">resources</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">resInfo</span><span class="ruby-operator">|</span>
|
937
|
+
142: <span class="ruby-identifier">res</span> = <span class="ruby-identifier">resInfo</span>[<span class="ruby-value">0</span>]
|
938
|
+
143: <span class="ruby-identifier">info</span>(<span class="ruby-node">"Generating template for #{res}..."</span>)
|
939
|
+
144: <span class="ruby-identifier">reportId</span> = <span class="ruby-node">"sheet_template_#{res}"</span>
|
940
|
+
145: <span class="ruby-identifier">templateFile</span> = <span class="ruby-node">"#{@templateDir}/#{res}_#{@date}"</span>
|
941
|
+
146: <span class="ruby-comment cmt"># We use the first template file to get the sheet interval.</span>
|
942
|
+
147: <span class="ruby-identifier">firstTemplateFile</span> = <span class="ruby-identifier">templateFile</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'.tji'</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">firstTemplateFile</span>
|
943
|
+
148:
|
944
|
+
149: <span class="ruby-comment cmt"># Don't re-generate already existing templates unless we are in force</span>
|
945
|
+
150: <span class="ruby-comment cmt"># mode. We probably have sent them out earlier with a manual trigger.</span>
|
946
|
+
151: <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@force</span> <span class="ruby-operator">&&</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">exist?</span>(<span class="ruby-identifier">templateFile</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'.tji'</span>)
|
947
|
+
152: <span class="ruby-identifier">info</span>(<span class="ruby-node">"Skipping already existing #{templateFile}.tji."</span>)
|
948
|
+
153: <span class="ruby-keyword kw">next</span>
|
949
|
+
154: <span class="ruby-keyword kw">end</span>
|
950
|
+
155:
|
951
|
+
156: <span class="ruby-identifier">reportDef</span> = <span class="ruby-value str">#{@sheetType}sheetreport #{reportId} \"#{templateFile}\" { hideresource ~(plan.id = \"#{res}\") period %{#{@date} - #{@intervalDuration}} +#{@intervalDuration} sorttasks id.up}</span>
|
952
|
+
157: <span class="ruby-identifier">generateReport</span>(<span class="ruby-identifier">reportId</span>, <span class="ruby-identifier">reportDef</span>)
|
953
|
+
158: <span class="ruby-keyword kw">end</span>
|
954
|
+
159: <span class="ruby-identifier">enableSignatureForReporting</span>(<span class="ruby-identifier">firstTemplateFile</span>)
|
955
|
+
160: <span class="ruby-keyword kw">end</span></pre>
|
956
|
+
</div>
|
957
|
+
|
958
|
+
</div>
|
959
|
+
|
960
|
+
|
961
|
+
|
962
|
+
|
963
|
+
</div>
|
964
|
+
|
965
|
+
|
966
|
+
<div id="generate-eport-method" class="method-detail ">
|
967
|
+
<a name="M001464"></a>
|
968
|
+
|
969
|
+
<div class="method-heading">
|
970
|
+
|
971
|
+
<span class="method-name">generateReport</span><span
|
972
|
+
class="method-args">(id, reportDef)</span>
|
973
|
+
<span class="method-click-advice">click to toggle source</span>
|
974
|
+
|
975
|
+
</div>
|
976
|
+
|
977
|
+
<div class="method-description">
|
978
|
+
|
979
|
+
|
980
|
+
|
981
|
+
|
982
|
+
|
983
|
+
<div class="method-source-code"
|
984
|
+
id="generate-eport-source">
|
985
|
+
<pre>
|
986
|
+
<span class="ruby-comment cmt"># File lib/SheetSender.rb, line 239</span>
|
987
|
+
239: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateReport</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">reportDef</span>)
|
988
|
+
240: <span class="ruby-identifier">out</span> = <span class="ruby-value str">''</span>
|
989
|
+
241: <span class="ruby-identifier">err</span> = <span class="ruby-value str">''</span>
|
990
|
+
242: <span class="ruby-keyword kw">begin</span>
|
991
|
+
243: <span class="ruby-identifier">command</span> = <span class="ruby-node">"tj3client --silent report #{@projectId} #{id} = ."</span>
|
992
|
+
244: <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>
|
993
|
+
245: <span class="ruby-comment cmt"># Send the report definition to the tj3client process via stdin.</span>
|
994
|
+
246: <span class="ruby-identifier">stdin</span>.<span class="ruby-identifier">write</span>(<span class="ruby-identifier">reportDef</span>)
|
995
|
+
247: <span class="ruby-identifier">stdin</span>.<span class="ruby-identifier">close</span>
|
996
|
+
248: <span class="ruby-comment cmt"># Retrieve the output</span>
|
997
|
+
249: <span class="ruby-identifier">out</span> = <span class="ruby-identifier">stdout</span>.<span class="ruby-identifier">read</span>
|
998
|
+
250: <span class="ruby-identifier">err</span> = <span class="ruby-identifier">stderr</span>.<span class="ruby-identifier">read</span>
|
999
|
+
251: <span class="ruby-keyword kw">end</span>
|
1000
|
+
252: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">status</span>.<span class="ruby-identifier">exitstatus</span> <span class="ruby-operator">!=</span> <span class="ruby-value">0</span>
|
1001
|
+
253: <span class="ruby-identifier">error</span>(<span class="ruby-node">"generateReport: #{err}"</span>)
|
1002
|
+
254: <span class="ruby-keyword kw">end</span>
|
1003
|
+
255: <span class="ruby-keyword kw">rescue</span>
|
1004
|
+
256: <span class="ruby-identifier">error</span>(<span class="ruby-node">"generateReport: Report generation failed: #{$!}"</span>)
|
1005
|
+
257: <span class="ruby-keyword kw">end</span>
|
1006
|
+
258: <span class="ruby-identifier">out</span>
|
1007
|
+
259: <span class="ruby-keyword kw">end</span></pre>
|
1008
|
+
</div>
|
1009
|
+
|
1010
|
+
</div>
|
1011
|
+
|
1012
|
+
|
1013
|
+
|
1014
|
+
|
1015
|
+
</div>
|
1016
|
+
|
1017
|
+
|
1018
|
+
<div id="send-eport-emplates-method" class="method-detail ">
|
1019
|
+
<a name="M001462"></a>
|
1020
|
+
|
1021
|
+
<div class="method-heading">
|
1022
|
+
|
1023
|
+
<span class="method-name">sendReportTemplates</span><span
|
1024
|
+
class="method-args">(resources)</span>
|
1025
|
+
<span class="method-click-advice">click to toggle source</span>
|
1026
|
+
|
1027
|
+
</div>
|
1028
|
+
|
1029
|
+
<div class="method-description">
|
1030
|
+
|
1031
|
+
|
1032
|
+
|
1033
|
+
|
1034
|
+
|
1035
|
+
<div class="method-source-code"
|
1036
|
+
id="send-eport-emplates-source">
|
1037
|
+
<pre>
|
1038
|
+
<span class="ruby-comment cmt"># File lib/SheetSender.rb, line 168</span>
|
1039
|
+
168: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sendReportTemplates</span>(<span class="ruby-identifier">resources</span>)
|
1040
|
+
169: <span class="ruby-identifier">resources</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">id</span>, <span class="ruby-identifier">name</span>, <span class="ruby-identifier">email</span><span class="ruby-operator">|</span>
|
1041
|
+
170: <span class="ruby-identifier">attachment</span> = <span class="ruby-node">"#{@templateDir}/#{id}_#{@date}.tji"</span>
|
1042
|
+
171: <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>)
|
1043
|
+
172: <span class="ruby-identifier">error</span>(<span class="ruby-value str">"sendReportTemplates: "</span> <span class="ruby-operator">+</span>
|
1044
|
+
173: <span class="ruby-node">"#{@sheetType} sheet #{attachment} for #{name} not found"</span>)
|
1045
|
+
174: <span class="ruby-keyword kw">end</span>
|
1046
|
+
175: <span class="ruby-comment cmt"># Don't send out old templates again. @timeStamp has a higher</span>
|
1047
|
+
176: <span class="ruby-comment cmt"># resolution. We add 1s to avoid truncation errors.</span>
|
1048
|
+
177: <span class="ruby-keyword kw">if</span> (<span class="ruby-constant">File</span>.<span class="ruby-identifier">mtime</span>(<span class="ruby-identifier">attachment</span>) <span class="ruby-operator">+</span> <span class="ruby-value">1</span>) <span class="ruby-operator"><</span> <span class="ruby-ivar">@timeStamp</span>
|
1049
|
+
178: <span class="ruby-identifier">info</span>(<span class="ruby-node">"Old template #{attachment} found. Not sending it out."</span>)
|
1050
|
+
179: <span class="ruby-keyword kw">next</span>
|
1051
|
+
180: <span class="ruby-keyword kw">end</span>
|
1052
|
+
181:
|
1053
|
+
182: <span class="ruby-identifier">message</span> = <span class="ruby-node">" Hello #{name}!\n\n#{@introText}"</span> <span class="ruby-operator">+</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">read</span>(<span class="ruby-identifier">attachment</span>)
|
1054
|
+
183:
|
1055
|
+
184: <span class="ruby-identifier">sendEmail</span>(<span class="ruby-identifier">email</span>, <span class="ruby-node">"Your weekly report template for #{@date}"</span>,
|
1056
|
+
185: <span class="ruby-identifier">message</span>, <span class="ruby-identifier">attachment</span>)
|
1057
|
+
186: <span class="ruby-keyword kw">end</span>
|
1058
|
+
187: <span class="ruby-keyword kw">end</span></pre>
|
1059
|
+
</div>
|
1060
|
+
|
1061
|
+
</div>
|
1062
|
+
|
1063
|
+
|
1064
|
+
|
1065
|
+
|
1066
|
+
</div>
|
1067
|
+
|
1068
|
+
|
1069
|
+
</div>
|
1070
|
+
|
1071
|
+
|
1072
|
+
</div>
|
1073
|
+
|
1074
|
+
|
1075
|
+
<div id="rdoc-debugging-section-dump" class="debugging-section">
|
1076
|
+
|
1077
|
+
<p>Disabled; run with --debug to generate this.</p>
|
1078
|
+
|
1079
|
+
</div>
|
1080
|
+
|
1081
|
+
<div id="validator-badges">
|
1082
|
+
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
1083
|
+
<p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
|
1084
|
+
Rdoc Generator</a> 1.1.6</small>.</p>
|
1085
|
+
</div>
|
1086
|
+
|
1087
|
+
</body>
|
1088
|
+
</html>
|
1089
|
+
|