Module: Compass::Search

Defined in:
lib/compass/search.rb,
lib/compass/search/provider.rb,
lib/compass/search/rendering.rb,
lib/compass/search/view_context.rb

Defined Under Namespace

Modules: Rendering Classes: Provider, UnknownProvider, ViewContext

Class Method Summary collapse

Class Method Details

.providersObject



30
31
32
33
34
# File 'lib/compass/search.rb', line 30

def self.providers
  Compass.config.search.providers.map do |provider|
    provider.try(:constantize) || provider
  end
end

.search(query, provider_name, context = {}) ⇒ Array

Searches a specific provider

Examples:

Compass::Search.search("Tesla", "CarsSearchProvider", { user: current_user })

Parameters:

  • query (String)

    the search query

  • provider_name (String)

    the class name of the provider to search

  • context (Hash) (defaults to: {})

    the context for the search

Returns:

  • (Array)

    the formatted search results

Raises:



24
25
26
27
28
# File 'lib/compass/search.rb', line 24

def self.search(query, provider_name, context = {})
  provider = providers.find { |provider| provider.name == provider_name.to_s }
  raise UnknownProvider.new(provider_name) if provider.nil?
  provider.new(**context).search(query)
end