Module: Sinatra::MultiRender

Defined in:
lib/sinatra/support/multirender.rb

Overview

Allows rendering from multiple engines or renderers.

Usage

require 'sinatra/support/multirender'

class Main < Sinatra::Base
  register Sinatra::MultiRender

  # These two settings are optional.
  set :multi_views,   [ './views', './skin/default' ]
  set :multi_engines, [ :erb, :haml ]

  get '/' do
    show :home
  end
end

Using #show will automatically find the appropriate template, trying the following variations:

./views/home.erb
./views/home.haml
./skin/default/home.erb
./skin/default/home.haml

Defined Under Namespace

Modules: Helpers

Class Method Summary collapse

Class Method Details

.registered(app) ⇒ Object



28
29
30
31
32
33
34
35
# File 'lib/sinatra/support/multirender.rb', line 28

def self.registered(app)
  views = app.views || './views'

  app.set :multi_engines, Tilt.mappings.keys  unless app.respond_to?(:template_engines)
  app.set :multi_views,   views               unless app.respond_to?(:multi_views)

  app.helpers Helpers
end