class Lookbook::Navigation
Public Class Methods
flat()
click to toggle source
# 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()
click to toggle source
# 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()
click to toggle source
# 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