Module: Pureapi::PostgresModel
Overview
Provide methods (override, polymorphic) for use data handling # => comfortable when use postgresql
Defined Under Namespace
Modules: Operators
Constant Summary collapse
- REFLECT_OPERATORS =
Operators.constants.inject({}) do |memo, const_name| item = Operators.const_get(const_name) memo[item[:id]] = item[:is] memo end
- PERMIT_OPERATORS =
Operators.constants.inject({}) do |memo, const_name| item = Operators.const_get(const_name) memo[item[:id]] = item[:permit] memo end
Constants included from Model
Model::COMPARISON_OPERATORS, Model::COMPARISON_OPERATORS_INVERT, Model::LOGICAL_OPERATORS, Model::LOGICAL_OPERATORS_INVERT, Model::NULL_OPERATORS, Model::NULL_OPERATOR_KEYS
Instance Method Summary collapse
-
#_self_search(only_params) ⇒ Object
Search by params of attributes of model.
-
#compconds(params = []) ⇒ Object
Comparsion operator conditions method Array
params
contains hash = o, v :f is column name :o is comparsion operator :v is value.
Methods included from Model
#_include_search, #_json_fields, #_search_fields, #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, #logicconds, #of_entities, #paginate
Instance Method Details
#_self_search(only_params) ⇒ Object
Search by params of attributes of model
59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
# File 'lib/pureapi/postgres_model.rb', line 59 def _self_search only_params criterias = self only_params.each do |filter| case filter[:o] when Operators::EQ[:id], Operators::IN[:id] criterias = criterias.where(filter[:f] => filter[:v]) when Operators::ISNIL[:id], Operators::ISNNIL[:id] criterias = criterias.where("\"#{self.table_name}\".\"#{filter[:f]}\" #{REFLECT_OPERATORS[filter[:o]]}") else criterias = criterias.where("\"#{self.table_name}\".\"#{filter[:f]}\" #{REFLECT_OPERATORS[filter[:o]]} ?", filter[:v]) end end return criterias.where({}) end |
#compconds(params = []) ⇒ Object
Comparsion operator conditions method Array params
contains hash = o, v :f is column name :o is comparsion operator :v is value
44 45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/pureapi/postgres_model.rb', line 44 def compconds(params = []) criterias = self params.each do |param| if param[:o] == COMPARISON_OPERATORS[:eq] criterias = criterias.where(param[:f] => param[:v]) else criterias = criterias.where("\"#{self.table_name}\".\"#{param[:f]}\" #{param[:o]} ?", param[:v]) end end return criterias.where({}) end |