module Pureapi::MongoidModel

Provide methods (override, polymorphic) for use data handling # => comfortable with gem mongoid

Constants

MONGODB_COMPARISON_OPERATORS

Define constants Need upgrade with nlike operation

MONGODB_LOGICAL_OPERATORS

Public Instance Methods

column_names() click to toggle source
# File lib/pureapi/mongoid_model.rb, line 27
def column_names
  self.attribute_names
end
compconds(params = []) click to toggle source

Rewrite for comfortable with mongoid Comparsion operator conditions method Array params contains hash = {f, o, v} :f is column name :o is comparsion operator :v is value

# File lib/pureapi/mongoid_model.rb, line 37
def compconds(params = [])
  criterias = self

  queries = {}
  params.each do |param|
    if param[:o] == '='
      queries[param[:f]] = param[:v]
    else
      queries[param[:f]] = queries[param[:f]].is_a?(Hash) ? queries[param[:f]] : {}
      queries[param[:f]][MONGODB_COMPARISON_OPERATORS[Pureapi::Model::COMPARISON_OPERATORS_INVERT[param[:o]]]] = param[:v]
    end
  end

  return criterias.where(queries)
end
logicconds(params = []) click to toggle source

Comparsion operator conditions method Array params contains hash = {f, o, v} :f is column name :o is comparsion operator :v is value

# File lib/pureapi/mongoid_model.rb, line 58
def logicconds(params = [])
  criterias = self

  params.each do |param|
    if param[:o] == Pureapi::Model::LOGICAL_OPERATORS[:in]
      criterias = criterias.in(param[:f] => param[:v])
    end
  end

  return criterias.where({})
end