app/services/search/query_adapter/abstract.rb in rademade_admin-0.0.1 vs app/services/search/query_adapter/abstract.rb in rademade_admin-0.0.2
- old
+ new
@@ -1,54 +1,45 @@
+# -*- encoding : utf-8 -*-
module RademadeAdmin
module Search
- class QueryAdapter
+ module QueryAdapter
+ class Abstract
- def initialize(model)
- @model = model
- end
+ def initialize(model)
+ @model = model
+ end
- def apply_conditions(search_conditions, is_related_list)
- # todo something with is_related_list
- @params = search_conditions.params
- @result = is_related_list ? related_base_condition : base_condition
- search_conditions.conditions.each do |query_part, values|
- @result = self.send(query_part, values) unless values.nil?
+ def apply_conditions(search_conditions)
+ @params = search_conditions.params
+ @result = search_conditions.base_condition(@model)
+ search_conditions.conditions.each do |query_part, values|
+ @result = self.send(query_part, values) unless values.nil?
+ end
+ @result
end
- @result
- end
- protected
+ protected
- def base_condition
- @model.unscoped
- end
+ def where(where_conditions)
+ @result
+ end
- def related_base_condition
- parent_model = @params[:parent].constantize
- parent_id = @params[:parent_id]
- model_related_name = @model.to_s.demodulize.pluralize.downcase.to_sym
- parent_model.find(parent_id).send(model_related_name).unscoped
- end
+ def order(order_conditions)
+ @result
+ end
- def where(where_conditions)
- @result
- end
+ def page(page_condition)
+ @result.page(page_condition)
+ end
- def order(order_conditions)
- @result
- end
+ def per_page(per_page_condition)
+ @result.per(per_page_condition)
+ end
- def page(page_condition)
- @result.page(page_condition)
- end
+ def limit(limit_condition)
+ @result.limit(limit_condition)
+ end
- def per_page(per_page_condition)
- @result.per(per_page_condition)
end
-
- def limit(limit_condition)
- @result.limit(limit_condition)
- end
-
end
end
-end
\ No newline at end of file
+end