class Lookbook::Preview

def render_args(scenario, params: {})

Returns the arguments for rendering of the component in its layout
def render_args(scenario, params: {})
  scenario_params_names = instance_method(scenario).parameters.map(&:last)
  provided_params = params.slice(*scenario_params_names).to_h.symbolize_keys
  result = provided_params.empty? ? new.public_send(scenario) : new.public_send(scenario, **provided_params)
  result ||= {}
  result[:template] = scenario_template_path(scenario) if result[:template].nil?
  @layout = nil unless defined?(@layout)
  result.merge(layout: @layout)
end