class Lookbook::ApplicationController

def self.controller_path

def self.controller_path
  "lookbook"
end

def assign_instance_vars

def assign_instance_vars
  @previews = Engine.previews
  @pages = Engine.pages
  @theme = Engine.theme
  @config = Lookbook.config
  @engine = Lookbook.engine
  @embed = !!params[:lookbook_embed]
  @blank_slate = Engine.pages.none? && Engine.previews.none?
end

def assign_theme_overrides

def assign_theme_overrides
  @theme_overrides ||= Engine.theme.to_css
end

def current_layout

def current_layout
  self.class.send(:_layout)
end

def get_status_code(err)

def get_status_code(err)
  if err.respond_to?(:status)
    err.status
  else
    status_map = ActionDispatch::ExceptionWrapper.rescue_responses
    status_map.fetch(err.class.name, :internal_server_error)
  end
end

def handle_error(err)

def handle_error(err)
  @error = err.is_a?(Lookbook::Error) ? err : Lookbook::Error.new(original: err)
  @status_code = get_status_code(err)
  view = (@status_code == :not_found) ? "not_found" : "default"
  layout = current_layout || "lookbook/skeleton"
  render "lookbook/errors/#{view}", layout: layout, status: @status_code
end

def index

def index
  landing = Engine.pages.find(&:landing?) || Engine.pages.first
  if landing.present?
    redirect_to lookbook_page_path(landing.lookup_path)
  else
    render "lookbook/index"
  end
end

def not_found

def not_found
  raise_not_found
end

def raise_not_found(message = "Page not found")

def raise_not_found(message = "Page not found")
  raise Lookbook::RoutingError, message
end