Module: SearchExtension::ClassMethods

Defined in:
app/models/search_extension.rb

Instance Method Summary collapse

Instance Method Details

#build_query_string(params = {}) ⇒ Object



46
47
48
49
50
51
52
53
# File 'app/models/search_extension.rb', line 46

def build_query_string(params = {})
  query_str = params[:query]
  query_str = "%#{query_str}" if ['contains', 'ends_with'].include?(params[:query_type].to_s)
  query_str = "#{query_str}%" if ['contains', 'begins_with'].include?(params[:query_type].to_s)
  # Note that 'contains' will add an '%' to the beginning AND to the end

  query_str
end

#forces_multi_query?Boolean

Returns:

  • (Boolean)


42
43
44
# File 'app/models/search_extension.rb', line 42

def forces_multi_query?
  false
end

#multi_query(params = {}) ⇒ Object



25
26
27
28
29
30
31
32
# File 'app/models/search_extension.rb', line 25

def multi_query(params = {})
  query_terms = params[:query].split(/\r\n/)
  results     = []
  query_terms.each do |term|
    results << { query: term, result: single_query(params.merge({ query: term })) }
  end
  results
end

#single_query(params = {}) ⇒ Object

Raises:

  • (NotImplementedError)


34
35
36
# File 'app/models/search_extension.rb', line 34

def single_query(params = {})
  raise NotImplementedError.new("Implement self.single_query in your specific class (#{self.name}) that should be searchable!")
end

#supports_multi_query?Boolean

Returns:

  • (Boolean)


38
39
40
# File 'app/models/search_extension.rb', line 38

def supports_multi_query?
  false
end