Class: DTC::Utils::Visitor::Forwarder

Inherits:
Object
  • Object
show all
Defined in:
lib/dtc/utils/visitor.rb

Overview

Forward visitor events to current value of ‘next_visitor`. Defaults to returning `true` for all `enter()`

Direct Known Subclasses

FilteringForwarder, Printer, Switcher

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(next_visitor = nil) ⇒ Forwarder

Returns a new instance of Forwarder.



17
18
19
# File 'lib/dtc/utils/visitor.rb', line 17

def initialize next_visitor = nil
  self.next_visitor = next_visitor if next_visitor
end

Instance Attribute Details

#next_visitorObject

Returns the value of attribute next_visitor.



16
17
18
# File 'lib/dtc/utils/visitor.rb', line 16

def next_visitor
  @next_visitor
end

Instance Method Details

#add(*args) ⇒ Object



23
24
25
# File 'lib/dtc/utils/visitor.rb', line 23

def add *args
  next_visitor.add(*args) if next_visitor
end

#enter(*args) ⇒ Object



20
21
22
# File 'lib/dtc/utils/visitor.rb', line 20

def enter *args
  next_visitor ? next_visitor.enter(*args) : true
end

#leaveObject



26
27
28
# File 'lib/dtc/utils/visitor.rb', line 26

def leave
  next_visitor.leave if next_visitor
end