module Padrino::Rendering::ClassMethods

def cache_layout_path(name)

def cache_layout_path(name)
  @_cached_layout ||= {}
  if !reload_templates? && path = @_cached_layout[name]
    path
  else
    @_cached_layout[name] = yield(name)
  end
end

def cache_template_path(options)

def cache_template_path(options)
  began_at = Time.now
  @_cached_templates ||= {}
  logging = defined?(settings) && settings.logging? && defined?(logger)
  if !reload_templates? && path = @_cached_templates[options]
    logger.debug :cached, began_at, path[0] if logging
  else
    path = @_cached_templates[options] = yield(name)
    logger.debug :template, began_at, path[0] if path && logging
  end
  path
end

def fetch_layout_path(given_layout, layouts_path=views)

Parameters:
  • layouts_path (String, nil) --
  • given_layout (String, nil) --
def fetch_layout_path(given_layout, layouts_path=views)
  layout_name = (given_layout || @layout || :application).to_s
  cache_layout_path(layout_name) do
    if Pathname.new(layout_name).absolute? && Dir["#{layout_name}.*"].any? || Dir["#{layouts_path}/#{layout_name}.*"].any?
      layout_name
    else
      File.join('layouts', layout_name)
    end
  end
end

def layout(name=:layout, &block)

Other tags:
    Yield: - []

Parameters:
  • name (Symbol) -- (:layout)
def layout(name=:layout, &block)
  return super(name, &block) if block_given?
  @layout = name
end