Class: Lookbook::Navigation
- Inherits:
-
Object
- Object
- Lookbook::Navigation
- Defined in:
- lib/lookbook/navigation.rb
Class Method Summary collapse
Class Method Details
.flat ⇒ Object
9 10 11 12 13 14 15 16 17 |
# File 'lib/lookbook/navigation.rb', line 9 def flat { flat: true, depth: 0, items: previews.map do |preview| nav_item_for_preview(preview, expand_name: true) end } end |
.nested ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/lookbook/navigation.rb', line 19 def nested nav = {flat: false, depth: 0, items: []} previews.each do |preview| current = nav depth = preview.path_parts.size path = "" preview.path_parts.each_with_index do |segment, i| target = current[:items].find { |item| item[:name] == segment } if target.nil? path = "#{path.present? ? path + "." : ""}#{segment}" target = { depth: i + 1, nested: true, name: path, label: segment.titleize, type: :group, items: [] } current[:items].append(target) end if depth == i + 1 target[:items].push(nav_item_for_preview(preview)) else current = target end end end nav end |
.previews ⇒ Object
4 5 6 7 |
# File 'lib/lookbook/navigation.rb', line 4 def previews valid_previews = ViewComponent::Preview.all.filter { |preview| preview.get_visible_examples.any? && !preview.hidden? } valid_previews.sort_by(&:normalized_name) end |