Sha256: 676f9c32796bf25670feb1adf5848625b06b0a2788fed017c2d18af99e3a09d9
Contents?: true
Size: 1.17 KB
Versions: 4
Compression:
Stored size: 1.17 KB
Contents
# Due to the load order of classes, Backend precedes the required Base class. require_relative 'base' module Udongo::Search # The goal of this class is to provide a manipulated version of the filtered # index data that we can use in the result set of an autocomplete-triggered # search query. See Udongo::Search::Base for more information on how this # search functionality is designed. class Frontend < Udongo::Search::Base # This translates the filtered indices into meaningful result objects. # These require a { label: ... value: ... } to accommodate jquery-ui. # # Note that the result_object#url method is defined in # Udongo::Search::ResultObjects::Frontend::Page. # # If you return nil in the #url method of a result object, the item # will get filtered out of the search results. def search return [] unless term.valid? ::SearchTerm.create!(locale: controller.locale, term: term.value) indices.map do |index| result = result_object(index) next if result.hidden? || result.unpublished? || result.url.nil? { label: result.label, value: result.url } end.select(&:present?) end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
udongo-7.9.0 | lib/udongo/search/frontend.rb |
udongo-7.8.1 | lib/udongo/search/frontend.rb |
udongo-7.8.0 | lib/udongo/search/frontend.rb |
udongo-7.7.2 | lib/udongo/search/frontend.rb |