class CypherBuilder::Rel

Public Class Methods

new(prefix, labels: [], from: nil, to: nil) click to toggle source
# File lib/cypher_builder/rel.rb, line 7
def initialize(prefix, labels: [], from: nil, to: nil)
  @prefix, @labels = prefix, ::Kernel.Array(labels)
  @from, @to = from, to
end

Public Instance Methods

as_cypher(payload:, context:) click to toggle source
# File lib/cypher_builder/rel.rb, line 12
def as_cypher(payload:, context:)
  ::Kernel.sprintf('%s-[%s]->%s',
                   (@from ? @from.as_cypher(payload: payload, context: context.add(self)) : '()'),
                   [@prefix, *@labels].compact.join(':'),
                   (@to ? @to.as_cypher(payload: payload, context: context.add(self)) : '()'))
end
from(node = nil) click to toggle source
# File lib/cypher_builder/rel.rb, line 19
def from(node = nil)
  return Field.new(@prefix, 'from') if node == nil
  Rel.new(@prefix, labels: @labels, from: node, to: @to)
end
method_missing(name, *_) click to toggle source
# File lib/cypher_builder/rel.rb, line 33
def method_missing(name, *_)
  Field.new(@prefix, name)
end
respond_to_missing?(name, include_private = false) click to toggle source
# File lib/cypher_builder/rel.rb, line 29
def respond_to_missing?(name, include_private = false)
  true
end
to(node = nil) click to toggle source
# File lib/cypher_builder/rel.rb, line 24
def to(node = nil)
  return Field.new(@prefix, 'to') if node == nil
  Rel.new(@prefix, labels: @labels, from: @from, to: node)
end