Module: SearchObject::Base::ClassMethods
- Defined in:
- lib/search_object/base.rb
Instance Method Summary collapse
Instance Method Details
#option(name, default = nil, &block) ⇒ Object
54 55 56 57 58 59 60 61 |
# File 'lib/search_object/base.rb', line 54 def option(name, default = nil, &block) name = name.to_s @defaults[name] = default unless default.nil? @actions[name] = block || ->(scope, value) { scope.where name => value unless value.blank? } define_method(name) { @search.param name } end |
#scope(&block) ⇒ Object
50 51 52 |
# File 'lib/search_object/base.rb', line 50 def scope(&block) @scope = block end |
#search(args) ⇒ Object
43 44 45 46 47 48 |
# File 'lib/search_object/base.rb', line 43 def search(args) scope = (@scope && @scope.call) || args.shift params = @defaults.merge(Helper.select_keys Helper.stringify_keys(args.shift || {}), @actions.keys) Search.new scope, params, @actions end |