Module: SearchObject::Base
- Defined in:
- lib/search_object/base.rb
Defined Under Namespace
Modules: ClassMethods
Class Method Summary collapse
Instance Method Summary collapse
- #count ⇒ Object
- #initialize(options = {}) ⇒ Object
- #param?(*args) ⇒ Boolean
- #params(additions = {}) ⇒ Object
- #params=(params) ⇒ Object
- #results ⇒ Object
- #results? ⇒ Boolean
Class Method Details
.included(base) ⇒ Object
5 6 7 8 9 10 11 12 13 |
# File 'lib/search_object/base.rb', line 5 def self.included(base) base.extend ClassMethods base.instance_eval do @config = { defaults: {}, options: {} } end end |
Instance Method Details
#count ⇒ Object
37 38 39 |
# File 'lib/search_object/base.rb', line 37 def count @count ||= @search.count self end |
#initialize(options = {}) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/search_object/base.rb', line 15 def initialize( = {}) config = self.class.config scope = [:scope] || (config[:scope] && instance_eval(&config[:scope])) raise MissingScopeError unless scope @search = Search.new( scope: scope, options: config[:options], defaults: config[:defaults], params: [:filters] ) end |
#param?(*args) ⇒ Boolean
55 56 57 58 59 60 61 62 63 |
# File 'lib/search_object/base.rb', line 55 def param?(*args) if args.size == 1 params.key?(args[0].to_s) elsif args.size == 2 params[args[0].to_s] == args[1] else raise ArgumentError, "wrong number of arguments (given #{args.size}, expected 1 or 2)" end end |
#params(additions = {}) ⇒ Object
47 48 49 50 51 52 53 |
# 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) ⇒ Object
41 42 43 44 45 |
# File 'lib/search_object/base.rb', line 41 def params=(params) @count = nil @results = nil @search.params = params end |
#results ⇒ Object
29 30 31 |
# File 'lib/search_object/base.rb', line 29 def results @results ||= fetch_results end |
#results? ⇒ Boolean
33 34 35 |
# File 'lib/search_object/base.rb', line 33 def results? results.any? end |