module Hancock::Search::Controllers::Search

Public Instance Methods

index() click to toggle source
# File lib/hancock/search/controllers/search.rb, line 6
def index
  return redirect_to url_for(params) if search_redirecter

  if Hancock::Search.config.breadcrumbs_on_rails_support
    add_breadcrumb "search",  [:hancock_search],                  if: :insert_breadcrumbs
    add_breadcrumb "results", [:hancock_search, {q: params[:q]}], if: :insert_breadcrumbs
  end

  if params[:q].blank?
    @results = []
  else
    @results = search_scope ? search_scope.page(params[:page]).per(per_page).send(fts_method, query) : []
  end
end

Private Instance Methods

fts_method() click to toggle source
# File lib/hancock/search/controllers/search.rb, line 30
def fts_method
  :fts
end
insert_breadcrumbs() click to toggle source
# File lib/hancock/search/controllers/search.rb, line 44
def insert_breadcrumbs
  true
end
per_page() click to toggle source
# File lib/hancock/search/controllers/search.rb, line 48
def per_page
  10
end
query() click to toggle source
# File lib/hancock/search/controllers/search.rb, line 52
def query
  params[:q].to_s.gsub(/\P{Word}+/, ' ').gsub(/ +/, ' ').strip
end
search_model_class() click to toggle source
# File lib/hancock/search/controllers/search.rb, line 22
def search_model_class
  Hancock::Pages::Page if Hancock::Search.config.pages_support
end
search_redirecter() click to toggle source
# File lib/hancock/search/controllers/search.rb, line 34
def search_redirecter
  if params[:utf8].present? or params[:submit].present? or params[:commit].present?
    params.delete(:utf8)
    params.delete(:submit)
    params.delete(:commit)
    return true
  end
  false
end
search_scope() click to toggle source
# File lib/hancock/search/controllers/search.rb, line 26
def search_scope
  search_model_class.enabled if search_model_class
end