class Axiom::Adapter::Arango::Visitor
Base class for relation specific visitors
Constants
- REGISTRY
Public Class Methods
build(relation, context = nil)
click to toggle source
Return visitor for relation and context
@param [Relation] relation @param [Visitor] context
@return [Visitor]
@api private
# File lib/axiom/adapter/arango/visitor.rb, line 47 def self.build(relation, context = nil) REGISTRY.fetch(relation.class).new(relation, context) end
run(relation)
click to toggle source
Return an AQL node from the relation
@param [Relation] relation
@return [AQL::Node]
@api private
# File lib/axiom/adapter/arango/visitor.rb, line 18 def self.run(relation) build(relation).root end
Private Class Methods
handle(klass)
click to toggle source
Register handler for the axiom relation
@param [Class] klass
@return [undefined]
@api private
# File lib/axiom/adapter/arango/visitor.rb, line 32 def self.handle(klass) REGISTRY[klass]=self end
Protected Instance Methods
depth()
click to toggle source
Return depth
@return [Integer]
@api private
# File lib/axiom/adapter/arango/visitor.rb, line 59 def depth context = self.context if context context.depth + 1 else 0 end end
Private Instance Methods
visit(relation, context = self)
click to toggle source
Return an AQL node from visiting axiom a given relation
@param [Relation] relation @param [Visitor] context
@return [AQL::Node]
@api private
# File lib/axiom/adapter/arango/visitor.rb, line 93 def visit(relation, context = self) visitor(relation, context).root end
visitor(relation, context = self)
click to toggle source
Return a visitor for the given relation
@param [Relation] relation @param [Visitor] context
@return [Visitor]
@api private
# File lib/axiom/adapter/arango/visitor.rb, line 80 def visitor(relation, context = self) self.class.build(relation, context) end