Module: Workarea::Storefront::TaxonLookup

Included in:
ContentBlocks::TaxonomyViewModel
Defined in:
app/view_models/workarea/storefront/taxon_lookup.rb

Instance Method Summary collapse

Instance Method Details

#find_taxons_for(start) ⇒ Array<Workarea::Navigation::Taxon>

Return a list of taxons to render in a navigation content block.

Parameters:

  • (Workarea::Navigation::Taxon)

Returns:

  • (Array<Workarea::Navigation::Taxon>)


9
10
11
12
13
14
15
16
17
18
19
# File 'app/view_models/workarea/storefront/taxon_lookup.rb', line 9

def find_taxons_for(start)
  return [] if start.blank?

  if start.has_children?
    start.children.select(&:active?)
  elsif start.active? && !show_starting_taxon?
    [start]
  else
    []
  end
end

#show_starting_taxon?Boolean

Returns:

  • (Boolean)


32
33
34
# File 'app/view_models/workarea/storefront/taxon_lookup.rb', line 32

def show_starting_taxon?
  data['show_starting_taxon'] && starting_taxon.present?
end

#starting_taxonObject



26
27
28
29
30
# File 'app/view_models/workarea/storefront/taxon_lookup.rb', line 26

def starting_taxon
  @starting_taxon ||= Navigation::Taxon.find(data['start'])
rescue Mongoid::Errors::DocumentNotFound
  nil
end

#taxonsObject



21
22
23
24
# File 'app/view_models/workarea/storefront/taxon_lookup.rb', line 21

def taxons
  return [] unless starting_taxon.present?
  @taxons ||= find_taxons_for(starting_taxon)
end