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,1293 @@
|
|
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::SheetReceiver</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/SheetReceiver_rb.html?TB_iframe=true&height=550&width=785"
|
42
|
+
class="thickbox" title="lib/SheetReceiver.rb">lib/SheetReceiver.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="#M001162">::new</a></li>
|
73
|
+
|
74
|
+
<li><a href="#M001165">#checkSheet</a></li>
|
75
|
+
|
76
|
+
<li><a href="#M001168">#checkSignature</a></li>
|
77
|
+
|
78
|
+
<li><a href="#M001169">#createDirectories</a></li>
|
79
|
+
|
80
|
+
<li><a href="#M001170">#error</a></li>
|
81
|
+
|
82
|
+
<li><a href="#M001171">#fatal</a></li>
|
83
|
+
|
84
|
+
<li><a href="#M001166">#fileSheet</a></li>
|
85
|
+
|
86
|
+
<li><a href="#M001167">#generateInclusionFile</a></li>
|
87
|
+
|
88
|
+
<li><a href="#M001173">#getResourceEmail</a></li>
|
89
|
+
|
90
|
+
<li><a href="#M001172">#getResourceList</a></li>
|
91
|
+
|
92
|
+
<li><a href="#M001174">#getResourceName</a></li>
|
93
|
+
|
94
|
+
<li><a href="#M001163">#processEmail</a></li>
|
95
|
+
|
96
|
+
<li><a href="#M001164">#processSheet</a></li>
|
97
|
+
|
98
|
+
</ul>
|
99
|
+
</div>
|
100
|
+
|
101
|
+
|
102
|
+
<!-- Included Modules -->
|
103
|
+
|
104
|
+
</div>
|
105
|
+
|
106
|
+
<div id="project-metadata">
|
107
|
+
|
108
|
+
|
109
|
+
<div id="fileindex-section" class="section project-section">
|
110
|
+
<h3 class="section-header">Files</h3>
|
111
|
+
<ul>
|
112
|
+
|
113
|
+
<li class="file"><a href="../COPYING.html">COPYING</a></li>
|
114
|
+
|
115
|
+
<li class="file"><a href="../README.html">README</a></li>
|
116
|
+
|
117
|
+
</ul>
|
118
|
+
</div>
|
119
|
+
|
120
|
+
|
121
|
+
<div id="classindex-section" class="section project-section">
|
122
|
+
<h3 class="section-header">Class Index
|
123
|
+
<span class="search-toggle"><img src="../images/find.png"
|
124
|
+
height="16" width="16" alt="[+]"
|
125
|
+
title="show/hide quicksearch" /></span></h3>
|
126
|
+
<form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
|
127
|
+
<fieldset>
|
128
|
+
<legend>Quicksearch</legend>
|
129
|
+
<input type="text" name="quicksearch" value=""
|
130
|
+
class="quicksearch-field" />
|
131
|
+
</fieldset>
|
132
|
+
</form>
|
133
|
+
|
134
|
+
<ul class="link-list">
|
135
|
+
|
136
|
+
<li><a href="../TaskJuggler.html">TaskJuggler</a></li>
|
137
|
+
|
138
|
+
<li><a href="../TaskJuggler/Account.html">TaskJuggler::Account</a></li>
|
139
|
+
|
140
|
+
<li><a href="../TaskJuggler/AccountAttribute.html">TaskJuggler::AccountAttribute</a></li>
|
141
|
+
|
142
|
+
<li><a href="../TaskJuggler/AccountScenario.html">TaskJuggler::AccountScenario</a></li>
|
143
|
+
|
144
|
+
<li><a href="../TaskJuggler/Allocation.html">TaskJuggler::Allocation</a></li>
|
145
|
+
|
146
|
+
<li><a href="../TaskJuggler/AllocationAttribute.html">TaskJuggler::AllocationAttribute</a></li>
|
147
|
+
|
148
|
+
<li><a href="../TaskJuggler/AttributeBase.html">TaskJuggler::AttributeBase</a></li>
|
149
|
+
|
150
|
+
<li><a href="../TaskJuggler/AttributeDefinition.html">TaskJuggler::AttributeDefinition</a></li>
|
151
|
+
|
152
|
+
<li><a href="../TaskJuggler/BatchProcessor.html">TaskJuggler::BatchProcessor</a></li>
|
153
|
+
|
154
|
+
<li><a href="../TaskJuggler/Booking.html">TaskJuggler::Booking</a></li>
|
155
|
+
|
156
|
+
<li><a href="../TaskJuggler/BookingListAttribute.html">TaskJuggler::BookingListAttribute</a></li>
|
157
|
+
|
158
|
+
<li><a href="../TaskJuggler/BooleanAttribute.html">TaskJuggler::BooleanAttribute</a></li>
|
159
|
+
|
160
|
+
<li><a href="../TaskJuggler/CSVFile.html">TaskJuggler::CSVFile</a></li>
|
161
|
+
|
162
|
+
<li><a href="../TaskJuggler/CellSettingPattern.html">TaskJuggler::CellSettingPattern</a></li>
|
163
|
+
|
164
|
+
<li><a href="../TaskJuggler/CellSettingPatternList.html">TaskJuggler::CellSettingPatternList</a></li>
|
165
|
+
|
166
|
+
<li><a href="../TaskJuggler/Charge.html">TaskJuggler::Charge</a></li>
|
167
|
+
|
168
|
+
<li><a href="../TaskJuggler/ChargeListAttribute.html">TaskJuggler::ChargeListAttribute</a></li>
|
169
|
+
|
170
|
+
<li><a href="../TaskJuggler/ChargeSet.html">TaskJuggler::ChargeSet</a></li>
|
171
|
+
|
172
|
+
<li><a href="../TaskJuggler/ChargeSetListAttribute.html">TaskJuggler::ChargeSetListAttribute</a></li>
|
173
|
+
|
174
|
+
<li><a href="../TaskJuggler/ColumnListAttribute.html">TaskJuggler::ColumnListAttribute</a></li>
|
175
|
+
|
176
|
+
<li><a href="../TaskJuggler/ColumnTable.html">TaskJuggler::ColumnTable</a></li>
|
177
|
+
|
178
|
+
<li><a href="../TaskJuggler/Daemon.html">TaskJuggler::Daemon</a></li>
|
179
|
+
|
180
|
+
<li><a href="../TaskJuggler/DateAttribute.html">TaskJuggler::DateAttribute</a></li>
|
181
|
+
|
182
|
+
<li><a href="../TaskJuggler/DefinitionListAttribute.html">TaskJuggler::DefinitionListAttribute</a></li>
|
183
|
+
|
184
|
+
<li><a href="../TaskJuggler/DependencyListAttribute.html">TaskJuggler::DependencyListAttribute</a></li>
|
185
|
+
|
186
|
+
<li><a href="../TaskJuggler/DurationAttribute.html">TaskJuggler::DurationAttribute</a></li>
|
187
|
+
|
188
|
+
<li><a href="../TaskJuggler/FixnumAttribute.html">TaskJuggler::FixnumAttribute</a></li>
|
189
|
+
|
190
|
+
<li><a href="../TaskJuggler/FlagListAttribute.html">TaskJuggler::FlagListAttribute</a></li>
|
191
|
+
|
192
|
+
<li><a href="../TaskJuggler/FloatAttribute.html">TaskJuggler::FloatAttribute</a></li>
|
193
|
+
|
194
|
+
<li><a href="../TaskJuggler/FormatListAttribute.html">TaskJuggler::FormatListAttribute</a></li>
|
195
|
+
|
196
|
+
<li><a href="../TaskJuggler/GanttChart.html">TaskJuggler::GanttChart</a></li>
|
197
|
+
|
198
|
+
<li><a href="../TaskJuggler/GanttContainer.html">TaskJuggler::GanttContainer</a></li>
|
199
|
+
|
200
|
+
<li><a href="../TaskJuggler/GanttHeader.html">TaskJuggler::GanttHeader</a></li>
|
201
|
+
|
202
|
+
<li><a href="../TaskJuggler/GanttHeaderScaleItem.html">TaskJuggler::GanttHeaderScaleItem</a></li>
|
203
|
+
|
204
|
+
<li><a href="../TaskJuggler/GanttLine.html">TaskJuggler::GanttLine</a></li>
|
205
|
+
|
206
|
+
<li><a href="../TaskJuggler/GanttLoadStack.html">TaskJuggler::GanttLoadStack</a></li>
|
207
|
+
|
208
|
+
<li><a href="../TaskJuggler/GanttMilestone.html">TaskJuggler::GanttMilestone</a></li>
|
209
|
+
|
210
|
+
<li><a href="../TaskJuggler/GanttRouter.html">TaskJuggler::GanttRouter</a></li>
|
211
|
+
|
212
|
+
<li><a href="../TaskJuggler/GanttTaskBar.html">TaskJuggler::GanttTaskBar</a></li>
|
213
|
+
|
214
|
+
<li><a href="../TaskJuggler/HTMLDocument.html">TaskJuggler::HTMLDocument</a></li>
|
215
|
+
|
216
|
+
<li><a href="../TaskJuggler/HTMLGraphics.html">TaskJuggler::HTMLGraphics</a></li>
|
217
|
+
|
218
|
+
<li><a href="../TaskJuggler/Interval.html">TaskJuggler::Interval</a></li>
|
219
|
+
|
220
|
+
<li><a href="../TaskJuggler/IntervalListAttribute.html">TaskJuggler::IntervalListAttribute</a></li>
|
221
|
+
|
222
|
+
<li><a href="../TaskJuggler/JobInfo.html">TaskJuggler::JobInfo</a></li>
|
223
|
+
|
224
|
+
<li><a href="../TaskJuggler/Journal.html">TaskJuggler::Journal</a></li>
|
225
|
+
|
226
|
+
<li><a href="../TaskJuggler/JournalEntry.html">TaskJuggler::JournalEntry</a></li>
|
227
|
+
|
228
|
+
<li><a href="../TaskJuggler/JournalEntryList.html">TaskJuggler::JournalEntryList</a></li>
|
229
|
+
|
230
|
+
<li><a href="../TaskJuggler/KeywordArray.html">TaskJuggler::KeywordArray</a></li>
|
231
|
+
|
232
|
+
<li><a href="../TaskJuggler/KeywordDocumentation.html">TaskJuggler::KeywordDocumentation</a></li>
|
233
|
+
|
234
|
+
<li><a href="../TaskJuggler/Limits.html">TaskJuggler::Limits</a></li>
|
235
|
+
|
236
|
+
<li><a href="../TaskJuggler/Limits/Limit.html">TaskJuggler::Limits::Limit</a></li>
|
237
|
+
|
238
|
+
<li><a href="../TaskJuggler/LimitsAttribute.html">TaskJuggler::LimitsAttribute</a></li>
|
239
|
+
|
240
|
+
<li><a href="../TaskJuggler/ListAttributeBase.html">TaskJuggler::ListAttributeBase</a></li>
|
241
|
+
|
242
|
+
<li><a href="../TaskJuggler/Log.html">TaskJuggler::Log</a></li>
|
243
|
+
|
244
|
+
<li><a href="../TaskJuggler/LogFile.html">TaskJuggler::LogFile</a></li>
|
245
|
+
|
246
|
+
<li><a href="../TaskJuggler/LogicalAttribute.html">TaskJuggler::LogicalAttribute</a></li>
|
247
|
+
|
248
|
+
<li><a href="../TaskJuggler/LogicalExpression.html">TaskJuggler::LogicalExpression</a></li>
|
249
|
+
|
250
|
+
<li><a href="../TaskJuggler/LogicalExpressionAttribute.html">TaskJuggler::LogicalExpressionAttribute</a></li>
|
251
|
+
|
252
|
+
<li><a href="../TaskJuggler/LogicalFlag.html">TaskJuggler::LogicalFlag</a></li>
|
253
|
+
|
254
|
+
<li><a href="../TaskJuggler/LogicalFunction.html">TaskJuggler::LogicalFunction</a></li>
|
255
|
+
|
256
|
+
<li><a href="../TaskJuggler/LogicalOperation.html">TaskJuggler::LogicalOperation</a></li>
|
257
|
+
|
258
|
+
<li><a href="../TaskJuggler/Macro.html">TaskJuggler::Macro</a></li>
|
259
|
+
|
260
|
+
<li><a href="../TaskJuggler/MacroParser.html">TaskJuggler::MacroParser</a></li>
|
261
|
+
|
262
|
+
<li><a href="../TaskJuggler/MacroTable.html">TaskJuggler::MacroTable</a></li>
|
263
|
+
|
264
|
+
<li><a href="../TaskJuggler/ManagerResponsibilities.html">TaskJuggler::ManagerResponsibilities</a></li>
|
265
|
+
|
266
|
+
<li><a href="../TaskJuggler/ManagerStatusRecord.html">TaskJuggler::ManagerStatusRecord</a></li>
|
267
|
+
|
268
|
+
<li><a href="../TaskJuggler/Message.html">TaskJuggler::Message</a></li>
|
269
|
+
|
270
|
+
<li><a href="../TaskJuggler/MessageHandler.html">TaskJuggler::MessageHandler</a></li>
|
271
|
+
|
272
|
+
<li><a href="../TaskJuggler/Navigator.html">TaskJuggler::Navigator</a></li>
|
273
|
+
|
274
|
+
<li><a href="../TaskJuggler/NavigatorElement.html">TaskJuggler::NavigatorElement</a></li>
|
275
|
+
|
276
|
+
<li><a href="../TaskJuggler/NikuProject.html">TaskJuggler::NikuProject</a></li>
|
277
|
+
|
278
|
+
<li><a href="../TaskJuggler/NikuReport.html">TaskJuggler::NikuReport</a></li>
|
279
|
+
|
280
|
+
<li><a href="../TaskJuggler/NikuResource.html">TaskJuggler::NikuResource</a></li>
|
281
|
+
|
282
|
+
<li><a href="../TaskJuggler/OnShiftCache.html">TaskJuggler::OnShiftCache</a></li>
|
283
|
+
|
284
|
+
<li><a href="../TaskJuggler/ProcessIntercom.html">TaskJuggler::ProcessIntercom</a></li>
|
285
|
+
|
286
|
+
<li><a href="../TaskJuggler/ProcessIntercomIface.html">TaskJuggler::ProcessIntercomIface</a></li>
|
287
|
+
|
288
|
+
<li><a href="../TaskJuggler/Project.html">TaskJuggler::Project</a></li>
|
289
|
+
|
290
|
+
<li><a href="../TaskJuggler/ProjectBroker.html">TaskJuggler::ProjectBroker</a></li>
|
291
|
+
|
292
|
+
<li><a href="../TaskJuggler/ProjectBrokerIface.html">TaskJuggler::ProjectBrokerIface</a></li>
|
293
|
+
|
294
|
+
<li><a href="../TaskJuggler/ProjectFileParser.html">TaskJuggler::ProjectFileParser</a></li>
|
295
|
+
|
296
|
+
<li><a href="../TaskJuggler/ProjectRecord.html">TaskJuggler::ProjectRecord</a></li>
|
297
|
+
|
298
|
+
<li><a href="../TaskJuggler/ProjectServer.html">TaskJuggler::ProjectServer</a></li>
|
299
|
+
|
300
|
+
<li><a href="../TaskJuggler/ProjectServerIface.html">TaskJuggler::ProjectServerIface</a></li>
|
301
|
+
|
302
|
+
<li><a href="../TaskJuggler/PropertyAttribute.html">TaskJuggler::PropertyAttribute</a></li>
|
303
|
+
|
304
|
+
<li><a href="../TaskJuggler/PropertyList.html">TaskJuggler::PropertyList</a></li>
|
305
|
+
|
306
|
+
<li><a href="../TaskJuggler/PropertySet.html">TaskJuggler::PropertySet</a></li>
|
307
|
+
|
308
|
+
<li><a href="../TaskJuggler/PropertyTreeNode.html">TaskJuggler::PropertyTreeNode</a></li>
|
309
|
+
|
310
|
+
<li><a href="../TaskJuggler/Query.html">TaskJuggler::Query</a></li>
|
311
|
+
|
312
|
+
<li><a href="../TaskJuggler/RTFNavigator.html">TaskJuggler::RTFNavigator</a></li>
|
313
|
+
|
314
|
+
<li><a href="../TaskJuggler/RTFQuery.html">TaskJuggler::RTFQuery</a></li>
|
315
|
+
|
316
|
+
<li><a href="../TaskJuggler/RTFReport.html">TaskJuggler::RTFReport</a></li>
|
317
|
+
|
318
|
+
<li><a href="../TaskJuggler/RealFormat.html">TaskJuggler::RealFormat</a></li>
|
319
|
+
|
320
|
+
<li><a href="../TaskJuggler/RealFormatAttribute.html">TaskJuggler::RealFormatAttribute</a></li>
|
321
|
+
|
322
|
+
<li><a href="../TaskJuggler/ReferenceAttribute.html">TaskJuggler::ReferenceAttribute</a></li>
|
323
|
+
|
324
|
+
<li><a href="../TaskJuggler/Report.html">TaskJuggler::Report</a></li>
|
325
|
+
|
326
|
+
<li><a href="../TaskJuggler/ReportBase.html">TaskJuggler::ReportBase</a></li>
|
327
|
+
|
328
|
+
<li><a href="../TaskJuggler/ReportContext.html">TaskJuggler::ReportContext</a></li>
|
329
|
+
|
330
|
+
<li><a href="../TaskJuggler/ReportServer.html">TaskJuggler::ReportServer</a></li>
|
331
|
+
|
332
|
+
<li><a href="../TaskJuggler/ReportServerIface.html">TaskJuggler::ReportServerIface</a></li>
|
333
|
+
|
334
|
+
<li><a href="../TaskJuggler/ReportServerRecord.html">TaskJuggler::ReportServerRecord</a></li>
|
335
|
+
|
336
|
+
<li><a href="../TaskJuggler/ReportTable.html">TaskJuggler::ReportTable</a></li>
|
337
|
+
|
338
|
+
<li><a href="../TaskJuggler/ReportTableCell.html">TaskJuggler::ReportTableCell</a></li>
|
339
|
+
|
340
|
+
<li><a href="../TaskJuggler/ReportTableColumn.html">TaskJuggler::ReportTableColumn</a></li>
|
341
|
+
|
342
|
+
<li><a href="../TaskJuggler/ReportTableLegend.html">TaskJuggler::ReportTableLegend</a></li>
|
343
|
+
|
344
|
+
<li><a href="../TaskJuggler/ReportTableLine.html">TaskJuggler::ReportTableLine</a></li>
|
345
|
+
|
346
|
+
<li><a href="../TaskJuggler/Resource.html">TaskJuggler::Resource</a></li>
|
347
|
+
|
348
|
+
<li><a href="../TaskJuggler/ResourceListAttribute.html">TaskJuggler::ResourceListAttribute</a></li>
|
349
|
+
|
350
|
+
<li><a href="../TaskJuggler/ResourceListRE.html">TaskJuggler::ResourceListRE</a></li>
|
351
|
+
|
352
|
+
<li><a href="../TaskJuggler/ResourceScenario.html">TaskJuggler::ResourceScenario</a></li>
|
353
|
+
|
354
|
+
<li><a href="../TaskJuggler/RichText.html">TaskJuggler::RichText</a></li>
|
355
|
+
|
356
|
+
<li><a href="../TaskJuggler/RichTextAttribute.html">TaskJuggler::RichTextAttribute</a></li>
|
357
|
+
|
358
|
+
<li><a href="../TaskJuggler/RichTextDocument.html">TaskJuggler::RichTextDocument</a></li>
|
359
|
+
|
360
|
+
<li><a href="../TaskJuggler/RichTextElement.html">TaskJuggler::RichTextElement</a></li>
|
361
|
+
|
362
|
+
<li><a href="../TaskJuggler/RichTextException.html">TaskJuggler::RichTextException</a></li>
|
363
|
+
|
364
|
+
<li><a href="../TaskJuggler/RichTextFunctionExample.html">TaskJuggler::RichTextFunctionExample</a></li>
|
365
|
+
|
366
|
+
<li><a href="../TaskJuggler/RichTextFunctionHandler.html">TaskJuggler::RichTextFunctionHandler</a></li>
|
367
|
+
|
368
|
+
<li><a href="../TaskJuggler/RichTextImage.html">TaskJuggler::RichTextImage</a></li>
|
369
|
+
|
370
|
+
<li><a href="../TaskJuggler/RichTextIntermediate.html">TaskJuggler::RichTextIntermediate</a></li>
|
371
|
+
|
372
|
+
<li><a href="../TaskJuggler/RichTextParser.html">TaskJuggler::RichTextParser</a></li>
|
373
|
+
|
374
|
+
<li><a href="../TaskJuggler/RichTextScanner.html">TaskJuggler::RichTextScanner</a></li>
|
375
|
+
|
376
|
+
<li><a href="../TaskJuggler/RichTextSnip.html">TaskJuggler::RichTextSnip</a></li>
|
377
|
+
|
378
|
+
<li><a href="../TaskJuggler/RichTextSyntaxRules.html">TaskJuggler::RichTextSyntaxRules</a></li>
|
379
|
+
|
380
|
+
<li><a href="../TaskJuggler/Scenario.html">TaskJuggler::Scenario</a></li>
|
381
|
+
|
382
|
+
<li><a href="../TaskJuggler/ScenarioData.html">TaskJuggler::ScenarioData</a></li>
|
383
|
+
|
384
|
+
<li><a href="../TaskJuggler/ScenarioListAttribute.html">TaskJuggler::ScenarioListAttribute</a></li>
|
385
|
+
|
386
|
+
<li><a href="../TaskJuggler/Scoreboard.html">TaskJuggler::Scoreboard</a></li>
|
387
|
+
|
388
|
+
<li><a href="../TaskJuggler/SheetHandlerBase.html">TaskJuggler::SheetHandlerBase</a></li>
|
389
|
+
|
390
|
+
<li><a href="../TaskJuggler/SheetReceiver.html">TaskJuggler::SheetReceiver</a></li>
|
391
|
+
|
392
|
+
<li><a href="../TaskJuggler/SheetSender.html">TaskJuggler::SheetSender</a></li>
|
393
|
+
|
394
|
+
<li><a href="../TaskJuggler/Shift.html">TaskJuggler::Shift</a></li>
|
395
|
+
|
396
|
+
<li><a href="../TaskJuggler/ShiftAssignment.html">TaskJuggler::ShiftAssignment</a></li>
|
397
|
+
|
398
|
+
<li><a href="../TaskJuggler/ShiftAssignments.html">TaskJuggler::ShiftAssignments</a></li>
|
399
|
+
|
400
|
+
<li><a href="../TaskJuggler/ShiftAssignmentsAttribute.html">TaskJuggler::ShiftAssignmentsAttribute</a></li>
|
401
|
+
|
402
|
+
<li><a href="../TaskJuggler/ShiftScenario.html">TaskJuggler::ShiftScenario</a></li>
|
403
|
+
|
404
|
+
<li><a href="../TaskJuggler/SortListAttribute.html">TaskJuggler::SortListAttribute</a></li>
|
405
|
+
|
406
|
+
<li><a href="../TaskJuggler/SourceFileInfo.html">TaskJuggler::SourceFileInfo</a></li>
|
407
|
+
|
408
|
+
<li><a href="../TaskJuggler/StatusSheetReceiver.html">TaskJuggler::StatusSheetReceiver</a></li>
|
409
|
+
|
410
|
+
<li><a href="../TaskJuggler/StatusSheetReport.html">TaskJuggler::StatusSheetReport</a></li>
|
411
|
+
|
412
|
+
<li><a href="../TaskJuggler/StatusSheetSender.html">TaskJuggler::StatusSheetSender</a></li>
|
413
|
+
|
414
|
+
<li><a href="../TaskJuggler/StringAttribute.html">TaskJuggler::StringAttribute</a></li>
|
415
|
+
|
416
|
+
<li><a href="../TaskJuggler/SymbolAttribute.html">TaskJuggler::SymbolAttribute</a></li>
|
417
|
+
|
418
|
+
<li><a href="../TaskJuggler/SyntaxReference.html">TaskJuggler::SyntaxReference</a></li>
|
419
|
+
|
420
|
+
<li><a href="../TaskJuggler/TOCEntry.html">TaskJuggler::TOCEntry</a></li>
|
421
|
+
|
422
|
+
<li><a href="../TaskJuggler/TSResourceRecord.html">TaskJuggler::TSResourceRecord</a></li>
|
423
|
+
|
424
|
+
<li><a href="../TaskJuggler/TSTaskRecord.html">TaskJuggler::TSTaskRecord</a></li>
|
425
|
+
|
426
|
+
<li><a href="../TaskJuggler/TableColumnDefinition.html">TaskJuggler::TableColumnDefinition</a></li>
|
427
|
+
|
428
|
+
<li><a href="../TaskJuggler/TableOfContents.html">TaskJuggler::TableOfContents</a></li>
|
429
|
+
|
430
|
+
<li><a href="../TaskJuggler/TableReport.html">TaskJuggler::TableReport</a></li>
|
431
|
+
|
432
|
+
<li><a href="../TaskJuggler/Task.html">TaskJuggler::Task</a></li>
|
433
|
+
|
434
|
+
<li><a href="../TaskJuggler/TaskDependency.html">TaskJuggler::TaskDependency</a></li>
|
435
|
+
|
436
|
+
<li><a href="../TaskJuggler/TaskListAttribute.html">TaskJuggler::TaskListAttribute</a></li>
|
437
|
+
|
438
|
+
<li><a href="../TaskJuggler/TaskListRE.html">TaskJuggler::TaskListRE</a></li>
|
439
|
+
|
440
|
+
<li><a href="../TaskJuggler/TaskScenario.html">TaskJuggler::TaskScenario</a></li>
|
441
|
+
|
442
|
+
<li><a href="../TaskJuggler/TextFormatter.html">TaskJuggler::TextFormatter</a></li>
|
443
|
+
|
444
|
+
<li><a href="../TaskJuggler/TextParser.html">TaskJuggler::TextParser</a></li>
|
445
|
+
|
446
|
+
<li><a href="../TaskJuggler/TextParser/Pattern.html">TaskJuggler::TextParser::Pattern</a></li>
|
447
|
+
|
448
|
+
<li><a href="../TaskJuggler/TextParser/Rule.html">TaskJuggler::TextParser::Rule</a></li>
|
449
|
+
|
450
|
+
<li><a href="../TaskJuggler/TextParser/StackElement.html">TaskJuggler::TextParser::StackElement</a></li>
|
451
|
+
|
452
|
+
<li><a href="../TaskJuggler/TextParser/TextParserResultArray.html">TaskJuggler::TextParser::TextParserResultArray</a></li>
|
453
|
+
|
454
|
+
<li><a href="../TaskJuggler/TextParser/TokenDoc.html">TaskJuggler::TextParser::TokenDoc</a></li>
|
455
|
+
|
456
|
+
<li><a href="../TaskJuggler/TextReport.html">TaskJuggler::TextReport</a></li>
|
457
|
+
|
458
|
+
<li><a href="../TaskJuggler/TextScanner.html">TaskJuggler::TextScanner</a></li>
|
459
|
+
|
460
|
+
<li><a href="../TaskJuggler/TextScanner/BufferStreamHandle.html">TaskJuggler::TextScanner::BufferStreamHandle</a></li>
|
461
|
+
|
462
|
+
<li><a href="../TaskJuggler/TextScanner/FileStreamHandle.html">TaskJuggler::TextScanner::FileStreamHandle</a></li>
|
463
|
+
|
464
|
+
<li><a href="../TaskJuggler/TextScanner/StreamHandle.html">TaskJuggler::TextScanner::StreamHandle</a></li>
|
465
|
+
|
466
|
+
<li><a href="../TaskJuggler/TimeSheet.html">TaskJuggler::TimeSheet</a></li>
|
467
|
+
|
468
|
+
<li><a href="../TaskJuggler/TimeSheetReceiver.html">TaskJuggler::TimeSheetReceiver</a></li>
|
469
|
+
|
470
|
+
<li><a href="../TaskJuggler/TimeSheetRecord.html">TaskJuggler::TimeSheetRecord</a></li>
|
471
|
+
|
472
|
+
<li><a href="../TaskJuggler/TimeSheetReport.html">TaskJuggler::TimeSheetReport</a></li>
|
473
|
+
|
474
|
+
<li><a href="../TaskJuggler/TimeSheetSender.html">TaskJuggler::TimeSheetSender</a></li>
|
475
|
+
|
476
|
+
<li><a href="../TaskJuggler/TimeSheetSummary.html">TaskJuggler::TimeSheetSummary</a></li>
|
477
|
+
|
478
|
+
<li><a href="../TaskJuggler/TimeSheets.html">TaskJuggler::TimeSheets</a></li>
|
479
|
+
|
480
|
+
<li><a href="../TaskJuggler/Tj3AppBase.html">TaskJuggler::Tj3AppBase</a></li>
|
481
|
+
|
482
|
+
<li><a href="../TaskJuggler/Tj3Client.html">TaskJuggler::Tj3Client</a></li>
|
483
|
+
|
484
|
+
<li><a href="../TaskJuggler/Tj3Daemon.html">TaskJuggler::Tj3Daemon</a></li>
|
485
|
+
|
486
|
+
<li><a href="../TaskJuggler/Tj3SheetAppBase.html">TaskJuggler::Tj3SheetAppBase</a></li>
|
487
|
+
|
488
|
+
<li><a href="../TaskJuggler/Tj3SsReceiver.html">TaskJuggler::Tj3SsReceiver</a></li>
|
489
|
+
|
490
|
+
<li><a href="../TaskJuggler/Tj3SsSender.html">TaskJuggler::Tj3SsSender</a></li>
|
491
|
+
|
492
|
+
<li><a href="../TaskJuggler/Tj3TsReceiver.html">TaskJuggler::Tj3TsReceiver</a></li>
|
493
|
+
|
494
|
+
<li><a href="../TaskJuggler/Tj3TsSender.html">TaskJuggler::Tj3TsSender</a></li>
|
495
|
+
|
496
|
+
<li><a href="../TaskJuggler/Tj3TsSummary.html">TaskJuggler::Tj3TsSummary</a></li>
|
497
|
+
|
498
|
+
<li><a href="../TaskJuggler/TjException.html">TaskJuggler::TjException</a></li>
|
499
|
+
|
500
|
+
<li><a href="../TaskJuggler/TjTime.html">TaskJuggler::TjTime</a></li>
|
501
|
+
|
502
|
+
<li><a href="../TaskJuggler/TjpExample.html">TaskJuggler::TjpExample</a></li>
|
503
|
+
|
504
|
+
<li><a href="../TaskJuggler/TjpExportRE.html">TaskJuggler::TjpExportRE</a></li>
|
505
|
+
|
506
|
+
<li><a href="../TaskJuggler/TjpSyntaxRules.html">TaskJuggler::TjpSyntaxRules</a></li>
|
507
|
+
|
508
|
+
<li><a href="../TaskJuggler/UserManual.html">TaskJuggler::UserManual</a></li>
|
509
|
+
|
510
|
+
<li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
|
511
|
+
|
512
|
+
<li><a href="../TaskJuggler/WorkingHoursAttribute.html">TaskJuggler::WorkingHoursAttribute</a></li>
|
513
|
+
|
514
|
+
<li><a href="../TaskJuggler/XMLBlob.html">TaskJuggler::XMLBlob</a></li>
|
515
|
+
|
516
|
+
<li><a href="../TaskJuggler/XMLComment.html">TaskJuggler::XMLComment</a></li>
|
517
|
+
|
518
|
+
<li><a href="../TaskJuggler/XMLDocument.html">TaskJuggler::XMLDocument</a></li>
|
519
|
+
|
520
|
+
<li><a href="../TaskJuggler/XMLElement.html">TaskJuggler::XMLElement</a></li>
|
521
|
+
|
522
|
+
<li><a href="../TaskJuggler/XMLNamedText.html">TaskJuggler::XMLNamedText</a></li>
|
523
|
+
|
524
|
+
<li><a href="../TaskJuggler/XMLText.html">TaskJuggler::XMLText</a></li>
|
525
|
+
|
526
|
+
<li><a href="../AppConfig.html">AppConfig</a></li>
|
527
|
+
|
528
|
+
<li><a href="../Arguments.html">Arguments</a></li>
|
529
|
+
|
530
|
+
<li><a href="../Object.html">Object</a></li>
|
531
|
+
|
532
|
+
<li><a href="../RuntimeConfig.html">RuntimeConfig</a></li>
|
533
|
+
|
534
|
+
<li><a href="../String.html">String</a></li>
|
535
|
+
|
536
|
+
</ul>
|
537
|
+
<div id="no-class-search-results" style="display: none;">No matching classes.</div>
|
538
|
+
</div>
|
539
|
+
|
540
|
+
|
541
|
+
</div>
|
542
|
+
</div>
|
543
|
+
|
544
|
+
<div id="documentation">
|
545
|
+
<h1 class="class">TaskJuggler::SheetReceiver</h1>
|
546
|
+
|
547
|
+
<div id="description">
|
548
|
+
|
549
|
+
</div>
|
550
|
+
|
551
|
+
<!-- Constants -->
|
552
|
+
|
553
|
+
|
554
|
+
<!-- Attributes -->
|
555
|
+
|
556
|
+
|
557
|
+
<!-- Methods -->
|
558
|
+
|
559
|
+
<div id="public-class-method-details" class="method-section section">
|
560
|
+
<h3 class="section-header">Public Class Methods</h3>
|
561
|
+
|
562
|
+
|
563
|
+
<div id="new-method" class="method-detail ">
|
564
|
+
<a name="M001162"></a>
|
565
|
+
|
566
|
+
<div class="method-heading">
|
567
|
+
|
568
|
+
<span class="method-name">new</span><span
|
569
|
+
class="method-args">(appName, type)</span>
|
570
|
+
<span class="method-click-advice">click to toggle source</span>
|
571
|
+
|
572
|
+
</div>
|
573
|
+
|
574
|
+
<div class="method-description">
|
575
|
+
|
576
|
+
|
577
|
+
|
578
|
+
|
579
|
+
|
580
|
+
<div class="method-source-code"
|
581
|
+
id="new-source">
|
582
|
+
<pre>
|
583
|
+
<span class="ruby-comment cmt"># File lib/SheetReceiver.rb, line 23</span>
|
584
|
+
23: <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>)
|
585
|
+
24: <span class="ruby-keyword kw">super</span>(<span class="ruby-identifier">appName</span>)
|
586
|
+
25:
|
587
|
+
26: <span class="ruby-ivar">@sheetType</span> = <span class="ruby-identifier">type</span>
|
588
|
+
27: <span class="ruby-comment cmt"># The following settings must be set by the deriving class.</span>
|
589
|
+
28: <span class="ruby-comment cmt"># Sheet type specific option for tj3client</span>
|
590
|
+
29: <span class="ruby-ivar">@tj3clientOption</span> = <span class="ruby-keyword kw">nil</span>
|
591
|
+
30: <span class="ruby-comment cmt"># Base directory to store received sheets</span>
|
592
|
+
31: <span class="ruby-ivar">@sheetDir</span> = <span class="ruby-keyword kw">nil</span>
|
593
|
+
32: <span class="ruby-comment cmt"># Base directory where to find the resource file.</span>
|
594
|
+
33: <span class="ruby-ivar">@templateDir</span> = <span class="ruby-keyword kw">nil</span>
|
595
|
+
34: <span class="ruby-comment cmt"># Directory to store the failed emails.</span>
|
596
|
+
35: <span class="ruby-ivar">@failedMailsDir</span> = <span class="ruby-keyword kw">nil</span>
|
597
|
+
36: <span class="ruby-comment cmt"># Directory to store the failed sheets</span>
|
598
|
+
37: <span class="ruby-ivar">@failedSheetsDir</span> = <span class="ruby-keyword kw">nil</span>
|
599
|
+
38: <span class="ruby-comment cmt"># File that holds the acceptable signatures.</span>
|
600
|
+
39: <span class="ruby-ivar">@signatureFile</span> = <span class="ruby-keyword kw">nil</span>
|
601
|
+
40: <span class="ruby-comment cmt"># The log file</span>
|
602
|
+
41: <span class="ruby-ivar">@logFile</span> = <span class="ruby-keyword kw">nil</span>
|
603
|
+
42:
|
604
|
+
43: <span class="ruby-comment cmt"># Regular expressions to identify a status sheet.</span>
|
605
|
+
44: <span class="ruby-ivar">@sheetHeader</span> = <span class="ruby-regexp re">/^[ ]*statussheet\s([a-z][a-z0-9_]*)\s([0-9]*-[0-9]*-[0-9]*)/</span>
|
606
|
+
45: <span class="ruby-comment cmt"># Regular expression to extract the sheet signature (date).</span>
|
607
|
+
46: <span class="ruby-ivar">@signatureFilter</span> = <span class="ruby-regexp re">/^[ ]*statussheet\s[a-z][a-z0-9_]*\s([0-9:\-+]*)/</span>
|
608
|
+
47: <span class="ruby-comment cmt"># The email address of the submitter of the sheet.</span>
|
609
|
+
48: <span class="ruby-ivar">@submitter</span> = <span class="ruby-keyword kw">nil</span>
|
610
|
+
49: <span class="ruby-comment cmt"># The resource ID of the submitter.</span>
|
611
|
+
50: <span class="ruby-ivar">@resourceId</span> = <span class="ruby-keyword kw">nil</span>
|
612
|
+
51: <span class="ruby-comment cmt"># The stdout content from tj3client</span>
|
613
|
+
52: <span class="ruby-ivar">@report</span> = <span class="ruby-keyword kw">nil</span>
|
614
|
+
53: <span class="ruby-comment cmt"># The stderr content from tj3client</span>
|
615
|
+
54: <span class="ruby-ivar">@warnings</span> = <span class="ruby-keyword kw">nil</span>
|
616
|
+
55:
|
617
|
+
56: <span class="ruby-comment cmt"># The extracted sheet text.</span>
|
618
|
+
57: <span class="ruby-ivar">@sheet</span> = <span class="ruby-keyword kw">nil</span>
|
619
|
+
58: <span class="ruby-comment cmt"># Will indicate whether the sheet was attached or in mail body</span>
|
620
|
+
59: <span class="ruby-ivar">@sheetWasAttached</span> = <span class="ruby-keyword kw">true</span>
|
621
|
+
60: <span class="ruby-comment cmt"># The end date of the reporting period.</span>
|
622
|
+
61: <span class="ruby-ivar">@date</span> = <span class="ruby-keyword kw">nil</span>
|
623
|
+
62: <span class="ruby-comment cmt"># The id of the incomming message.</span>
|
624
|
+
63: <span class="ruby-ivar">@messageId</span> = <span class="ruby-keyword kw">nil</span>
|
625
|
+
64: <span class="ruby-keyword kw">end</span></pre>
|
626
|
+
</div>
|
627
|
+
|
628
|
+
</div>
|
629
|
+
|
630
|
+
|
631
|
+
|
632
|
+
|
633
|
+
</div>
|
634
|
+
|
635
|
+
|
636
|
+
</div>
|
637
|
+
|
638
|
+
<div id="public-instance-method-details" class="method-section section">
|
639
|
+
<h3 class="section-header">Public Instance Methods</h3>
|
640
|
+
|
641
|
+
|
642
|
+
<div id="process-mail-method" class="method-detail ">
|
643
|
+
<a name="M001163"></a>
|
644
|
+
|
645
|
+
<div class="method-heading">
|
646
|
+
|
647
|
+
<span class="method-name">processEmail</span><span
|
648
|
+
class="method-args">()</span>
|
649
|
+
<span class="method-click-advice">click to toggle source</span>
|
650
|
+
|
651
|
+
</div>
|
652
|
+
|
653
|
+
<div class="method-description">
|
654
|
+
|
655
|
+
<p>
|
656
|
+
Read the sheet from $stdin in email format. Extract the sheet from the
|
657
|
+
attachments or body and check it. If ok, send back a summary, otherwise the
|
658
|
+
error message. The actual check is done by a tj3 server process that is
|
659
|
+
accessed via tj3client.
|
660
|
+
</p>
|
661
|
+
|
662
|
+
|
663
|
+
|
664
|
+
<div class="method-source-code"
|
665
|
+
id="process-mail-source">
|
666
|
+
<pre>
|
667
|
+
<span class="ruby-comment cmt"># File lib/SheetReceiver.rb, line 71</span>
|
668
|
+
71: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">processEmail</span>
|
669
|
+
72: <span class="ruby-identifier">setWorkingDir</span>
|
670
|
+
73:
|
671
|
+
74: <span class="ruby-identifier">createDirectories</span>
|
672
|
+
75:
|
673
|
+
76: <span class="ruby-identifier">mail</span> = <span class="ruby-constant">Mail</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">$stdin</span>.<span class="ruby-identifier">read</span>)
|
674
|
+
77:
|
675
|
+
78: <span class="ruby-comment cmt"># Who sent this email?</span>
|
676
|
+
79: <span class="ruby-ivar">@submitter</span> = <span class="ruby-identifier">mail</span>.<span class="ruby-identifier">from</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-value str">'[]'</span>) <span class="ruby-operator">?</span> <span class="ruby-identifier">mail</span>.<span class="ruby-identifier">from</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">:</span> <span class="ruby-identifier">mail</span>.<span class="ruby-identifier">from</span>
|
677
|
+
80: <span class="ruby-comment cmt"># Getting the message ID.</span>
|
678
|
+
81: <span class="ruby-ivar">@messageId</span> = <span class="ruby-identifier">mail</span>.<span class="ruby-identifier">message_id</span> <span class="ruby-operator">||</span> <span class="ruby-value str">'unknown'</span>
|
679
|
+
82: <span class="ruby-ivar">@idDigest</span> = <span class="ruby-constant">Digest</span><span class="ruby-operator">::</span><span class="ruby-constant">MD5</span>.<span class="ruby-identifier">hexdigest</span>(<span class="ruby-ivar">@messageId</span>)
|
680
|
+
83: <span class="ruby-identifier">info</span>(<span class="ruby-node">"Processing #{@sheetType} mail from #{@submitter} "</span> <span class="ruby-operator">+</span>
|
681
|
+
84: <span class="ruby-node">"with ID #{@messageId} (#{@idDigest})"</span>)
|
682
|
+
85:
|
683
|
+
86: <span class="ruby-comment cmt"># Store the mail in the failedMailsDir in case something goes wrong.</span>
|
684
|
+
87: <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-node">"#{@failedMailsDir}/#{@idDigest}"</span>, <span class="ruby-value str">'w'</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span>
|
685
|
+
88: <span class="ruby-identifier">f</span>.<span class="ruby-identifier">write</span>(<span class="ruby-identifier">mail</span>)
|
686
|
+
89: <span class="ruby-keyword kw">end</span>
|
687
|
+
90:
|
688
|
+
91: <span class="ruby-comment cmt"># First we search the attachments and then the body.</span>
|
689
|
+
92: <span class="ruby-identifier">mail</span>.<span class="ruby-identifier">attachments</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">attachment</span><span class="ruby-operator">|</span>
|
690
|
+
93: <span class="ruby-comment cmt"># We are looking for an attached file with a .tji extension.</span>
|
691
|
+
94: <span class="ruby-identifier">fileName</span> = <span class="ruby-identifier">attachment</span>.<span class="ruby-identifier">filename</span>
|
692
|
+
95: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">fileName</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">fileName</span>[<span class="ruby-value">4</span><span class="ruby-operator">..</span><span class="ruby-value">1</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">'.tji'</span>
|
693
|
+
96:
|
694
|
+
97: <span class="ruby-comment cmt"># Further inspect the attachment. If we could process it, we are done.</span>
|
695
|
+
98: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">processSheet</span>(<span class="ruby-identifier">attachment</span>.<span class="ruby-identifier">body</span>.<span class="ruby-identifier">decoded</span>)
|
696
|
+
99: <span class="ruby-keyword kw">end</span>
|
697
|
+
100: <span class="ruby-comment cmt"># None of the attachements worked, so let's try the mail body.</span>
|
698
|
+
101: <span class="ruby-ivar">@sheetWasAttached</span> = <span class="ruby-keyword kw">false</span>
|
699
|
+
102: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">processSheet</span>(<span class="ruby-identifier">mail</span>.<span class="ruby-identifier">body</span>.<span class="ruby-identifier">decoded</span>)
|
700
|
+
103:
|
701
|
+
104: <span class="ruby-identifier">error</span>(<span class="ruby-value str">No #{@sheetType} sheet found in email. Please make sure the header syntax iscorrect and contained in a single line that starts at the begining of theline. If you had the #{@sheetType} sheet attached, the file name must have a'.tji' extension to be found.</span>
|
702
|
+
105: )
|
703
|
+
106: <span class="ruby-keyword kw">end</span></pre>
|
704
|
+
</div>
|
705
|
+
|
706
|
+
</div>
|
707
|
+
|
708
|
+
|
709
|
+
|
710
|
+
|
711
|
+
</div>
|
712
|
+
|
713
|
+
|
714
|
+
</div>
|
715
|
+
|
716
|
+
<div id="private-instance-method-details" class="method-section section">
|
717
|
+
<h3 class="section-header">Private Instance Methods</h3>
|
718
|
+
|
719
|
+
|
720
|
+
<div id="check-heet-method" class="method-detail ">
|
721
|
+
<a name="M001165"></a>
|
722
|
+
|
723
|
+
<div class="method-heading">
|
724
|
+
|
725
|
+
<span class="method-name">checkSheet</span><span
|
726
|
+
class="method-args">(sheet)</span>
|
727
|
+
<span class="method-click-advice">click to toggle source</span>
|
728
|
+
|
729
|
+
</div>
|
730
|
+
|
731
|
+
<div class="method-description">
|
732
|
+
|
733
|
+
|
734
|
+
|
735
|
+
|
736
|
+
|
737
|
+
<div class="method-source-code"
|
738
|
+
id="check-heet-source">
|
739
|
+
<pre>
|
740
|
+
<span class="ruby-comment cmt"># File lib/SheetReceiver.rb, line 142</span>
|
741
|
+
142: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">checkSheet</span>(<span class="ruby-identifier">sheet</span>)
|
742
|
+
143: <span class="ruby-identifier">err</span> = <span class="ruby-value str">''</span>
|
743
|
+
144: <span class="ruby-identifier">status</span> = <span class="ruby-keyword kw">nil</span>
|
744
|
+
145: <span class="ruby-keyword kw">begin</span>
|
745
|
+
146: <span class="ruby-comment cmt"># Save a copy of the sheet for debugging purposes.</span>
|
746
|
+
147: <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-node">"#{@failedSheetsDir}/#{@resourceId}-#{@date}.tji"</span>, <span class="ruby-value str">'w'</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span>
|
747
|
+
148: <span class="ruby-identifier">f</span>.<span class="ruby-identifier">write</span>(<span class="ruby-identifier">sheet</span>)
|
748
|
+
149: <span class="ruby-keyword kw">end</span>
|
749
|
+
150: <span class="ruby-identifier">command</span> = <span class="ruby-node">"tj3client --silent #{@tj3clientOption} #{@projectId} ."</span>
|
750
|
+
151: <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>
|
751
|
+
152: <span class="ruby-comment cmt"># Send the report to the tj3client process via stdin.</span>
|
752
|
+
153: <span class="ruby-identifier">stdin</span>.<span class="ruby-identifier">write</span>(<span class="ruby-identifier">sheet</span>)
|
753
|
+
154: <span class="ruby-identifier">stdin</span>.<span class="ruby-identifier">close</span>
|
754
|
+
155: <span class="ruby-ivar">@report</span> = <span class="ruby-identifier">stdout</span>.<span class="ruby-identifier">read</span>
|
755
|
+
156: <span class="ruby-ivar">@warnings</span> = <span class="ruby-identifier">stderr</span>.<span class="ruby-identifier">read</span>
|
756
|
+
157: <span class="ruby-keyword kw">end</span>
|
757
|
+
158: <span class="ruby-keyword kw">rescue</span>
|
758
|
+
159: <span class="ruby-identifier">fatal</span>(<span class="ruby-node">"Cannot check #{@sheetType} sheet: #{$!}"</span>)
|
759
|
+
160: <span class="ruby-keyword kw">end</span>
|
760
|
+
161: <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>
|
761
|
+
162: <span class="ruby-constant">File</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-node">"#{@failedSheetsDir}/#{@resourceId}-#{@date}.tji"</span>)
|
762
|
+
163: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span>
|
763
|
+
164: <span class="ruby-keyword kw">end</span>
|
764
|
+
165:
|
765
|
+
166: <span class="ruby-comment cmt"># The exit status was not 0. The stderr output should not be empty and</span>
|
766
|
+
167: <span class="ruby-comment cmt"># will contain error and warning messages.</span>
|
767
|
+
168: <span class="ruby-identifier">error</span>(<span class="ruby-ivar">@warnings</span>)
|
768
|
+
169: <span class="ruby-keyword kw">end</span></pre>
|
769
|
+
</div>
|
770
|
+
|
771
|
+
</div>
|
772
|
+
|
773
|
+
|
774
|
+
|
775
|
+
|
776
|
+
</div>
|
777
|
+
|
778
|
+
|
779
|
+
<div id="check-ignature-method" class="method-detail ">
|
780
|
+
<a name="M001168"></a>
|
781
|
+
|
782
|
+
<div class="method-heading">
|
783
|
+
|
784
|
+
<span class="method-name">checkSignature</span><span
|
785
|
+
class="method-args">(sheet)</span>
|
786
|
+
<span class="method-click-advice">click to toggle source</span>
|
787
|
+
|
788
|
+
</div>
|
789
|
+
|
790
|
+
<div class="method-description">
|
791
|
+
|
792
|
+
|
793
|
+
|
794
|
+
|
795
|
+
|
796
|
+
<div class="method-source-code"
|
797
|
+
id="check-ignature-source">
|
798
|
+
<pre>
|
799
|
+
<span class="ruby-comment cmt"># File lib/SheetReceiver.rb, line 247</span>
|
800
|
+
247: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">checkSignature</span>(<span class="ruby-identifier">sheet</span>)
|
801
|
+
248: <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">sheet</span>)
|
802
|
+
249: <span class="ruby-identifier">interval</span> = <span class="ruby-identifier">matches</span>[<span class="ruby-value">1</span>]
|
803
|
+
250: <span class="ruby-keyword kw">else</span>
|
804
|
+
251: <span class="ruby-identifier">fatal</span>(<span class="ruby-node">"No #{@sheetType}sheet header found"</span>)
|
805
|
+
252: <span class="ruby-keyword kw">end</span>
|
806
|
+
253:
|
807
|
+
254: <span class="ruby-identifier">acceptedSignatures</span> = []
|
808
|
+
255: <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>)
|
809
|
+
256: <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>
|
810
|
+
257: <span class="ruby-identifier">acceptedSignatures</span> = <span class="ruby-identifier">file</span>.<span class="ruby-identifier">readlines</span>
|
811
|
+
258: <span class="ruby-keyword kw">end</span>
|
812
|
+
259: <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> }
|
813
|
+
260: <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> }
|
814
|
+
261: <span class="ruby-keyword kw">else</span>
|
815
|
+
262: <span class="ruby-identifier">error</span>(<span class="ruby-node">"#{@signatureFile} does not exist yet."</span>)
|
816
|
+
263: <span class="ruby-keyword kw">end</span>
|
817
|
+
264:
|
818
|
+
265: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">acceptedSignatures</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">interval</span>)
|
819
|
+
266: <span class="ruby-identifier">error</span>(<span class="ruby-value str">The reporting period #{interval}was not accepted! Either you have modified the sheet header,you are submitting the sheet too late or too early.</span>
|
820
|
+
267: )
|
821
|
+
268: <span class="ruby-keyword kw">end</span>
|
822
|
+
269: <span class="ruby-keyword kw">end</span></pre>
|
823
|
+
</div>
|
824
|
+
|
825
|
+
</div>
|
826
|
+
|
827
|
+
|
828
|
+
|
829
|
+
|
830
|
+
</div>
|
831
|
+
|
832
|
+
|
833
|
+
<div id="create-irectories-method" class="method-detail ">
|
834
|
+
<a name="M001169"></a>
|
835
|
+
|
836
|
+
<div class="method-heading">
|
837
|
+
|
838
|
+
<span class="method-name">createDirectories</span><span
|
839
|
+
class="method-args">()</span>
|
840
|
+
<span class="method-click-advice">click to toggle source</span>
|
841
|
+
|
842
|
+
</div>
|
843
|
+
|
844
|
+
<div class="method-description">
|
845
|
+
|
846
|
+
|
847
|
+
|
848
|
+
|
849
|
+
|
850
|
+
<div class="method-source-code"
|
851
|
+
id="create-irectories-source">
|
852
|
+
<pre>
|
853
|
+
<span class="ruby-comment cmt"># File lib/SheetReceiver.rb, line 275</span>
|
854
|
+
275: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">createDirectories</span>
|
855
|
+
276: [ <span class="ruby-ivar">@sheetDir</span>, <span class="ruby-ivar">@failedMailsDir</span>, <span class="ruby-ivar">@failedSheetsDir</span> ].<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">dir</span><span class="ruby-operator">|</span>
|
856
|
+
277: <span class="ruby-keyword kw">unless</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">directory?</span>(<span class="ruby-identifier">dir</span>)
|
857
|
+
278: <span class="ruby-identifier">info</span>(<span class="ruby-node">"Creating directory #{dir}"</span>)
|
858
|
+
279: <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">mkdir</span>(<span class="ruby-identifier">dir</span>)
|
859
|
+
280: <span class="ruby-keyword kw">end</span>
|
860
|
+
281: <span class="ruby-keyword kw">end</span>
|
861
|
+
282: <span class="ruby-keyword kw">end</span></pre>
|
862
|
+
</div>
|
863
|
+
|
864
|
+
</div>
|
865
|
+
|
866
|
+
|
867
|
+
|
868
|
+
|
869
|
+
</div>
|
870
|
+
|
871
|
+
|
872
|
+
<div id="error-method" class="method-detail ">
|
873
|
+
<a name="M001170"></a>
|
874
|
+
|
875
|
+
<div class="method-heading">
|
876
|
+
|
877
|
+
<span class="method-name">error</span><span
|
878
|
+
class="method-args">(message)</span>
|
879
|
+
<span class="method-click-advice">click to toggle source</span>
|
880
|
+
|
881
|
+
</div>
|
882
|
+
|
883
|
+
<div class="method-description">
|
884
|
+
|
885
|
+
|
886
|
+
|
887
|
+
|
888
|
+
|
889
|
+
<div class="method-source-code"
|
890
|
+
id="error-source">
|
891
|
+
<pre>
|
892
|
+
<span class="ruby-comment cmt"># File lib/SheetReceiver.rb, line 284</span>
|
893
|
+
284: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">error</span>(<span class="ruby-identifier">message</span>)
|
894
|
+
285: <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">puts</span> <span class="ruby-identifier">message</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@outputLevel</span> <span class="ruby-operator">>=</span> <span class="ruby-value">1</span>
|
895
|
+
286:
|
896
|
+
287: <span class="ruby-identifier">log</span>(<span class="ruby-value str">'ERROR'</span>, <span class="ruby-node">"#{message}"</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@logLevel</span> <span class="ruby-operator">>=</span> <span class="ruby-value">1</span>
|
897
|
+
288:
|
898
|
+
289: <span class="ruby-comment cmt"># Append the submitted sheet for further tries. We may run into encoding</span>
|
899
|
+
290: <span class="ruby-comment cmt"># errors here. In this case we send the answer without the incoming time</span>
|
900
|
+
291: <span class="ruby-comment cmt"># sheet.</span>
|
901
|
+
292: <span class="ruby-keyword kw">begin</span>
|
902
|
+
293: <span class="ruby-identifier">message</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">"\n"</span> <span class="ruby-operator">+</span> <span class="ruby-ivar">@sheet</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@sheet</span> <span class="ruby-operator">&&</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@sheetWasAttached</span>
|
903
|
+
294: <span class="ruby-keyword kw">rescue</span>
|
904
|
+
295: <span class="ruby-keyword kw">end</span>
|
905
|
+
296:
|
906
|
+
297: <span class="ruby-identifier">sendEmail</span>(<span class="ruby-ivar">@submitter</span>, <span class="ruby-value str">'Your time sheet submission failed!'</span>, <span class="ruby-identifier">message</span>)
|
907
|
+
298:
|
908
|
+
299: <span class="ruby-identifier">exit</span> <span class="ruby-value">1</span>
|
909
|
+
300: <span class="ruby-keyword kw">end</span></pre>
|
910
|
+
</div>
|
911
|
+
|
912
|
+
</div>
|
913
|
+
|
914
|
+
|
915
|
+
|
916
|
+
|
917
|
+
</div>
|
918
|
+
|
919
|
+
|
920
|
+
<div id="fatal-method" class="method-detail ">
|
921
|
+
<a name="M001171"></a>
|
922
|
+
|
923
|
+
<div class="method-heading">
|
924
|
+
|
925
|
+
<span class="method-name">fatal</span><span
|
926
|
+
class="method-args">(message)</span>
|
927
|
+
<span class="method-click-advice">click to toggle source</span>
|
928
|
+
|
929
|
+
</div>
|
930
|
+
|
931
|
+
<div class="method-description">
|
932
|
+
|
933
|
+
|
934
|
+
|
935
|
+
|
936
|
+
|
937
|
+
<div class="method-source-code"
|
938
|
+
id="fatal-source">
|
939
|
+
<pre>
|
940
|
+
<span class="ruby-comment cmt"># File lib/SheetReceiver.rb, line 302</span>
|
941
|
+
302: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">fatal</span>(<span class="ruby-identifier">message</span>)
|
942
|
+
303: <span class="ruby-identifier">log</span>(<span class="ruby-value str">'FATAL'</span>, <span class="ruby-node">"#{message}"</span>)
|
943
|
+
304:
|
944
|
+
305: <span class="ruby-comment cmt"># Append the submitted sheet for further tries.</span>
|
945
|
+
306: <span class="ruby-identifier">message</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">"\n"</span> <span class="ruby-operator">+</span> <span class="ruby-ivar">@sheet</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@sheet</span>
|
946
|
+
307:
|
947
|
+
308: <span class="ruby-identifier">sendEmail</span>(<span class="ruby-ivar">@submitter</span>, <span class="ruby-value str">'Temporary server error'</span>, <span class="ruby-value str">We are sorry! The #{@sheetType} sheet server detected a configurationproblem and is temporarily out of service. The administratorhas been notified and will try to rectify the situation assoon as possible. Please re-submit your #{@sheetType} sheet later!</span>
|
948
|
+
309: )
|
949
|
+
310: <span class="ruby-identifier">exit</span> <span class="ruby-value">1</span>
|
950
|
+
311: <span class="ruby-keyword kw">end</span></pre>
|
951
|
+
</div>
|
952
|
+
|
953
|
+
</div>
|
954
|
+
|
955
|
+
|
956
|
+
|
957
|
+
|
958
|
+
</div>
|
959
|
+
|
960
|
+
|
961
|
+
<div id="file-heet-method" class="method-detail ">
|
962
|
+
<a name="M001166"></a>
|
963
|
+
|
964
|
+
<div class="method-heading">
|
965
|
+
|
966
|
+
<span class="method-name">fileSheet</span><span
|
967
|
+
class="method-args">(sheet)</span>
|
968
|
+
<span class="method-click-advice">click to toggle source</span>
|
969
|
+
|
970
|
+
</div>
|
971
|
+
|
972
|
+
<div class="method-description">
|
973
|
+
|
974
|
+
|
975
|
+
|
976
|
+
|
977
|
+
|
978
|
+
<div class="method-source-code"
|
979
|
+
id="file-heet-source">
|
980
|
+
<pre>
|
981
|
+
<span class="ruby-comment cmt"># File lib/SheetReceiver.rb, line 171</span>
|
982
|
+
171: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">fileSheet</span>(<span class="ruby-identifier">sheet</span>)
|
983
|
+
172: <span class="ruby-comment cmt"># Create the appropriate directory structure if it doesn't exist.</span>
|
984
|
+
173: <span class="ruby-identifier">dir</span> = <span class="ruby-node">"#{@sheetDir}/#{@date}"</span>
|
985
|
+
174: <span class="ruby-identifier">fileName</span> = <span class="ruby-node">"#{dir}/#{@resourceId}_#{@date}.tji"</span>
|
986
|
+
175: <span class="ruby-identifier">newDir</span> = <span class="ruby-keyword kw">false</span>
|
987
|
+
176: <span class="ruby-keyword kw">begin</span>
|
988
|
+
177: <span class="ruby-keyword kw">unless</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">directory?</span>(<span class="ruby-identifier">dir</span>)
|
989
|
+
178: <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">mkdir</span>(<span class="ruby-identifier">dir</span>)
|
990
|
+
179: <span class="ruby-identifier">addToScm</span>(<span class="ruby-value str">'Adding new directory'</span>, <span class="ruby-identifier">dir</span>)
|
991
|
+
180: <span class="ruby-identifier">newDir</span> = <span class="ruby-keyword kw">true</span>
|
992
|
+
181: <span class="ruby-keyword kw">end</span>
|
993
|
+
182: <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-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span> <span class="ruby-identifier">f</span>.<span class="ruby-identifier">write</span>(<span class="ruby-identifier">sheet</span>) }
|
994
|
+
183: <span class="ruby-identifier">addToScm</span>(<span class="ruby-node">"Adding/updating #{fileName}"</span>, <span class="ruby-identifier">fileName</span>)
|
995
|
+
184: <span class="ruby-keyword kw">rescue</span>
|
996
|
+
185: <span class="ruby-identifier">fatal</span>(<span class="ruby-node">"Cannot store #{@sheetType} sheet #{fileName}: #{$!}"</span>)
|
997
|
+
186: <span class="ruby-keyword kw">return</span>
|
998
|
+
187: <span class="ruby-keyword kw">end</span>
|
999
|
+
188:
|
1000
|
+
189: <span class="ruby-comment cmt"># Create or update the file that includes all *.tji in the directory.</span>
|
1001
|
+
190: <span class="ruby-identifier">generateInclusionFile</span>(<span class="ruby-identifier">dir</span>)
|
1002
|
+
191:
|
1003
|
+
192: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">newDir</span>
|
1004
|
+
193: <span class="ruby-comment cmt"># Add the new directory to the parent all.tji file.</span>
|
1005
|
+
194: <span class="ruby-identifier">allFile</span> = <span class="ruby-node">"#{@sheetDir}/all.tji"</span>
|
1006
|
+
195: <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">allFile</span>, <span class="ruby-value str">'a'</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span>
|
1007
|
+
196: <span class="ruby-identifier">f</span>.<span class="ruby-identifier">write</span>(<span class="ruby-node">"\ninclude '#{@date}/all.tji' { }"</span>)
|
1008
|
+
197: <span class="ruby-keyword kw">end</span>
|
1009
|
+
198: <span class="ruby-identifier">addToScm</span>(<span class="ruby-value str">'Adding new directory to all.tji'</span>, <span class="ruby-identifier">allFile</span>)
|
1010
|
+
199: <span class="ruby-keyword kw">end</span>
|
1011
|
+
200:
|
1012
|
+
201: <span class="ruby-identifier">text</span> = <span class="ruby-value str">Report from #{getResourceName} for the period ending #{@date}:</span>
|
1013
|
+
202:
|
1014
|
+
203: <span class="ruby-comment cmt"># Add warnings if we had any.</span>
|
1015
|
+
204: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@warnings</span>.<span class="ruby-identifier">empty?</span>
|
1016
|
+
205: <span class="ruby-identifier">text</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">Your report does contain some issues that you may want to fix or address withyour manager or project manager:#{@warnings}</span>
|
1017
|
+
206: <span class="ruby-keyword kw">end</span>
|
1018
|
+
207:
|
1019
|
+
208: <span class="ruby-comment cmt"># Append the pretty printed version of the submitted status sheet.</span>
|
1020
|
+
209: <span class="ruby-identifier">text</span> <span class="ruby-operator">+=</span> <span class="ruby-ivar">@report</span>
|
1021
|
+
210:
|
1022
|
+
211: <span class="ruby-comment cmt"># Send out the email.</span>
|
1023
|
+
212: <span class="ruby-identifier">sendEmail</span>(<span class="ruby-ivar">@submitter</span>, <span class="ruby-node">"Report from #{getResourceName} for #{@date}"</span>, <span class="ruby-identifier">text</span>,
|
1024
|
+
213: <span class="ruby-keyword kw">nil</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-ivar">@messageId</span>)
|
1025
|
+
214: <span class="ruby-keyword kw">true</span>
|
1026
|
+
215: <span class="ruby-keyword kw">end</span></pre>
|
1027
|
+
</div>
|
1028
|
+
|
1029
|
+
</div>
|
1030
|
+
|
1031
|
+
|
1032
|
+
|
1033
|
+
|
1034
|
+
</div>
|
1035
|
+
|
1036
|
+
|
1037
|
+
<div id="generate-nclusion-ile-method" class="method-detail ">
|
1038
|
+
<a name="M001167"></a>
|
1039
|
+
|
1040
|
+
<div class="method-heading">
|
1041
|
+
|
1042
|
+
<span class="method-name">generateInclusionFile</span><span
|
1043
|
+
class="method-args">(dir)</span>
|
1044
|
+
<span class="method-click-advice">click to toggle source</span>
|
1045
|
+
|
1046
|
+
</div>
|
1047
|
+
|
1048
|
+
<div class="method-description">
|
1049
|
+
|
1050
|
+
<p>
|
1051
|
+
Generate or update a file the contains ‘include’ statements for
|
1052
|
+
all the .tji files in the provided directory. The generated file will be in
|
1053
|
+
this directory as well.
|
1054
|
+
</p>
|
1055
|
+
|
1056
|
+
|
1057
|
+
|
1058
|
+
<div class="method-source-code"
|
1059
|
+
id="generate-nclusion-ile-source">
|
1060
|
+
<pre>
|
1061
|
+
<span class="ruby-comment cmt"># File lib/SheetReceiver.rb, line 229</span>
|
1062
|
+
229: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateInclusionFile</span>(<span class="ruby-identifier">dir</span>)
|
1063
|
+
230: <span class="ruby-identifier">pwd</span> = <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">pwd</span>
|
1064
|
+
231: <span class="ruby-keyword kw">begin</span>
|
1065
|
+
232: <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">chdir</span>(<span class="ruby-identifier">dir</span>)
|
1066
|
+
233: <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-value str">'all.tji'</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>
|
1067
|
+
234: <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">glob</span>(<span class="ruby-value str">'*.tji'</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">tji</span><span class="ruby-operator">|</span>
|
1068
|
+
235: <span class="ruby-identifier">file</span>.<span class="ruby-identifier">puts</span>(<span class="ruby-node">"include '#{tji}' { }"</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">tji</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'all.tji'</span>
|
1069
|
+
236: <span class="ruby-keyword kw">end</span>
|
1070
|
+
237: <span class="ruby-keyword kw">end</span>
|
1071
|
+
238: <span class="ruby-keyword kw">rescue</span>
|
1072
|
+
239: <span class="ruby-identifier">error</span>(<span class="ruby-node">"Can't create inclusion file: #{$!}"</span>)
|
1073
|
+
240: <span class="ruby-keyword kw">ensure</span>
|
1074
|
+
241: <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">chdir</span>(<span class="ruby-identifier">pwd</span>)
|
1075
|
+
242: <span class="ruby-keyword kw">end</span>
|
1076
|
+
243: <span class="ruby-comment cmt"># Report the change to the SCM handler.</span>
|
1077
|
+
244: <span class="ruby-identifier">addToScm</span>(<span class="ruby-value str">'Adding/updating summary include file.'</span>, <span class="ruby-node">"#{dir}/all.tji"</span>)
|
1078
|
+
245: <span class="ruby-keyword kw">end</span></pre>
|
1079
|
+
</div>
|
1080
|
+
|
1081
|
+
</div>
|
1082
|
+
|
1083
|
+
|
1084
|
+
|
1085
|
+
|
1086
|
+
</div>
|
1087
|
+
|
1088
|
+
|
1089
|
+
<div id="get-esource-mail-method" class="method-detail ">
|
1090
|
+
<a name="M001173"></a>
|
1091
|
+
|
1092
|
+
<div class="method-heading">
|
1093
|
+
|
1094
|
+
<span class="method-name">getResourceEmail</span><span
|
1095
|
+
class="method-args">(id = @resourceId)</span>
|
1096
|
+
<span class="method-click-advice">click to toggle source</span>
|
1097
|
+
|
1098
|
+
</div>
|
1099
|
+
|
1100
|
+
<div class="method-description">
|
1101
|
+
|
1102
|
+
|
1103
|
+
|
1104
|
+
|
1105
|
+
|
1106
|
+
<div class="method-source-code"
|
1107
|
+
id="get-esource-mail-source">
|
1108
|
+
<pre>
|
1109
|
+
<span class="ruby-comment cmt"># File lib/SheetReceiver.rb, line 335</span>
|
1110
|
+
335: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">getResourceEmail</span>(<span class="ruby-identifier">id</span> = <span class="ruby-ivar">@resourceId</span>)
|
1111
|
+
336: <span class="ruby-identifier">getResourceList</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@resourceList</span>
|
1112
|
+
337:
|
1113
|
+
338: <span class="ruby-ivar">@resourceList</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">resource</span><span class="ruby-operator">|</span>
|
1114
|
+
339: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">resource</span>[<span class="ruby-value">2</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">resource</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">==</span> <span class="ruby-identifier">id</span>
|
1115
|
+
340: <span class="ruby-keyword kw">end</span>
|
1116
|
+
341: <span class="ruby-identifier">error</span>(<span class="ruby-node">"Resource ID '#{id}' not found in list"</span>)
|
1117
|
+
342: <span class="ruby-keyword kw">end</span></pre>
|
1118
|
+
</div>
|
1119
|
+
|
1120
|
+
</div>
|
1121
|
+
|
1122
|
+
|
1123
|
+
|
1124
|
+
|
1125
|
+
</div>
|
1126
|
+
|
1127
|
+
|
1128
|
+
<div id="get-esource-ist-method" class="method-detail ">
|
1129
|
+
<a name="M001172"></a>
|
1130
|
+
|
1131
|
+
<div class="method-heading">
|
1132
|
+
|
1133
|
+
<span class="method-name">getResourceList</span><span
|
1134
|
+
class="method-args">()</span>
|
1135
|
+
<span class="method-click-advice">click to toggle source</span>
|
1136
|
+
|
1137
|
+
</div>
|
1138
|
+
|
1139
|
+
<div class="method-description">
|
1140
|
+
|
1141
|
+
<p>
|
1142
|
+
Load tye resources.yml YAML file into the @resourceList variable. The
|
1143
|
+
format is Array with one entry per resource. The entry is an Array with 3
|
1144
|
+
fields: ID, name and email. All fields are <a
|
1145
|
+
href="../String.html">String</a> objects.
|
1146
|
+
</p>
|
1147
|
+
|
1148
|
+
|
1149
|
+
|
1150
|
+
<div class="method-source-code"
|
1151
|
+
id="get-esource-ist-source">
|
1152
|
+
<pre>
|
1153
|
+
<span class="ruby-comment cmt"># File lib/SheetReceiver.rb, line 322</span>
|
1154
|
+
322: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">getResourceList</span>
|
1155
|
+
323: <span class="ruby-identifier">fatal</span>(<span class="ruby-value str">'@date not set'</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@date</span>
|
1156
|
+
324:
|
1157
|
+
325: <span class="ruby-identifier">fileName</span> = <span class="ruby-node">"#{@templateDir}/#{@date}/resources.yml"</span>
|
1158
|
+
326: <span class="ruby-keyword kw">begin</span>
|
1159
|
+
327: <span class="ruby-ivar">@resourceList</span> = <span class="ruby-constant">YAML</span>.<span class="ruby-identifier">load</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">read</span>(<span class="ruby-identifier">fileName</span>))
|
1160
|
+
328: <span class="ruby-identifier">info</span>(<span class="ruby-node">"#{@resourceList.length} resources loaded"</span>)
|
1161
|
+
329: <span class="ruby-keyword kw">rescue</span>
|
1162
|
+
330: <span class="ruby-identifier">error</span>(<span class="ruby-node">"Cannot read resource file #{fileName}: #{$!}"</span>)
|
1163
|
+
331: <span class="ruby-keyword kw">end</span>
|
1164
|
+
332: <span class="ruby-ivar">@resourceList</span>
|
1165
|
+
333: <span class="ruby-keyword kw">end</span></pre>
|
1166
|
+
</div>
|
1167
|
+
|
1168
|
+
</div>
|
1169
|
+
|
1170
|
+
|
1171
|
+
|
1172
|
+
|
1173
|
+
</div>
|
1174
|
+
|
1175
|
+
|
1176
|
+
<div id="get-esource-ame-method" class="method-detail ">
|
1177
|
+
<a name="M001174"></a>
|
1178
|
+
|
1179
|
+
<div class="method-heading">
|
1180
|
+
|
1181
|
+
<span class="method-name">getResourceName</span><span
|
1182
|
+
class="method-args">(id = @resourceId)</span>
|
1183
|
+
<span class="method-click-advice">click to toggle source</span>
|
1184
|
+
|
1185
|
+
</div>
|
1186
|
+
|
1187
|
+
<div class="method-description">
|
1188
|
+
|
1189
|
+
|
1190
|
+
|
1191
|
+
|
1192
|
+
|
1193
|
+
<div class="method-source-code"
|
1194
|
+
id="get-esource-ame-source">
|
1195
|
+
<pre>
|
1196
|
+
<span class="ruby-comment cmt"># File lib/SheetReceiver.rb, line 344</span>
|
1197
|
+
344: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">getResourceName</span>(<span class="ruby-identifier">id</span> = <span class="ruby-ivar">@resourceId</span>)
|
1198
|
+
345: <span class="ruby-identifier">getResourceList</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@resourceList</span>
|
1199
|
+
346:
|
1200
|
+
347: <span class="ruby-ivar">@resourceList</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">resource</span><span class="ruby-operator">|</span>
|
1201
|
+
348: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">resource</span>[<span class="ruby-value">1</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">resource</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">==</span> <span class="ruby-identifier">id</span>
|
1202
|
+
349: <span class="ruby-keyword kw">end</span>
|
1203
|
+
350: <span class="ruby-identifier">error</span>(<span class="ruby-node">"Resource ID '#{id}' not found in list"</span>)
|
1204
|
+
351: <span class="ruby-keyword kw">end</span></pre>
|
1205
|
+
</div>
|
1206
|
+
|
1207
|
+
</div>
|
1208
|
+
|
1209
|
+
|
1210
|
+
|
1211
|
+
|
1212
|
+
</div>
|
1213
|
+
|
1214
|
+
|
1215
|
+
<div id="process-heet-method" class="method-detail ">
|
1216
|
+
<a name="M001164"></a>
|
1217
|
+
|
1218
|
+
<div class="method-heading">
|
1219
|
+
|
1220
|
+
<span class="method-name">processSheet</span><span
|
1221
|
+
class="method-args">(sheet)</span>
|
1222
|
+
<span class="method-click-advice">click to toggle source</span>
|
1223
|
+
|
1224
|
+
</div>
|
1225
|
+
|
1226
|
+
<div class="method-description">
|
1227
|
+
|
1228
|
+
<p>
|
1229
|
+
Isolate the actual syntax from <em>sheet</em> and process it.
|
1230
|
+
</p>
|
1231
|
+
|
1232
|
+
|
1233
|
+
|
1234
|
+
<div class="method-source-code"
|
1235
|
+
id="process-heet-source">
|
1236
|
+
<pre>
|
1237
|
+
<span class="ruby-comment cmt"># File lib/SheetReceiver.rb, line 116</span>
|
1238
|
+
116: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">processSheet</span>(<span class="ruby-identifier">sheet</span>)
|
1239
|
+
117: <span class="ruby-comment cmt"># Store the detected sheet so we can include it with error reports if</span>
|
1240
|
+
118: <span class="ruby-comment cmt"># needed.</span>
|
1241
|
+
119: <span class="ruby-ivar">@sheet</span> = <span class="ruby-identifier">cutOut</span>(<span class="ruby-identifier">fixLineBreaks</span>(<span class="ruby-identifier">sheet</span>))
|
1242
|
+
120: <span class="ruby-comment cmt"># A valid sheet must have the poper header line.</span>
|
1243
|
+
121: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@sheetHeader</span>.<span class="ruby-identifier">match</span>(<span class="ruby-ivar">@sheet</span>)
|
1244
|
+
122: <span class="ruby-identifier">checkSignature</span>(<span class="ruby-ivar">@sheet</span>)
|
1245
|
+
123: <span class="ruby-comment cmt"># Extract the resource ID and the end date from the sheet.</span>
|
1246
|
+
124: <span class="ruby-identifier">matches</span> = <span class="ruby-ivar">@sheetHeader</span>.<span class="ruby-identifier">match</span>(<span class="ruby-ivar">@sheet</span>)
|
1247
|
+
125: <span class="ruby-ivar">@resourceId</span>, <span class="ruby-ivar">@date</span> = <span class="ruby-identifier">matches</span>[<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">2</span>]
|
1248
|
+
126: <span class="ruby-comment cmt"># Email answers will only go the email address on file!</span>
|
1249
|
+
127: <span class="ruby-ivar">@submitter</span> = <span class="ruby-identifier">getResourceEmail</span>(<span class="ruby-ivar">@resourceId</span>)
|
1250
|
+
128: <span class="ruby-identifier">info</span>(<span class="ruby-node">"Found #{@sheetWasAttached ? 'attached ' : ''}sheet for "</span> <span class="ruby-operator">+</span>
|
1251
|
+
129: <span class="ruby-node">"#{@resourceId} dated #{@date}"</span>)
|
1252
|
+
130: <span class="ruby-comment cmt"># Ok, found. Now check the full sheet.</span>
|
1253
|
+
131: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">checkSheet</span>(<span class="ruby-ivar">@sheet</span>)
|
1254
|
+
132: <span class="ruby-comment cmt"># Everything is fine. Store it away.</span>
|
1255
|
+
133: <span class="ruby-identifier">fileSheet</span>(<span class="ruby-ivar">@sheet</span>)
|
1256
|
+
134: <span class="ruby-comment cmt"># Remove the mail from the failedMailsDir</span>
|
1257
|
+
135: <span class="ruby-constant">File</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-node">"#{@failedMailsDir}/#{@idDigest}"</span>)
|
1258
|
+
136: <span class="ruby-identifier">info</span>(<span class="ruby-node">"Accepted sheet for #{@resourceId} dated #{@date}"</span>)
|
1259
|
+
137: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span>
|
1260
|
+
138: <span class="ruby-keyword kw">end</span>
|
1261
|
+
139: <span class="ruby-keyword kw">end</span>
|
1262
|
+
140: <span class="ruby-keyword kw">end</span></pre>
|
1263
|
+
</div>
|
1264
|
+
|
1265
|
+
</div>
|
1266
|
+
|
1267
|
+
|
1268
|
+
|
1269
|
+
|
1270
|
+
</div>
|
1271
|
+
|
1272
|
+
|
1273
|
+
</div>
|
1274
|
+
|
1275
|
+
|
1276
|
+
</div>
|
1277
|
+
|
1278
|
+
|
1279
|
+
<div id="rdoc-debugging-section-dump" class="debugging-section">
|
1280
|
+
|
1281
|
+
<p>Disabled; run with --debug to generate this.</p>
|
1282
|
+
|
1283
|
+
</div>
|
1284
|
+
|
1285
|
+
<div id="validator-badges">
|
1286
|
+
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
1287
|
+
<p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
|
1288
|
+
Rdoc Generator</a> 1.1.6</small>.</p>
|
1289
|
+
</div>
|
1290
|
+
|
1291
|
+
</body>
|
1292
|
+
</html>
|
1293
|
+
|