taskjuggler 0.0.5 → 0.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG +2086 -0
- data/benchmarks/666tasks.tjp +3183 -0
- data/benchmarks/booking.tjp +14 -10
- data/doc/AppConfig.html +95 -73
- data/doc/Arguments.html +22 -2
- data/doc/CHANGELOG.html +2587 -0
- data/doc/COPYING.html +21 -1
- data/doc/Object.html +161 -122
- data/doc/README.html +21 -1
- data/doc/RuntimeConfig.html +26 -6
- data/doc/String.html +38 -18
- data/doc/StringIO.html +579 -0
- data/doc/TaskJuggler.html +251 -143
- data/doc/TaskJuggler/Account.html +26 -6
- data/doc/TaskJuggler/AccountAttribute.html +28 -8
- data/doc/TaskJuggler/AccountScenario.html +24 -4
- data/doc/TaskJuggler/Allocation.html +30 -10
- data/doc/TaskJuggler/AllocationAttribute.html +28 -8
- data/doc/TaskJuggler/AttributeBase.html +46 -26
- data/doc/TaskJuggler/AttributeDefinition.html +22 -2
- data/doc/TaskJuggler/BatchProcessor.html +40 -20
- data/doc/TaskJuggler/Booking.html +26 -6
- data/doc/TaskJuggler/BookingListAttribute.html +28 -8
- data/doc/TaskJuggler/BooleanAttribute.html +28 -8
- data/doc/TaskJuggler/CSVFile.html +308 -146
- data/doc/TaskJuggler/CellSettingPattern.html +22 -2
- data/doc/TaskJuggler/CellSettingPatternList.html +26 -6
- data/doc/TaskJuggler/Charge.html +26 -6
- data/doc/TaskJuggler/ChargeListAttribute.html +26 -6
- data/doc/TaskJuggler/ChargeSet.html +33 -13
- data/doc/TaskJuggler/ChargeSetListAttribute.html +28 -8
- data/doc/TaskJuggler/ColumnListAttribute.html +26 -6
- data/doc/TaskJuggler/ColumnTable.html +24 -4
- data/doc/TaskJuggler/Daemon.html +26 -6
- data/doc/TaskJuggler/DateAttribute.html +26 -6
- data/doc/TaskJuggler/DefinitionListAttribute.html +22 -2
- data/doc/TaskJuggler/DependencyListAttribute.html +28 -8
- data/doc/TaskJuggler/DurationAttribute.html +28 -8
- data/doc/TaskJuggler/FixnumAttribute.html +24 -4
- data/doc/TaskJuggler/FlagListAttribute.html +28 -8
- data/doc/TaskJuggler/FloatAttribute.html +26 -6
- data/doc/TaskJuggler/FormatListAttribute.html +24 -4
- data/doc/TaskJuggler/GanttChart.html +147 -126
- data/doc/TaskJuggler/GanttContainer.html +34 -14
- data/doc/TaskJuggler/GanttHeader.html +28 -8
- data/doc/TaskJuggler/GanttHeaderScaleItem.html +24 -4
- data/doc/TaskJuggler/GanttLine.html +38 -18
- data/doc/TaskJuggler/GanttLoadStack.html +26 -6
- data/doc/TaskJuggler/GanttMilestone.html +34 -14
- data/doc/TaskJuggler/GanttRouter.html +50 -30
- data/doc/TaskJuggler/GanttTaskBar.html +34 -14
- data/doc/TaskJuggler/HTMLDocument.html +26 -6
- data/doc/TaskJuggler/HTMLGraphics.html +30 -10
- data/doc/TaskJuggler/Interval.html +40 -22
- data/doc/TaskJuggler/IntervalListAttribute.html +28 -8
- data/doc/TaskJuggler/JobInfo.html +24 -4
- data/doc/TaskJuggler/Journal.html +226 -147
- data/doc/TaskJuggler/JournalEntry.html +22 -2
- data/doc/TaskJuggler/JournalEntryList.html +129 -112
- data/doc/TaskJuggler/KeywordArray.html +26 -6
- data/doc/TaskJuggler/KeywordDocumentation.html +46 -26
- data/doc/TaskJuggler/Limits.html +152 -123
- data/doc/TaskJuggler/Limits/Limit.html +149 -70
- data/doc/TaskJuggler/LimitsAttribute.html +36 -51
- data/doc/TaskJuggler/ListAttributeBase.html +24 -4
- data/doc/TaskJuggler/Log.html +50 -32
- data/doc/TaskJuggler/LogFile.html +37 -17
- data/doc/TaskJuggler/LogicalAttribute.html +53 -33
- data/doc/TaskJuggler/LogicalExpression.html +26 -6
- data/doc/TaskJuggler/LogicalExpressionAttribute.html +32 -12
- data/doc/TaskJuggler/LogicalFlag.html +42 -22
- data/doc/TaskJuggler/LogicalFunction.html +204 -140
- data/doc/TaskJuggler/LogicalOperation.html +135 -111
- data/doc/TaskJuggler/Macro.html +22 -2
- data/doc/TaskJuggler/MacroParser.html +32 -12
- data/doc/TaskJuggler/MacroTable.html +32 -12
- data/doc/TaskJuggler/ManagerResponsibilities.html +24 -4
- data/doc/TaskJuggler/ManagerStatusRecord.html +24 -4
- data/doc/TaskJuggler/Message.html +24 -4
- data/doc/TaskJuggler/MessageHandler.html +24 -4
- data/doc/TaskJuggler/Navigator.html +104 -71
- data/doc/TaskJuggler/NavigatorElement.html +32 -12
- data/doc/TaskJuggler/NikuProject.html +22 -2
- data/doc/TaskJuggler/NikuReport.html +310 -228
- data/doc/TaskJuggler/NikuResource.html +22 -2
- data/doc/TaskJuggler/NodeListAttribute.html +615 -0
- data/doc/TaskJuggler/OnShiftCache.html +32 -12
- data/doc/TaskJuggler/ProcessIntercom.html +205 -78
- data/doc/TaskJuggler/ProcessIntercomIface.html +26 -6
- data/doc/TaskJuggler/Project.html +708 -660
- data/doc/TaskJuggler/ProjectBroker.html +506 -304
- data/doc/TaskJuggler/ProjectBrokerIface.html +61 -41
- data/doc/TaskJuggler/ProjectFileParser.html +429 -373
- data/doc/TaskJuggler/ProjectFileScanner.html +1790 -0
- data/doc/TaskJuggler/ProjectRecord.html +80 -60
- data/doc/TaskJuggler/ProjectServer.html +312 -237
- data/doc/TaskJuggler/ProjectServerIface.html +101 -43
- data/doc/TaskJuggler/PropertyAttribute.html +32 -12
- data/doc/TaskJuggler/PropertyList.html +166 -145
- data/doc/TaskJuggler/PropertySet.html +254 -224
- data/doc/TaskJuggler/PropertyTreeNode.html +670 -536
- data/doc/TaskJuggler/Query.html +169 -148
- data/doc/TaskJuggler/RTFHandlers.html +622 -0
- data/doc/TaskJuggler/RTFNavigator.html +28 -8
- data/doc/TaskJuggler/RTFQuery.html +40 -20
- data/doc/TaskJuggler/RTFReport.html +62 -25
- data/doc/TaskJuggler/RTFReportLink.html +765 -0
- data/doc/TaskJuggler/RealFormat.html +26 -6
- data/doc/TaskJuggler/RealFormatAttribute.html +26 -6
- data/doc/TaskJuggler/ReferenceAttribute.html +59 -39
- data/doc/TaskJuggler/Report.html +402 -251
- data/doc/TaskJuggler/ReportBase.html +162 -137
- data/doc/TaskJuggler/ReportContext.html +112 -29
- data/doc/TaskJuggler/ReportServer.html +89 -64
- data/doc/TaskJuggler/ReportServerIface.html +75 -55
- data/doc/TaskJuggler/ReportServerRecord.html +54 -31
- data/doc/TaskJuggler/ReportServlet.html +980 -0
- data/doc/TaskJuggler/ReportTable.html +41 -21
- data/doc/TaskJuggler/ReportTableCell.html +214 -170
- data/doc/TaskJuggler/ReportTableColumn.html +30 -10
- data/doc/TaskJuggler/ReportTableLegend.html +36 -16
- data/doc/TaskJuggler/ReportTableLine.html +32 -12
- data/doc/TaskJuggler/Resource.html +99 -87
- data/doc/TaskJuggler/ResourceListAttribute.html +59 -39
- data/doc/TaskJuggler/ResourceListRE.html +47 -26
- data/doc/TaskJuggler/ResourceScenario.html +403 -437
- data/doc/TaskJuggler/RichText.html +26 -6
- data/doc/TaskJuggler/RichTextAttribute.html +50 -30
- data/doc/TaskJuggler/RichTextDocument.html +37 -17
- data/doc/TaskJuggler/RichTextElement.html +475 -413
- data/doc/TaskJuggler/RichTextException.html +22 -2
- data/doc/TaskJuggler/RichTextFunctionExample.html +28 -8
- data/doc/TaskJuggler/RichTextFunctionHandler.html +24 -4
- data/doc/TaskJuggler/RichTextImage.html +22 -2
- data/doc/TaskJuggler/RichTextIntermediate.html +38 -18
- data/doc/TaskJuggler/RichTextParser.html +56 -34
- data/doc/TaskJuggler/RichTextScanner.html +82 -61
- data/doc/TaskJuggler/RichTextSnip.html +34 -14
- data/doc/TaskJuggler/RichTextSyntaxRules.html +507 -353
- data/doc/TaskJuggler/Scenario.html +22 -2
- data/doc/TaskJuggler/ScenarioData.html +30 -46
- data/doc/TaskJuggler/ScenarioListAttribute.html +38 -18
- data/doc/TaskJuggler/Scoreboard.html +42 -22
- data/doc/TaskJuggler/SheetHandlerBase.html +40 -20
- data/doc/TaskJuggler/SheetReceiver.html +333 -295
- data/doc/TaskJuggler/SheetSender.html +253 -230
- data/doc/TaskJuggler/Shift.html +26 -6
- data/doc/TaskJuggler/ShiftAssignment.html +89 -73
- data/doc/TaskJuggler/ShiftAssignments.html +226 -234
- data/doc/TaskJuggler/ShiftAssignmentsAttribute.html +39 -54
- data/doc/TaskJuggler/ShiftScenario.html +28 -8
- data/doc/TaskJuggler/SortListAttribute.html +34 -14
- data/doc/TaskJuggler/SourceFileInfo.html +24 -4
- data/doc/TaskJuggler/StatusSheetReceiver.html +24 -3
- data/doc/TaskJuggler/StatusSheetReport.html +168 -153
- data/doc/TaskJuggler/StatusSheetSender.html +24 -3
- data/doc/TaskJuggler/StringAttribute.html +38 -18
- data/doc/TaskJuggler/SymbolAttribute.html +32 -12
- data/doc/TaskJuggler/SyntaxReference.html +40 -20
- data/doc/TaskJuggler/TOCEntry.html +26 -6
- data/doc/TaskJuggler/TSResourceRecord.html +22 -2
- data/doc/TaskJuggler/TSTaskRecord.html +22 -2
- data/doc/TaskJuggler/TableColumnDefinition.html +59 -22
- data/doc/TaskJuggler/TableOfContents.html +26 -6
- data/doc/TaskJuggler/TableReport.html +937 -904
- data/doc/TaskJuggler/Task.html +55 -36
- data/doc/TaskJuggler/TaskDependency.html +24 -4
- data/doc/TaskJuggler/TaskListAttribute.html +50 -30
- data/doc/TaskJuggler/TaskListRE.html +27 -7
- data/doc/TaskJuggler/TaskScenario.html +1273 -1153
- data/doc/TaskJuggler/TextFormatter.html +28 -8
- data/doc/TaskJuggler/TextParser.html +585 -338
- data/doc/TaskJuggler/TextParser/Pattern.html +54 -34
- data/doc/TaskJuggler/TextParser/Rule.html +95 -73
- data/doc/TaskJuggler/TextParser/StackElement.html +39 -17
- data/doc/TaskJuggler/TextParser/TextParserResultArray.html +24 -4
- data/doc/TaskJuggler/TextParser/TokenDoc.html +22 -2
- data/doc/TaskJuggler/TextReport.html +28 -8
- data/doc/TaskJuggler/TextScanner.html +400 -1404
- data/doc/TaskJuggler/TextScanner/BufferStreamHandle.html +28 -240
- data/doc/TaskJuggler/TextScanner/FileStreamHandle.html +37 -184
- data/doc/TaskJuggler/TextScanner/MacroStackEntry.html +682 -0
- data/doc/TaskJuggler/TextScanner/StreamHandle.html +342 -67
- data/doc/TaskJuggler/TimeSheet.html +48 -28
- data/doc/TaskJuggler/TimeSheetReceiver.html +24 -3
- data/doc/TaskJuggler/TimeSheetRecord.html +47 -27
- data/doc/TaskJuggler/TimeSheetReport.html +154 -133
- data/doc/TaskJuggler/TimeSheetSender.html +24 -3
- data/doc/TaskJuggler/TimeSheetSummary.html +137 -91
- data/doc/TaskJuggler/TimeSheets.html +26 -6
- data/doc/TaskJuggler/Tj3AppBase.html +85 -58
- data/doc/TaskJuggler/Tj3Client.html +292 -238
- data/doc/TaskJuggler/Tj3Daemon.html +159 -74
- data/doc/TaskJuggler/Tj3SheetAppBase.html +26 -6
- data/doc/TaskJuggler/Tj3SsReceiver.html +26 -6
- data/doc/TaskJuggler/Tj3SsSender.html +53 -26
- data/doc/TaskJuggler/Tj3TsReceiver.html +28 -7
- data/doc/TaskJuggler/Tj3TsSender.html +26 -6
- data/doc/TaskJuggler/Tj3TsSummary.html +26 -6
- data/doc/TaskJuggler/TjException.html +22 -2
- data/doc/TaskJuggler/TjTime.html +216 -160
- data/doc/TaskJuggler/TjpExample.html +34 -14
- data/doc/TaskJuggler/TjpExportRE.html +403 -407
- data/doc/TaskJuggler/TjpSyntaxRules.html +4805 -4408
- data/doc/TaskJuggler/URLParameter.html +649 -0
- data/doc/TaskJuggler/UserManual.html +42 -22
- data/doc/TaskJuggler/WebServer.html +702 -0
- data/doc/TaskJuggler/WorkingHours.html +38 -18
- data/doc/TaskJuggler/WorkingHoursAttribute.html +61 -41
- data/doc/TaskJuggler/XMLBlob.html +24 -4
- data/doc/TaskJuggler/XMLComment.html +24 -4
- data/doc/TaskJuggler/XMLDocument.html +30 -10
- data/doc/TaskJuggler/XMLElement.html +34 -14
- data/doc/TaskJuggler/XMLNamedText.html +22 -2
- data/doc/TaskJuggler/XMLText.html +24 -4
- data/doc/index.html +1841 -1666
- data/doc/lib/AccountScenario_rb.html +1 -1
- data/doc/lib/Account_rb.html +1 -1
- data/doc/lib/Allocation_rb.html +1 -1
- data/doc/lib/AppConfig_rb.html +2 -2
- data/doc/lib/AttributeBase_rb.html +1 -1
- data/doc/lib/AttributeDefinition_rb.html +1 -1
- data/doc/lib/Attributes_rb.html +2 -2
- data/doc/lib/BatchProcessor_rb.html +1 -1
- data/doc/lib/Booking_rb.html +1 -1
- data/doc/lib/ChargeSet_rb.html +1 -1
- data/doc/lib/Charge_rb.html +1 -1
- data/doc/lib/HTMLDocument_rb.html +1 -1
- data/doc/lib/Interval_rb.html +1 -1
- data/doc/lib/Journal_rb.html +2 -2
- data/doc/lib/KeywordArray_rb.html +1 -1
- data/doc/lib/KeywordDocumentation_rb.html +1 -1
- data/doc/lib/Limits_rb.html +2 -2
- data/doc/lib/LogFile_rb.html +2 -2
- data/doc/lib/Log_rb.html +1 -1
- data/doc/lib/LogicalExpression_rb.html +1 -1
- data/doc/lib/LogicalFunction_rb.html +2 -2
- data/doc/lib/LogicalOperation_rb.html +2 -2
- data/doc/lib/MacroParser_rb.html +1 -1
- data/doc/lib/MacroTable_rb.html +1 -1
- data/doc/lib/MessageHandler_rb.html +1 -1
- data/doc/lib/Message_rb.html +1 -1
- data/doc/lib/ProjectFileParser_rb.html +4 -8
- data/doc/lib/ProjectFileScanner_rb.html +67 -0
- data/doc/lib/Project_rb.html +2 -2
- data/doc/lib/PropertyList_rb.html +2 -2
- data/doc/lib/PropertySet_rb.html +2 -2
- data/doc/lib/PropertyTreeNode_rb.html +2 -2
- data/doc/lib/Query_rb.html +2 -2
- data/doc/lib/RTFHandlers_rb.html +73 -0
- data/doc/lib/RTFNavigator_rb.html +1 -1
- data/doc/lib/RTFQuery_rb.html +1 -1
- data/doc/lib/RTFReportLink_rb.html +71 -0
- data/doc/lib/RTFReport_rb.html +2 -2
- data/doc/lib/RealFormat_rb.html +1 -1
- data/doc/lib/ResourceScenario_rb.html +2 -2
- data/doc/lib/Resource_rb.html +2 -2
- data/doc/lib/RichTextDocument_rb.html +1 -1
- data/doc/lib/RichTextElement_rb.html +2 -2
- data/doc/lib/RichTextFunctionExample_rb.html +1 -1
- data/doc/lib/RichTextFunctionHandler_rb.html +1 -1
- data/doc/lib/RichTextParser_rb.html +2 -2
- data/doc/lib/RichTextScanner_rb.html +2 -2
- data/doc/lib/RichTextSnip_rb.html +1 -1
- data/doc/lib/RichTextSyntaxRules_rb.html +2 -2
- data/doc/lib/RichText_rb.html +1 -1
- data/doc/lib/RuntimeConfig_rb.html +1 -1
- data/doc/lib/ScenarioData_rb.html +2 -2
- data/doc/lib/Scenario_rb.html +1 -1
- data/doc/lib/Scoreboard_rb.html +1 -1
- data/doc/lib/SheetHandlerBase_rb.html +1 -1
- data/doc/lib/SheetReceiver_rb.html +2 -2
- data/doc/lib/SheetSender_rb.html +4 -2
- data/doc/lib/ShiftAssignments_rb.html +4 -2
- data/doc/lib/ShiftScenario_rb.html +1 -1
- data/doc/lib/Shift_rb.html +1 -1
- data/doc/lib/SourceFileInfo_rb.html +1 -1
- data/doc/lib/StatusSheetReceiver_rb.html +2 -2
- data/doc/lib/StatusSheetSender_rb.html +2 -2
- data/doc/lib/SyntaxReference_rb.html +1 -1
- data/doc/lib/TOCEntry_rb.html +1 -1
- data/doc/lib/TableColumnDefinition_rb.html +2 -2
- data/doc/lib/TableOfContents_rb.html +1 -1
- data/doc/lib/TaskDependency_rb.html +1 -1
- data/doc/lib/TaskJuggler_rb.html +2 -2
- data/doc/lib/TaskScenario_rb.html +2 -2
- data/doc/lib/Task_rb.html +2 -2
- data/doc/lib/TextFormatter_rb.html +1 -1
- data/doc/lib/TextParser/Pattern_rb.html +1 -1
- data/doc/lib/TextParser/Rule_rb.html +2 -2
- data/doc/lib/TextParser/StackElement_rb.html +2 -2
- data/doc/lib/TextParser/TokenDoc_rb.html +1 -1
- data/doc/lib/TextParser_rb.html +2 -2
- data/doc/lib/TextScanner_rb.html +6 -2
- data/doc/lib/TimeSheetReceiver_rb.html +2 -2
- data/doc/lib/TimeSheetSender_rb.html +2 -2
- data/doc/lib/TimeSheetSummary_rb.html +2 -2
- data/doc/lib/TimeSheets_rb.html +2 -2
- data/doc/lib/Tj3AppBase_rb.html +2 -2
- data/doc/lib/Tj3Config_rb.html +2 -2
- data/doc/lib/Tj3SheetAppBase_rb.html +2 -2
- data/doc/lib/TjException_rb.html +1 -1
- data/doc/lib/TjTime_rb.html +2 -2
- data/doc/lib/TjpExample_rb.html +1 -1
- data/doc/lib/TjpSyntaxRules_rb.html +2 -2
- data/doc/lib/URLParameter_rb.html +67 -0
- data/doc/lib/UTF8String_rb.html +1 -1
- data/doc/lib/UserManual_rb.html +1 -1
- data/doc/lib/WorkingHours_rb.html +1 -1
- data/doc/lib/XMLDocument_rb.html +2 -2
- data/doc/lib/XMLElement_rb.html +1 -1
- data/doc/lib/daemon/Daemon_rb.html +1 -1
- data/doc/lib/daemon/ProcessIntercom_rb.html +2 -2
- data/doc/lib/daemon/ProjectBroker_rb.html +4 -2
- data/doc/lib/daemon/ProjectServer_rb.html +2 -2
- data/doc/lib/daemon/ReportServer_rb.html +2 -2
- data/doc/lib/daemon/WebServer_rb.html +75 -0
- data/doc/lib/deep_copy_rb.html +2 -2
- data/doc/lib/reports/CSVFile_rb.html +2 -2
- data/doc/lib/reports/ColumnTable_rb.html +1 -1
- data/doc/lib/reports/GanttChart_rb.html +2 -2
- data/doc/lib/reports/GanttContainer_rb.html +1 -1
- data/doc/lib/reports/GanttHeaderScaleItem_rb.html +1 -1
- data/doc/lib/reports/GanttHeader_rb.html +1 -1
- data/doc/lib/reports/GanttLine_rb.html +1 -1
- data/doc/lib/reports/GanttLoadStack_rb.html +1 -1
- data/doc/lib/reports/GanttMilestone_rb.html +1 -1
- data/doc/lib/reports/GanttRouter_rb.html +1 -1
- data/doc/lib/reports/GanttTaskBar_rb.html +1 -1
- data/doc/lib/reports/HTMLGraphics_rb.html +1 -1
- data/doc/lib/reports/Navigator_rb.html +2 -2
- data/doc/lib/reports/NikuReport_rb.html +2 -2
- data/doc/lib/reports/ReportBase_rb.html +2 -2
- data/doc/lib/reports/ReportContext_rb.html +2 -2
- data/doc/lib/reports/ReportTableCell_rb.html +2 -2
- data/doc/lib/reports/ReportTableColumn_rb.html +1 -1
- data/doc/lib/reports/ReportTableLegend_rb.html +1 -1
- data/doc/lib/reports/ReportTableLine_rb.html +1 -1
- data/doc/lib/reports/ReportTable_rb.html +2 -2
- data/doc/lib/reports/Report_rb.html +2 -2
- data/doc/lib/reports/ResourceListRE_rb.html +2 -2
- data/doc/lib/reports/StatusSheetReport_rb.html +2 -2
- data/doc/lib/reports/TableReport_rb.html +2 -2
- data/doc/lib/reports/TaskListRE_rb.html +2 -2
- data/doc/lib/reports/TextReport_rb.html +1 -1
- data/doc/lib/reports/TimeSheetReport_rb.html +2 -2
- data/doc/lib/reports/TjpExportRE_rb.html +2 -2
- data/doc/lib/ruby-signal-bug_rb.html +1 -1
- data/doc/lib/taskjuggler3_rb.html +2 -2
- data/doc/lib/tj3client_rb.html +2 -2
- data/doc/lib/tj3d_rb.html +2 -2
- data/doc/lib/tj3man_rb.html +1 -1
- data/doc/lib/tj3ss_receiver_rb.html +1 -1
- data/doc/lib/tj3ss_sender_rb.html +2 -2
- data/doc/lib/tj3ts_receiver_rb.html +2 -2
- data/doc/lib/tj3ts_sender_rb.html +1 -1
- data/doc/lib/tj3ts_summary_rb.html +1 -1
- data/doc/rdoc.css +9 -4
- data/examples/tutorial.tjp +17 -15
- data/gem_spec.rb +3 -0
- data/lib/AppConfig.rb +3 -1
- data/lib/Attributes.rb +10 -8
- data/lib/Journal.rb +55 -20
- data/lib/Limits.rb +72 -46
- data/lib/LogFile.rb +3 -3
- data/lib/LogicalFunction.rb +19 -6
- data/lib/LogicalOperation.rb +5 -1
- data/lib/Project.rb +37 -9
- data/lib/ProjectFileParser.rb +25 -22
- data/lib/ProjectFileScanner.rb +365 -0
- data/lib/PropertyList.rb +2 -1
- data/lib/PropertySet.rb +14 -4
- data/lib/PropertyTreeNode.rb +42 -29
- data/lib/Query.rb +3 -1
- data/lib/RTFHandlers.rb +35 -0
- data/lib/RTFReport.rb +23 -6
- data/lib/RTFReportLink.rb +72 -0
- data/lib/Resource.rb +8 -16
- data/lib/ResourceScenario.rb +1 -22
- data/lib/RichTextElement.rb +42 -0
- data/lib/RichTextParser.rb +6 -4
- data/lib/RichTextScanner.rb +5 -5
- data/lib/RichTextSyntaxRules.rb +48 -10
- data/lib/ScenarioData.rb +5 -3
- data/lib/SheetReceiver.rb +24 -6
- data/lib/SheetSender.rb +17 -13
- data/lib/ShiftAssignments.rb +56 -52
- data/lib/StatusSheetReceiver.rb +1 -0
- data/lib/StatusSheetSender.rb +1 -0
- data/lib/TableColumnDefinition.rb +4 -2
- data/lib/Task.rb +8 -9
- data/lib/TaskJuggler.rb +21 -11
- data/lib/TaskScenario.rb +61 -26
- data/lib/TextParser.rb +268 -106
- data/lib/TextParser/Rule.rb +4 -2
- data/lib/TextParser/StackElement.rb +6 -4
- data/lib/TextScanner.rb +283 -700
- data/lib/TimeSheetReceiver.rb +1 -0
- data/lib/TimeSheetSender.rb +1 -0
- data/lib/TimeSheetSummary.rb +51 -26
- data/lib/TimeSheets.rb +1 -1
- data/lib/Tj3AppBase.rb +8 -1
- data/lib/Tj3Config.rb +1 -1
- data/lib/TjTime.rb +5 -0
- data/lib/TjpSyntaxRules.rb +360 -144
- data/lib/URLParameter.rb +30 -0
- data/lib/XMLDocument.rb +2 -2
- data/lib/daemon/ProcessIntercom.rb +50 -9
- data/lib/daemon/ProjectBroker.rb +63 -10
- data/lib/daemon/ProjectServer.rb +47 -16
- data/lib/daemon/ReportServer.rb +9 -4
- data/lib/daemon/WebServer.rb +204 -0
- data/lib/deep_copy.rb +4 -1
- data/lib/reports/CSVFile.rb +150 -66
- data/lib/reports/GanttChart.rb +2 -1
- data/lib/reports/Navigator.rb +18 -5
- data/lib/reports/NikuReport.rb +32 -2
- data/lib/reports/Report.rb +65 -37
- data/lib/reports/ReportBase.rb +14 -9
- data/lib/reports/ReportContext.rb +19 -4
- data/lib/reports/ReportTable.rb +2 -2
- data/lib/reports/ReportTableCell.rb +54 -30
- data/lib/reports/ResourceListRE.rb +4 -3
- data/lib/reports/StatusSheetReport.rb +8 -13
- data/lib/reports/TableReport.rb +47 -32
- data/lib/reports/TaskListRE.rb +3 -3
- data/lib/reports/TimeSheetReport.rb +14 -5
- data/lib/reports/TjpExportRE.rb +14 -19
- data/lib/taskjuggler3.rb +15 -0
- data/lib/tj3client.rb +9 -7
- data/lib/tj3d.rb +38 -10
- data/lib/tj3ss_sender.rb +7 -0
- data/lib/tj3ts_receiver.rb +1 -0
- data/manual/Day_To_Day_Juggling +1 -1
- data/manual/Rich_Text_Attributes +8 -0
- data/manual/TaskJuggler_2x_Migration +7 -0
- data/manual/The_TaskJuggler_Syntax +20 -6
- data/prj_cfg.rb +3 -2
- data/tasks/changelog.rake +36 -0
- data/tasks/csts.rake +2 -3
- data/tasks/gem.rake +10 -0
- data/tasks/missing.rake +0 -17
- data/test/TestSuite/ReportGenerator/Correct/Journal.html +63 -0
- data/test/TestSuite/ReportGenerator/Correct/Journal.tjp +14 -0
- data/test/TestSuite/{HTML-Reports/LogicalFunctions.tjp → ReportGenerator/Correct/LogicalFunctions1.tjp} +2 -2
- data/test/TestSuite/ReportGenerator/Correct/LogicalFunctions2.csv +3 -0
- data/test/TestSuite/ReportGenerator/Correct/LogicalFunctions2.tjp +19 -0
- data/test/TestSuite/ReportGenerator/Correct/css/tjmanual.css +66 -0
- data/test/TestSuite/ReportGenerator/Correct/css/tjreport.css +407 -0
- data/test/TestSuite/ReportGenerator/Correct/icons/details.png +0 -0
- data/test/TestSuite/ReportGenerator/Correct/icons/flag-green.png +0 -0
- data/test/TestSuite/ReportGenerator/Correct/icons/flag-red.png +0 -0
- data/test/TestSuite/ReportGenerator/Correct/icons/flag-yellow.png +0 -0
- data/test/TestSuite/ReportGenerator/Correct/icons/resource.png +0 -0
- data/test/TestSuite/ReportGenerator/Correct/icons/resourcegroup.png +0 -0
- data/test/TestSuite/ReportGenerator/Correct/icons/task.png +0 -0
- data/test/TestSuite/ReportGenerator/Correct/icons/taskgroup.png +0 -0
- data/test/TestSuite/ReportGenerator/Correct/icons/trend-down.png +0 -0
- data/test/TestSuite/ReportGenerator/Correct/icons/trend-flat.png +0 -0
- data/test/TestSuite/ReportGenerator/Correct/icons/trend-up.png +0 -0
- data/test/TestSuite/ReportGenerator/Correct/opennodes.csv +2 -0
- data/test/TestSuite/ReportGenerator/Correct/opennodes.tjp +26 -0
- data/test/TestSuite/ReportGenerator/Correct/refs/Journal-1.csv +6 -0
- data/test/TestSuite/ReportGenerator/Correct/refs/LogicalFunctions1-1.csv +7 -0
- data/test/TestSuite/ReportGenerator/Correct/refs/LogicalFunctions2-1.csv +2 -0
- data/test/TestSuite/ReportGenerator/Correct/refs/opennodes-1.csv +2 -0
- data/test/TestSuite/ReportGenerator/Correct/scripts/wz_tooltip.js +1301 -0
- data/test/TestSuite/ReportGenerator/Errors/rtp_report_recursion.tjp +20 -0
- data/test/TestSuite/Scheduler/Correct/Container.html +349 -0
- data/test/TestSuite/Scheduler/Correct/Limits.tjp +11 -4
- data/test/TestSuite/Scheduler/Correct/Shift2.html +464 -150
- data/test/TestSuite/Scheduler/Correct/TimeSheet2.html +108 -0
- data/test/TestSuite/Scheduler/Correct/TimeSheet2.tjp +7 -0
- data/test/TestSuite/Scheduler/Correct/css/tjmanual.css +14 -0
- data/test/TestSuite/Scheduler/Correct/css/tjreport.css +233 -21
- data/test/TestSuite/Scheduler/Correct/scripts/wz_tooltip.js +20 -20
- data/test/TestSuite/StatusSheetTemplates/project.tji +35 -0
- data/test/TestSuite/StatusSheetTemplates/project.tjp +56 -0
- data/test/TestSuite/StatusSheets/run +3 -2
- data/test/TestSuite/Syntax/Correct/Include.tjp +1 -1
- data/test/TestSuite/Syntax/Correct/Macro-1.tjp +1 -1
- data/test/TestSuite/Syntax/Correct/Macro-2.tjp +6 -0
- data/test/TestSuite/Syntax/Correct/Macro-3.tjp +14 -0
- data/test/TestSuite/Syntax/Correct/ResourcePrefix.html +32 -0
- data/test/TestSuite/Syntax/Correct/css/tjmanual.css +66 -0
- data/test/TestSuite/Syntax/Correct/css/tjreport.css +407 -0
- data/test/TestSuite/Syntax/Correct/icons/details.png +0 -0
- 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/icons/resource.png +0 -0
- data/test/TestSuite/Syntax/Correct/icons/resourcegroup.png +0 -0
- data/test/TestSuite/Syntax/Correct/icons/task.png +0 -0
- data/test/TestSuite/Syntax/Correct/icons/taskgroup.png +0 -0
- data/test/TestSuite/Syntax/Correct/icons/trend-down.png +0 -0
- data/test/TestSuite/Syntax/Correct/icons/trend-flat.png +0 -0
- data/test/TestSuite/Syntax/Correct/icons/trend-up.png +0 -0
- data/test/TestSuite/Syntax/Correct/include/dir1/file2.tji +3 -0
- data/test/TestSuite/Syntax/Correct/include/dir1/file5.tji +2 -0
- data/test/TestSuite/Syntax/Correct/include/dir3/all.tji +3 -0
- data/test/TestSuite/Syntax/Correct/include/dir3/file1.tji +2 -0
- data/test/TestSuite/Syntax/Correct/include/dir3/file2.tji +1 -0
- data/test/TestSuite/Syntax/Correct/scripts/wz_tooltip.js +1301 -0
- data/test/TestSuite/Syntax/Correct/tutorial.tjp +13 -13
- data/test/TestSuite/Syntax/Errors/empty.tjp +1 -1
- data/test/TestSuite/Syntax/Errors/include_recursion.tjp +1 -0
- data/test/TestSuite/Syntax/Errors/macro_stack_overflow.tjp +2 -1
- data/test/TestSuite/Syntax/Errors/{eof_in_istring1.tjp → no_token_match1.tjp} +2 -2
- data/test/TestSuite/Syntax/Errors/{eof_in_istring2.tjp → no_token_match2.tjp} +2 -2
- data/test/TestSuite/Syntax/Errors/{eof_in_istring3.tjp → no_token_match3.tjp} +1 -1
- data/test/TestSuite/Syntax/Errors/{eof_in_istring4.tjp → no_token_match4.tjp} +1 -1
- data/test/TestSuite/Syntax/Errors/{eof_in_istring5.tjp → no_token_match5.tjp} +1 -1
- data/test/TestSuite/Syntax/Errors/not_scheduled.tjp +13 -0
- data/test/TestSuite/Syntax/Errors/unsupported_token.tjp +1 -1
- data/test/TestSuite/TimeSheets/run +5 -5
- data/test/test_CSVFile.rb +75 -0
- data/test/test_Limits.rb +63 -5
- data/test/test_ProjectFileScanner.rb +163 -0
- data/test/test_ReportGenerator.rb +81 -0
- data/test/test_RichText.rb +21 -3
- data/test/test_Scheduler.rb +1 -1
- data/test/test_ShiftAssignments.rb +4 -4
- data/test/test_Syntax.rb +1 -1
- data/test/test_URLParameter.rb +30 -0
- metadata +126 -32
- data/test/TestSuite/Scheduler/Errors/not_scheduled.tjp +0 -8
- data/test/TestSuite/Syntax/Errors/bad_comment.tjp +0 -7
- data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/boss_2002-03-01.tji +0 -36
- data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/dev1_2002-03-01.tji +0 -48
- data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/dev2_2002-03-01.tji +0 -67
- data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/dev3_2002-03-01.tji +0 -67
- data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/doc_2002-03-01.tji +0 -48
- data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/resources.yml +0 -31
- data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/test_2002-03-01.tji +0 -36
- data/test/TestSuite/TimeSheets/TimeSheetTemplates/acceptable_intervals +0 -1
- data/test/TestSuite/TimeSheets/TimeSheets/2002-03-01/all.tji +0 -1
- data/test/TestSuite/TimeSheets/TimeSheets/2002-03-01/dev2_2002-03-01.tji +0 -54
- data/test/TestSuite/TimeSheets/TimeSheets/all.tji +0 -2
- data/test/TestSuite/TimeSheets/receiver.log +0 -102
- data/test/TestSuite/TimeSheets/sender.log +0 -794
- data/test/TestSuite/TimeSheets/summary.log +0 -884
- data/test/TestSuite/TimeSheets/timesheets.log +0 -45
- data/test/TestSuite/TimeSheets/tj3d.log +0 -292
- data/test/test_TextScanner.rb +0 -95
|
@@ -69,23 +69,23 @@
|
|
|
69
69
|
<h3 class="section-header">Methods</h3>
|
|
70
70
|
<ul class="link-list">
|
|
71
71
|
|
|
72
|
-
<li><a href="#
|
|
72
|
+
<li><a href="#method-c-new">::new</a></li>
|
|
73
73
|
|
|
74
|
-
<li><a href="#
|
|
74
|
+
<li><a href="#method-i-addColumn">#addColumn</a></li>
|
|
75
75
|
|
|
76
|
-
<li><a href="#
|
|
76
|
+
<li><a href="#method-i-addLine">#addLine</a></li>
|
|
77
77
|
|
|
78
|
-
<li><a href="#
|
|
78
|
+
<li><a href="#method-i-determineMaxIndents">#determineMaxIndents</a></li>
|
|
79
79
|
|
|
80
|
-
<li><a href="#
|
|
80
|
+
<li><a href="#method-i-hasScrollbar%3F">#hasScrollbar?</a></li>
|
|
81
81
|
|
|
82
|
-
<li><a href="#
|
|
82
|
+
<li><a href="#method-i-lines">#lines</a></li>
|
|
83
83
|
|
|
84
|
-
<li><a href="#
|
|
84
|
+
<li><a href="#method-i-minWidth">#minWidth</a></li>
|
|
85
85
|
|
|
86
|
-
<li><a href="#
|
|
86
|
+
<li><a href="#method-i-to_csv">#to_csv</a></li>
|
|
87
87
|
|
|
88
|
-
<li><a href="#
|
|
88
|
+
<li><a href="#method-i-to_html">#to_html</a></li>
|
|
89
89
|
|
|
90
90
|
</ul>
|
|
91
91
|
</div>
|
|
@@ -102,6 +102,8 @@
|
|
|
102
102
|
<h3 class="section-header">Files</h3>
|
|
103
103
|
<ul>
|
|
104
104
|
|
|
105
|
+
<li class="file"><a href="../CHANGELOG.html">CHANGELOG</a></li>
|
|
106
|
+
|
|
105
107
|
<li class="file"><a href="../COPYING.html">COPYING</a></li>
|
|
106
108
|
|
|
107
109
|
<li class="file"><a href="../README.html">README</a></li>
|
|
@@ -271,6 +273,8 @@
|
|
|
271
273
|
|
|
272
274
|
<li><a href="../TaskJuggler/NikuResource.html">TaskJuggler::NikuResource</a></li>
|
|
273
275
|
|
|
276
|
+
<li><a href="../TaskJuggler/NodeListAttribute.html">TaskJuggler::NodeListAttribute</a></li>
|
|
277
|
+
|
|
274
278
|
<li><a href="../TaskJuggler/OnShiftCache.html">TaskJuggler::OnShiftCache</a></li>
|
|
275
279
|
|
|
276
280
|
<li><a href="../TaskJuggler/ProcessIntercom.html">TaskJuggler::ProcessIntercom</a></li>
|
|
@@ -285,6 +289,8 @@
|
|
|
285
289
|
|
|
286
290
|
<li><a href="../TaskJuggler/ProjectFileParser.html">TaskJuggler::ProjectFileParser</a></li>
|
|
287
291
|
|
|
292
|
+
<li><a href="../TaskJuggler/ProjectFileScanner.html">TaskJuggler::ProjectFileScanner</a></li>
|
|
293
|
+
|
|
288
294
|
<li><a href="../TaskJuggler/ProjectRecord.html">TaskJuggler::ProjectRecord</a></li>
|
|
289
295
|
|
|
290
296
|
<li><a href="../TaskJuggler/ProjectServer.html">TaskJuggler::ProjectServer</a></li>
|
|
@@ -301,12 +307,16 @@
|
|
|
301
307
|
|
|
302
308
|
<li><a href="../TaskJuggler/Query.html">TaskJuggler::Query</a></li>
|
|
303
309
|
|
|
310
|
+
<li><a href="../TaskJuggler/RTFHandlers.html">TaskJuggler::RTFHandlers</a></li>
|
|
311
|
+
|
|
304
312
|
<li><a href="../TaskJuggler/RTFNavigator.html">TaskJuggler::RTFNavigator</a></li>
|
|
305
313
|
|
|
306
314
|
<li><a href="../TaskJuggler/RTFQuery.html">TaskJuggler::RTFQuery</a></li>
|
|
307
315
|
|
|
308
316
|
<li><a href="../TaskJuggler/RTFReport.html">TaskJuggler::RTFReport</a></li>
|
|
309
317
|
|
|
318
|
+
<li><a href="../TaskJuggler/RTFReportLink.html">TaskJuggler::RTFReportLink</a></li>
|
|
319
|
+
|
|
310
320
|
<li><a href="../TaskJuggler/RealFormat.html">TaskJuggler::RealFormat</a></li>
|
|
311
321
|
|
|
312
322
|
<li><a href="../TaskJuggler/RealFormatAttribute.html">TaskJuggler::RealFormatAttribute</a></li>
|
|
@@ -325,6 +335,8 @@
|
|
|
325
335
|
|
|
326
336
|
<li><a href="../TaskJuggler/ReportServerRecord.html">TaskJuggler::ReportServerRecord</a></li>
|
|
327
337
|
|
|
338
|
+
<li><a href="../TaskJuggler/ReportServlet.html">TaskJuggler::ReportServlet</a></li>
|
|
339
|
+
|
|
328
340
|
<li><a href="../TaskJuggler/ReportTable.html">TaskJuggler::ReportTable</a></li>
|
|
329
341
|
|
|
330
342
|
<li><a href="../TaskJuggler/ReportTableCell.html">TaskJuggler::ReportTableCell</a></li>
|
|
@@ -453,6 +465,8 @@
|
|
|
453
465
|
|
|
454
466
|
<li><a href="../TaskJuggler/TextScanner/FileStreamHandle.html">TaskJuggler::TextScanner::FileStreamHandle</a></li>
|
|
455
467
|
|
|
468
|
+
<li><a href="../TaskJuggler/TextScanner/MacroStackEntry.html">TaskJuggler::TextScanner::MacroStackEntry</a></li>
|
|
469
|
+
|
|
456
470
|
<li><a href="../TaskJuggler/TextScanner/StreamHandle.html">TaskJuggler::TextScanner::StreamHandle</a></li>
|
|
457
471
|
|
|
458
472
|
<li><a href="../TaskJuggler/TimeSheet.html">TaskJuggler::TimeSheet</a></li>
|
|
@@ -497,8 +511,12 @@
|
|
|
497
511
|
|
|
498
512
|
<li><a href="../TaskJuggler/TjpSyntaxRules.html">TaskJuggler::TjpSyntaxRules</a></li>
|
|
499
513
|
|
|
514
|
+
<li><a href="../TaskJuggler/URLParameter.html">TaskJuggler::URLParameter</a></li>
|
|
515
|
+
|
|
500
516
|
<li><a href="../TaskJuggler/UserManual.html">TaskJuggler::UserManual</a></li>
|
|
501
517
|
|
|
518
|
+
<li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
|
|
519
|
+
|
|
502
520
|
<li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
|
|
503
521
|
|
|
504
522
|
<li><a href="../TaskJuggler/WorkingHoursAttribute.html">TaskJuggler::WorkingHoursAttribute</a></li>
|
|
@@ -525,6 +543,8 @@
|
|
|
525
543
|
|
|
526
544
|
<li><a href="../String.html">String</a></li>
|
|
527
545
|
|
|
546
|
+
<li><a href="../StringIO.html">StringIO</a></li>
|
|
547
|
+
|
|
528
548
|
</ul>
|
|
529
549
|
<div id="no-class-search-results" style="display: none;">No matching classes.</div>
|
|
530
550
|
</div>
|
|
@@ -659,7 +679,7 @@ should be large enough to work for all browsers.
|
|
|
659
679
|
|
|
660
680
|
|
|
661
681
|
<div id="new-method" class="method-detail ">
|
|
662
|
-
<a name="
|
|
682
|
+
<a name="method-c-new"></a>
|
|
663
683
|
|
|
664
684
|
<div class="method-heading">
|
|
665
685
|
|
|
@@ -713,7 +733,7 @@ Create a new <a href="ReportTable.html">ReportTable</a> object.
|
|
|
713
733
|
|
|
714
734
|
|
|
715
735
|
<div id="add-olumn-method" class="method-detail ">
|
|
716
|
-
<a name="
|
|
736
|
+
<a name="method-i-addColumn"></a>
|
|
717
737
|
|
|
718
738
|
<div class="method-heading">
|
|
719
739
|
|
|
@@ -750,7 +770,7 @@ href="ReportTableColumn.html">ReportTableColumn</a> constructor.
|
|
|
750
770
|
|
|
751
771
|
|
|
752
772
|
<div id="add-ine-method" class="method-detail ">
|
|
753
|
-
<a name="
|
|
773
|
+
<a name="method-i-addLine"></a>
|
|
754
774
|
|
|
755
775
|
<div class="method-heading">
|
|
756
776
|
|
|
@@ -787,7 +807,7 @@ href="ReportTableLine.html">ReportTableLine</a> constructor.
|
|
|
787
807
|
|
|
788
808
|
|
|
789
809
|
<div id="lines-method" class="method-detail ">
|
|
790
|
-
<a name="
|
|
810
|
+
<a name="method-i-lines"></a>
|
|
791
811
|
|
|
792
812
|
<div class="method-heading">
|
|
793
813
|
|
|
@@ -823,7 +843,7 @@ Return the number of registered lines for this table.
|
|
|
823
843
|
|
|
824
844
|
|
|
825
845
|
<div id="min-idth-method" class="method-detail ">
|
|
826
|
-
<a name="
|
|
846
|
+
<a name="method-i-minWidth"></a>
|
|
827
847
|
|
|
828
848
|
<div class="method-heading">
|
|
829
849
|
|
|
@@ -865,12 +885,12 @@ mininum with, nil is returned.
|
|
|
865
885
|
|
|
866
886
|
|
|
867
887
|
<div id="to-csv-method" class="method-detail ">
|
|
868
|
-
<a name="
|
|
888
|
+
<a name="method-i-to_csv"></a>
|
|
869
889
|
|
|
870
890
|
<div class="method-heading">
|
|
871
891
|
|
|
872
892
|
<span class="method-name">to_csv</span><span
|
|
873
|
-
class="method-args">()</span>
|
|
893
|
+
class="method-args">(csv = nil)</span>
|
|
874
894
|
<span class="method-click-advice">click to toggle source</span>
|
|
875
895
|
|
|
876
896
|
</div>
|
|
@@ -889,8 +909,8 @@ already.
|
|
|
889
909
|
id="to-csv-source">
|
|
890
910
|
<pre>
|
|
891
911
|
<span class="ruby-comment cmt"># File lib/reports/ReportTable.rb, line 134</span>
|
|
892
|
-
134: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_csv</span>()
|
|
893
|
-
135: <span class="ruby-identifier">csv</span> = [ [ ] ]
|
|
912
|
+
134: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_csv</span>(<span class="ruby-identifier">csv</span> = <span class="ruby-keyword kw">nil</span>)
|
|
913
|
+
135: <span class="ruby-identifier">csv</span> = [ [ ] ] <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">csv</span>
|
|
894
914
|
136: <span class="ruby-ivar">@columns</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">col</span><span class="ruby-operator">|</span> <span class="ruby-identifier">col</span>.<span class="ruby-identifier">to_csv</span>(<span class="ruby-identifier">csv</span>) }
|
|
895
915
|
137:
|
|
896
916
|
138: <span class="ruby-ivar">@lines</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">line</span><span class="ruby-operator">|</span>
|
|
@@ -911,7 +931,7 @@ already.
|
|
|
911
931
|
|
|
912
932
|
|
|
913
933
|
<div id="to-html-method" class="method-detail ">
|
|
914
|
-
<a name="
|
|
934
|
+
<a name="method-i-to_html"></a>
|
|
915
935
|
|
|
916
936
|
<div class="method-heading">
|
|
917
937
|
|
|
@@ -1006,7 +1026,7 @@ Output the table as HTML.
|
|
|
1006
1026
|
|
|
1007
1027
|
|
|
1008
1028
|
<div id="determine-ax-ndents-method" class="method-detail ">
|
|
1009
|
-
<a name="
|
|
1029
|
+
<a name="method-i-determineMaxIndents"></a>
|
|
1010
1030
|
|
|
1011
1031
|
<div class="method-heading">
|
|
1012
1032
|
|
|
@@ -1047,7 +1067,7 @@ is stored in the _@maxIndent_ variable.
|
|
|
1047
1067
|
|
|
1048
1068
|
|
|
1049
1069
|
<div id="has-crollbar--method" class="method-detail ">
|
|
1050
|
-
<a name="
|
|
1070
|
+
<a name="method-i-hasScrollbar%3F"></a>
|
|
1051
1071
|
|
|
1052
1072
|
<div class="method-heading">
|
|
1053
1073
|
|
|
@@ -69,25 +69,25 @@
|
|
|
69
69
|
<h3 class="section-header">Methods</h3>
|
|
70
70
|
<ul class="link-list">
|
|
71
71
|
|
|
72
|
-
<li><a href="#
|
|
72
|
+
<li><a href="#method-c-new">::new</a></li>
|
|
73
73
|
|
|
74
|
-
<li><a href="#
|
|
74
|
+
<li><a href="#method-i-%3D%3D">#==</a></li>
|
|
75
75
|
|
|
76
|
-
<li><a href="#
|
|
76
|
+
<li><a href="#method-i-addHtmlTooltip">#addHtmlTooltip</a></li>
|
|
77
77
|
|
|
78
|
-
<li><a href="#
|
|
78
|
+
<li><a href="#method-i-calculateIndentation">#calculateIndentation</a></li>
|
|
79
79
|
|
|
80
|
-
<li><a href="#
|
|
80
|
+
<li><a href="#method-i-cellIcon">#cellIcon</a></li>
|
|
81
81
|
|
|
82
|
-
<li><a href="#
|
|
82
|
+
<li><a href="#method-i-cellLabel">#cellLabel</a></li>
|
|
83
83
|
|
|
84
|
-
<li><a href="#
|
|
84
|
+
<li><a href="#method-i-cellStyle">#cellStyle</a></li>
|
|
85
85
|
|
|
86
|
-
<li><a href="#
|
|
86
|
+
<li><a href="#method-i-shortVersion">#shortVersion</a></li>
|
|
87
87
|
|
|
88
|
-
<li><a href="#
|
|
88
|
+
<li><a href="#method-i-to_csv">#to_csv</a></li>
|
|
89
89
|
|
|
90
|
-
<li><a href="#
|
|
90
|
+
<li><a href="#method-i-to_html">#to_html</a></li>
|
|
91
91
|
|
|
92
92
|
</ul>
|
|
93
93
|
</div>
|
|
@@ -104,6 +104,8 @@
|
|
|
104
104
|
<h3 class="section-header">Files</h3>
|
|
105
105
|
<ul>
|
|
106
106
|
|
|
107
|
+
<li class="file"><a href="../CHANGELOG.html">CHANGELOG</a></li>
|
|
108
|
+
|
|
107
109
|
<li class="file"><a href="../COPYING.html">COPYING</a></li>
|
|
108
110
|
|
|
109
111
|
<li class="file"><a href="../README.html">README</a></li>
|
|
@@ -273,6 +275,8 @@
|
|
|
273
275
|
|
|
274
276
|
<li><a href="../TaskJuggler/NikuResource.html">TaskJuggler::NikuResource</a></li>
|
|
275
277
|
|
|
278
|
+
<li><a href="../TaskJuggler/NodeListAttribute.html">TaskJuggler::NodeListAttribute</a></li>
|
|
279
|
+
|
|
276
280
|
<li><a href="../TaskJuggler/OnShiftCache.html">TaskJuggler::OnShiftCache</a></li>
|
|
277
281
|
|
|
278
282
|
<li><a href="../TaskJuggler/ProcessIntercom.html">TaskJuggler::ProcessIntercom</a></li>
|
|
@@ -287,6 +291,8 @@
|
|
|
287
291
|
|
|
288
292
|
<li><a href="../TaskJuggler/ProjectFileParser.html">TaskJuggler::ProjectFileParser</a></li>
|
|
289
293
|
|
|
294
|
+
<li><a href="../TaskJuggler/ProjectFileScanner.html">TaskJuggler::ProjectFileScanner</a></li>
|
|
295
|
+
|
|
290
296
|
<li><a href="../TaskJuggler/ProjectRecord.html">TaskJuggler::ProjectRecord</a></li>
|
|
291
297
|
|
|
292
298
|
<li><a href="../TaskJuggler/ProjectServer.html">TaskJuggler::ProjectServer</a></li>
|
|
@@ -303,12 +309,16 @@
|
|
|
303
309
|
|
|
304
310
|
<li><a href="../TaskJuggler/Query.html">TaskJuggler::Query</a></li>
|
|
305
311
|
|
|
312
|
+
<li><a href="../TaskJuggler/RTFHandlers.html">TaskJuggler::RTFHandlers</a></li>
|
|
313
|
+
|
|
306
314
|
<li><a href="../TaskJuggler/RTFNavigator.html">TaskJuggler::RTFNavigator</a></li>
|
|
307
315
|
|
|
308
316
|
<li><a href="../TaskJuggler/RTFQuery.html">TaskJuggler::RTFQuery</a></li>
|
|
309
317
|
|
|
310
318
|
<li><a href="../TaskJuggler/RTFReport.html">TaskJuggler::RTFReport</a></li>
|
|
311
319
|
|
|
320
|
+
<li><a href="../TaskJuggler/RTFReportLink.html">TaskJuggler::RTFReportLink</a></li>
|
|
321
|
+
|
|
312
322
|
<li><a href="../TaskJuggler/RealFormat.html">TaskJuggler::RealFormat</a></li>
|
|
313
323
|
|
|
314
324
|
<li><a href="../TaskJuggler/RealFormatAttribute.html">TaskJuggler::RealFormatAttribute</a></li>
|
|
@@ -327,6 +337,8 @@
|
|
|
327
337
|
|
|
328
338
|
<li><a href="../TaskJuggler/ReportServerRecord.html">TaskJuggler::ReportServerRecord</a></li>
|
|
329
339
|
|
|
340
|
+
<li><a href="../TaskJuggler/ReportServlet.html">TaskJuggler::ReportServlet</a></li>
|
|
341
|
+
|
|
330
342
|
<li><a href="../TaskJuggler/ReportTable.html">TaskJuggler::ReportTable</a></li>
|
|
331
343
|
|
|
332
344
|
<li><a href="../TaskJuggler/ReportTableCell.html">TaskJuggler::ReportTableCell</a></li>
|
|
@@ -455,6 +467,8 @@
|
|
|
455
467
|
|
|
456
468
|
<li><a href="../TaskJuggler/TextScanner/FileStreamHandle.html">TaskJuggler::TextScanner::FileStreamHandle</a></li>
|
|
457
469
|
|
|
470
|
+
<li><a href="../TaskJuggler/TextScanner/MacroStackEntry.html">TaskJuggler::TextScanner::MacroStackEntry</a></li>
|
|
471
|
+
|
|
458
472
|
<li><a href="../TaskJuggler/TextScanner/StreamHandle.html">TaskJuggler::TextScanner::StreamHandle</a></li>
|
|
459
473
|
|
|
460
474
|
<li><a href="../TaskJuggler/TimeSheet.html">TaskJuggler::TimeSheet</a></li>
|
|
@@ -499,8 +513,12 @@
|
|
|
499
513
|
|
|
500
514
|
<li><a href="../TaskJuggler/TjpSyntaxRules.html">TaskJuggler::TjpSyntaxRules</a></li>
|
|
501
515
|
|
|
516
|
+
<li><a href="../TaskJuggler/URLParameter.html">TaskJuggler::URLParameter</a></li>
|
|
517
|
+
|
|
502
518
|
<li><a href="../TaskJuggler/UserManual.html">TaskJuggler::UserManual</a></li>
|
|
503
519
|
|
|
520
|
+
<li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
|
|
521
|
+
|
|
504
522
|
<li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
|
|
505
523
|
|
|
506
524
|
<li><a href="../TaskJuggler/WorkingHoursAttribute.html">TaskJuggler::WorkingHoursAttribute</a></li>
|
|
@@ -527,6 +545,8 @@
|
|
|
527
545
|
|
|
528
546
|
<li><a href="../String.html">String</a></li>
|
|
529
547
|
|
|
548
|
+
<li><a href="../StringIO.html">StringIO</a></li>
|
|
549
|
+
|
|
530
550
|
</ul>
|
|
531
551
|
<div id="no-class-search-results" style="display: none;">No matching classes.</div>
|
|
532
552
|
</div>
|
|
@@ -925,7 +945,7 @@ methods such as to_html.
|
|
|
925
945
|
|
|
926
946
|
|
|
927
947
|
<div id="new-method" class="method-detail ">
|
|
928
|
-
<a name="
|
|
948
|
+
<a name="method-c-new"></a>
|
|
929
949
|
|
|
930
950
|
<div class="method-heading">
|
|
931
951
|
|
|
@@ -1011,7 +1031,7 @@ cells.
|
|
|
1011
1031
|
|
|
1012
1032
|
|
|
1013
1033
|
<div id="--method" class="method-detail ">
|
|
1014
|
-
<a name="
|
|
1034
|
+
<a name="method-i-%3D%3D"></a>
|
|
1015
1035
|
|
|
1016
1036
|
<div class="method-heading">
|
|
1017
1037
|
|
|
@@ -1054,7 +1074,7 @@ cell with.
|
|
|
1054
1074
|
|
|
1055
1075
|
|
|
1056
1076
|
<div id="to-csv-method" class="method-detail ">
|
|
1057
|
-
<a name="
|
|
1077
|
+
<a name="method-i-to_csv"></a>
|
|
1058
1078
|
|
|
1059
1079
|
<div class="method-heading">
|
|
1060
1080
|
|
|
@@ -1080,17 +1100,33 @@ Add the text content of the cell to an Array of Arrays form of the table.
|
|
|
1080
1100
|
141: <span class="ruby-comment cmt"># We only support left indentation in CSV files as the spaces for right</span>
|
|
1081
1101
|
142: <span class="ruby-comment cmt"># indentation will be disregarded by most applications.</span>
|
|
1082
1102
|
143: <span class="ruby-identifier">indent</span> = <span class="ruby-ivar">@indent</span> <span class="ruby-operator">&&</span> <span class="ruby-ivar">@alignment</span> <span class="ruby-operator">==</span> <span class="ruby-value">:left</span> <span class="ruby-operator">?</span> <span class="ruby-value str">' '</span> * <span class="ruby-ivar">@indent</span> <span class="ruby-operator">:</span> <span class="ruby-value str">''</span>
|
|
1083
|
-
144: <span class="ruby-
|
|
1084
|
-
145: <span class="ruby-
|
|
1085
|
-
146:
|
|
1086
|
-
147:
|
|
1087
|
-
148:
|
|
1088
|
-
149:
|
|
1089
|
-
150:
|
|
1090
|
-
151:
|
|
1091
|
-
152:
|
|
1092
|
-
153:
|
|
1093
|
-
154:
|
|
1103
|
+
144: <span class="ruby-identifier">cell</span> =
|
|
1104
|
+
145: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@special</span>
|
|
1105
|
+
146: <span class="ruby-ivar">@special</span>.<span class="ruby-identifier">to_csv</span>
|
|
1106
|
+
147: <span class="ruby-identifier">indent</span> = <span class="ruby-keyword kw">nil</span>
|
|
1107
|
+
148: <span class="ruby-keyword kw">elsif</span> <span class="ruby-ivar">@data</span> <span class="ruby-operator">&&</span> <span class="ruby-ivar">@data</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">String</span>)
|
|
1108
|
+
149: <span class="ruby-ivar">@data</span>
|
|
1109
|
+
150: <span class="ruby-keyword kw">elsif</span> <span class="ruby-ivar">@text</span>
|
|
1110
|
+
151: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@text</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-value str">'functionHandler'</span>) <span class="ruby-operator">&&</span>
|
|
1111
|
+
152: <span class="ruby-ivar">@text</span>.<span class="ruby-identifier">functionHandler</span>(<span class="ruby-value str">'query'</span>)
|
|
1112
|
+
153: <span class="ruby-ivar">@text</span>.<span class="ruby-identifier">functionHandler</span>(<span class="ruby-value str">'query'</span>).<span class="ruby-identifier">setQuery</span>(<span class="ruby-ivar">@query</span>)
|
|
1113
|
+
154: <span class="ruby-keyword kw">end</span>
|
|
1114
|
+
155: <span class="ruby-identifier">str</span> = <span class="ruby-ivar">@text</span>.<span class="ruby-identifier">to_s</span>
|
|
1115
|
+
156: <span class="ruby-comment cmt"># Remove any trailing line breaks. These don't really make much</span>
|
|
1116
|
+
157: <span class="ruby-comment cmt"># sense in CSV files.</span>
|
|
1117
|
+
158: <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">str</span>[<span class="ruby-value">1</span>] <span class="ruby-operator">==</span> <span class="ruby-value">\n\</span>
|
|
1118
|
+
159: <span class="ruby-identifier">str</span>.<span class="ruby-identifier">chomp!</span>
|
|
1119
|
+
160: <span class="ruby-keyword kw">end</span>
|
|
1120
|
+
161: <span class="ruby-identifier">str</span>
|
|
1121
|
+
162: <span class="ruby-keyword kw">end</span>
|
|
1122
|
+
163:
|
|
1123
|
+
164: <span class="ruby-comment cmt"># Try to convert numbers and other types to their native Ruby type if</span>
|
|
1124
|
+
165: <span class="ruby-comment cmt"># they are supported by CSVFile.</span>
|
|
1125
|
+
166: <span class="ruby-identifier">native</span> = <span class="ruby-constant">CSVFile</span>.<span class="ruby-identifier">strToNative</span>(<span class="ruby-identifier">cell</span>)
|
|
1126
|
+
167:
|
|
1127
|
+
168: <span class="ruby-comment cmt"># Only for String objects, we add the indentation.</span>
|
|
1128
|
+
169: <span class="ruby-identifier">csv</span>[<span class="ruby-value">1</span>] <span class="ruby-operator"><<</span> (<span class="ruby-identifier">native</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">String</span>) <span class="ruby-operator">?</span> <span class="ruby-identifier">indent</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">native</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">native</span>)
|
|
1129
|
+
170: <span class="ruby-keyword kw">end</span></pre>
|
|
1094
1130
|
</div>
|
|
1095
1131
|
|
|
1096
1132
|
</div>
|
|
@@ -1102,7 +1138,7 @@ Add the text content of the cell to an Array of Arrays form of the table.
|
|
|
1102
1138
|
|
|
1103
1139
|
|
|
1104
1140
|
<div id="to-html-method" class="method-detail ">
|
|
1105
|
-
<a name="
|
|
1141
|
+
<a name="method-i-to_html"></a>
|
|
1106
1142
|
|
|
1107
1143
|
<div class="method-heading">
|
|
1108
1144
|
|
|
@@ -1189,7 +1225,7 @@ Turn the abstract cell representation into an HTML element tree.
|
|
|
1189
1225
|
|
|
1190
1226
|
|
|
1191
1227
|
<div id="add-tml-ooltip-method" class="method-detail ">
|
|
1192
|
-
<a name="
|
|
1228
|
+
<a name="method-i-addHtmlTooltip"></a>
|
|
1193
1229
|
|
|
1194
1230
|
<div class="method-heading">
|
|
1195
1231
|
|
|
@@ -1208,32 +1244,32 @@ Turn the abstract cell representation into an HTML element tree.
|
|
|
1208
1244
|
<div class="method-source-code"
|
|
1209
1245
|
id="add-tml-ooltip-source">
|
|
1210
1246
|
<pre>
|
|
1211
|
-
<span class="ruby-comment cmt"># File lib/reports/ReportTableCell.rb, line
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
|
|
1215
|
-
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
|
|
1227
|
-
|
|
1228
|
-
|
|
1229
|
-
|
|
1230
|
-
|
|
1231
|
-
|
|
1232
|
-
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1236
|
-
|
|
1247
|
+
<span class="ruby-comment cmt"># File lib/reports/ReportTableCell.rb, line 298</span>
|
|
1248
|
+
298: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">addHtmlTooltip</span>(<span class="ruby-identifier">tooltip</span>, <span class="ruby-identifier">trigger</span>, <span class="ruby-identifier">hook</span> = <span class="ruby-keyword kw">nil</span>)
|
|
1249
|
+
299: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">tooltip</span> <span class="ruby-operator">&&</span> <span class="ruby-operator">!</span><span class="ruby-identifier">tooltip</span>.<span class="ruby-identifier">empty?</span> <span class="ruby-operator">&&</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@selfcontained</span>
|
|
1250
|
+
300:
|
|
1251
|
+
301: <span class="ruby-identifier">hook</span> = <span class="ruby-identifier">trigger</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">hook</span>.<span class="ruby-identifier">nil?</span>
|
|
1252
|
+
302: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">tooltip</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-value str">'functionHandler'</span>) <span class="ruby-operator">&&</span>
|
|
1253
|
+
303: <span class="ruby-identifier">tooltip</span>.<span class="ruby-identifier">functionHandler</span>(<span class="ruby-value str">'query'</span>)
|
|
1254
|
+
304: <span class="ruby-identifier">tooltip</span>.<span class="ruby-identifier">functionHandler</span>(<span class="ruby-value str">'query'</span>).<span class="ruby-identifier">setQuery</span>(<span class="ruby-ivar">@query</span>)
|
|
1255
|
+
305: <span class="ruby-keyword kw">end</span>
|
|
1256
|
+
306: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@query</span>
|
|
1257
|
+
307: <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">attributeId</span> = <span class="ruby-value str">'name'</span>
|
|
1258
|
+
308: <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">process</span>
|
|
1259
|
+
309: <span class="ruby-identifier">title</span> = <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">to_s</span>
|
|
1260
|
+
310: <span class="ruby-keyword kw">else</span>
|
|
1261
|
+
311: <span class="ruby-identifier">title</span> = <span class="ruby-value str">''</span>
|
|
1262
|
+
312: <span class="ruby-keyword kw">end</span>
|
|
1263
|
+
313: <span class="ruby-identifier">trigger</span>[<span class="ruby-value str">'onclick'</span>] = <span class="ruby-node">"TagToTip('ID#{trigger.object_id}', "</span> <span class="ruby-operator">+</span>
|
|
1264
|
+
314: <span class="ruby-node">"TITLE, '#{title}')"</span>
|
|
1265
|
+
315: <span class="ruby-identifier">trigger</span>[<span class="ruby-value str">'style'</span>] = <span class="ruby-identifier">trigger</span>[<span class="ruby-value str">'style'</span>] <span class="ruby-operator">?</span> <span class="ruby-identifier">trigger</span>[<span class="ruby-value str">'style'</span>] <span class="ruby-operator">:</span> <span class="ruby-value str">'cursor:help; '</span>
|
|
1266
|
+
316: <span class="ruby-identifier">hook</span> <span class="ruby-operator"><<</span> (<span class="ruby-identifier">ltDiv</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'div'</span>,
|
|
1267
|
+
317: <span class="ruby-value str">'class'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'tj_tooltip_box'</span>,
|
|
1268
|
+
318: <span class="ruby-value str">'style'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'cursor:help'</span>,
|
|
1269
|
+
319: <span class="ruby-value str">'id'</span> =<span class="ruby-operator">></span> <span class="ruby-node">"ID#{trigger.object_id}"</span>))
|
|
1270
|
+
320: <span class="ruby-identifier">ltDiv</span> <span class="ruby-operator"><<</span> (<span class="ruby-identifier">tooltip</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-value str">'to_html'</span>) <span class="ruby-operator">?</span> <span class="ruby-identifier">tooltip</span>.<span class="ruby-identifier">to_html</span> <span class="ruby-operator">:</span>
|
|
1271
|
+
321: <span class="ruby-constant">XMLText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">tooltip</span>))
|
|
1272
|
+
322: <span class="ruby-keyword kw">end</span></pre>
|
|
1237
1273
|
</div>
|
|
1238
1274
|
|
|
1239
1275
|
</div>
|
|
@@ -1245,7 +1281,7 @@ Turn the abstract cell representation into an HTML element tree.
|
|
|
1245
1281
|
|
|
1246
1282
|
|
|
1247
1283
|
<div id="calculate-ndentation-method" class="method-detail ">
|
|
1248
|
-
<a name="
|
|
1284
|
+
<a name="method-i-calculateIndentation"></a>
|
|
1249
1285
|
|
|
1250
1286
|
<div class="method-heading">
|
|
1251
1287
|
|
|
@@ -1264,20 +1300,20 @@ Turn the abstract cell representation into an HTML element tree.
|
|
|
1264
1300
|
<div class="method-source-code"
|
|
1265
1301
|
id="calculate-ndentation-source">
|
|
1266
1302
|
<pre>
|
|
1267
|
-
<span class="ruby-comment cmt"># File lib/reports/ReportTableCell.rb, line
|
|
1268
|
-
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
|
-
|
|
1272
|
-
|
|
1273
|
-
|
|
1274
|
-
|
|
1275
|
-
|
|
1276
|
-
|
|
1277
|
-
|
|
1278
|
-
|
|
1279
|
-
|
|
1280
|
-
|
|
1303
|
+
<span class="ruby-comment cmt"># File lib/reports/ReportTableCell.rb, line 174</span>
|
|
1304
|
+
174: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">calculateIndentation</span>
|
|
1305
|
+
175: <span class="ruby-comment cmt"># In tree sorting mode, some cells have to be indented to reflect the</span>
|
|
1306
|
+
176: <span class="ruby-comment cmt"># tree nesting structure. The indentation is achieved with padding cells</span>
|
|
1307
|
+
177: <span class="ruby-comment cmt"># and needs to be applied to the proper side depending on the alignment.</span>
|
|
1308
|
+
178: <span class="ruby-ivar">@leftIndent</span> = <span class="ruby-ivar">@rightIndent</span> = <span class="ruby-value">0</span>
|
|
1309
|
+
179: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@indent</span> <span class="ruby-operator">&&</span> <span class="ruby-ivar">@alignment</span> <span class="ruby-operator">!=</span> <span class="ruby-value">:center</span>
|
|
1310
|
+
180: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@alignment</span> <span class="ruby-operator">==</span> <span class="ruby-value">:left</span>
|
|
1311
|
+
181: <span class="ruby-ivar">@leftIndent</span> = <span class="ruby-ivar">@indent</span> * <span class="ruby-value">8</span>
|
|
1312
|
+
182: <span class="ruby-keyword kw">elsif</span> <span class="ruby-ivar">@alignment</span> <span class="ruby-operator">==</span> <span class="ruby-value">:right</span>
|
|
1313
|
+
183: <span class="ruby-ivar">@rightIndent</span> = (<span class="ruby-ivar">@line</span>.<span class="ruby-identifier">table</span>.<span class="ruby-identifier">maxIndent</span> <span class="ruby-operator">-</span> <span class="ruby-ivar">@indent</span>) * <span class="ruby-value">8</span>
|
|
1314
|
+
184: <span class="ruby-keyword kw">end</span>
|
|
1315
|
+
185: <span class="ruby-keyword kw">end</span>
|
|
1316
|
+
186: <span class="ruby-keyword kw">end</span></pre>
|
|
1281
1317
|
</div>
|
|
1282
1318
|
|
|
1283
1319
|
</div>
|
|
@@ -1289,7 +1325,7 @@ Turn the abstract cell representation into an HTML element tree.
|
|
|
1289
1325
|
|
|
1290
1326
|
|
|
1291
1327
|
<div id="cell-con-method" class="method-detail ">
|
|
1292
|
-
<a name="
|
|
1328
|
+
<a name="method-i-cellIcon"></a>
|
|
1293
1329
|
|
|
1294
1330
|
<div class="method-heading">
|
|
1295
1331
|
|
|
@@ -1308,18 +1344,18 @@ Turn the abstract cell representation into an HTML element tree.
|
|
|
1308
1344
|
<div class="method-source-code"
|
|
1309
1345
|
id="cell-con-source">
|
|
1310
1346
|
<pre>
|
|
1311
|
-
<span class="ruby-comment cmt"># File lib/reports/ReportTableCell.rb, line
|
|
1312
|
-
|
|
1313
|
-
|
|
1314
|
-
|
|
1315
|
-
|
|
1316
|
-
|
|
1317
|
-
|
|
1318
|
-
|
|
1319
|
-
|
|
1320
|
-
|
|
1321
|
-
|
|
1322
|
-
|
|
1347
|
+
<span class="ruby-comment cmt"># File lib/reports/ReportTableCell.rb, line 198</span>
|
|
1348
|
+
198: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">cellIcon</span>(<span class="ruby-identifier">cell</span>)
|
|
1349
|
+
199: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@icon</span> <span class="ruby-operator">&&</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@selfcontained</span>
|
|
1350
|
+
200: <span class="ruby-identifier">td</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'td'</span>, <span class="ruby-value str">'class'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'tj_table_cell_icon'</span>)
|
|
1351
|
+
201: <span class="ruby-identifier">td</span> <span class="ruby-operator"><<</span> <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'img'</span>, <span class="ruby-value str">'src'</span> =<span class="ruby-operator">></span> <span class="ruby-node">"icons/#{@icon}.png"</span>,
|
|
1352
|
+
202: <span class="ruby-value str">'alt'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">"Icon"</span>)
|
|
1353
|
+
203: <span class="ruby-identifier">addHtmlTooltip</span>(<span class="ruby-ivar">@iconTooltip</span>, <span class="ruby-identifier">td</span>, <span class="ruby-identifier">cell</span>)
|
|
1354
|
+
204: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">td</span>
|
|
1355
|
+
205: <span class="ruby-keyword kw">end</span>
|
|
1356
|
+
206:
|
|
1357
|
+
207: <span class="ruby-keyword kw">nil</span>
|
|
1358
|
+
208: <span class="ruby-keyword kw">end</span></pre>
|
|
1323
1359
|
</div>
|
|
1324
1360
|
|
|
1325
1361
|
</div>
|
|
@@ -1331,7 +1367,7 @@ Turn the abstract cell representation into an HTML element tree.
|
|
|
1331
1367
|
|
|
1332
1368
|
|
|
1333
1369
|
<div id="cell-abel-method" class="method-detail ">
|
|
1334
|
-
<a name="
|
|
1370
|
+
<a name="method-i-cellLabel"></a>
|
|
1335
1371
|
|
|
1336
1372
|
<div class="method-heading">
|
|
1337
1373
|
|
|
@@ -1350,65 +1386,73 @@ Turn the abstract cell representation into an HTML element tree.
|
|
|
1350
1386
|
<div class="method-source-code"
|
|
1351
1387
|
id="cell-abel-source">
|
|
1352
1388
|
<pre>
|
|
1353
|
-
<span class="ruby-comment cmt"># File lib/reports/ReportTableCell.rb, line
|
|
1354
|
-
|
|
1355
|
-
|
|
1356
|
-
|
|
1357
|
-
|
|
1358
|
-
|
|
1359
|
-
|
|
1360
|
-
|
|
1361
|
-
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
|
|
1365
|
-
|
|
1366
|
-
|
|
1367
|
-
|
|
1368
|
-
|
|
1369
|
-
|
|
1370
|
-
|
|
1371
|
-
|
|
1372
|
-
|
|
1373
|
-
|
|
1374
|
-
|
|
1375
|
-
|
|
1376
|
-
|
|
1377
|
-
|
|
1378
|
-
|
|
1379
|
-
|
|
1380
|
-
|
|
1381
|
-
|
|
1382
|
-
|
|
1383
|
-
|
|
1384
|
-
|
|
1385
|
-
|
|
1386
|
-
|
|
1387
|
-
|
|
1388
|
-
|
|
1389
|
-
|
|
1390
|
-
|
|
1391
|
-
|
|
1392
|
-
|
|
1393
|
-
|
|
1394
|
-
|
|
1395
|
-
|
|
1396
|
-
|
|
1397
|
-
|
|
1398
|
-
|
|
1399
|
-
|
|
1400
|
-
|
|
1401
|
-
|
|
1402
|
-
|
|
1403
|
-
|
|
1404
|
-
|
|
1405
|
-
|
|
1406
|
-
|
|
1407
|
-
|
|
1408
|
-
|
|
1409
|
-
|
|
1410
|
-
|
|
1411
|
-
|
|
1389
|
+
<span class="ruby-comment cmt"># File lib/reports/ReportTableCell.rb, line 210</span>
|
|
1390
|
+
210: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">cellLabel</span>
|
|
1391
|
+
211: <span class="ruby-comment cmt"># If we have a RichText content and a width limit, we enable line</span>
|
|
1392
|
+
212: <span class="ruby-comment cmt"># wrapping.</span>
|
|
1393
|
+
213: <span class="ruby-comment cmt"># Overfl. Wrap. Height Width</span>
|
|
1394
|
+
214: <span class="ruby-comment cmt"># Fixed Height: x - x -</span>
|
|
1395
|
+
215: <span class="ruby-comment cmt"># Fixed Width: x x - x</span>
|
|
1396
|
+
216: <span class="ruby-comment cmt"># Both: x - x x</span>
|
|
1397
|
+
217: <span class="ruby-comment cmt"># None: - x - -</span>
|
|
1398
|
+
218: <span class="ruby-identifier">fixedHeight</span> = <span class="ruby-ivar">@line</span> <span class="ruby-operator">&&</span> <span class="ruby-ivar">@line</span>.<span class="ruby-identifier">table</span>.<span class="ruby-identifier">equiLines</span>
|
|
1399
|
+
219: <span class="ruby-identifier">fixedWidth</span> = <span class="ruby-operator">!</span><span class="ruby-ivar">@width</span>.<span class="ruby-identifier">nil?</span>
|
|
1400
|
+
220: <span class="ruby-identifier">style</span> = <span class="ruby-value str">"overflow:hidden; "</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">fixedHeight</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">fixedWidth</span>
|
|
1401
|
+
221: <span class="ruby-identifier">style</span> = <span class="ruby-node">"white-space:#{fixedWidth && !fixedHeight ?
|
|
1402
|
+
222: 'normal' : 'nowrap'}; "</span>
|
|
1403
|
+
223: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">fixedHeight</span> <span class="ruby-operator">&&</span> <span class="ruby-operator">!</span><span class="ruby-identifier">fixedWidth</span>
|
|
1404
|
+
224: <span class="ruby-identifier">style</span> <span class="ruby-operator">+=</span> <span class="ruby-node">"height:#{@line.height - 3}px; "</span>
|
|
1405
|
+
225: <span class="ruby-keyword kw">end</span>
|
|
1406
|
+
226: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">fixedWidth</span> <span class="ruby-operator">&&</span> <span class="ruby-operator">!</span><span class="ruby-identifier">fixedHeight</span>
|
|
1407
|
+
227: <span class="ruby-comment cmt"># @width does not really determine the column width. It only</span>
|
|
1408
|
+
228: <span class="ruby-comment cmt"># determines the with of the text label. Padding and icons can make</span>
|
|
1409
|
+
229: <span class="ruby-comment cmt"># the column significantly wider.</span>
|
|
1410
|
+
230: <span class="ruby-identifier">style</span> <span class="ruby-operator">+=</span> <span class="ruby-node">"max-width:#{@width}px; "</span>
|
|
1411
|
+
231: <span class="ruby-keyword kw">end</span>
|
|
1412
|
+
232: <span class="ruby-identifier">style</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">'font-weight:bold; '</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@bold</span>
|
|
1413
|
+
233: <span class="ruby-identifier">style</span> <span class="ruby-operator">+=</span> <span class="ruby-node">"font-size: #{@fontSize}px; "</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">fontSize</span>
|
|
1414
|
+
234: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@fontColor</span>
|
|
1415
|
+
235: <span class="ruby-identifier">style</span> <span class="ruby-operator">+=</span> <span class="ruby-node">"color:#{@fontColor}; "</span>
|
|
1416
|
+
236: <span class="ruby-keyword kw">end</span>
|
|
1417
|
+
237:
|
|
1418
|
+
238: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>, <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@text</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-ivar">@text</span>.<span class="ruby-identifier">empty?</span>
|
|
1419
|
+
239:
|
|
1420
|
+
240: <span class="ruby-identifier">td</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'td'</span>, <span class="ruby-value str">'class'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'tj_table_cell_label'</span>,
|
|
1421
|
+
241: <span class="ruby-value str">'style'</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">style</span>)
|
|
1422
|
+
242: <span class="ruby-identifier">tooltip</span> = <span class="ruby-keyword kw">nil</span>
|
|
1423
|
+
243:
|
|
1424
|
+
244: <span class="ruby-comment cmt"># @text can be a String or a RichText (with or without embedded</span>
|
|
1425
|
+
245: <span class="ruby-comment cmt"># queries). To find out if @text has multiple lines, we need to expand</span>
|
|
1426
|
+
246: <span class="ruby-comment cmt"># it and convert it to a plain text again.</span>
|
|
1427
|
+
247: <span class="ruby-identifier">textAsString</span> =
|
|
1428
|
+
248: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@text</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">RichTextIntermediate</span>)
|
|
1429
|
+
249: <span class="ruby-comment cmt"># @text is a RichText.</span>
|
|
1430
|
+
250: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@text</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-value str">'functionHandler'</span>) <span class="ruby-operator">&&</span>
|
|
1431
|
+
251: <span class="ruby-ivar">@text</span>.<span class="ruby-identifier">functionHandler</span>(<span class="ruby-value str">'query'</span>)
|
|
1432
|
+
252: <span class="ruby-ivar">@text</span>.<span class="ruby-identifier">functionHandler</span>(<span class="ruby-value str">'query'</span>).<span class="ruby-identifier">setQuery</span>(<span class="ruby-ivar">@query</span>)
|
|
1433
|
+
253: <span class="ruby-keyword kw">end</span>
|
|
1434
|
+
254: <span class="ruby-ivar">@text</span>.<span class="ruby-identifier">to_s</span>
|
|
1435
|
+
255: <span class="ruby-keyword kw">else</span>
|
|
1436
|
+
256: <span class="ruby-ivar">@text</span>
|
|
1437
|
+
257: <span class="ruby-keyword kw">end</span>
|
|
1438
|
+
258:
|
|
1439
|
+
259: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>, <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">textAsString</span>.<span class="ruby-identifier">empty?</span>
|
|
1440
|
+
260:
|
|
1441
|
+
261: <span class="ruby-identifier">shortText</span>, <span class="ruby-identifier">singleLine</span> = <span class="ruby-identifier">shortVersion</span>(<span class="ruby-identifier">textAsString</span>)
|
|
1442
|
+
262:
|
|
1443
|
+
263: <span class="ruby-keyword kw">if</span> (<span class="ruby-ivar">@line</span> <span class="ruby-operator">&&</span> <span class="ruby-ivar">@line</span>.<span class="ruby-identifier">table</span>.<span class="ruby-identifier">equiLines</span> <span class="ruby-operator">&&</span> (<span class="ruby-operator">!</span><span class="ruby-identifier">singleLine</span> <span class="ruby-operator">||</span> <span class="ruby-ivar">@width</span> )) <span class="ruby-operator">||</span>
|
|
1444
|
+
264: <span class="ruby-operator">!</span><span class="ruby-ivar">@category</span>
|
|
1445
|
+
265: <span class="ruby-comment cmt"># The cell is size-limited. We only put a shortened plain-text version</span>
|
|
1446
|
+
266: <span class="ruby-comment cmt"># in the cell and provide the full content via a tooltip.</span>
|
|
1447
|
+
267: <span class="ruby-identifier">tooltip</span> = <span class="ruby-ivar">@text</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">shortText</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">textAsString</span>
|
|
1448
|
+
268: <span class="ruby-identifier">td</span> <span class="ruby-operator"><<</span> <span class="ruby-constant">XMLText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">shortText</span>)
|
|
1449
|
+
269: <span class="ruby-keyword kw">else</span>
|
|
1450
|
+
270: <span class="ruby-identifier">td</span> <span class="ruby-operator"><<</span> (<span class="ruby-ivar">@text</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">RichTextIntermediate</span>) <span class="ruby-operator">?</span> <span class="ruby-ivar">@text</span>.<span class="ruby-identifier">to_html</span> <span class="ruby-operator">:</span>
|
|
1451
|
+
271: <span class="ruby-constant">XMLText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@text</span>))
|
|
1452
|
+
272: <span class="ruby-keyword kw">end</span>
|
|
1453
|
+
273:
|
|
1454
|
+
274: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">td</span>, <span class="ruby-identifier">tooltip</span>
|
|
1455
|
+
275: <span class="ruby-keyword kw">end</span></pre>
|
|
1412
1456
|
</div>
|
|
1413
1457
|
|
|
1414
1458
|
</div>
|
|
@@ -1420,7 +1464,7 @@ Turn the abstract cell representation into an HTML element tree.
|
|
|
1420
1464
|
|
|
1421
1465
|
|
|
1422
1466
|
<div id="cell-tyle-method" class="method-detail ">
|
|
1423
|
-
<a name="
|
|
1467
|
+
<a name="method-i-cellStyle"></a>
|
|
1424
1468
|
|
|
1425
1469
|
<div class="method-heading">
|
|
1426
1470
|
|
|
@@ -1441,15 +1485,15 @@ Determine cell style
|
|
|
1441
1485
|
<div class="method-source-code"
|
|
1442
1486
|
id="cell-tyle-source">
|
|
1443
1487
|
<pre>
|
|
1444
|
-
<span class="ruby-comment cmt"># File lib/reports/ReportTableCell.rb, line
|
|
1445
|
-
|
|
1446
|
-
|
|
1447
|
-
|
|
1448
|
-
|
|
1449
|
-
|
|
1450
|
-
|
|
1451
|
-
|
|
1452
|
-
|
|
1488
|
+
<span class="ruby-comment cmt"># File lib/reports/ReportTableCell.rb, line 189</span>
|
|
1489
|
+
189: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">cellStyle</span>
|
|
1490
|
+
190: <span class="ruby-identifier">style</span> = <span class="ruby-node">"text-align:#{@alignment.to_s}; "</span>
|
|
1491
|
+
191: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@line</span> <span class="ruby-operator">&&</span> <span class="ruby-ivar">@line</span>.<span class="ruby-identifier">table</span>.<span class="ruby-identifier">equiLines</span>
|
|
1492
|
+
192: <span class="ruby-identifier">style</span> <span class="ruby-operator">+=</span> <span class="ruby-node">"height:#{@line.height - 7}px; "</span>
|
|
1493
|
+
193: <span class="ruby-keyword kw">end</span>
|
|
1494
|
+
194:
|
|
1495
|
+
195: <span class="ruby-identifier">style</span>
|
|
1496
|
+
196: <span class="ruby-keyword kw">end</span></pre>
|
|
1453
1497
|
</div>
|
|
1454
1498
|
|
|
1455
1499
|
</div>
|
|
@@ -1461,7 +1505,7 @@ Determine cell style
|
|
|
1461
1505
|
|
|
1462
1506
|
|
|
1463
1507
|
<div id="short-ersion-method" class="method-detail ">
|
|
1464
|
-
<a name="
|
|
1508
|
+
<a name="method-i-shortVersion"></a>
|
|
1465
1509
|
|
|
1466
1510
|
<div class="method-heading">
|
|
1467
1511
|
|
|
@@ -1484,25 +1528,25 @@ that fits the column.
|
|
|
1484
1528
|
<div class="method-source-code"
|
|
1485
1529
|
id="short-ersion-source">
|
|
1486
1530
|
<pre>
|
|
1487
|
-
<span class="ruby-comment cmt"># File lib/reports/ReportTableCell.rb, line
|
|
1488
|
-
|
|
1489
|
-
|
|
1490
|
-
|
|
1491
|
-
|
|
1492
|
-
|
|
1493
|
-
|
|
1494
|
-
|
|
1495
|
-
|
|
1496
|
-
|
|
1497
|
-
|
|
1498
|
-
|
|
1499
|
-
|
|
1500
|
-
|
|
1501
|
-
|
|
1502
|
-
|
|
1503
|
-
|
|
1504
|
-
|
|
1505
|
-
|
|
1531
|
+
<span class="ruby-comment cmt"># File lib/reports/ReportTableCell.rb, line 279</span>
|
|
1532
|
+
279: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">shortVersion</span>(<span class="ruby-identifier">itext</span>)
|
|
1533
|
+
280: <span class="ruby-identifier">text</span> = <span class="ruby-identifier">itext</span>.<span class="ruby-identifier">to_s</span>
|
|
1534
|
+
281: <span class="ruby-identifier">singleLine</span> = <span class="ruby-keyword kw">true</span>
|
|
1535
|
+
282: <span class="ruby-identifier">modified</span> = <span class="ruby-keyword kw">false</span>
|
|
1536
|
+
283: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">text</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-value str">"\n"</span>)
|
|
1537
|
+
284: <span class="ruby-identifier">text</span> = <span class="ruby-identifier">text</span>[<span class="ruby-value">0</span>, <span class="ruby-identifier">text</span>.<span class="ruby-identifier">index</span>(<span class="ruby-value str">"\n"</span>)]
|
|
1538
|
+
285: <span class="ruby-identifier">singleLine</span> = <span class="ruby-keyword kw">false</span>
|
|
1539
|
+
286: <span class="ruby-identifier">modified</span> = <span class="ruby-keyword kw">true</span>
|
|
1540
|
+
287: <span class="ruby-keyword kw">end</span>
|
|
1541
|
+
288: <span class="ruby-comment cmt"># Assuming an average character width of 8 pixels</span>
|
|
1542
|
+
289: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@width</span> <span class="ruby-operator">&&</span> (<span class="ruby-identifier">text</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">></span> (<span class="ruby-ivar">@width</span> <span class="ruby-operator">/</span> <span class="ruby-value">8</span>))
|
|
1543
|
+
290: <span class="ruby-identifier">text</span> = <span class="ruby-identifier">text</span>[<span class="ruby-value">0</span>, <span class="ruby-ivar">@width</span> <span class="ruby-operator">/</span> <span class="ruby-value">8</span>]
|
|
1544
|
+
291: <span class="ruby-identifier">modified</span> = <span class="ruby-identifier">shortened</span> = <span class="ruby-keyword kw">true</span>
|
|
1545
|
+
292: <span class="ruby-keyword kw">end</span>
|
|
1546
|
+
293: <span class="ruby-comment cmt"># Add three dots to show that there is more info available.</span>
|
|
1547
|
+
294: <span class="ruby-identifier">text</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">"..."</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">modified</span>
|
|
1548
|
+
295: [ <span class="ruby-identifier">text</span>, <span class="ruby-identifier">singleLine</span> ]
|
|
1549
|
+
296: <span class="ruby-keyword kw">end</span></pre>
|
|
1506
1550
|
</div>
|
|
1507
1551
|
|
|
1508
1552
|
</div>
|