Guard for MustacheJS templates
Guard::Mustachejs concatenates all your mustache templates into a single javascript file. Your templates are stored in a global object named ‘mustache_templates’ by default.
Install
First, install guard. Then, install the gem:
gem install guard-mustachejs
Or you can add it to your Gemfile:
gem 'guard-mustachejs'
To add the guard definition for mustachejs to your Guardfile, execute:
guard init mustachejs
Usage
By default, guard-mustachejs will look for mustache templates in app/mustache/*/.html. Let’s say you have the following files:
app/mustache/home/.html
app/mustache/table/row.html
Guard will pull these files into a single javascript resource located at:
public/javascripts/mustache-templates.js
Assuming you have included mustache.js, you can then render your templates with:
Mustache.to_html(mustache_templates.home., root)
Mustache.to_html(mustache_templates.table.row, root)
Guardfile and options
By default, guard-mustachejs will look for mustache templates in app/mustache/*/.html. The default guard clause looks like this:
guard 'mustachejs' do
watch(%r{app/mustache/(.+)\.html})
end
You can change the output javascript file path and the name of the global variable used to store the templates. You can even have multiple template targets, like so:
guard 'mustachejs',
:output => 'public/javascripts/js-templates.js',
:variable => 'js_templates' do
watch(%r{app/mustache/(.+)\.js})
end
guard 'mustachejs',
:output => 'public/javascripts/html-templates.js',
:variable => 'html_templates' do
watch(%r{app/mustache/(.+)\.html})
end
Authors
Acknowledgement
Thanks to the Guard Team and to all the guard gem authors, especially Michael Kessler for his excellent guard-coffeescript gem, which was the inspiration for this one.