class Queryko::Base

Attributes

countable_resource[R]
params[R]
relation[RW]

Public Class Methods

call(params = {}, rel = nil) click to toggle source
# File lib/queryko/base.rb, line 25
def self.call(params = {}, rel = nil)
  new(params, rel).call
end
count(params = {}, rel = nil) click to toggle source
# File lib/queryko/base.rb, line 53
def self.count(params = {}, rel = nil)
  new(params, rel).count
end
new(params = {}, rel=nil) click to toggle source
# File lib/queryko/base.rb, line 20
def initialize(params = {}, rel=nil)
  @relation = @original_relation = rel || self.class.model_class.all
  @params = self.default_params.merge(params)
end
total_count(params = {}, rel = nil) click to toggle source
# File lib/queryko/base.rb, line 44
def self.total_count(params = {}, rel = nil)
  new(params, rel).total_count
end

Public Instance Methods

call() click to toggle source
# File lib/queryko/base.rb, line 29
def call
  perform
  return relation
end
count() click to toggle source
# File lib/queryko/base.rb, line 57
def count
  call.to_a.count
end
perform() click to toggle source
# File lib/queryko/base.rb, line 34
def perform
  return if @performed

  @performed = true
  filter
  filter_by_filters
  @countable_resource = relation
end
total_count() click to toggle source
# File lib/queryko/base.rb, line 48
def total_count
  perform
  countable_resource.count
end

Private Instance Methods

config() click to toggle source
# File lib/queryko/base.rb, line 65
def config
  @config ||= {
  }
end
filter() click to toggle source
# File lib/queryko/base.rb, line 70
def filter
  # overridable method
end