Class: Showroom::Search::Result

Inherits:
Object
  • Object
show all
Defined in:
lib/showroom/models/search/result.rb

Overview

Wraps the resources.results hash from a Shopify search suggest response, exposing typed arrays for each resource kind.

Examples:

result = Showroom::Search::Result.new(raw['resources']['results'])
result.products     # => [Array<ProductSuggestion>]
result.collections  # => [Array<CollectionSuggestion>]
result.queries      # => [Array<QuerySuggestion>]

Instance Method Summary collapse

Constructor Details

#initialize(results_hash) ⇒ Result

Returns a new instance of Result.

Parameters:

  • results_hash (Hash)

    the resources.results hash from the API response



15
16
17
# File 'lib/showroom/models/search/result.rb', line 15

def initialize(results_hash)
  @data = results_hash
end

Instance Method Details

#articlesArray<ArticleSuggestion>

Returns article suggestions from the search result.

Returns:



43
44
45
# File 'lib/showroom/models/search/result.rb', line 43

def articles
  @data.fetch('articles', []).map { |h| ArticleSuggestion.new(h) }
end

#collectionsArray<CollectionSuggestion>

Returns collection suggestions from the search result.

Returns:



29
30
31
# File 'lib/showroom/models/search/result.rb', line 29

def collections
  @data.fetch('collections', []).map { |h| CollectionSuggestion.new(h) }
end

#pagesArray<PageSuggestion>

Returns page suggestions from the search result.

Returns:



36
37
38
# File 'lib/showroom/models/search/result.rb', line 36

def pages
  @data.fetch('pages', []).map { |h| PageSuggestion.new(h) }
end

#productsArray<ProductSuggestion>

Returns product suggestions from the search result.

Returns:



22
23
24
# File 'lib/showroom/models/search/result.rb', line 22

def products
  @data.fetch('products', []).map { |h| ProductSuggestion.new(h) }
end

#queriesArray<QuerySuggestion>

Returns query suggestions from the search result.

Returns:



50
51
52
# File 'lib/showroom/models/search/result.rb', line 50

def queries
  @data.fetch('queries', []).map { |h| QuerySuggestion.new(h) }
end