Module: Axlsx
- Defined in:
- lib/axlsx.rb,
lib/axlsx/package.rb,
lib/axlsx/version.rb,
lib/axlsx/util/cbf.rb,
lib/axlsx/drawing/pic.rb,
lib/axlsx/util/parser.rb,
lib/axlsx/drawing/axis.rb,
lib/axlsx/util/storage.rb,
lib/axlsx/doc_props/app.rb,
lib/axlsx/drawing/chart.rb,
lib/axlsx/drawing/title.rb,
lib/axlsx/stylesheet/xf.rb,
lib/axlsx/doc_props/core.rb,
lib/axlsx/drawing/marker.rb,
lib/axlsx/drawing/series.rb,
lib/axlsx/util/constants.rb,
lib/axlsx/drawing/drawing.rb,
lib/axlsx/drawing/scaling.rb,
lib/axlsx/drawing/view_3D.rb,
lib/axlsx/stylesheet/fill.rb,
lib/axlsx/stylesheet/font.rb,
lib/axlsx/util/validators.rb,
lib/axlsx/drawing/cat_axis.rb,
lib/axlsx/drawing/ser_axis.rb,
lib/axlsx/drawing/val_axis.rb,
lib/axlsx/stylesheet/color.rb,
lib/axlsx/drawing/hyperlink.rb,
lib/axlsx/rels/relationship.rb,
lib/axlsx/stylesheet/border.rb,
lib/axlsx/stylesheet/styles.rb,
lib/axlsx/workbook/workbook.rb,
lib/axlsx/drawing/bar_series.rb,
lib/axlsx/drawing/pie_series.rb,
lib/axlsx/rels/relationships.rb,
lib/axlsx/stylesheet/num_fmt.rb,
lib/axlsx/util/ms_off_crypto.rb,
lib/axlsx/drawing/line_series.rb,
lib/axlsx/content_type/default.rb,
lib/axlsx/drawing/bar_3D_chart.rb,
lib/axlsx/drawing/pie_3D_chart.rb,
lib/axlsx/drawing/series_title.rb,
lib/axlsx/stylesheet/border_pr.rb,
lib/axlsx/content_type/override.rb,
lib/axlsx/drawing/cat_axis_data.rb,
lib/axlsx/drawing/graphic_frame.rb,
lib/axlsx/drawing/line_3D_chart.rb,
lib/axlsx/drawing/scatter_chart.rb,
lib/axlsx/drawing/val_axis_data.rb,
lib/axlsx/stylesheet/cell_style.rb,
lib/axlsx/drawing/scatter_series.rb,
lib/axlsx/stylesheet/table_style.rb,
lib/axlsx/util/simple_typed_list.rb,
lib/axlsx/workbook/worksheet/col.rb,
lib/axlsx/workbook/worksheet/row.rb,
lib/axlsx/drawing/named_axis_data.rb,
lib/axlsx/drawing/one_cell_anchor.rb,
lib/axlsx/drawing/picture_locking.rb,
lib/axlsx/drawing/two_cell_anchor.rb,
lib/axlsx/stylesheet/pattern_fill.rb,
lib/axlsx/stylesheet/table_styles.rb,
lib/axlsx/workbook/worksheet/cell.rb,
lib/axlsx/stylesheet/gradient_fill.rb,
lib/axlsx/stylesheet/gradient_stop.rb,
lib/axlsx/workbook/worksheet/table.rb,
lib/axlsx/content_type/content_type.rb,
lib/axlsx/stylesheet/cell_alignment.rb,
lib/axlsx/stylesheet/cell_protection.rb,
lib/axlsx/workbook/worksheet/worksheet.rb,
lib/axlsx/workbook/shared_strings_table.rb,
lib/axlsx/stylesheet/table_style_element.rb,
lib/axlsx/workbook/worksheet/page_margins.rb,
lib/axlsx/workbook/worksheet/date_time_converter.rb
Overview
TODO: review cat, val and named access data to extend this and reduce replicated code.
Defined Under Namespace
Modules: Parser Classes: App, Axis, Bar3DChart, BarSeries, Border, BorderPr, CatAxis, CatAxisData, Cbf, Cell, CellAlignment, CellProtection, CellStyle, Chart, Col, Color, ContentType, Core, DataTypeValidator, DateTimeConverter, Default, Drawing, Fill, Font, GradientFill, GradientStop, GraphicFrame, Hyperlink, Line3DChart, LineSeries, Marker, MsOffCrypto, NamedAxisData, NumFmt, OneCellAnchor, Override, Package, PageMargins, PatternFill, Pic, PictureLocking, Pie3DChart, PieSeries, RegexValidator, Relationship, Relationships, RestrictionValidator, Row, Scaling, ScatterChart, ScatterSeries, SerAxis, Series, SeriesTitle, SharedStringsTable, Storage, Styles, Table, TableStyle, TableStyleElement, TableStyles, Title, TwoCellAnchor, ValAxis, ValAxisData, View3D, Workbook, Worksheet, Xf
Constant Summary collapse
- VERSION =
The version of the gem When using bunle exec rake and referencing the gem on github or locally it will use the gemspec, which preloads this constant for the gem’s version. We check to make sure that it has not already been loaded
"1.1.0"
- ENCODING =
XML Encoding
"UTF-8"
- XML_NS =
spreadsheetML namespace
"http://schemas.openxmlformats.org/spreadsheetml/2006/main"
- XML_NS_T =
content-types namespace
"http://schemas.openxmlformats.org/package/2006/content-types"
- APP_NS =
extended-properties namespace
"http://schemas.openxmlformats.org/officeDocument/2006/extended-properties"
- APP_NS_VT =
doc props namespace
"http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes"
- CORE_NS =
core properties namespace
"http://schemas.openxmlformats.org/package/2006/metadata/core-properties"
- CORE_NS_DC =
dc elements (core) namespace
"http://purl.org/dc/elements/1.1/"
- CORE_NS_DCMIT =
dcmit (core) namespcace
"http://purl.org/dc/dcmitype/"
- CORE_NS_DCT =
dc terms namespace
"http://purl.org/dc/terms/"
- CORE_NS_XSI =
xml schema namespace
"http://www.w3.org/2001/XMLSchema-instance"
- XML_NS_XDR =
spreadsheet drawing namespace
"http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing"
- XML_NS_A =
drawing namespace
"http://schemas.openxmlformats.org/drawingml/2006/main"
- XML_NS_C =
chart namespace
"http://schemas.openxmlformats.org/drawingml/2006/chart"
- XML_NS_R =
relationships namespace
"http://schemas.openxmlformats.org/officeDocument/2006/relationships"
- RELS_R =
relationships name space
"http://schemas.openxmlformats.org/package/2006/relationships"
- TABLE_R =
table rels namespace
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/table"
- WORKBOOK_R =
workbook rels namespace
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument"
- WORKSHEET_R =
worksheet rels namespace
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet"
- APP_R =
app rels namespace
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties"
- CORE_R =
core rels namespace
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/metadata/core-properties"
- STYLES_R =
styles rels namespace
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles"
- SHARED_STRINGS_R =
shared strings namespace
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings"
- DRAWING_R =
drawing rels namespace
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing"
- CHART_R =
chart rels namespace
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart"
- IMAGE_R =
image rels namespace
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/image"
- HYPERLINK_R =
image rels namespace
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink"
- TABLE_CT =
table content type
"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml"
- WORKBOOK_CT =
workbook content type
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml"
- APP_CT =
app content type
"application/vnd.openxmlformats-officedocument.extended-properties+xml"
- RELS_CT =
rels content type
"application/vnd.openxmlformats-package.relationships+xml"
- STYLES_CT =
styles content type
"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml"
- XML_CT =
xml content type
"application/xml"
- WORKSHEET_CT =
worksheet content type
"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml"
- SHARED_STRINGS_CT =
shared strings content type
"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml"
- CORE_CT =
core content type
"application/vnd.openxmlformats-package.core-properties+xml"
- CHART_CT =
chart content type
"application/vnd.openxmlformats-officedocument.drawingml.chart+xml"
- JPEG_CT =
jpeg content type
"image/jpeg"
- GIF_CT =
gif content type
"image/gif"
- PNG_CT =
png content type
"image/png"
- DRAWING_CT =
drawing content type
"application/vnd.openxmlformats-officedocument.drawing+xml"
- XML_EX =
xml content type extensions
"xml"
- JPEG_EX =
jpeg extension
"jpeg"
- GIF_EX =
gif extension
"gif"
- PNG_EX =
png extension
"png"
- RELS_EX =
rels content type extension
"rels"
- WORKBOOK_PN =
workbook part
"xl/workbook.xml"
- STYLES_PN =
styles part
"styles.xml"
- SHARED_STRINGS_PN =
shared_strings part
"sharedStrings.xml"
- APP_PN =
app part
"docProps/app.xml"
- CORE_PN =
core part
"docProps/core.xml"
- CONTENT_TYPES_PN =
content types part
"[Content_Types].xml"
- RELS_PN =
rels part
"_rels/.rels"
- WORKBOOK_RELS_PN =
workbook rels part
"xl/_rels/workbook.xml.rels"
- WORKSHEET_PN =
worksheet part
"worksheets/sheet%d.xml"
- WORKSHEET_RELS_PN =
worksheet rels part
"worksheets/_rels/sheet%d.xml.rels"
- DRAWING_PN =
drawing part
"drawings/drawing%d.xml"
- DRAWING_RELS_PN =
drawing rels part
"drawings/_rels/drawing%d.xml.rels"
- TABLE_PN =
drawing part
"tables/table%d.xml"
- CHART_PN =
chart part
"charts/chart%d.xml"
- IMAGE_PN =
chart part
"media/image%d.%s"
- SCHEMA_BASE =
location of schema files for validation
File.dirname(__FILE__)+'/../../schema/'
- APP_XSD =
App validation schema
SCHEMA_BASE + "shared-documentPropertiesExtended.xsd"
- CORE_XSD =
core validation schema
SCHEMA_BASE + "opc-coreProperties.xsd"
- CONTENT_TYPES_XSD =
content types validation schema
SCHEMA_BASE + "opc-contentTypes.xsd"
- RELS_XSD =
rels validation schema
SCHEMA_BASE + "opc-relationships.xsd"
- SML_XSD =
spreadsheetML validation schema
SCHEMA_BASE + "sml.xsd"
- DRAWING_XSD =
drawing validation schema
SCHEMA_BASE + "dml-spreadsheetDrawing.xsd"
- NUM_FMT_PERCENT =
number format id for pecentage formatting using the default formatting id.
9
- NUM_FMT_YYYYMMDD =
number format id for date format like 2011/11/13
100
- NUM_FMT_YYYYMMDDHHMMSS =
number format id for time format the creates 2011/11/13 12:23:10
101
- STYLE_THIN_BORDER =
cellXfs id for thin borders around the cell
1
- STYLE_DATE =
cellXfs id for default date styling
2
- ERR_RESTRICTION =
error messages RestrictionValidor
"Invalid Data: %s. %s must be one of %s."
- ERR_TYPE =
error message DataTypeValidator
"Invalid Data %s for %s. must be %s."
- ERR_REGEX =
error message for RegexValidator
"Invalid Data. %s does not match %s."
- ERR_SHEET_NAME_TOO_LONG =
error message for sheets that use a name which is longer than 31 bytes
"Your worksheet name '%s' is too long. Worksheet names must be 31 characters (bytes) or less"
- ERR_DUPLICATE_SHEET_NAME =
error message for duplicate sheet names
"There is already a worksheet in this workbook named '%s'. Please use a unique name"
Class Method Summary collapse
-
.cell_r(c_index, r_index) ⇒ String
The alpha(column)numeric(row) reference for this sell.
-
.cell_range(items) ⇒ Object
determines the cell range for the items provided.
-
.col_ref(index) ⇒ String
converts the column index into alphabetical values.
- .name_to_indices(name) ⇒ Object
-
.validate_boolean(v) ⇒ Object
Requires that the value is a form that can be evaluated as a boolean in an xml document.
-
.validate_content_type(v) ⇒ Object
Requires that the value is a valid content_type TABLE_CT, WORKBOOK_CT, APP_CT, RELS_CT, STYLES_CT, XML_CT, WORKSHEET_CT, SHARED_STRINGS_CT, CORE_CT, CHART_CT, DRAWING_CT are allowed.
-
.validate_float(v) ⇒ Object
Requires that the value is a Float.
-
.validate_gradient_type(v) ⇒ Object
Requires that the value is a gradient_type.
-
.validate_horizontal_alignment(v) ⇒ Object
Requires that the value is a valid horizontal_alignment :general, :left, :center, :right, :fill, :justify, :centerContinuous, :distributed are allowed.
-
.validate_int(v) ⇒ Object
Requires that the value is a Fixnum or Integer.
-
.validate_pattern_type(v) ⇒ Object
Requires that the value is valid pattern type.
-
.validate_relationship_type(v) ⇒ Object
Requires that the value is a valid relationship_type XML_NS_R, TABLE_R, WORKBOOK_R, WORKSHEET_R, APP_R, RELS_R, CORE_R, STYLES_R, CHART_R, DRAWING_R, IMAGE_R, HYPERLINK_R, SHARED_STRINGS_R are allowed.
-
.validate_scatter_style(v) ⇒ Object
Requires that the value is a valid scatterStyle must be one of :none | :line | :lineMarker | :marker | :smooth | :smoothMarker must be one of “none” | “line” | “lineMarker” | “marker” | “smooth” | “smoothMarker”.
-
.validate_string(v) ⇒ Object
Requires that the value is a String.
-
.validate_table_element_type(v) ⇒ Object
Requires that the value is a valid table element type :wholeTable, :headerRow, :totalRow, :firstColumn, :lastColumn, :firstRowStripe, :secondRowStripe, :firstColumnStripe, :secondColumnStripe, :firstHeaderCell, :lastHeaderCell, :firstTotalCell, :lastTotalCell, :firstSubtotalColumn, :secondSubtotalColumn, :thirdSubtotalColumn, :firstSubtotalRow, :secondSubtotalRow, :thirdSubtotalRow, :blankRow, :firstColumnSubheading, :secondColumnSubheading, :thirdColumnSubheading, :firstRowSubheading, :secondRowSubheading, :thirdRowSubheading, :pageFieldLabels, :pageFieldValues are allowed.
-
.validate_unsigned_int(v) ⇒ Boolean
Requires that the value is a Fixnum or Integer and is greater or equal to 0.
-
.validate_unsigned_numeric(v) ⇒ Boolean
Requires that the value is a Fixnum Integer or Float and is greater or equal to 0.
-
.validate_vertical_alignment(v) ⇒ Object
Requires that the value is a valid vertical_alignment :top, :center, :bottom, :justify, :distributed are allowed.
Class Method Details
.cell_r(c_index, r_index) ⇒ String
Returns The alpha(column)numeric(row) reference for this sell.
83 84 85 |
# File 'lib/axlsx.rb', line 83 def self.cell_r(c_index, r_index) Axlsx::col_ref(c_index).to_s << (r_index+1).to_s end |
.cell_range(items) ⇒ Object
determines the cell range for the items provided
49 50 51 52 53 54 55 |
# File 'lib/axlsx.rb', line 49 def self.cell_range(items) return "" unless items.first.is_a? Cell ref = "'#{items.first.row.worksheet.name}'!" + "#{items.first.r_abs}" ref += ":#{items.last.r_abs}" if items.size > 1 ref end |
.col_ref(index) ⇒ String
This follows the standard spreadsheet convention of naming columns A to Z, followed by AA to AZ etc.
converts the column index into alphabetical values.
70 71 72 73 74 75 76 77 78 |
# File 'lib/axlsx.rb', line 70 def self.col_ref(index) chars = [] while index >= 26 do chars << ((index % 26) + 65).chr index = index / 26 - 1 end chars << (index + 65).chr chars.reverse.join end |
.name_to_indices(name) ⇒ Object
57 58 59 60 61 62 63 64 65 |
# File 'lib/axlsx.rb', line 57 def self.name_to_indices(name) raise ArgumentError, 'invalid cell name' unless name.size > 1 v = name[/[A-Z]+/].reverse.chars.reduce({:base=>1, :i=>0}) do |val, c| val[:i] += ((c.bytes.first - 64) * val[:base]); val[:base] *= 26; val end [v[:i]-1, ((name[/[1-9][0-9]*/]).to_i)-1] end |
.validate_boolean(v) ⇒ Object
Requires that the value is a form that can be evaluated as a boolean in an xml document. The value must be an instance of Fixnum, String, Integer, Symbol, TrueClass or FalseClass and it must be one of 0, 1, “true”, “false”, :true, :false, true, false, “0”, or “1”
74 75 76 |
# File 'lib/axlsx/util/validators.rb', line 74 def self.validate_boolean(v) DataTypeValidator.validate(:boolean, [Fixnum, String, Integer, Symbol, TrueClass, FalseClass], v, lambda { |arg| [0, 1, "true", "false", :true, :false, true, false, "0", "1"].include?(arg) }) end |
.validate_content_type(v) ⇒ Object
Requires that the value is a valid content_type TABLE_CT, WORKBOOK_CT, APP_CT, RELS_CT, STYLES_CT, XML_CT, WORKSHEET_CT, SHARED_STRINGS_CT, CORE_CT, CHART_CT, DRAWING_CT are allowed
130 131 132 |
# File 'lib/axlsx/util/validators.rb', line 130 def self.validate_content_type(v) RestrictionValidator.validate :content_type, [TABLE_CT, WORKBOOK_CT, APP_CT, RELS_CT, STYLES_CT, XML_CT, WORKSHEET_CT, SHARED_STRINGS_CT, CORE_CT, CHART_CT, JPEG_CT, GIF_CT, PNG_CT, DRAWING_CT], v end |
.validate_float(v) ⇒ Object
Requires that the value is a Float
86 87 88 |
# File 'lib/axlsx/util/validators.rb', line 86 def self.validate_float(v) DataTypeValidator.validate :float, Float, v end |
.validate_gradient_type(v) ⇒ Object
Requires that the value is a gradient_type. valid types are :linear and :path
102 103 104 |
# File 'lib/axlsx/util/validators.rb', line 102 def self.validate_gradient_type(v) RestrictionValidator.validate :gradient_type, [:linear, :path], v end |
.validate_horizontal_alignment(v) ⇒ Object
Requires that the value is a valid horizontal_alignment :general, :left, :center, :right, :fill, :justify, :centerContinuous, :distributed are allowed
116 117 118 |
# File 'lib/axlsx/util/validators.rb', line 116 def self.validate_horizontal_alignment(v) RestrictionValidator.validate :horizontal_alignment, [:general, :left, :center, :right, :fill, :justify, :centerContinuous, :distributed], v end |
.validate_int(v) ⇒ Object
Requires that the value is a Fixnum or Integer
66 67 68 |
# File 'lib/axlsx/util/validators.rb', line 66 def self.validate_int(v) DataTypeValidator.validate :unsigned_int, [Fixnum, Integer], v end |
.validate_pattern_type(v) ⇒ Object
Requires that the value is valid pattern type. valid pattern types must be one of :none, :solid, :mediumGray, :darkGray, :lightGray, :darkHorizontal, :darkVertical, :darkDown, :darkUp, :darkGrid, :darkTrellis, :lightHorizontal, :lightVertical, :lightDown, :lightUp, :lightGrid, :lightTrellis, :gray125, or :gray0625.
94 95 96 97 |
# File 'lib/axlsx/util/validators.rb', line 94 def self.validate_pattern_type(v) RestrictionValidator.validate :pattern_type, [:none, :solid, :mediumGray, :darkGray, :lightGray, :darkHorizontal, :darkVertical, :darkDown, :darkUp, :darkGrid, :darkTrellis, :lightHorizontal, :lightVertical, :lightDown, :lightUp, :lightGrid, :lightTrellis, :gray125, :gray0625], v end |
.validate_relationship_type(v) ⇒ Object
Requires that the value is a valid relationship_type XML_NS_R, TABLE_R, WORKBOOK_R, WORKSHEET_R, APP_R, RELS_R, CORE_R, STYLES_R, CHART_R, DRAWING_R, IMAGE_R, HYPERLINK_R, SHARED_STRINGS_R are allowed
137 138 139 |
# File 'lib/axlsx/util/validators.rb', line 137 def self.validate_relationship_type(v) RestrictionValidator.validate :relationship_type, [XML_NS_R, TABLE_R, WORKBOOK_R, WORKSHEET_R, APP_R, RELS_R, CORE_R, STYLES_R, CHART_R, DRAWING_R, IMAGE_R, HYPERLINK_R, SHARED_STRINGS_R], v end |
.validate_scatter_style(v) ⇒ Object
Requires that the value is a valid scatterStyle must be one of :none | :line | :lineMarker | :marker | :smooth | :smoothMarker must be one of “none” | “line” | “lineMarker” | “marker” | “smooth” | “smoothMarker”
110 111 112 |
# File 'lib/axlsx/util/validators.rb', line 110 def self.validate_scatter_style(v) Axlsx::RestrictionValidator.validate "ScatterChart.scatterStyle", [:none, :line, :lineMarker, :marker, :smooth, :smoothMarker], v.to_sym end |
.validate_string(v) ⇒ Object
Requires that the value is a String
80 81 82 |
# File 'lib/axlsx/util/validators.rb', line 80 def self.validate_string(v) DataTypeValidator.validate :string, String, v end |
.validate_table_element_type(v) ⇒ Object
Requires that the value is a valid table element type :wholeTable, :headerRow, :totalRow, :firstColumn, :lastColumn, :firstRowStripe, :secondRowStripe, :firstColumnStripe, :secondColumnStripe, :firstHeaderCell, :lastHeaderCell, :firstTotalCell, :lastTotalCell, :firstSubtotalColumn, :secondSubtotalColumn, :thirdSubtotalColumn, :firstSubtotalRow, :secondSubtotalRow, :thirdSubtotalRow, :blankRow, :firstColumnSubheading, :secondColumnSubheading, :thirdColumnSubheading, :firstRowSubheading, :secondRowSubheading, :thirdRowSubheading, :pageFieldLabels, :pageFieldValues are allowed
144 145 146 |
# File 'lib/axlsx/util/validators.rb', line 144 def self.validate_table_element_type(v) RestrictionValidator.validate :table_element_type, [:wholeTable, :headerRow, :totalRow, :firstColumn, :lastColumn, :firstRowStripe, :secondRowStripe, :firstColumnStripe, :secondColumnStripe, :firstHeaderCell, :lastHeaderCell, :firstTotalCell, :lastTotalCell, :firstSubtotalColumn, :secondSubtotalColumn, :thirdSubtotalColumn, :firstSubtotalRow, :secondSubtotalRow, :thirdSubtotalRow, :blankRow, :firstColumnSubheading, :secondColumnSubheading, :thirdColumnSubheading, :firstRowSubheading, :secondRowSubheading, :thirdRowSubheading, :pageFieldLabels, :pageFieldValues], v end |
.validate_unsigned_int(v) ⇒ Boolean
Requires that the value is a Fixnum or Integer and is greater or equal to 0
52 53 54 |
# File 'lib/axlsx/util/validators.rb', line 52 def self.validate_unsigned_int(v) DataTypeValidator.validate(:unsigned_int, [Fixnum, Integer], v, lambda { |arg| arg.respond_to?(:>=) && arg >= 0 }) end |
.validate_unsigned_numeric(v) ⇒ Boolean
Requires that the value is a Fixnum Integer or Float and is greater or equal to 0
60 61 62 |
# File 'lib/axlsx/util/validators.rb', line 60 def self.validate_unsigned_numeric(v) DataTypeValidator.validate("Invalid column width", [Fixnum, Integer, Float], v, lambda { |arg| arg.respond_to?(:>=) && arg >= 0 }) end |
.validate_vertical_alignment(v) ⇒ Object
Requires that the value is a valid vertical_alignment :top, :center, :bottom, :justify, :distributed are allowed
123 124 125 |
# File 'lib/axlsx/util/validators.rb', line 123 def self.validate_vertical_alignment(v) RestrictionValidator.validate :vertical_alignment, [:top, :center, :bottom, :justify, :distributed], v end |