Class: Coradoc::Visitor::Collector

Inherits:
Base
  • Object
show all
Defined in:
lib/coradoc/visitor.rb

Overview

Visitor that collects matching elements

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from Base

#visit_abbreviation, #visit_annotation_block, #visit_array, #visit_bibliography, #visit_bibliography_entry, #visit_block, #visit_definition_item, #visit_definition_list, #visit_element_attribute, #visit_footnote, #visit_footnote_reference, #visit_image, #visit_inline_element, #visit_list_block, #visit_list_item, #visit_metadata, #visit_metadata_entry, #visit_structural_element, #visit_table, #visit_table_cell, #visit_table_row, #visit_term, #visit_toc, #visit_toc_entry, #visit_unknown

Constructor Details

#initialize(*types) ⇒ Collector

Returns a new instance of Collector.



200
201
202
203
# File 'lib/coradoc/visitor.rb', line 200

def initialize(*types)
  @types = types.flatten
  @items = []
end

Instance Attribute Details

#itemsObject (readonly)

Returns the value of attribute items.



198
199
200
# File 'lib/coradoc/visitor.rb', line 198

def items
  @items
end

Instance Method Details

#match?(element) ⇒ Boolean

Returns:

  • (Boolean)


205
206
207
208
209
# File 'lib/coradoc/visitor.rb', line 205

def match?(element)
  return true if @types.empty?

  @types.any? { |type| element.is_a?(type) }
end

#visit(element) ⇒ Object



211
212
213
214
# File 'lib/coradoc/visitor.rb', line 211

def visit(element)
  @items << element if match?(element)
  super
end