class MongoQL::Expression::Projection

Attributes

expression[RW]
field[RW]

Public Class Methods

new(field, expression = 1) click to toggle source
# File lib/mongo_ql/expression/projection.rb, line 7
def initialize(field, expression = 1)
  @expression = case expression
                when 0, 1
                  expression
                when Expression::FieldNode
                  expression
                else
                  raise ArgumentError, "#{expression&.inspect} is not a valid project expression"
                end

  @field = case field
           when String, Symbol
             Expression::FieldNode.new(field)
           when Expression::FieldNode
             field
           else
             raise ArgumentError, "#{field&.inspect} is not a valid project field"
           end
end

Public Instance Methods

to_ast() click to toggle source
# File lib/mongo_ql/expression/projection.rb, line 27
def to_ast
  { field.to_s => expression }
end