Module: Traversal::ActsAsTraversable::InstanceMethods

Defined in:
lib/traversal/acts_as_traversable.rb

Instance Method Summary collapse

Instance Method Details

#traverse(*relations) ⇒ Object

Shortcut method, simplified interface to Traversal::Description

Example

class TreeNode
  attr_accessor :siblings

  acts_as_traversable
end

t = TreeNode.new
t.traverse            # equivalent to Traversal::Description.new.traverse(t)
t.traverse(:siblings) # equivalent to Traversal::Description.new.traverse(t).follow(:siblings)


34
35
36
# File 'lib/traversal/acts_as_traversable.rb', line 34

def traverse(*relations)
  Traversal::Description.new.traverse(self).tap { |desc| desc.follow(*relations) unless relations.empty? }
end