class CypherBuilder::OrderBy

Public Class Methods

new(first, *rest) click to toggle source
# File lib/cypher_builder/order_by.rb, line 15
def initialize(first, *rest)
  @parts = wrap(*([first] + rest))
end

Public Instance Methods

as_cypher(payload:, context:) click to toggle source
# File lib/cypher_builder/order_by.rb, line 19
def as_cypher(payload:, context:)
  rsv = MicroResolver.new(payload, context.add(self))
  
  ps = @parts.reduce([]) do |r, v|
    if r.last && AsIs === v
      r[0..-2] + [[r.last, rsv.execute(v)].join(' ')]
    else
      r + [rsv.execute(v)]
    end
  end
  sprintf('ORDER BY %s', ps.join(', '))
end