Method: SearchObject::Base::ClassMethods#option

Defined in:
lib/search_object/base.rb

#option(name, options = nil, &block) ⇒ Object



82
83
84
85
86
87
88
89
90
91
92
93
# File 'lib/search_object/base.rb', line 82

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