Class: Filigree::TourGuide

Inherits:
Object show all
Defined in:
lib/filigree/visitor.rb

Overview

This class can be used to call multiple visitors on an object at once. This could potentialy reduce the number of times data structures are traversed.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(*visitors) ⇒ TourGuide

Construct a tour guide for a list of visitors.

Parameters:

  • visitors (Visitor)

    List of visitors



186
187
188
# File 'lib/filigree/visitor.rb', line 186

def initialize(*visitors)
	@visitors = visitors
end

Instance Attribute Details

#visitorsObject (readonly)

Returns the value of attribute visitors.



172
173
174
# File 'lib/filigree/visitor.rb', line 172

def visitors
  @visitors
end

Instance Method Details

#call(*objects) ⇒ Array<Visitor>

Call each visitor on the specified objects.

Parameters:

  • objects (Object)

    Objects to be visited

Returns:



179
180
181
# File 'lib/filigree/visitor.rb', line 179

def call(*objects)
	@visitors.each { |visitor| visitor.(*objects) }
end