Sha256: a41c87e4a8d4aba6efe4a6f8469bcf3615bcad87c6c80113d7a2ae9a3ef133b1

Contents?: true

Size: 668 Bytes

Versions: 1

Compression:

Stored size: 668 Bytes

Contents

require 'active_support/concern'
require 'active_record'
require 'active_record/reflection'
require 'active_record/relation'

require 'quickfilter/version'
require 'quickfilter/query_builder'


module Quickfilter
  extend ActiveSupport::Concern

  class_methods do
    # Parameters in the form of:
    #   { [table]: { [field]: { [operator]: [value] }}}
    #
    # e.g.:
    #   { courses: { name: { likeic: 'John' }}
    #   { sessions: { start: { gte: DateTime.now - 1.days, lte: DateTime.now }}}
    #
    # Wherein, table is optional and defaults to self.table_name
    def filter(params)
      return QueryBuilder.new(self).build(params).query
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
quickfilter-0.1.0 lib/quickfilter.rb