class Mincer::PgSearch::SearchEngines::Base

Attributes

args[R]
search_statements[R]

Public Class Methods

new(args, search_statements) click to toggle source
# File lib/mincer/processors/pg_search/search_engines/base.rb, line 8
def initialize(args, search_statements)
  @args, @search_statements = ::ActiveSupport::HashWithIndifferentAccess.new(args), search_statements
end

Public Instance Methods

arel_group(sql_string = nil) { || ... } click to toggle source
# File lib/mincer/processors/pg_search/search_engines/base.rb, line 12
def arel_group(sql_string = nil)
  sql_string = yield if block_given?
  arel_query = sql_string.is_a?(String) ? Arel.sql(sql_string) : sql_string
  return arel_query if arel_query.is_a?(Arel::Nodes::Grouping)
  Arel::Nodes::Grouping.new(arel_query)
end
engine_sym() click to toggle source

Redefine this method in subclass if your engine name does not match class

# File lib/mincer/processors/pg_search/search_engines/base.rb, line 45
def engine_sym
  @engine_sym ||= self.class.name.to_s.demodulize.underscore.to_sym
end
prepared_search_statements() click to toggle source
# File lib/mincer/processors/pg_search/search_engines/base.rb, line 37
def prepared_search_statements
  @prepared_search_statements ||= search_engine_statements.map do |search_statement|
    search_statement.pattern = args[search_statement.param_name]
    search_statement.pattern.present? ? search_statement : nil
  end.compact
end
quote(string) click to toggle source
# File lib/mincer/processors/pg_search/search_engines/base.rb, line 54
def quote(string)
  Mincer::Processors::PgSearch::Sanitizer.quote(string)
end
rank() click to toggle source
# File lib/mincer/processors/pg_search/search_engines/base.rb, line 49
def rank
  #Must be implemented in subclasses
  nil
end
sanitize_column(term, sanitizers) click to toggle source
# File lib/mincer/processors/pg_search/search_engines/base.rb, line 19
def sanitize_column(term, sanitizers)
  ::Mincer::Processors::PgSearch::Sanitizer.sanitize_column(term, sanitizers)
end
sanitize_string(term, sanitizers) click to toggle source
# File lib/mincer/processors/pg_search/search_engines/base.rb, line 23
def sanitize_string(term, sanitizers)
  ::Mincer::Processors::PgSearch::Sanitizer.sanitize_string(term, sanitizers)
end
sanitize_string_quoted(term, sanitizers) click to toggle source
# File lib/mincer/processors/pg_search/search_engines/base.rb, line 27
def sanitize_string_quoted(term, sanitizers)
  ::Mincer::Processors::PgSearch::Sanitizer.sanitize_string_quoted(term, sanitizers)
end
search_engine_statements() click to toggle source
# File lib/mincer/processors/pg_search/search_engines/base.rb, line 31
def search_engine_statements
  @search_engine_statements ||= self.search_statements.select do |search_statement|
    search_statement.options[:engines].try(:include?, engine_sym)
  end
end