lib/lookbook/preview.rb in lookbook-0.9.8 vs lib/lookbook/preview.rb in lookbook-1.0.0.beta.0

- old
+ new

@@ -1,15 +1,16 @@ module Lookbook - class Preview + class Preview < Collection include Utils delegate :name, :render_args, to: :@preview delegate :position, :group, :notes, :hidden?, to: :@preview_inspector def initialize(preview) @preview = preview - @preview_inspector = CodeInspector.new(@preview.name) + @preview_inspector = SourceInspector.new(@preview.name) + super(preview_class_name(preview_class_basename(@preview.name))) end def id @preview_inspector&.id || generate_id(lookup_path) end @@ -31,11 +32,11 @@ end def examples return @examples if @examples.present? public_methods = @preview.public_instance_methods(false) - public_method_objects = @preview_inspector&.methods&.select { |m| public_methods.include?(m.name) } + public_method_objects = @preview_inspector&.methods&.filter { |m| public_methods.include?(m.name) } examples = (public_method_objects || []).map { |m| PreviewExample.new(m.name.to_s, self) } sorted = Lookbook.config.sort_examples ? examples.sort_by(&:label) : examples @examples = [] if @preview_inspector&.groups&.any? sorted.group_by { |m| m.group }.each do |name, examples| @@ -50,25 +51,29 @@ @examples = sorted end @examples = @examples.compact end + def items + examples.reject { |i| i.hidden? } + end + def default_example examples.first end - def path - preview_class_name(preview_class_basename(name)) - end - def full_path base_path = Array(preview_paths).detect do |preview_path| Dir["#{preview_path}/#{name.underscore}.rb"].first end Pathname.new(Dir["#{base_path}/#{name.underscore}.rb"].first) end + def url_path + inspect_path lookup_path + end + def preview_paths ViewComponent::Base.preview_paths end def parent_collections_names @@ -83,9 +88,13 @@ @preview.instance_variable_get(:@layout) end def display_params Lookbook.config.preview_display_params.deep_merge(@preview_inspector&.display_params) + end + + def collapsible? + true end class << self def find(path) all.find { |p| p.lookup_path == path }