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



158
159
160
# File 'lib/filigree/visitor.rb', line 158

def initialize(*visitors)
  @visitors = visitors
end

Instance Attribute Details

#visitorsObject (readonly)

Returns the value of attribute visitors.



144
145
146
# File 'lib/filigree/visitor.rb', line 144

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:



151
152
153
# File 'lib/filigree/visitor.rb', line 151

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