module SearchObject::Base
Public Class Methods
included(base)
click to toggle source
# File lib/search_object/base.rb, line 5 def self.included(base) base.extend ClassMethods base.instance_eval do @config = { defaults: {}, options: {} } end end
new(options = {})
click to toggle source
# File lib/search_object/base.rb, line 15 def initialize(options = {}) config = self.class.config scope = options[:scope] || (config[:scope] && instance_eval(&config[:scope])) raise MissingScopeError unless scope @search = Search.new( scope: scope, options: config[:options], defaults: config[:defaults], params: options[:filters] ) end
Public Instance Methods
count()
click to toggle source
# File lib/search_object/base.rb, line 37 def count @count ||= @search.count self end
params(additions = {})
click to toggle source
# File lib/search_object/base.rb, line 47 def params(additions = {}) if additions.empty? @search.params else @search.params.merge Helper.stringify_keys(additions) end end
params=(params)
click to toggle source
# File lib/search_object/base.rb, line 41 def params=(params) @count = nil @results = nil @search.params = params end
results()
click to toggle source
# File lib/search_object/base.rb, line 29 def results @results ||= fetch_results end
results?()
click to toggle source
# File lib/search_object/base.rb, line 33 def results? results.any? end
Private Instance Methods
fetch_results()
click to toggle source
# File lib/search_object/base.rb, line 57 def fetch_results @search.query self end