Module: Coradoc::Visitor

Defined in:
lib/coradoc/visitor.rb

Overview

Document visitor pattern for traversing and processing document trees.

The visitor pattern enables clean separation of document traversal logic from processing logic. Visitors can be used for:

  • Document transformation

  • Content extraction

  • Validation

  • Custom rendering

Examples:

Basic visitor

class WordCounter < Coradoc::Visitor::Base
  attr_reader :count

  def initialize
    @count = 0
  end

  def visit_block(block)
    @count += block.content.to_s.split.length if block.content
    super
  end
end

counter = WordCounter.new
document.accept(counter)
puts counter.count

Defined Under Namespace

Classes: Base, Collector, Finder, Transformer

Constant Summary collapse

DISPATCH_TABLE =

Registry mapping CoreModel classes to visitor method names. CoreModel types self-register via register_visitor on load.

{}

Class Method Summary collapse

Class Method Details

.register_visitor(klass, method_name) ⇒ Object

Register a CoreModel class to a visitor method name. Called during CoreModel type definition.



38
39
40
# File 'lib/coradoc/visitor.rb', line 38

def self.register_visitor(klass, method_name)
  DISPATCH_TABLE[klass] = method_name
end