Class: DynatableBuilder::Search
- Inherits:
-
Object
- Object
- DynatableBuilder::Search
- Defined in:
- lib/dynatable_builder/search.rb
Defined Under Namespace
Classes: ModelNotFound, NotDefined
Instance Attribute Summary collapse
-
#defined_search ⇒ Object
readonly
Returns the value of attribute defined_search.
-
#scope ⇒ Object
readonly
Returns the value of attribute scope.
Instance Method Summary collapse
-
#initialize(scope, defined_search) ⇒ Search
constructor
A new instance of Search.
- #perform(search_term) ⇒ Object
Constructor Details
#initialize(scope, defined_search) ⇒ Search
Returns a new instance of Search.
5 6 7 8 |
# File 'lib/dynatable_builder/search.rb', line 5 def initialize(scope, defined_search) @scope = scope @defined_search = defined_search end |
Instance Attribute Details
#defined_search ⇒ Object (readonly)
Returns the value of attribute defined_search.
3 4 5 |
# File 'lib/dynatable_builder/search.rb', line 3 def defined_search @defined_search end |
#scope ⇒ Object (readonly)
Returns the value of attribute scope.
3 4 5 |
# File 'lib/dynatable_builder/search.rb', line 3 def scope @scope end |
Instance Method Details
#perform(search_term) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/dynatable_builder/search.rb', line 10 def perform(search_term) if defined_search.present? if defined_search.respond_to?(:call) # is it a proc? defined_search.call(scope, search_term) else query_with_column_list(search_term) end elsif scope.respond_to?(:search) scope.search(search_term) else fail NotDefined, 'You need to either define self.search ' \ 'on your model or provide a search block in your table.' end end |