Class: Coradoc::Visitor::Collector
Overview
Visitor that collects matching elements
Instance Attribute Summary collapse
-
#items ⇒ Object
readonly
Returns the value of attribute items.
Instance Method Summary collapse
-
#initialize(*types) ⇒ Collector
constructor
A new instance of Collector.
- #match?(element) ⇒ Boolean
- #visit(element) ⇒ Object
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
#items ⇒ Object (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
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 |