class Lookbook::ActionViewConfigHandler

def call

def call
  handle_annotations
  handle_partial_prefixes
  yield
ensure
  restore_annotations
  restore_partial_prefixes
end

def handle_annotations

def handle_annotations
  return unless disable_annotations && ActionView::Base.respond_to?(:annotate_rendered_view_with_filenames)
  @original_annotations_value = ActionView::Base.annotate_rendered_view_with_filenames
  ActionView::Base.annotate_rendered_view_with_filenames = false
end

def handle_partial_prefixes

def handle_partial_prefixes
  return unless disable_partial_prefixes && ActionView::Base.respond_to?(:prefix_partial_path_with_controller_namespace)
  @original_partial_prefix_value = ActionView::Base.prefix_partial_path_with_controller_namespace
  ActionView::Base.prefix_partial_path_with_controller_namespace = false
end

def initialize(disable_annotations: true, disable_partial_prefixes: true)

def initialize(disable_annotations: true, disable_partial_prefixes: true)
  @disable_annotations = disable_annotations
  @disable_partial_prefixes = disable_partial_prefixes
end

def restore_annotations

def restore_annotations
  return if @original_annotations_value.nil?
  ActionView::Base.annotate_rendered_view_with_filenames = @original_annotations_value
  @original_annotations_value = nil
end

def restore_partial_prefixes

def restore_partial_prefixes
  return if @original_partial_prefix_value.nil?
  ActionView::Base.prefix_partial_path_with_controller_namespace = @original_partial_prefix_value
  @original_partial_prefix_value = nil
end