class MongoidEmbedFinder::Projectors::Base

Public Instance Methods

operator() click to toggle source
# File lib/mongoid_embed_finder/projectors/base.rb, line 14
def operator
  raise NotImplementedError, "operator needs to be overriden"
end
project(fields = []) click to toggle source
# File lib/mongoid_embed_finder/projectors/base.rb, line 8
def project(fields = [])
  projection_with_fields = projection.merge(include_fields(fields))
  query.scope_parent(projection)
  query.execute.select(projection_with_fields)
end
projection() click to toggle source
# File lib/mongoid_embed_finder/projectors/base.rb, line 4
def projection
  { relation.key => { operator => query.child_criteria.selector }}
end

Private Instance Methods

include_fields(fields) click to toggle source
# File lib/mongoid_embed_finder/projectors/base.rb, line 20
def include_fields(fields)
  fields.inject({}) do
    |acc, name| acc.merge(name => 1)
  end
end