Module: Mustache::Sinatra

Defined in:
lib/mustache/sinatra.rb

Overview

Support for Mustache in your Sinatra app.

require 'mustache/sinatra'

class Hurl < Sinatra::Base
  register Mustache::Sinatra

  # Should be the path to your .mustache template files.
  set :views, "path/to/mustache/templates"

  # Should be the path to your .rb Mustache view files.
  # Only needed if different from the `views` setting
  set :mustaches, "path/to/mustache/views"

  # This tells Mustache where to look for the Views module,
  # under which your View classes should live. By default it's
  # the class of your app - in this case `Hurl`. That is, for an :index
  # view Mustache will expect Hurl::Views::Index by default.

  # If our Sinatra::Base subclass was instead Hurl::App,
  # we'd want to do `set :namespace, Hurl::App`
  set :namespace, Hurl

  get '/stats' do
    mustache :stats
  end
end

As noted above, Mustache will look for ‘Hurl::Views::Index` when `mustache :index` is called.

If no ‘Views::Stats` class exists Mustache will render the template file directly.

You can indeed use layouts with this library. Where you’d normally <%= yield %> you instead {{yield}} - the body of the subview is set to the ‘yield` variable and made available to you.

Defined Under Namespace

Modules: Helpers

Class Method Summary collapse

Class Method Details

.registered(app) ⇒ Object



93
94
95
96
97
# File 'lib/mustache/sinatra.rb', line 93

def self.registered(app)
  app.helpers Mustache::Sinatra::Helpers
  app.set :mustaches, app.views
  app.set :namespace, app
end