Module: Pureapi::MongoidModel

Extended by:
ActiveSupport::Concern
Includes:
Model
Defined in:
lib/pureapi/mongoid_model.rb

Overview

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

Constant Summary collapse

MONGODB_COMPARISON_OPERATORS =

Define constants Need upgrade with nlike operation

{
  ne: '$ne',
  gt: '$gt',
  lt: '$lt',
  gte: '$gte',
  lte: '$lte',
  like: '$regex',
  regex: '$regex',
}
MONGODB_LOGICAL_OPERATORS =
{
  in: '$in'
}

Constants included from Model

Pureapi::Model::COMPARISON_OPERATORS, Pureapi::Model::COMPARISON_OPERATORS_INVERT, Pureapi::Model::LOGICAL_OPERATORS, Pureapi::Model::LOGICAL_OPERATORS_INVERT, Pureapi::Model::NULL_OPERATORS, Pureapi::Model::NULL_OPERATOR_KEYS, Pureapi::Model::PERMIT_OPERATORS, Pureapi::Model::REFLECT_OPERATORS

Instance Method Summary collapse

Methods included from Model

#_include_search, #_json_fields, #_search_fields, #_self_search, #advanced_search, #as_json_fields, #asjson_fields, #compcond_columns, #compcond_fields, #compcond_match, #compcond_regexp, #compcond_regexp2nd, #compcond_search, #default_includes, #default_onlyasjsons, #full_search, #get_includes, #include_entities, #incond_columns, #json_method_includes, #json_methods, #of_entities, #paginate

Instance Method Details

#column_namesObject



27
28
29
# File 'lib/pureapi/mongoid_model.rb', line 27

def column_names
  self.attribute_names
end

#compconds(params = []) ⇒ Object

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



37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# 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 = []) ⇒ Object

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



58
59
60
61
62
63
64
65
66
67
68
# 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