Class: ToSpreadsheet::Rule::Base

Inherits:
Object
  • Object
show all
Includes:
Selectors
Defined in:
lib/to_spreadsheet/rule/base.rb

Direct Known Subclasses

Container, DefaultValue, Format, Sheet, Workbook

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Selectors

#column_number_match?, #css_match, #css_match?, #each_cell, #query_match?, #range_contains?, #range_match, #row_number_match?

Constructor Details

#initialize(selector_type, selector_query, options) ⇒ Base

Returns a new instance of Base.



8
9
10
11
12
# File 'lib/to_spreadsheet/rule/base.rb', line 8

def initialize(selector_type, selector_query, options)
  @selector_type  = selector_type
  @selector_query = selector_query
  @options        = options
end

Instance Attribute Details

#optionsObject (readonly)

Returns the value of attribute options.



6
7
8
# File 'lib/to_spreadsheet/rule/base.rb', line 6

def options
  @options
end

#selector_queryObject (readonly)

Returns the value of attribute selector_query.



6
7
8
# File 'lib/to_spreadsheet/rule/base.rb', line 6

def selector_query
  @selector_query
end

#selector_typeObject (readonly)

Returns the value of attribute selector_type.



6
7
8
# File 'lib/to_spreadsheet/rule/base.rb', line 6

def selector_type
  @selector_type
end

Instance Method Details

#applies_to?(context, xml_or_xls_node) ⇒ Boolean

Returns:

  • (Boolean)


14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/to_spreadsheet/rule/base.rb', line 14

def applies_to?(context, xml_or_xls_node)
  return true if !selector_type
  node, entity = context.xml_node_and_xls_entity(xml_or_xls_node)
  sheet        = entity.is_a?(::Axlsx::Workbook) ? entity : (entity.respond_to?(:workbook) ? entity.workbook : entity.worksheet.workbook)
  doc          = context.to_xml_node(sheet)
  query_match?(
      selector_type:  selector_type,
      selector_query: selector_query,
      xml_document:   doc,
      xml_node:       node,
      xls_worksheet:  sheet,
      xls_entity:     entity
  )
end

#to_sObject



33
34
35
# File 'lib/to_spreadsheet/rule/base.rb', line 33

def to_s
  "Rule [#{type}, #{selector_type}, #{selector_query}, #{options}"
end

#typeObject



29
30
31
# File 'lib/to_spreadsheet/rule/base.rb', line 29

def type
  self.class.name.demodulize.underscore.to_sym
end