class RPath::Expression
An RPath
expression, given a graph, produces a value: a vertex, a vertex array, an attribute value, or a vertex’s content. @abstract
Public Instance Methods
eval(graph, adapter = nil)
click to toggle source
Evaluates the expression on a graph @param [Object] graph @param [RPath::Adapter, Symbol, nil] adapter
An {Adapter} instance, the id symbol given when the adapter was registered with {RPath.use}, or +nil+ if the adapter should be inferred.
@return [Object] @raise [RuntimeError]
The adapter can't be determined
@raise [ArgumentError]
+adapter+ is not an {Adapter}, Symbol, or nil
# File lib/rpath/expressions.rb, line 22 def eval(graph, adapter = nil) adapter = case adapter when RPath::Adapter adapter when Symbol Registry.find adapter when nil Registry.infer graph else raise ArgumentError, "Adapter must be an RPath::Adapter, Symbol, or nil" end unless adapter raise "Can't determine adapter" end do_eval graph, adapter end
Private Instance Methods
do_eval(graph, adapter)
click to toggle source
# File lib/rpath/expressions.rb, line 43 def do_eval(graph, adapter) raise NotImplementedError end