Sha256: 5b13f6a92baba31b58ada0c1466da7325fb229bcbe7ddc1b112d609bf09876ad

Contents?: true

Size: 464 Bytes

Versions: 2

Compression:

Stored size: 464 Bytes

Contents

require 'active_support/concern'
module ExposeQuery
  module ControllerDsl
    extend ActiveSupport::Concern

    included do

      cattr_accessor :query_classes

      def self.expose_query(*filter_classes)
        self.query_classes = Array.wrap(filter_classes.to_a)
      end

    end

    def apply_filters(source_scope)
      query_classes ? query_classes.reduce(source_scope){|scope, filter| filter.new(self).apply(scope)} : source_scope
    end

  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
expose_query-0.0.2 lib/expose_query/controller_dsl.rb
expose_query-0.0.1 lib/expose_query/controller_dsl.rb