Module: SolidusAdmin::Preview

Extended by:
ActiveSupport::Concern
Defined in:
lib/solidus_admin/preview.rb

Overview

This module will add all the necessary harness to a ViewComponent::Preview to be able to render Solidus components.

Adds a ‘current_component` helper method that will return the the component class based on the preview class name. The component class name is inferred by removing the `Preview` suffix from the preview class name.

Adds a ‘helpers` method that will return the helpers module from SolidusAdmin::BaseController making them available to the preview class (which is not a standard controller). All helpers are available to the preview class via `method_missing`.

Examples:

class SolidusAdmin::UI::Badge::ComponentPreview < ViewComponent::Preview
  include SolidusAdmin::Preview

  def default
    render current_component.new(name: time_ago_in_words(1.day.ago))
  end
end

Defined Under Namespace

Modules: ControllerHelper

Instance Method Summary collapse

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(name) ⇒ Object (private)



70
71
72
73
74
75
76
# File 'lib/solidus_admin/preview.rb', line 70

def method_missing(name, ...)
  if helpers.respond_to?(name)
    helpers.send(name, ...)
  else
    super
  end
end

Instance Method Details

#current_componentObject



64
65
66
# File 'lib/solidus_admin/preview.rb', line 64

def current_component
  @current_component ||= self.class.name.chomp("Preview").constantize
end