class MongoQL::Stage::Lookup::NestedPipelineVars

Attributes

vars[RW]

Public Class Methods

new() click to toggle source
# File lib/mongo_ql/stage/lookup.rb, line 8
def initialize
  @vars = {}
end

Public Instance Methods

get(name) click to toggle source
# File lib/mongo_ql/stage/lookup.rb, line 20
def get(name)
  vars["var_#{name}"] ||= Expression::FieldNode.new(name)
  Expression::FieldNode.new("$var_#{name}")
end
method_missing(m, *args, &block) click to toggle source
# File lib/mongo_ql/stage/lookup.rb, line 12
def method_missing(m, *args, &block)
  if is_setter?(m)
    set(m, args.first)
  else
    get(m)
  end
end
set(name, val) click to toggle source
# File lib/mongo_ql/stage/lookup.rb, line 25
def set(name, val)
  vars["var_#{name.to_s[0..-2]}"] = val
end

Private Instance Methods

is_setter?(method_name) click to toggle source
# File lib/mongo_ql/stage/lookup.rb, line 30
def is_setter?(method_name)
  method_name.to_s.end_with?("=")
end