Module | Mustache::Sinatra |
In: |
lib/mustache/sinatra.rb
|
Support for Mustache in your Sinatra app.
require 'mustache/sinatra' class Hurl < Sinatra::Base register Mustache::Sinatra set :mustache, { # Should be the path to your .mustache template files. :templates => "path/to/mustache/templates", # Should be the path to your .rb Mustache view files. :views => "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` :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.