lib/action_view/component/preview.rb in actionview-component-1.13.0 vs lib/action_view/component/preview.rb in actionview-component-1.14.0
- old
+ new
@@ -1,79 +1,8 @@
# frozen_string_literal: true
-require "active_support/descendants_tracker"
-
module ActionView
module Component # :nodoc:
- class Preview
- extend ActiveSupport::DescendantsTracker
-
- def render(component, **args, &block)
- { component: component, args: args, block: block }
- end
-
- class << self
- # Returns all component preview classes.
- def all
- load_previews if descendants.empty?
- descendants
- end
-
- # Returns the arguments for rendering of the component in its layout
- def render_args(example)
- new.public_send(example).merge(layout: @layout)
- end
-
- # Returns the component object class associated to the preview.
- def component
- name.chomp("Preview").constantize
- end
-
- # Returns all of the available examples for the component preview.
- def examples
- public_instance_methods(false).map(&:to_s).sort
- end
-
- # Returns +true+ if the example of the component preview exists.
- def example_exists?(example)
- examples.include?(example)
- end
-
- # Returns +true+ if the preview exists.
- def exists?(preview)
- all.any? { |p| p.preview_name == preview }
- end
-
- # Find a component preview by its underscored class name.
- def find(preview)
- all.find { |p| p.preview_name == preview }
- end
-
- # Returns the underscored name of the component preview without the suffix.
- def preview_name
- name.chomp("Preview").underscore
- end
-
- # Setter for layout name.
- def layout(layout_name)
- @layout = layout_name
- end
-
- private
-
- def load_previews
- if preview_path
- Dir["#{preview_path}/**/*_preview.rb"].sort.each { |file| require_dependency file }
- end
- end
-
- def preview_path
- Base.preview_path
- end
-
- def show_previews
- Base.show_previews
- end
- end
+ class Preview < ViewComponent::Preview
end
end
end