module SearchObject::Base::ClassMethods

Attributes

config[R]

Public Instance Methods

inherited(base) click to toggle source
# File lib/search_object/base.rb, line 64
def inherited(base)
  base.instance_variable_set '@config', Helper.deep_copy(config)
end
option(name, options = nil, &block) click to toggle source
# File lib/search_object/base.rb, line 72
def option(name, options = nil, &block)
  options = { default: options } unless options.is_a?(Hash)

  name    = name.to_s
  default = options[:default]
  handler = options[:with] || block

  config[:defaults][name] = default unless default.nil?
  config[:options][name]  = Helper.normalize_search_handler(handler, name)

  define_method(name) { @search.param name }
end
results(*args) click to toggle source
# File lib/search_object/base.rb, line 85
def results(*args)
  new(*args).results
end
scope(&block) click to toggle source
# File lib/search_object/base.rb, line 68
def scope(&block)
  config[:scope] = block
end