Sha256: 40eb3fc0e2dea02478df94cbd67f69d6a4acdf815dae0009174e178d98baa831

Contents?: true

Size: 967 Bytes

Versions: 2

Compression:

Stored size: 967 Bytes

Contents

# -*- encoding : utf-8 -*-
module RademadeAdmin
  module Search
    module QueryAdapter
      class Abstract

        def initialize(model)
          @model = model
        end

        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

        protected

        def where(where_conditions)
          @result
        end

        def order(order_conditions)
          @result
        end

        def page(page_condition)
          @result.page(page_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
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
rademade_admin-0.0.3 app/services/search/query_adapter/abstract.rb
rademade_admin-0.0.2 app/services/search/query_adapter/abstract.rb