rubyXL 2.2.0 → 2.3.0
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/VERSION +1 -1
- data/lib/rubyXL/objects/border.rb +3 -3
- data/lib/rubyXL/objects/chartsheet.rb +20 -5
- data/lib/rubyXL/objects/fill.rb +3 -3
- data/lib/rubyXL/objects/filters.rb +5 -5
- data/lib/rubyXL/objects/font.rb +3 -3
- data/lib/rubyXL/objects/ooxml_object.rb +209 -138
- data/lib/rubyXL/objects/relationships.rb +2 -2
- data/lib/rubyXL/objects/sheet_common.rb +2 -2
- data/lib/rubyXL/objects/stylesheet.rb +35 -35
- data/lib/rubyXL/objects/workbook.rb +26 -27
- data/lib/rubyXL/objects/worksheet.rb +59 -51
- data/lib/rubyXL/parser.rb +22 -12
- data/lib/rubyXL/workbook.rb +5 -6
- data/lib/rubyXL/worksheet.rb +3 -3
- data/lib/rubyXL/writer/workbook_writer.rb +2 -2
- data/rdoc/README_rdoc.html +1 -1
- data/rdoc/RubyXL.html +1 -1
- data/rdoc/RubyXL/AExtensionStorageArea.html +1 -1
- data/rdoc/RubyXL/Alignment.html +1 -1
- data/rdoc/RubyXL/AlternateContent.html +1 -1
- data/rdoc/RubyXL/AutoFilter.html +1 -1
- data/rdoc/RubyXL/AutoFilterColumn.html +1 -1
- data/rdoc/RubyXL/BooleanNode.html +1 -1
- data/rdoc/RubyXL/BooleanValue.html +1 -1
- data/rdoc/RubyXL/Border.html +1 -1
- data/rdoc/RubyXL/BorderEdge.html +1 -1
- data/rdoc/RubyXL/{FillContainer.html → Borders.html} +5 -5
- data/rdoc/RubyXL/Break.html +1 -1
- data/rdoc/RubyXL/BreakList.html +2 -2
- data/rdoc/RubyXL/CalculationChain.html +1 -1
- data/rdoc/RubyXL/CalculationChainCell.html +1 -1
- data/rdoc/RubyXL/CalculationProperties.html +1 -1
- data/rdoc/RubyXL/Cell.html +1 -1
- data/rdoc/RubyXL/CellSmartTag.html +1 -1
- data/rdoc/RubyXL/CellSmartTagProperty.html +1 -1
- data/rdoc/RubyXL/CellSmartTags.html +105 -0
- data/rdoc/RubyXL/CellStyle.html +1 -1
- data/rdoc/RubyXL/CellStyleXFs.html +105 -0
- data/rdoc/RubyXL/CellStyles.html +105 -0
- data/rdoc/RubyXL/CellValue.html +1 -1
- data/rdoc/RubyXL/CellWatch.html +1 -1
- data/rdoc/RubyXL/{CellXFContainer.html → CellWatches.html} +5 -5
- data/rdoc/RubyXL/CellXFs.html +105 -0
- data/rdoc/RubyXL/Chartsheet.html +1 -1
- data/rdoc/RubyXL/ChartsheetPageSetup.html +1 -1
- data/rdoc/RubyXL/ChartsheetProperties.html +1 -1
- data/rdoc/RubyXL/ChartsheetProtection.html +1 -1
- data/rdoc/RubyXL/ChartsheetView.html +1 -1
- data/rdoc/RubyXL/{BorderContainer.html → ChartsheetViews.html} +4 -4
- data/rdoc/RubyXL/Color.html +1 -1
- data/rdoc/RubyXL/ColorFilter.html +1 -1
- data/rdoc/RubyXL/ColorScale.html +1 -1
- data/rdoc/RubyXL/ColorScheme.html +1 -1
- data/rdoc/RubyXL/ColorSet.html +1 -1
- data/rdoc/RubyXL/Colors.html +1 -1
- data/rdoc/RubyXL/ColumnRange.html +1 -1
- data/rdoc/RubyXL/ColumnRanges.html +1 -1
- data/rdoc/RubyXL/ConditionalFormatValue.html +1 -1
- data/rdoc/RubyXL/ConditionalFormatting.html +2 -2
- data/rdoc/RubyXL/ConditionalFormattingRule.html +1 -1
- data/rdoc/RubyXL/CustomFilter.html +1 -1
- data/rdoc/RubyXL/{CustomFilterContainer.html → CustomFilters.html} +5 -5
- data/rdoc/RubyXL/{CellStyleXFContainer.html → CustomProperties.html} +5 -5
- data/rdoc/RubyXL/CustomProperty.html +1 -1
- data/rdoc/RubyXL/CustomSheetView.html +1 -1
- data/rdoc/RubyXL/CustomSheetViews.html +2 -2
- data/rdoc/RubyXL/CustomWorkbookView.html +1 -1
- data/rdoc/RubyXL/{CustomWorkbookViewContainer.html → CustomWorkbookViews.html} +5 -5
- data/rdoc/RubyXL/DXF.html +1 -1
- data/rdoc/RubyXL/DXFs.html +1 -1
- data/rdoc/RubyXL/DataBar.html +1 -1
- data/rdoc/RubyXL/DataConsolidate.html +1 -1
- data/rdoc/RubyXL/DataConsolidationReference.html +1 -1
- data/rdoc/RubyXL/DataConsolidationReferences.html +2 -2
- data/rdoc/RubyXL/DataValidation.html +1 -1
- data/rdoc/RubyXL/DataValidations.html +1 -1
- data/rdoc/RubyXL/DateGroupItem.html +1 -1
- data/rdoc/RubyXL/DefinedName.html +1 -1
- data/rdoc/RubyXL/DefinedNames.html +2 -2
- data/rdoc/RubyXL/DocumentProperties.html +1 -1
- data/rdoc/RubyXL/DynamicFilter.html +1 -1
- data/rdoc/RubyXL/EmbeddedControl.html +1 -1
- data/rdoc/RubyXL/{EmbeddedControlContainer.html → EmbeddedControls.html} +5 -5
- data/rdoc/RubyXL/Extension.html +1 -1
- data/rdoc/RubyXL/ExtensionStorageArea.html +1 -1
- data/rdoc/RubyXL/ExternalReference.html +1 -1
- data/rdoc/RubyXL/ExternalReferences.html +2 -2
- data/rdoc/RubyXL/FieldItem.html +1 -1
- data/rdoc/RubyXL/FileRecoveryProperties.html +1 -1
- data/rdoc/RubyXL/FileSharing.html +1 -1
- data/rdoc/RubyXL/FileVersion.html +1 -1
- data/rdoc/RubyXL/Fill.html +1 -1
- data/rdoc/RubyXL/{FontContainer.html → Fills.html} +5 -5
- data/rdoc/RubyXL/FilterContainer.html +1 -1
- data/rdoc/RubyXL/FloatNode.html +1 -1
- data/rdoc/RubyXL/FloatValue.html +1 -1
- data/rdoc/RubyXL/Font.html +1 -1
- data/rdoc/RubyXL/FontScheme.html +1 -1
- data/rdoc/RubyXL/Fonts.html +105 -0
- data/rdoc/RubyXL/FormatScheme.html +1 -1
- data/rdoc/RubyXL/Formula.html +1 -1
- data/rdoc/RubyXL/FunctionGroup.html +1 -1
- data/rdoc/RubyXL/{CellWatchContainer.html → FunctionGroups.html} +5 -5
- data/rdoc/RubyXL/GenericStorage.html +1 -1
- data/rdoc/RubyXL/GradientFill.html +1 -1
- data/rdoc/RubyXL/HeaderFooterSettings.html +1 -1
- data/rdoc/RubyXL/Hyperlink.html +1 -1
- data/rdoc/RubyXL/Hyperlinks.html +105 -0
- data/rdoc/RubyXL/IconFilter.html +1 -1
- data/rdoc/RubyXL/IconSet.html +1 -1
- data/rdoc/RubyXL/IgnoredError.html +1 -1
- data/rdoc/RubyXL/IgnoredErrors.html +105 -0
- data/rdoc/RubyXL/IndexedColors.html +105 -0
- data/rdoc/RubyXL/InputCells.html +1 -1
- data/rdoc/RubyXL/IntegerNode.html +1 -1
- data/rdoc/RubyXL/IntegerValue.html +1 -1
- data/rdoc/RubyXL/LegacyCell.html +1 -1
- data/rdoc/RubyXL/LegacyWorkbook.html +25 -25
- data/rdoc/RubyXL/LegacyWorksheet.html +3 -29
- data/rdoc/RubyXL/{ChartsheetViewContainer.html → MRUColors.html} +5 -5
- data/rdoc/RubyXL/MergedCell.html +1 -1
- data/rdoc/RubyXL/MergedCells.html +2 -2
- data/rdoc/RubyXL/NumFmt.html +1 -1
- data/rdoc/RubyXL/NumberFormat.html +1 -1
- data/rdoc/RubyXL/{NumberFormatContainer.html → NumberFormats.html} +6 -6
- data/rdoc/RubyXL/OLEObject.html +1 -1
- data/rdoc/RubyXL/OLEObjects.html +2 -2
- data/rdoc/RubyXL/OLESize.html +1 -1
- data/rdoc/RubyXL/OOXMLContainerObject.html +105 -0
- data/rdoc/RubyXL/OOXMLObject.html +1 -758
- data/rdoc/RubyXL/OOXMLObjectClassMethods.html +559 -0
- data/rdoc/RubyXL/OOXMLObjectInstanceMethods.html +98 -0
- data/rdoc/RubyXL/OOXMLTopLevelObject.html +1 -1
- data/rdoc/RubyXL/OutlineProperties.html +1 -1
- data/rdoc/RubyXL/PageMargins.html +1 -1
- data/rdoc/RubyXL/PageSetup.html +1 -1
- data/rdoc/RubyXL/PageSetupProperties.html +1 -1
- data/rdoc/RubyXL/Pane.html +1 -1
- data/rdoc/RubyXL/Parser.html +23 -13
- data/rdoc/RubyXL/PatternFill.html +1 -1
- data/rdoc/RubyXL/PhoneticProperties.html +1 -1
- data/rdoc/RubyXL/PhoneticRun.html +1 -1
- data/rdoc/RubyXL/PivotArea.html +1 -1
- data/rdoc/RubyXL/PivotCache.html +1 -1
- data/rdoc/RubyXL/PivotCaches.html +2 -2
- data/rdoc/RubyXL/PivotReference.html +1 -1
- data/rdoc/RubyXL/{CellStyleContainer.html → PivotReferences.html} +5 -5
- data/rdoc/RubyXL/PivotTableSelection.html +1 -1
- data/rdoc/RubyXL/PrintOptions.html +1 -1
- data/rdoc/RubyXL/ProtectedRange.html +1 -1
- data/rdoc/RubyXL/ProtectedRanges.html +2 -2
- data/rdoc/RubyXL/Protection.html +1 -1
- data/rdoc/RubyXL/RID.html +1 -1
- data/rdoc/RubyXL/RawOOXML.html +1 -1
- data/rdoc/RubyXL/Reference.html +1 -1
- data/rdoc/RubyXL/Relationship.html +1 -1
- data/rdoc/RubyXL/RichText.html +1 -1
- data/rdoc/RubyXL/RichTextRun.html +1 -1
- data/rdoc/RubyXL/Row.html +1 -1
- data/rdoc/RubyXL/RunProperties.html +1 -1
- data/rdoc/RubyXL/Scenario.html +1 -1
- data/rdoc/RubyXL/Scenarios.html +105 -0
- data/rdoc/RubyXL/Selection.html +1 -1
- data/rdoc/RubyXL/SharedStringsTable.html +3 -3
- data/rdoc/RubyXL/Sheet.html +1 -1
- data/rdoc/RubyXL/SheetCalculationProperties.html +1 -1
- data/rdoc/RubyXL/SheetData.html +1 -1
- data/rdoc/RubyXL/Sheets.html +2 -2
- data/rdoc/RubyXL/SmartTagProperties.html +1 -1
- data/rdoc/RubyXL/SmartTagType.html +1 -1
- data/rdoc/RubyXL/SmartTagTypes.html +105 -0
- data/rdoc/RubyXL/SmartTags.html +105 -0
- data/rdoc/RubyXL/SortCondition.html +1 -1
- data/rdoc/RubyXL/SortState.html +1 -1
- data/rdoc/RubyXL/Sqref.html +1 -1
- data/rdoc/RubyXL/Stop.html +1 -1
- data/rdoc/RubyXL/StringNode.html +1 -1
- data/rdoc/RubyXL/StringValue.html +1 -1
- data/rdoc/RubyXL/Stylesheet.html +1 -1
- data/rdoc/RubyXL/TableParts.html +2 -2
- data/rdoc/RubyXL/TableStyle.html +1 -1
- data/rdoc/RubyXL/TableStyles.html +2 -2
- data/rdoc/RubyXL/Text.html +1 -1
- data/rdoc/RubyXL/Theme.html +1 -1
- data/rdoc/RubyXL/ThemeElements.html +1 -1
- data/rdoc/RubyXL/Top10.html +1 -1
- data/rdoc/RubyXL/Variant.html +1 -1
- data/rdoc/RubyXL/Vector.html +1 -1
- data/rdoc/RubyXL/VectorValue.html +1 -1
- data/rdoc/RubyXL/WebPublishObject.html +1 -1
- data/rdoc/RubyXL/{WebPublishObjectContainer.html → WebPublishObjects.html} +5 -5
- data/rdoc/RubyXL/WebPublishingItem.html +1 -1
- data/rdoc/RubyXL/{WebPublishingItemContainer.html → WebPublishingItems.html} +5 -5
- data/rdoc/RubyXL/WebPublishingProperties.html +1 -1
- data/rdoc/RubyXL/Workbook.html +1 -1
- data/rdoc/RubyXL/WorkbookProperties.html +1 -1
- data/rdoc/RubyXL/WorkbookProtection.html +1 -1
- data/rdoc/RubyXL/WorkbookRelationships.html +3 -3
- data/rdoc/RubyXL/WorkbookView.html +1 -1
- data/rdoc/RubyXL/WorkbookViews.html +2 -2
- data/rdoc/RubyXL/Worksheet.html +1 -1
- data/rdoc/RubyXL/WorksheetDimensions.html +1 -1
- data/rdoc/RubyXL/WorksheetFormatProperties.html +1 -1
- data/rdoc/RubyXL/WorksheetProperties.html +1 -1
- data/rdoc/RubyXL/WorksheetProtection.html +1 -1
- data/rdoc/RubyXL/WorksheetView.html +1 -1
- data/rdoc/RubyXL/WorksheetViews.html +2 -2
- data/rdoc/RubyXL/Writer.html +1 -1
- data/rdoc/RubyXL/Writer/ContentTypesWriter.html +1 -1
- data/rdoc/RubyXL/Writer/CoreWriter.html +1 -1
- data/rdoc/RubyXL/Writer/GenericWriter.html +1 -1
- data/rdoc/RubyXL/Writer/RootRelsWriter.html +1 -1
- data/rdoc/RubyXL/Writer/StylesWriter.html +1 -1
- data/rdoc/RubyXL/Writer/ThemeWriter.html +1 -1
- data/rdoc/RubyXL/Writer/WorkbookWriter.html +3 -3
- data/rdoc/RubyXL/XF.html +1 -1
- data/rdoc/created.rid +19 -20
- data/rdoc/index.html +4 -6
- data/rdoc/js/search_index.js +1 -1
- data/rdoc/table_of_contents.html +89 -132
- data/rubyXL.gemspec +30 -29
- data/spec/lib/parser_spec.rb +3 -1
- data/spec/lib/stylesheet_spec.rb +1 -1
- metadata +31 -30
- data/lib/rubyXL/writer/worksheet_writer.rb +0 -41
- data/rdoc/RubyXL/CellSmartTagContainer.html +0 -105
- data/rdoc/RubyXL/CustomPropertyContainer.html +0 -105
- data/rdoc/RubyXL/FunctionGroupContainer.html +0 -105
- data/rdoc/RubyXL/HyperlinkContainer.html +0 -105
- data/rdoc/RubyXL/IgnoredErrorContainer.html +0 -105
- data/rdoc/RubyXL/IndexedColorContainer.html +0 -105
- data/rdoc/RubyXL/MRUColorContainer.html +0 -105
- data/rdoc/RubyXL/PivotReferenceContainer.html +0 -105
- data/rdoc/RubyXL/ScenarioContainer.html +0 -105
- data/rdoc/RubyXL/SmartTagContainer.html +0 -105
- data/rdoc/RubyXL/SmartTagTypeContainer.html +0 -105
- data/rdoc/RubyXL/Writer/WorksheetWriter.html +0 -236
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
<head>
|
|
5
5
|
<meta charset="UTF-8">
|
|
6
6
|
|
|
7
|
-
<title>module RubyXL::LegacyWorksheet - rubyXL 2.
|
|
7
|
+
<title>module RubyXL::LegacyWorksheet - rubyXL 2.3.0</title>
|
|
8
8
|
|
|
9
9
|
<link href="../fonts.css" rel="stylesheet">
|
|
10
10
|
<link href="../rdoc.css" rel="stylesheet">
|
|
@@ -309,19 +309,6 @@
|
|
|
309
309
|
</header>
|
|
310
310
|
|
|
311
311
|
|
|
312
|
-
<div id="attribute-i-extLst" class="method-detail">
|
|
313
|
-
<div class="method-heading attribute-method-heading">
|
|
314
|
-
<span class="method-name">extLst</span><span
|
|
315
|
-
class="attribute-access-type">[RW]</span>
|
|
316
|
-
</div>
|
|
317
|
-
|
|
318
|
-
<div class="method-description">
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
</div>
|
|
323
|
-
</div>
|
|
324
|
-
|
|
325
312
|
<div id="attribute-i-sheet_id" class="method-detail">
|
|
326
313
|
<div class="method-heading attribute-method-heading">
|
|
327
314
|
<span class="method-name">sheet_id</span><span
|
|
@@ -345,19 +332,6 @@
|
|
|
345
332
|
|
|
346
333
|
|
|
347
334
|
|
|
348
|
-
</div>
|
|
349
|
-
</div>
|
|
350
|
-
|
|
351
|
-
<div id="attribute-i-validations" class="method-detail">
|
|
352
|
-
<div class="method-heading attribute-method-heading">
|
|
353
|
-
<span class="method-name">validations</span><span
|
|
354
|
-
class="attribute-access-type">[RW]</span>
|
|
355
|
-
</div>
|
|
356
|
-
|
|
357
|
-
<div class="method-description">
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
335
|
</div>
|
|
362
336
|
</div>
|
|
363
337
|
|
|
@@ -3264,8 +3238,8 @@ being “pushed down”</p>
|
|
|
3264
3238
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier">merge_cells</span>(<span class="ruby-identifier">row1</span> = <span class="ruby-value">0</span>, <span class="ruby-identifier">col1</span> = <span class="ruby-value">0</span>, <span class="ruby-identifier">row2</span> = <span class="ruby-value">0</span>, <span class="ruby-identifier">col2</span> = <span class="ruby-value">0</span>)
|
|
3265
3239
|
<span class="ruby-identifier">validate_workbook</span>
|
|
3266
3240
|
|
|
3267
|
-
<span class="ruby-keyword">self</span>.<span class="ruby-identifier">
|
|
3268
|
-
<span class="ruby-identifier">
|
|
3241
|
+
<span class="ruby-keyword">self</span>.<span class="ruby-identifier">merged_cells</span> <span class="ruby-operator">||=</span> <span class="ruby-constant">RubyXL</span><span class="ruby-operator">::</span><span class="ruby-constant">MergedCells</span>.<span class="ruby-identifier">new</span>
|
|
3242
|
+
<span class="ruby-identifier">merged_cells</span> <span class="ruby-operator"><<</span> <span class="ruby-constant">RubyXL</span><span class="ruby-operator">::</span><span class="ruby-constant">MergedCell</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value">:ref</span> =<span class="ruby-operator">></span> <span class="ruby-constant">RubyXL</span><span class="ruby-operator">::</span><span class="ruby-constant">Reference</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">row1</span>, <span class="ruby-identifier">row2</span>, <span class="ruby-identifier">col1</span>, <span class="ruby-identifier">col2</span>))
|
|
3269
3243
|
<span class="ruby-keyword">end</span></pre>
|
|
3270
3244
|
</div>
|
|
3271
3245
|
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
<head>
|
|
5
5
|
<meta charset="UTF-8">
|
|
6
6
|
|
|
7
|
-
<title>class RubyXL::
|
|
7
|
+
<title>class RubyXL::MRUColors - rubyXL 2.3.0</title>
|
|
8
8
|
|
|
9
9
|
<link href="../fonts.css" rel="stylesheet">
|
|
10
10
|
<link href="../rdoc.css" rel="stylesheet">
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
<h3>Parent</h3>
|
|
62
62
|
|
|
63
63
|
|
|
64
|
-
<p class="link">
|
|
64
|
+
<p class="link"><a href="OOXMLContainerObject.html">RubyXL::OOXMLContainerObject</a>
|
|
65
65
|
|
|
66
66
|
</div>
|
|
67
67
|
|
|
@@ -71,9 +71,9 @@
|
|
|
71
71
|
</div>
|
|
72
72
|
</nav>
|
|
73
73
|
|
|
74
|
-
<main role="main" aria-labelledby="class-RubyXL::
|
|
75
|
-
<h1 id="class-RubyXL::
|
|
76
|
-
class RubyXL::
|
|
74
|
+
<main role="main" aria-labelledby="class-RubyXL::MRUColors">
|
|
75
|
+
<h1 id="class-RubyXL::MRUColors" class="class">
|
|
76
|
+
class RubyXL::MRUColors
|
|
77
77
|
</h1>
|
|
78
78
|
|
|
79
79
|
<section class="description">
|
data/rdoc/RubyXL/MergedCell.html
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
<head>
|
|
5
5
|
<meta charset="UTF-8">
|
|
6
6
|
|
|
7
|
-
<title>class RubyXL::MergedCells - rubyXL 2.
|
|
7
|
+
<title>class RubyXL::MergedCells - rubyXL 2.3.0</title>
|
|
8
8
|
|
|
9
9
|
<link href="../fonts.css" rel="stylesheet">
|
|
10
10
|
<link href="../rdoc.css" rel="stylesheet">
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
<h3>Parent</h3>
|
|
62
62
|
|
|
63
63
|
|
|
64
|
-
<p class="link"><a href="
|
|
64
|
+
<p class="link"><a href="OOXMLContainerObject.html">RubyXL::OOXMLContainerObject</a>
|
|
65
65
|
|
|
66
66
|
</div>
|
|
67
67
|
|
data/rdoc/RubyXL/NumFmt.html
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
<head>
|
|
5
5
|
<meta charset="UTF-8">
|
|
6
6
|
|
|
7
|
-
<title>class RubyXL::
|
|
7
|
+
<title>class RubyXL::NumberFormats - rubyXL 2.3.0</title>
|
|
8
8
|
|
|
9
9
|
<link href="../fonts.css" rel="stylesheet">
|
|
10
10
|
<link href="../rdoc.css" rel="stylesheet">
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
<h3>Parent</h3>
|
|
62
62
|
|
|
63
63
|
|
|
64
|
-
<p class="link"><a href="
|
|
64
|
+
<p class="link"><a href="OOXMLContainerObject.html">RubyXL::OOXMLContainerObject</a>
|
|
65
65
|
|
|
66
66
|
</div>
|
|
67
67
|
|
|
@@ -81,9 +81,9 @@
|
|
|
81
81
|
</div>
|
|
82
82
|
</nav>
|
|
83
83
|
|
|
84
|
-
<main role="main" aria-labelledby="class-RubyXL::
|
|
85
|
-
<h1 id="class-RubyXL::
|
|
86
|
-
class RubyXL::
|
|
84
|
+
<main role="main" aria-labelledby="class-RubyXL::NumberFormats">
|
|
85
|
+
<h1 id="class-RubyXL::NumberFormats" class="class">
|
|
86
|
+
class RubyXL::NumberFormats
|
|
87
87
|
</h1>
|
|
88
88
|
|
|
89
89
|
<section class="description">
|
|
@@ -147,7 +147,7 @@ href="http://www.schemacentral.com/sc/ooxml/e-ssml_numFmts-1.html">www.schemacen
|
|
|
147
147
|
<div class="method-source-code" id="find_by_format_id-source">
|
|
148
148
|
<pre><span class="ruby-comment"># File lib/rubyXL/objects/stylesheet.rb, line 62</span>
|
|
149
149
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier">find_by_format_id</span>(<span class="ruby-identifier">format_id</span>)
|
|
150
|
-
<span class="ruby-
|
|
150
|
+
<span class="ruby-keyword">self</span>.<span class="ruby-identifier">find</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">fmt</span><span class="ruby-operator">|</span> <span class="ruby-identifier">fmt</span>.<span class="ruby-identifier">num_fmt_id</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">format_id</span> }
|
|
151
151
|
<span class="ruby-keyword">end</span></pre>
|
|
152
152
|
</div>
|
|
153
153
|
|
data/rdoc/RubyXL/OLEObject.html
CHANGED
data/rdoc/RubyXL/OLEObjects.html
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
<head>
|
|
5
5
|
<meta charset="UTF-8">
|
|
6
6
|
|
|
7
|
-
<title>class RubyXL::OLEObjects - rubyXL 2.
|
|
7
|
+
<title>class RubyXL::OLEObjects - rubyXL 2.3.0</title>
|
|
8
8
|
|
|
9
9
|
<link href="../fonts.css" rel="stylesheet">
|
|
10
10
|
<link href="../rdoc.css" rel="stylesheet">
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
<h3>Parent</h3>
|
|
62
62
|
|
|
63
63
|
|
|
64
|
-
<p class="link"><a href="
|
|
64
|
+
<p class="link"><a href="OOXMLContainerObject.html">RubyXL::OOXMLContainerObject</a>
|
|
65
65
|
|
|
66
66
|
</div>
|
|
67
67
|
|
data/rdoc/RubyXL/OLESize.html
CHANGED
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
|
|
3
|
+
<html>
|
|
4
|
+
<head>
|
|
5
|
+
<meta charset="UTF-8">
|
|
6
|
+
|
|
7
|
+
<title>class RubyXL::OOXMLContainerObject - rubyXL 2.3.0</title>
|
|
8
|
+
|
|
9
|
+
<link href="../fonts.css" rel="stylesheet">
|
|
10
|
+
<link href="../rdoc.css" rel="stylesheet">
|
|
11
|
+
|
|
12
|
+
<script type="text/javascript">
|
|
13
|
+
var rdoc_rel_prefix = "../";
|
|
14
|
+
</script>
|
|
15
|
+
|
|
16
|
+
<script src="../js/jquery.js"></script>
|
|
17
|
+
<script src="../js/navigation.js"></script>
|
|
18
|
+
<script src="../js/search_index.js"></script>
|
|
19
|
+
<script src="../js/search.js"></script>
|
|
20
|
+
<script src="../js/searcher.js"></script>
|
|
21
|
+
<script src="../js/darkfish.js"></script>
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
<body id="top" role="document" class="class">
|
|
25
|
+
<nav role="navigation">
|
|
26
|
+
<div id="project-navigation">
|
|
27
|
+
<div id="home-section" role="region" title="Quick navigation" class="nav-section">
|
|
28
|
+
<h2>
|
|
29
|
+
<a href="../index.html" rel="home">Home</a>
|
|
30
|
+
</h2>
|
|
31
|
+
|
|
32
|
+
<div id="table-of-contents-navigation">
|
|
33
|
+
<a href="../table_of_contents.html#pages">Pages</a>
|
|
34
|
+
<a href="../table_of_contents.html#classes">Classes</a>
|
|
35
|
+
<a href="../table_of_contents.html#methods">Methods</a>
|
|
36
|
+
</div>
|
|
37
|
+
</div>
|
|
38
|
+
|
|
39
|
+
<div id="search-section" role="search" class="project-section initially-hidden">
|
|
40
|
+
<form action="#" method="get" accept-charset="utf-8">
|
|
41
|
+
<div id="search-field-wrapper">
|
|
42
|
+
<input id="search-field" role="combobox" aria-label="Search"
|
|
43
|
+
aria-autocomplete="list" aria-controls="search-results"
|
|
44
|
+
type="text" name="search" placeholder="Search" spellcheck="false"
|
|
45
|
+
title="Type to search, Up and Down to navigate, Enter to load">
|
|
46
|
+
</div>
|
|
47
|
+
|
|
48
|
+
<ul id="search-results" aria-label="Search Results"
|
|
49
|
+
aria-busy="false" aria-expanded="false"
|
|
50
|
+
aria-atomic="false" class="initially-hidden"></ul>
|
|
51
|
+
</form>
|
|
52
|
+
</div>
|
|
53
|
+
|
|
54
|
+
</div>
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
<div id="class-metadata">
|
|
59
|
+
|
|
60
|
+
<div id="parent-class-section" class="nav-section">
|
|
61
|
+
<h3>Parent</h3>
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
<p class="link">Array
|
|
65
|
+
|
|
66
|
+
</div>
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
</div>
|
|
72
|
+
</nav>
|
|
73
|
+
|
|
74
|
+
<main role="main" aria-labelledby="class-RubyXL::OOXMLContainerObject">
|
|
75
|
+
<h1 id="class-RubyXL::OOXMLContainerObject" class="class">
|
|
76
|
+
class RubyXL::OOXMLContainerObject
|
|
77
|
+
</h1>
|
|
78
|
+
|
|
79
|
+
<section class="description">
|
|
80
|
+
|
|
81
|
+
</section>
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
<section id="5Buntitled-5D" class="documentation-section">
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
</section>
|
|
97
|
+
</main>
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
<footer id="validator-badges" role="contentinfo">
|
|
101
|
+
<p><a href="http://validator.w3.org/check/referer">Validate</a>
|
|
102
|
+
<p>Generated by <a href="http://rdoc.rubyforge.org">RDoc</a> 4.1.1.
|
|
103
|
+
<p>Based on <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
|
|
104
|
+
</footer>
|
|
105
|
+
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
<head>
|
|
5
5
|
<meta charset="UTF-8">
|
|
6
6
|
|
|
7
|
-
<title>class RubyXL::OOXMLObject - rubyXL 2.
|
|
7
|
+
<title>class RubyXL::OOXMLObject - rubyXL 2.3.0</title>
|
|
8
8
|
|
|
9
9
|
<link href="../fonts.css" rel="stylesheet">
|
|
10
10
|
<link href="../rdoc.css" rel="stylesheet">
|
|
@@ -67,37 +67,7 @@
|
|
|
67
67
|
|
|
68
68
|
|
|
69
69
|
|
|
70
|
-
<!-- Method Quickref -->
|
|
71
|
-
<div id="method-list-section" class="nav-section">
|
|
72
|
-
<h3>Methods</h3>
|
|
73
|
-
|
|
74
|
-
<ul class="link-list" role="directory">
|
|
75
|
-
|
|
76
|
-
<li ><a href="#method-c-define_attribute">::define_attribute</a>
|
|
77
|
-
|
|
78
|
-
<li ><a href="#method-c-define_child_node">::define_child_node</a>
|
|
79
|
-
|
|
80
|
-
<li ><a href="#method-c-define_element_name">::define_element_name</a>
|
|
81
|
-
|
|
82
|
-
<li ><a href="#method-c-new">::new</a>
|
|
83
|
-
|
|
84
|
-
<li ><a href="#method-c-obtain_class_variable">::obtain_class_variable</a>
|
|
85
|
-
|
|
86
|
-
<li ><a href="#method-c-parse">::parse</a>
|
|
87
|
-
|
|
88
|
-
<li ><a href="#method-c-set_countable">::set_countable</a>
|
|
89
70
|
|
|
90
|
-
<li ><a href="#method-i-before_write_xml">#before_write_xml</a>
|
|
91
|
-
|
|
92
|
-
<li class="calls-super" ><a href="#method-i-dup">#dup</a>
|
|
93
|
-
|
|
94
|
-
<li ><a href="#method-i-index_in_collection">#index_in_collection</a>
|
|
95
|
-
|
|
96
|
-
<li ><a href="#method-i-write_xml">#write_xml</a>
|
|
97
|
-
|
|
98
|
-
</ul>
|
|
99
|
-
</div>
|
|
100
|
-
|
|
101
71
|
</div>
|
|
102
72
|
</nav>
|
|
103
73
|
|
|
@@ -108,10 +78,6 @@
|
|
|
108
78
|
|
|
109
79
|
<section class="description">
|
|
110
80
|
|
|
111
|
-
<p>Parent class for defining OOXML based objects (not unlike Rails’
|
|
112
|
-
<code>ActiveRecord</code>!) Most importantly, provides functionality of
|
|
113
|
-
parsing such objects from XML, and marshalling them to XML.</p>
|
|
114
|
-
|
|
115
81
|
</section>
|
|
116
82
|
|
|
117
83
|
|
|
@@ -127,729 +93,6 @@ parsing such objects from XML, and marshalling them to XML.</p>
|
|
|
127
93
|
|
|
128
94
|
|
|
129
95
|
|
|
130
|
-
<section id="public-class-5Buntitled-5D-method-details" class="method-section">
|
|
131
|
-
<header>
|
|
132
|
-
<h3>Public Class Methods</h3>
|
|
133
|
-
</header>
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
<div id="method-c-define_attribute" class="method-detail ">
|
|
137
|
-
|
|
138
|
-
<div class="method-heading">
|
|
139
|
-
<span class="method-name">define_attribute</span><span
|
|
140
|
-
class="method-args">(attr_name, attr_type, extra_params = {})</span>
|
|
141
|
-
|
|
142
|
-
<span class="method-click-advice">click to toggle source</span>
|
|
143
|
-
|
|
144
|
-
</div>
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
<div class="method-description">
|
|
148
|
-
|
|
149
|
-
<p>Defines an attribute of OOXML object.</p>
|
|
150
|
-
|
|
151
|
-
<h3 id="method-c-define_attribute-label-Parameters">Parameters<span><a href="#method-c-define_attribute-label-Parameters">¶</a> <a href="#documentation">↑</a></span></h3>
|
|
152
|
-
<ul><li>
|
|
153
|
-
<p><code>attribute_name</code> - Name of the element attribute as seen in the
|
|
154
|
-
source XML. Can be either <code>"String"</code> or
|
|
155
|
-
<code>:Symbol</code></p>
|
|
156
|
-
<ul><li>
|
|
157
|
-
<p>Special attibute name <code>'_'</code> (underscore) denotes the value of
|
|
158
|
-
the element rather than attribute.</p>
|
|
159
|
-
</li></ul>
|
|
160
|
-
</li><li>
|
|
161
|
-
<p><code>attribute_type</code> - Specifies the conversion type for the
|
|
162
|
-
attribute when parsing. Available options are:</p>
|
|
163
|
-
<ul><li>
|
|
164
|
-
<p><code>:int</code> - <code>Integer</code></p>
|
|
165
|
-
</li><li>
|
|
166
|
-
<p><code>:float</code> - <code>Float</code></p>
|
|
167
|
-
</li><li>
|
|
168
|
-
<p><code>:string</code> - <code>String</code> (no conversion)</p>
|
|
169
|
-
</li><li>
|
|
170
|
-
<p><code>:sqref</code> - <a href="Sqref.html">RubyXL::Sqref</a></p>
|
|
171
|
-
</li><li>
|
|
172
|
-
<p><code>:ref</code> - <a href="Reference.html">RubyXL::Reference</a></p>
|
|
173
|
-
</li><li>
|
|
174
|
-
<p><code>:bool</code> - <code>Boolean</code> ("1" and "true" convert to
|
|
175
|
-
<code>true</code>, others to <code>false</code>)</p>
|
|
176
|
-
</li><li>
|
|
177
|
-
<p>one of <code>simple_types</code> - <code>String</code>, plus the list of
|
|
178
|
-
acceptable values is saved for future validation (not used yet).</p>
|
|
179
|
-
</li></ul>
|
|
180
|
-
</li><li>
|
|
181
|
-
<p><code>extra_parameters</code> - Hash of optional parameters as follows:</p>
|
|
182
|
-
<ul><li>
|
|
183
|
-
<p><code>:accessor</code> - Name of the accessor for this attribute to be
|
|
184
|
-
defined on the object. If not provided, defaults to classidied
|
|
185
|
-
<code>attribute_name</code>.</p>
|
|
186
|
-
</li><li>
|
|
187
|
-
<p><code>:default</code> - Value this attribute defaults to if not explicitly
|
|
188
|
-
provided.</p>
|
|
189
|
-
</li><li>
|
|
190
|
-
<p><code>:required</code> - Whether this attribute is required when writing
|
|
191
|
-
XML. If the value of the attrinute is not explicitly provided,
|
|
192
|
-
<code>:default</code> is written instead.</p>
|
|
193
|
-
</li></ul>
|
|
194
|
-
</li></ul>
|
|
195
|
-
|
|
196
|
-
<h4 id="method-c-define_attribute-label-Examples">Examples<span><a href="#method-c-define_attribute-label-Examples">¶</a> <a href="#documentation">↑</a></span></h4>
|
|
197
|
-
|
|
198
|
-
<pre class="ruby"><span class="ruby-identifier">define_attribute</span>(:<span class="ruby-identifier">outline</span>, :<span class="ruby-identifier">bool</span>, :<span class="ruby-identifier">default</span> =<span class="ruby-operator">></span> <span class="ruby-keyword">true</span>)
|
|
199
|
-
</pre>
|
|
200
|
-
|
|
201
|
-
<p>A <code>Boolean</code> attribute ‘outline’ with default value
|
|
202
|
-
<code>true</code> will be accessible by calling <code>obj.outline</code></p>
|
|
203
|
-
|
|
204
|
-
<pre>define_attribute(:uniqueCount, :int)</pre>
|
|
205
|
-
|
|
206
|
-
<p>An <code>Integer</code> attribute ‘uniqueCount’ accessible as
|
|
207
|
-
<code>obj.unique_count</code></p>
|
|
208
|
-
|
|
209
|
-
<pre class="ruby"><span class="ruby-identifier">define_attribute</span>(:<span class="ruby-identifier">_</span>, :<span class="ruby-identifier">string</span>, :<span class="ruby-identifier">accessor</span> =<span class="ruby-operator">></span> :<span class="ruby-identifier">expression</span>)
|
|
210
|
-
</pre>
|
|
211
|
-
|
|
212
|
-
<p>The value of the element will be accessible as a <code>String</code> by
|
|
213
|
-
calling <code>obj.expression</code></p>
|
|
214
|
-
|
|
215
|
-
<pre class="ruby"><span class="ruby-identifier">define_attribute</span>(:<span class="ruby-identifier">errorStyle</span>, :<span class="ruby-identifier">string</span>, :<span class="ruby-identifier">default</span> =<span class="ruby-operator">></span> <span class="ruby-string">'stop'</span>, :<span class="ruby-identifier">values</span> =<span class="ruby-operator">></span> <span class="ruby-node">%w{ stop warning information }</span>)
|
|
216
|
-
</pre>
|
|
217
|
-
|
|
218
|
-
<p>A <code>String</code> attribute named ‘errorStyle’ will be accessible as
|
|
219
|
-
<code>obj.error_style</code>, valid values are
|
|
220
|
-
<code>"stop"</code>, <code>"warning"</code>,
|
|
221
|
-
<code>"information"</code></p>
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
<div class="method-source-code" id="define_attribute-source">
|
|
227
|
-
<pre><span class="ruby-comment"># File lib/rubyXL/objects/ooxml_object.rb, line 53</span>
|
|
228
|
-
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">define_attribute</span>(<span class="ruby-identifier">attr_name</span>, <span class="ruby-identifier">attr_type</span>, <span class="ruby-identifier">extra_params</span> = {})
|
|
229
|
-
<span class="ruby-identifier">attrs</span> = <span class="ruby-identifier">obtain_class_variable</span>(<span class="ruby-value">:@@ooxml_attributes</span>)
|
|
230
|
-
|
|
231
|
-
<span class="ruby-identifier">accessor</span> = <span class="ruby-identifier">extra_params</span>[<span class="ruby-value">:accessor</span>] <span class="ruby-operator">||</span> <span class="ruby-identifier">accessorize</span>(<span class="ruby-identifier">attr_name</span>)
|
|
232
|
-
<span class="ruby-identifier">attr_name</span> = <span class="ruby-identifier">attr_name</span>.<span class="ruby-identifier">to_s</span>
|
|
233
|
-
|
|
234
|
-
<span class="ruby-identifier">attr_hash</span> = {
|
|
235
|
-
<span class="ruby-value">:accessor</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">accessor</span>,
|
|
236
|
-
<span class="ruby-value">:attr_type</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">attr_type</span>,
|
|
237
|
-
<span class="ruby-value">:optional</span> =<span class="ruby-operator">></span> <span class="ruby-operator">!</span><span class="ruby-identifier">extra_params</span>[<span class="ruby-value">:required</span>],
|
|
238
|
-
<span class="ruby-value">:default</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">extra_params</span>[<span class="ruby-value">:default</span>],
|
|
239
|
-
}
|
|
240
|
-
|
|
241
|
-
<span class="ruby-keyword">if</span> <span class="ruby-identifier">attr_type</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Array</span>) <span class="ruby-keyword">then</span>
|
|
242
|
-
<span class="ruby-identifier">attr_hash</span>[<span class="ruby-value">:values</span>] = <span class="ruby-identifier">attr_type</span>
|
|
243
|
-
<span class="ruby-identifier">attr_hash</span>[<span class="ruby-value">:attr_type</span>] = <span class="ruby-value">:string</span>
|
|
244
|
-
<span class="ruby-keyword">end</span>
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
<span class="ruby-identifier">attrs</span>[<span class="ruby-identifier">attr_name</span>] = <span class="ruby-identifier">attr_hash</span>
|
|
248
|
-
|
|
249
|
-
<span class="ruby-keyword">self</span>.<span class="ruby-identifier">send</span>(<span class="ruby-value">:attr_accessor</span>, <span class="ruby-identifier">accessor</span>)
|
|
250
|
-
<span class="ruby-keyword">end</span></pre>
|
|
251
|
-
</div>
|
|
252
|
-
|
|
253
|
-
</div>
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
</div>
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
<div id="method-c-define_child_node" class="method-detail ">
|
|
262
|
-
|
|
263
|
-
<div class="method-heading">
|
|
264
|
-
<span class="method-name">define_child_node</span><span
|
|
265
|
-
class="method-args">(klass, extra_params = {})</span>
|
|
266
|
-
|
|
267
|
-
<span class="method-click-advice">click to toggle source</span>
|
|
268
|
-
|
|
269
|
-
</div>
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
<div class="method-description">
|
|
273
|
-
|
|
274
|
-
<p>Defines a child node of OOXML object.</p>
|
|
275
|
-
|
|
276
|
-
<h3 id="method-c-define_child_node-label-Parameters">Parameters<span><a href="#method-c-define_child_node-label-Parameters">¶</a> <a href="#documentation">↑</a></span></h3>
|
|
277
|
-
<ul><li>
|
|
278
|
-
<p><code>klass</code> - Class (descendant of <a
|
|
279
|
-
href="OOXMLObject.html">RubyXL::OOXMLObject</a>) of the child nodes. Child
|
|
280
|
-
node objects will be produced by calling <code>parse</code> method of that
|
|
281
|
-
class.</p>
|
|
282
|
-
</li><li>
|
|
283
|
-
<p><code>extra_parameters</code> - Hash of optional parameters as follows:</p>
|
|
284
|
-
<ul><li>
|
|
285
|
-
<p><code>:accessor</code> - Name of the accessor for this attribute to be
|
|
286
|
-
defined on the object. If not provided, defaults to classidied
|
|
287
|
-
<code>attribute_name</code>.</p>
|
|
288
|
-
</li><li>
|
|
289
|
-
<p><code>:node_name</code> - Node name for the child node, in case it does not
|
|
290
|
-
match the one defined by the <code>klass</code>.</p>
|
|
291
|
-
</li><li>
|
|
292
|
-
<p><code>:collection</code> - Whether the child node should be treated as a
|
|
293
|
-
single node or a collection of nodes:</p>
|
|
294
|
-
<ul><li>
|
|
295
|
-
<p><code>false</code> (default) - child node is directly accessible through
|
|
296
|
-
the respective accessor;</p>
|
|
297
|
-
</li><li>
|
|
298
|
-
<p><code>true</code> - a collection of child nodes is accessed as
|
|
299
|
-
<code>Array</code> through the respective accessor;</p>
|
|
300
|
-
</li><li>
|
|
301
|
-
<p><code>:with_count</code> - same as <code>true</code>, but in addition, the
|
|
302
|
-
attribute <code>count</code> is defined on the current object, that will be
|
|
303
|
-
automatically set to the number of elements in the collection at the start
|
|
304
|
-
of <code>write_xml</code> call.</p>
|
|
305
|
-
</li></ul>
|
|
306
|
-
</li></ul>
|
|
307
|
-
</li></ul>
|
|
308
|
-
|
|
309
|
-
<h4 id="method-c-define_child_node-label-Examples">Examples<span><a href="#method-c-define_child_node-label-Examples">¶</a> <a href="#documentation">↑</a></span></h4>
|
|
310
|
-
|
|
311
|
-
<pre>define_child_node(RubyXL::Alignment)</pre>
|
|
312
|
-
|
|
313
|
-
<p>Define a singular child node parsed by the RubyXL::BorderEdge.parse() and
|
|
314
|
-
accessed by the default <code>obj.alignment</code> accessor</p>
|
|
315
|
-
|
|
316
|
-
<pre class="ruby"><span class="ruby-identifier">define_child_node</span>(<span class="ruby-constant">RubyXL</span><span class="ruby-operator">::</span><span class="ruby-constant">Hyperlink</span>, :<span class="ruby-identifier">colection</span> =<span class="ruby-operator">></span> <span class="ruby-keyword">true</span>, :<span class="ruby-identifier">accessor</span> =<span class="ruby-operator">></span> :<span class="ruby-identifier">hyperlinks</span>)
|
|
317
|
-
</pre>
|
|
318
|
-
|
|
319
|
-
<p>Define an array of nodes accessed by <code>obj.hyperlinks</code> accessor,
|
|
320
|
-
each of which will be parsed by the <a
|
|
321
|
-
href="OOXMLObject.html#method-c-parse">::parse</a></p>
|
|
322
|
-
|
|
323
|
-
<pre class="ruby"><span class="ruby-identifier">define_child_node</span>(<span class="ruby-constant">RubyXL</span><span class="ruby-operator">::</span><span class="ruby-constant">BorderEdge</span>, :<span class="ruby-identifier">node_name</span> =<span class="ruby-operator">></span> :<span class="ruby-identifier">left</span>)
|
|
324
|
-
<span class="ruby-identifier">define_child_node</span>(<span class="ruby-constant">RubyXL</span><span class="ruby-operator">::</span><span class="ruby-constant">BorderEdge</span>, :<span class="ruby-identifier">node_name</span> =<span class="ruby-operator">></span> :<span class="ruby-identifier">right</span>)
|
|
325
|
-
</pre>
|
|
326
|
-
|
|
327
|
-
<p>Use class <a href="BorderEdge.html">RubyXL::BorderEdge</a> when parsing
|
|
328
|
-
both the elements <code><left ...></code> and <code><right
|
|
329
|
-
...></code> elements.</p>
|
|
330
|
-
|
|
331
|
-
<pre class="ruby"><span class="ruby-identifier">define_child_node</span>(<span class="ruby-constant">RubyXL</span><span class="ruby-operator">::</span><span class="ruby-constant">Font</span>, :<span class="ruby-identifier">collection</span> =<span class="ruby-operator">></span> :<span class="ruby-identifier">with_count</span>, :<span class="ruby-identifier">accessor</span> =<span class="ruby-operator">></span> :<span class="ruby-identifier">fonts</span>)
|
|
332
|
-
</pre>
|
|
333
|
-
|
|
334
|
-
<p>Upon writing of the object this was defined on, its <code>count</code>
|
|
335
|
-
attribute will be set to the count of nodes in <code>fonts</code> array</p>
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
<div class="method-source-code" id="define_child_node-source">
|
|
341
|
-
<pre><span class="ruby-comment"># File lib/rubyXL/objects/ooxml_object.rb, line 97</span>
|
|
342
|
-
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">define_child_node</span>(<span class="ruby-identifier">klass</span>, <span class="ruby-identifier">extra_params</span> = {})
|
|
343
|
-
<span class="ruby-identifier">child_nodes</span> = <span class="ruby-identifier">obtain_class_variable</span>(<span class="ruby-value">:@@ooxml_child_nodes</span>)
|
|
344
|
-
<span class="ruby-identifier">child_node_name</span> = (<span class="ruby-identifier">extra_params</span>[<span class="ruby-value">:node_name</span>] <span class="ruby-operator">||</span> <span class="ruby-identifier">klass</span>.<span class="ruby-identifier">class_variable_get</span>(<span class="ruby-value">:@@ooxml_tag_name</span>)).<span class="ruby-identifier">to_s</span>
|
|
345
|
-
<span class="ruby-identifier">accessor</span> = (<span class="ruby-identifier">extra_params</span>[<span class="ruby-value">:accessor</span>] <span class="ruby-operator">||</span> <span class="ruby-identifier">accessorize</span>(<span class="ruby-identifier">child_node_name</span>)).<span class="ruby-identifier">to_sym</span>
|
|
346
|
-
|
|
347
|
-
<span class="ruby-identifier">child_nodes</span>[<span class="ruby-identifier">child_node_name</span>] = {
|
|
348
|
-
<span class="ruby-value">:class</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">klass</span>,
|
|
349
|
-
<span class="ruby-value">:is_array</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">extra_params</span>[<span class="ruby-value">:collection</span>],
|
|
350
|
-
<span class="ruby-value">:accessor</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">accessor</span>
|
|
351
|
-
}
|
|
352
|
-
|
|
353
|
-
<span class="ruby-keyword">if</span> <span class="ruby-identifier">extra_params</span>[<span class="ruby-value">:collection</span>] <span class="ruby-operator">==</span> <span class="ruby-value">:with_count</span> <span class="ruby-keyword">then</span>
|
|
354
|
-
<span class="ruby-identifier">define_attribute</span>(<span class="ruby-value">:count</span>, <span class="ruby-value">:int</span>, <span class="ruby-value">:required</span> =<span class="ruby-operator">></span> <span class="ruby-keyword">true</span>)
|
|
355
|
-
<span class="ruby-keyword">end</span>
|
|
356
|
-
|
|
357
|
-
<span class="ruby-keyword">self</span>.<span class="ruby-identifier">send</span>(<span class="ruby-value">:attr_accessor</span>, <span class="ruby-identifier">accessor</span>)
|
|
358
|
-
<span class="ruby-keyword">end</span></pre>
|
|
359
|
-
</div>
|
|
360
|
-
|
|
361
|
-
</div>
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
</div>
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
<div id="method-c-define_element_name" class="method-detail ">
|
|
370
|
-
|
|
371
|
-
<div class="method-heading">
|
|
372
|
-
<span class="method-name">define_element_name</span><span
|
|
373
|
-
class="method-args">(element_name)</span>
|
|
374
|
-
|
|
375
|
-
<span class="method-click-advice">click to toggle source</span>
|
|
376
|
-
|
|
377
|
-
</div>
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
<div class="method-description">
|
|
381
|
-
|
|
382
|
-
<p>Defines the name of the element that represents the current OOXML object.
|
|
383
|
-
Should only be used once per object. In case of different objects
|
|
384
|
-
represented by the same class in different parts of OOXML tree,
|
|
385
|
-
<code>:node_name</code> extra parameter can be used to override the
|
|
386
|
-
default element name.</p>
|
|
387
|
-
|
|
388
|
-
<h3 id="method-c-define_element_name-label-Parameters">Parameters<span><a href="#method-c-define_element_name-label-Parameters">¶</a> <a href="#documentation">↑</a></span></h3>
|
|
389
|
-
<ul><li>
|
|
390
|
-
<p><code>element_name</code></p>
|
|
391
|
-
</li></ul>
|
|
392
|
-
|
|
393
|
-
<h4 id="method-c-define_element_name-label-Examples">Examples<span><a href="#method-c-define_element_name-label-Examples">¶</a> <a href="#documentation">↑</a></span></h4>
|
|
394
|
-
|
|
395
|
-
<pre>define_element_name 'externalReference'</pre>
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
<div class="method-source-code" id="define_element_name-source">
|
|
401
|
-
<pre><span class="ruby-comment"># File lib/rubyXL/objects/ooxml_object.rb, line 122</span>
|
|
402
|
-
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">define_element_name</span>(<span class="ruby-identifier">element_name</span>)
|
|
403
|
-
<span class="ruby-keyword">self</span>.<span class="ruby-identifier">class_variable_set</span>(<span class="ruby-value">:@@ooxml_tag_name</span>, <span class="ruby-identifier">element_name</span>)
|
|
404
|
-
<span class="ruby-keyword">end</span></pre>
|
|
405
|
-
</div>
|
|
406
|
-
|
|
407
|
-
</div>
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
</div>
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
<div id="method-c-new" class="method-detail ">
|
|
416
|
-
|
|
417
|
-
<div class="method-heading">
|
|
418
|
-
<span class="method-name">new</span><span
|
|
419
|
-
class="method-args">(params = {})</span>
|
|
420
|
-
|
|
421
|
-
<span class="method-click-advice">click to toggle source</span>
|
|
422
|
-
|
|
423
|
-
</div>
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
<div class="method-description">
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
<div class="method-source-code" id="new-source">
|
|
434
|
-
<pre><span class="ruby-comment"># File lib/rubyXL/objects/ooxml_object.rb, line 188</span>
|
|
435
|
-
<span class="ruby-keyword">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">params</span> = {})
|
|
436
|
-
<span class="ruby-identifier">obtain_class_variable</span>(<span class="ruby-value">:@@ooxml_attributes</span>).<span class="ruby-identifier">each_value</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span>
|
|
437
|
-
<span class="ruby-identifier">instance_variable_set</span>(<span class="ruby-node">"@#{v[:accessor]}"</span>, <span class="ruby-identifier">params</span>[<span class="ruby-identifier">v</span>[<span class="ruby-value">:accessor</span>]])
|
|
438
|
-
}
|
|
439
|
-
|
|
440
|
-
<span class="ruby-identifier">obtain_class_variable</span>(<span class="ruby-value">:@@ooxml_child_nodes</span>).<span class="ruby-identifier">each_value</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span>
|
|
441
|
-
|
|
442
|
-
<span class="ruby-identifier">initial_value</span> =
|
|
443
|
-
<span class="ruby-keyword">if</span> <span class="ruby-identifier">params</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">v</span>[<span class="ruby-value">:accessor</span>]) <span class="ruby-keyword">then</span> <span class="ruby-identifier">params</span>[<span class="ruby-identifier">v</span>[<span class="ruby-value">:accessor</span>]]
|
|
444
|
-
<span class="ruby-keyword">elsif</span> <span class="ruby-identifier">v</span>[<span class="ruby-value">:is_array</span>] <span class="ruby-keyword">then</span> []
|
|
445
|
-
<span class="ruby-keyword">else</span> <span class="ruby-keyword">nil</span>
|
|
446
|
-
<span class="ruby-keyword">end</span>
|
|
447
|
-
|
|
448
|
-
<span class="ruby-identifier">instance_variable_set</span>(<span class="ruby-node">"@#{v[:accessor]}"</span>, <span class="ruby-identifier">initial_value</span>)
|
|
449
|
-
}
|
|
450
|
-
|
|
451
|
-
<span class="ruby-identifier">instance_variable_set</span>(<span class="ruby-string">"@count"</span>, <span class="ruby-value">0</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">obtain_class_variable</span>(<span class="ruby-value">:@@ooxml_countable</span>, <span class="ruby-keyword">false</span>)
|
|
452
|
-
<span class="ruby-keyword">end</span></pre>
|
|
453
|
-
</div>
|
|
454
|
-
|
|
455
|
-
</div>
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
</div>
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
<div id="method-c-obtain_class_variable" class="method-detail ">
|
|
464
|
-
|
|
465
|
-
<div class="method-heading">
|
|
466
|
-
<span class="method-name">obtain_class_variable</span><span
|
|
467
|
-
class="method-args">(var_name, default = {})</span>
|
|
468
|
-
|
|
469
|
-
<span class="method-click-advice">click to toggle source</span>
|
|
470
|
-
|
|
471
|
-
</div>
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
<div class="method-description">
|
|
475
|
-
|
|
476
|
-
<p>Get the value of a [sub]class variable if it exists, or create the
|
|
477
|
-
respective variable with the passed-in <code>default</code> (or +{}+, if
|
|
478
|
-
not specified)</p>
|
|
479
|
-
|
|
480
|
-
<p>Throughout this class, we are setting class variables through explicit
|
|
481
|
-
method calls rather than by directly addressing the name of the variable
|
|
482
|
-
because of context issues: addressing variable by name creates it in the
|
|
483
|
-
context of defining class, while calling the setter/getter method addresses
|
|
484
|
-
it in the context of descendant class, which is what we need.</p>
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
<div class="method-source-code" id="obtain_class_variable-source">
|
|
490
|
-
<pre><span class="ruby-comment"># File lib/rubyXL/objects/ooxml_object.rb, line 15</span>
|
|
491
|
-
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">obtain_class_variable</span>(<span class="ruby-identifier">var_name</span>, <span class="ruby-identifier">default</span> = {})
|
|
492
|
-
<span class="ruby-keyword">if</span> <span class="ruby-identifier">class_variable_defined?</span>(<span class="ruby-identifier">var_name</span>) <span class="ruby-keyword">then</span>
|
|
493
|
-
<span class="ruby-keyword">self</span>.<span class="ruby-identifier">class_variable_get</span>(<span class="ruby-identifier">var_name</span>)
|
|
494
|
-
<span class="ruby-keyword">else</span>
|
|
495
|
-
<span class="ruby-keyword">self</span>.<span class="ruby-identifier">class_variable_set</span>(<span class="ruby-identifier">var_name</span>, <span class="ruby-identifier">default</span>)
|
|
496
|
-
<span class="ruby-keyword">end</span>
|
|
497
|
-
<span class="ruby-keyword">end</span></pre>
|
|
498
|
-
</div>
|
|
499
|
-
|
|
500
|
-
</div>
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
</div>
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
<div id="method-c-parse" class="method-detail ">
|
|
509
|
-
|
|
510
|
-
<div class="method-heading">
|
|
511
|
-
<span class="method-name">parse</span><span
|
|
512
|
-
class="method-args">(node)</span>
|
|
513
|
-
|
|
514
|
-
<span class="method-click-advice">click to toggle source</span>
|
|
515
|
-
|
|
516
|
-
</div>
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
<div class="method-description">
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
<div class="method-source-code" id="parse-source">
|
|
527
|
-
<pre><span class="ruby-comment"># File lib/rubyXL/objects/ooxml_object.rb, line 207</span>
|
|
528
|
-
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">node</span>)
|
|
529
|
-
<span class="ruby-identifier">node</span> = <span class="ruby-constant">Nokogiri</span><span class="ruby-operator">::</span><span class="ruby-constant">XML</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">node</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">node</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">IO</span>) <span class="ruby-operator">||</span> <span class="ruby-identifier">node</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">String</span>)
|
|
530
|
-
|
|
531
|
-
<span class="ruby-keyword">if</span> <span class="ruby-identifier">node</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Nokogiri</span><span class="ruby-operator">::</span><span class="ruby-constant">XML</span><span class="ruby-operator">::</span><span class="ruby-constant">Document</span>) <span class="ruby-keyword">then</span>
|
|
532
|
-
<span class="ruby-comment"># @namespaces = node.namespaces
|
|
533
|
-
<span class="ruby-identifier">node</span> = <span class="ruby-identifier">node</span>.<span class="ruby-identifier">root</span>
|
|
534
|
-
<span class="ruby-comment"># ignorable_attr = node.attributes['Ignorable']
|
|
535
|
-
<span class="ruby-comment"># @ignorables << ignorable_attr.value if ignorable_attr
|
|
536
|
-
<span class="ruby-keyword">end</span>
|
|
537
|
-
|
|
538
|
-
<span class="ruby-identifier">obj</span> = <span class="ruby-keyword">self</span>.<span class="ruby-identifier">new</span>
|
|
539
|
-
|
|
540
|
-
<span class="ruby-identifier">known_attributes</span> = <span class="ruby-identifier">obtain_class_variable</span>(<span class="ruby-value">:@@ooxml_attributes</span>)
|
|
541
|
-
|
|
542
|
-
<span class="ruby-identifier">content_params</span> = <span class="ruby-identifier">known_attributes</span>[<span class="ruby-string">'_'</span>]
|
|
543
|
-
<span class="ruby-identifier">process_attribute</span>(<span class="ruby-identifier">obj</span>, <span class="ruby-identifier">node</span>.<span class="ruby-identifier">text</span>, <span class="ruby-identifier">content_params</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">content_params</span>
|
|
544
|
-
|
|
545
|
-
<span class="ruby-identifier">node</span>.<span class="ruby-identifier">attributes</span>.<span class="ruby-identifier">each_pair</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">attr_name</span>, <span class="ruby-identifier">attr</span><span class="ruby-operator">|</span>
|
|
546
|
-
<span class="ruby-identifier">attr_name</span> = <span class="ruby-keyword">if</span> <span class="ruby-identifier">attr</span>.<span class="ruby-identifier">namespace</span> <span class="ruby-keyword">then</span> <span class="ruby-node">"#{attr.namespace.prefix}:#{attr.name}"</span>
|
|
547
|
-
<span class="ruby-keyword">else</span> <span class="ruby-identifier">attr</span>.<span class="ruby-identifier">name</span>
|
|
548
|
-
<span class="ruby-keyword">end</span>
|
|
549
|
-
|
|
550
|
-
<span class="ruby-identifier">attr_params</span> = <span class="ruby-identifier">known_attributes</span>[<span class="ruby-identifier">attr_name</span>]
|
|
551
|
-
|
|
552
|
-
<span class="ruby-keyword">next</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">attr_params</span>.<span class="ruby-identifier">nil?</span>
|
|
553
|
-
<span class="ruby-comment"># raise "Unknown attribute: #{attr_name}" if attr_params.nil?
|
|
554
|
-
<span class="ruby-identifier">process_attribute</span>(<span class="ruby-identifier">obj</span>, <span class="ruby-identifier">attr</span>.<span class="ruby-identifier">value</span>, <span class="ruby-identifier">attr_params</span>)
|
|
555
|
-
}
|
|
556
|
-
|
|
557
|
-
<span class="ruby-identifier">known_child_nodes</span> = <span class="ruby-identifier">obtain_class_variable</span>(<span class="ruby-value">:@@ooxml_child_nodes</span>)
|
|
558
|
-
|
|
559
|
-
<span class="ruby-keyword">unless</span> <span class="ruby-identifier">known_child_nodes</span>.<span class="ruby-identifier">empty?</span>
|
|
560
|
-
<span class="ruby-identifier">node</span>.<span class="ruby-identifier">element_children</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">child_node</span><span class="ruby-operator">|</span>
|
|
561
|
-
|
|
562
|
-
<span class="ruby-identifier">child_node_name</span> = <span class="ruby-keyword">if</span> <span class="ruby-identifier">child_node</span>.<span class="ruby-identifier">namespace</span>.<span class="ruby-identifier">prefix</span> <span class="ruby-keyword">then</span>
|
|
563
|
-
<span class="ruby-node">"#{child_node.namespace.prefix}:#{child_node.name}"</span>
|
|
564
|
-
<span class="ruby-keyword">else</span> <span class="ruby-identifier">child_node</span>.<span class="ruby-identifier">name</span>
|
|
565
|
-
<span class="ruby-keyword">end</span>
|
|
566
|
-
|
|
567
|
-
<span class="ruby-identifier">child_node_params</span> = <span class="ruby-identifier">known_child_nodes</span>[<span class="ruby-identifier">child_node_name</span>]
|
|
568
|
-
<span class="ruby-identifier">raise</span> <span class="ruby-node">"Unknown child node: #{child_node_name}"</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">child_node_params</span>.<span class="ruby-identifier">nil?</span>
|
|
569
|
-
<span class="ruby-identifier">parsed_object</span> = <span class="ruby-identifier">child_node_params</span>[<span class="ruby-value">:class</span>].<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">child_node</span>)
|
|
570
|
-
<span class="ruby-keyword">if</span> <span class="ruby-identifier">child_node_params</span>[<span class="ruby-value">:is_array</span>] <span class="ruby-keyword">then</span>
|
|
571
|
-
<span class="ruby-identifier">index</span> = <span class="ruby-identifier">parsed_object</span>.<span class="ruby-identifier">index_in_collection</span>
|
|
572
|
-
<span class="ruby-identifier">collection</span> = <span class="ruby-identifier">obj</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">child_node_params</span>[<span class="ruby-value">:accessor</span>])
|
|
573
|
-
<span class="ruby-keyword">if</span> <span class="ruby-identifier">index</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-keyword">then</span>
|
|
574
|
-
<span class="ruby-identifier">collection</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">parsed_object</span>
|
|
575
|
-
<span class="ruby-keyword">else</span>
|
|
576
|
-
<span class="ruby-identifier">collection</span>[<span class="ruby-identifier">index</span>] = <span class="ruby-identifier">parsed_object</span>
|
|
577
|
-
<span class="ruby-keyword">end</span>
|
|
578
|
-
<span class="ruby-keyword">else</span>
|
|
579
|
-
<span class="ruby-identifier">obj</span>.<span class="ruby-identifier">send</span>(<span class="ruby-node">"#{child_node_params[:accessor]}="</span>, <span class="ruby-identifier">parsed_object</span>)
|
|
580
|
-
<span class="ruby-keyword">end</span>
|
|
581
|
-
}
|
|
582
|
-
<span class="ruby-keyword">end</span>
|
|
583
|
-
|
|
584
|
-
<span class="ruby-identifier">obj</span>
|
|
585
|
-
<span class="ruby-keyword">end</span></pre>
|
|
586
|
-
</div>
|
|
587
|
-
|
|
588
|
-
</div>
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
</div>
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
<div id="method-c-set_countable" class="method-detail ">
|
|
597
|
-
|
|
598
|
-
<div class="method-heading">
|
|
599
|
-
<span class="method-name">set_countable</span><span
|
|
600
|
-
class="method-args">()</span>
|
|
601
|
-
|
|
602
|
-
<span class="method-click-advice">click to toggle source</span>
|
|
603
|
-
|
|
604
|
-
</div>
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
<div class="method-description">
|
|
608
|
-
|
|
609
|
-
<p>TODO# This method will eventually be obsoleted.</p>
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
<div class="method-source-code" id="set_countable-source">
|
|
615
|
-
<pre><span class="ruby-comment"># File lib/rubyXL/objects/ooxml_object.rb, line 127</span>
|
|
616
|
-
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">set_countable</span>
|
|
617
|
-
<span class="ruby-keyword">self</span>.<span class="ruby-identifier">class_variable_set</span>(<span class="ruby-value">:@@ooxml_countable</span>, <span class="ruby-keyword">true</span>)
|
|
618
|
-
<span class="ruby-keyword">self</span>.<span class="ruby-identifier">send</span>(<span class="ruby-value">:attr_accessor</span>, <span class="ruby-value">:count</span>)
|
|
619
|
-
<span class="ruby-keyword">end</span></pre>
|
|
620
|
-
</div>
|
|
621
|
-
|
|
622
|
-
</div>
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
</div>
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
</section>
|
|
631
|
-
|
|
632
|
-
<section id="public-instance-5Buntitled-5D-method-details" class="method-section">
|
|
633
|
-
<header>
|
|
634
|
-
<h3>Public Instance Methods</h3>
|
|
635
|
-
</header>
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
<div id="method-i-before_write_xml" class="method-detail ">
|
|
639
|
-
|
|
640
|
-
<div class="method-heading">
|
|
641
|
-
<span class="method-name">before_write_xml</span><span
|
|
642
|
-
class="method-args">()</span>
|
|
643
|
-
|
|
644
|
-
<span class="method-click-advice">click to toggle source</span>
|
|
645
|
-
|
|
646
|
-
</div>
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
<div class="method-description">
|
|
650
|
-
|
|
651
|
-
<p>Subclass provided filter to perform last-minute operations (cleanup, count,
|
|
652
|
-
etc.) immediately prior to write, along with option to terminate the actual
|
|
653
|
-
write if <code>false</code> is returned (for example, to avoid writing the
|
|
654
|
-
collection’s root node if the collection is empty).</p>
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
<div class="method-source-code" id="before_write_xml-source">
|
|
660
|
-
<pre><span class="ruby-comment"># File lib/rubyXL/objects/ooxml_object.rb, line 282</span>
|
|
661
|
-
<span class="ruby-keyword">def</span> <span class="ruby-identifier">before_write_xml</span>
|
|
662
|
-
<span class="ruby-identifier">child_nodes</span> = <span class="ruby-identifier">obtain_class_variable</span>(<span class="ruby-value">:@@ooxml_child_nodes</span>)
|
|
663
|
-
<span class="ruby-identifier">child_nodes</span>.<span class="ruby-identifier">each_pair</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">child_node_name</span>, <span class="ruby-identifier">child_node_params</span><span class="ruby-operator">|</span>
|
|
664
|
-
<span class="ruby-keyword">self</span>.<span class="ruby-identifier">count</span> = <span class="ruby-keyword">self</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">child_node_params</span>[<span class="ruby-value">:accessor</span>]).<span class="ruby-identifier">size</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">child_node_params</span>[<span class="ruby-value">:is_array</span>] <span class="ruby-operator">==</span> <span class="ruby-value">:with_count</span>
|
|
665
|
-
}
|
|
666
|
-
<span class="ruby-keyword">true</span>
|
|
667
|
-
<span class="ruby-keyword">end</span></pre>
|
|
668
|
-
</div>
|
|
669
|
-
|
|
670
|
-
</div>
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
</div>
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
<div id="method-i-dup" class="method-detail ">
|
|
679
|
-
|
|
680
|
-
<div class="method-heading">
|
|
681
|
-
<span class="method-name">dup</span><span
|
|
682
|
-
class="method-args">()</span>
|
|
683
|
-
|
|
684
|
-
<span class="method-click-advice">click to toggle source</span>
|
|
685
|
-
|
|
686
|
-
</div>
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
<div class="method-description">
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
<div class="method-calls-super">
|
|
695
|
-
Calls superclass method
|
|
696
|
-
|
|
697
|
-
</div>
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
<div class="method-source-code" id="dup-source">
|
|
702
|
-
<pre><span class="ruby-comment"># File lib/rubyXL/objects/ooxml_object.rb, line 266</span>
|
|
703
|
-
<span class="ruby-keyword">def</span> <span class="ruby-identifier">dup</span>
|
|
704
|
-
<span class="ruby-identifier">new_copy</span> = <span class="ruby-keyword">super</span>
|
|
705
|
-
<span class="ruby-identifier">new_copy</span>.<span class="ruby-identifier">count</span> = <span class="ruby-value">0</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">obtain_class_variable</span>(<span class="ruby-value">:@@ooxml_countable</span>, <span class="ruby-keyword">false</span>)
|
|
706
|
-
<span class="ruby-identifier">new_copy</span>
|
|
707
|
-
<span class="ruby-keyword">end</span></pre>
|
|
708
|
-
</div>
|
|
709
|
-
|
|
710
|
-
</div>
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
</div>
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
<div id="method-i-index_in_collection" class="method-detail ">
|
|
719
|
-
|
|
720
|
-
<div class="method-heading">
|
|
721
|
-
<span class="method-name">index_in_collection</span><span
|
|
722
|
-
class="method-args">()</span>
|
|
723
|
-
|
|
724
|
-
<span class="method-click-advice">click to toggle source</span>
|
|
725
|
-
|
|
726
|
-
</div>
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
<div class="method-description">
|
|
730
|
-
|
|
731
|
-
<p>Prototype method. For sparse collections (<code>Rows</code>,
|
|
732
|
-
<code>Cells</code>, etc.) must return index at which this object is
|
|
733
|
-
expected to reside in the collection. If <code>nil</code> is returned, then
|
|
734
|
-
object is simply added to the end of the collection.</p>
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
<div class="method-source-code" id="index_in_collection-source">
|
|
740
|
-
<pre><span class="ruby-comment"># File lib/rubyXL/objects/ooxml_object.rb, line 275</span>
|
|
741
|
-
<span class="ruby-keyword">def</span> <span class="ruby-identifier">index_in_collection</span>
|
|
742
|
-
<span class="ruby-keyword">nil</span>
|
|
743
|
-
<span class="ruby-keyword">end</span></pre>
|
|
744
|
-
</div>
|
|
745
|
-
|
|
746
|
-
</div>
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
</div>
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
<div id="method-i-write_xml" class="method-detail ">
|
|
755
|
-
|
|
756
|
-
<div class="method-heading">
|
|
757
|
-
<span class="method-name">write_xml</span><span
|
|
758
|
-
class="method-args">(xml = nil, node_name_override = nil)</span>
|
|
759
|
-
|
|
760
|
-
<span class="method-click-advice">click to toggle source</span>
|
|
761
|
-
|
|
762
|
-
</div>
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
<div class="method-description">
|
|
766
|
-
|
|
767
|
-
<p>Recursively write the OOXML object and all its children out as
|
|
768
|
-
Nokogiri::XML. Immediately before the actual generation,
|
|
769
|
-
+before_write_xml()+ is called to perform last-minute cleanup and
|
|
770
|
-
validation operations; if it returns <code>false</code>, an empty string is
|
|
771
|
-
returned (rather than <code>nil</code>, so Nokogiri::XML’s
|
|
772
|
-
<code>&lt;&lt;</code> operator can be used without additional
|
|
773
|
-
<code>nil</code> checking)</p>
|
|
774
|
-
|
|
775
|
-
<h3 id="method-i-write_xml-label-Parameters">Parameters<span><a href="#method-i-write_xml-label-Parameters">¶</a> <a href="#documentation">↑</a></span></h3>
|
|
776
|
-
<ul><li>
|
|
777
|
-
<p><code>xml</code> - Base Nokogiri::XML object used for building. If omitted,
|
|
778
|
-
a blank document will be generated.</p>
|
|
779
|
-
</li><li>
|
|
780
|
-
<p><code>node_name_override</code> - if present, is used instead of the
|
|
781
|
-
default element name for this object provided by
|
|
782
|
-
<code>define_element_name</code></p>
|
|
783
|
-
</li></ul>
|
|
784
|
-
|
|
785
|
-
<h4 id="method-i-write_xml-label-Examples">Examples<span><a href="#method-i-write_xml-label-Examples">¶</a> <a href="#documentation">↑</a></span></h4>
|
|
786
|
-
|
|
787
|
-
<pre>obj.write_xml</pre>
|
|
788
|
-
|
|
789
|
-
<p>Creates a new Nokogiti::XML and</p>
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
<div class="method-source-code" id="write_xml-source">
|
|
795
|
-
<pre><span class="ruby-comment"># File lib/rubyXL/objects/ooxml_object.rb, line 142</span>
|
|
796
|
-
<span class="ruby-keyword">def</span> <span class="ruby-identifier">write_xml</span>(<span class="ruby-identifier">xml</span> = <span class="ruby-keyword">nil</span>, <span class="ruby-identifier">node_name_override</span> = <span class="ruby-keyword">nil</span>)
|
|
797
|
-
<span class="ruby-keyword">if</span> <span class="ruby-identifier">xml</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-keyword">then</span>
|
|
798
|
-
<span class="ruby-identifier">seed_xml</span> = <span class="ruby-constant">Nokogiri</span><span class="ruby-operator">::</span><span class="ruby-constant">XML</span>(<span class="ruby-string">'<?xml version = "1.0" standalone ="yes"?>'</span>)
|
|
799
|
-
<span class="ruby-identifier">seed_xml</span>.<span class="ruby-identifier">encoding</span> = <span class="ruby-string">'UTF-8'</span>
|
|
800
|
-
<span class="ruby-identifier">result</span> = <span class="ruby-keyword">self</span>.<span class="ruby-identifier">write_xml</span>(<span class="ruby-identifier">seed_xml</span>)
|
|
801
|
-
<span class="ruby-keyword">return</span> <span class="ruby-identifier">result</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">result</span> <span class="ruby-operator">==</span> <span class="ruby-string">''</span>
|
|
802
|
-
<span class="ruby-identifier">seed_xml</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">result</span>
|
|
803
|
-
<span class="ruby-keyword">return</span> <span class="ruby-identifier">seed_xml</span>.<span class="ruby-identifier">to_xml</span>({ <span class="ruby-value">:indent</span> =<span class="ruby-operator">></span> <span class="ruby-value">0</span>, <span class="ruby-value">:save_with</span> =<span class="ruby-operator">></span> <span class="ruby-constant">Nokogiri</span><span class="ruby-operator">::</span><span class="ruby-constant">XML</span><span class="ruby-operator">::</span><span class="ruby-constant">Node</span><span class="ruby-operator">::</span><span class="ruby-constant">SaveOptions</span><span class="ruby-operator">::</span><span class="ruby-constant">AS_XML</span> })
|
|
804
|
-
<span class="ruby-keyword">end</span>
|
|
805
|
-
|
|
806
|
-
<span class="ruby-keyword">return</span> <span class="ruby-string">''</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">before_write_xml</span>
|
|
807
|
-
|
|
808
|
-
<span class="ruby-identifier">attrs</span> = <span class="ruby-identifier">obtain_class_variable</span>(<span class="ruby-value">:@@ooxml_namespaces</span>).<span class="ruby-identifier">dup</span>
|
|
809
|
-
|
|
810
|
-
<span class="ruby-identifier">obtain_class_variable</span>(<span class="ruby-value">:@@ooxml_attributes</span>).<span class="ruby-identifier">each_pair</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">k</span>, <span class="ruby-identifier">v</span><span class="ruby-operator">|</span>
|
|
811
|
-
<span class="ruby-identifier">val</span> = <span class="ruby-keyword">self</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">v</span>[<span class="ruby-value">:accessor</span>])
|
|
812
|
-
|
|
813
|
-
<span class="ruby-keyword">if</span> <span class="ruby-identifier">val</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-keyword">then</span>
|
|
814
|
-
<span class="ruby-keyword">next</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">v</span>[<span class="ruby-value">:optional</span>]
|
|
815
|
-
<span class="ruby-identifier">val</span> = <span class="ruby-identifier">v</span>[<span class="ruby-value">:default</span>]
|
|
816
|
-
<span class="ruby-keyword">end</span>
|
|
817
|
-
|
|
818
|
-
<span class="ruby-identifier">val</span> = <span class="ruby-identifier">val</span> <span class="ruby-operator">&&</span>
|
|
819
|
-
<span class="ruby-keyword">case</span> <span class="ruby-identifier">v</span>[<span class="ruby-value">:attr_type</span>]
|
|
820
|
-
<span class="ruby-keyword">when</span> <span class="ruby-value">:bool</span> <span class="ruby-keyword">then</span> <span class="ruby-identifier">val</span> <span class="ruby-operator">?</span> <span class="ruby-string">'1'</span> <span class="ruby-operator">:</span> <span class="ruby-string">'0'</span>
|
|
821
|
-
<span class="ruby-keyword">when</span> <span class="ruby-value">:float</span> <span class="ruby-keyword">then</span> <span class="ruby-identifier">val</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp">/\.0*$/</span>, <span class="ruby-string">''</span>) <span class="ruby-comment"># Trim trailing zeroes
|
|
822
|
-
<span class="ruby-keyword">else</span> <span class="ruby-identifier">val</span>
|
|
823
|
-
<span class="ruby-keyword">end</span>
|
|
824
|
-
|
|
825
|
-
<span class="ruby-identifier">attrs</span>[<span class="ruby-identifier">k</span>] = <span class="ruby-identifier">val</span>
|
|
826
|
-
}
|
|
827
|
-
|
|
828
|
-
<span class="ruby-identifier">element_text</span> = <span class="ruby-identifier">attrs</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-string">'_'</span>)
|
|
829
|
-
<span class="ruby-identifier">elem</span> = <span class="ruby-identifier">xml</span>.<span class="ruby-identifier">create_element</span>(<span class="ruby-identifier">node_name_override</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">obtain_class_variable</span>(<span class="ruby-value">:@@ooxml_tag_name</span>), <span class="ruby-identifier">attrs</span>, <span class="ruby-identifier">element_text</span>)
|
|
830
|
-
<span class="ruby-identifier">child_nodes</span> = <span class="ruby-identifier">obtain_class_variable</span>(<span class="ruby-value">:@@ooxml_child_nodes</span>)
|
|
831
|
-
<span class="ruby-identifier">child_nodes</span>.<span class="ruby-identifier">each_pair</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">child_node_name</span>, <span class="ruby-identifier">child_node_params</span><span class="ruby-operator">|</span>
|
|
832
|
-
<span class="ruby-identifier">obj</span> = <span class="ruby-keyword">self</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">child_node_params</span>[<span class="ruby-value">:accessor</span>])
|
|
833
|
-
<span class="ruby-keyword">unless</span> <span class="ruby-identifier">obj</span>.<span class="ruby-identifier">nil?</span>
|
|
834
|
-
<span class="ruby-keyword">if</span> <span class="ruby-identifier">child_node_params</span>[<span class="ruby-value">:is_array</span>] <span class="ruby-keyword">then</span> <span class="ruby-identifier">obj</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">item</span><span class="ruby-operator">|</span> <span class="ruby-identifier">elem</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">item</span>.<span class="ruby-identifier">write_xml</span>(<span class="ruby-identifier">xml</span>, <span class="ruby-identifier">child_node_name</span>) <span class="ruby-keyword">unless</span> <span class="ruby-identifier">item</span>.<span class="ruby-identifier">nil?</span> }
|
|
835
|
-
<span class="ruby-keyword">else</span> <span class="ruby-identifier">elem</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">obj</span>.<span class="ruby-identifier">write_xml</span>(<span class="ruby-identifier">xml</span>, <span class="ruby-identifier">child_node_name</span>)
|
|
836
|
-
<span class="ruby-keyword">end</span>
|
|
837
|
-
<span class="ruby-keyword">end</span>
|
|
838
|
-
}
|
|
839
|
-
<span class="ruby-identifier">elem</span>
|
|
840
|
-
<span class="ruby-keyword">end</span></pre>
|
|
841
|
-
</div>
|
|
842
|
-
|
|
843
|
-
</div>
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
</div>
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
</section>
|
|
852
|
-
|
|
853
96
|
</section>
|
|
854
97
|
</main>
|
|
855
98
|
|