class MongoQL::Stage::Sort

Attributes

ctx[RW]
fields[RW]

Public Class Methods

new(ctx, *fields) click to toggle source
# File lib/mongo_ql/stage/sort.rb, line 7
def initialize(ctx, *fields)
  @ctx = ctx
  @fields = fields.map do |field|
    case field
    when Expression::FieldNode
      field.asc
    when String, Symbol
      Expression::FieldNode.new(field).asc
    when Expression::Ascend, Expression::Descend
      field
    else
      raise ArgumentError, "#{field.inspect} must be in type [String, Symbol, Expression::FieldNode, Expression::Ascend, Expression::Descend]"
    end
  end
end

Public Instance Methods

to_ast() click to toggle source
# File lib/mongo_ql/stage/sort.rb, line 23
def to_ast
  {
    "$sort" => fields.inject({}) { |p, c| p.merge(c.to_ast) }
  }
end