0.0
No commit activity in last 3 years
No release in over 3 years
dust-sinatra helps you use dust.js with sinatra.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Runtime

>= 0
>= 0
 Project Readme

Dust-Sinatra

This gem adds the Dust template and a corresponding assets engine to sinatra applications.

For detailed information about Dust, visit http://akdubya.github.com/dustjs/

Installing

Add the following line to your Gemfile:

gem 'dust-sinatra'

Update your bundle:

bundle install

Usage

Place individual Dust template file in their own file with template_name.js.dust extension.

	/* views/js/templates/demo.js.dust */
	
	Hello {name}! You have {count} new messages.

Which will be compiled and rendered as:

	(function(){dust.register("demo",body_0);function body_0(chk,ctx){return chk.write("Hello ").reference(ctx.get("name"),ctx,"h").write("! You have ").reference(ctx.get("count"),ctx,"h").write(" new messages.");}return body_0;})();

Dust-sinatra resolves the name of the template out of request path of each template file. Relative path starts from / by default.

/demo1.js -> demo1
/demos/demo2.js -> demos/demo2

If you want to change the default root path of template files, add following configuration:

    module YourApp
        class YourApplication < Sinatra::Base
            configure do
                Dust.config.template_root = '/your_path_to_templates/'
            end
        end
    end

In your html files, load dust-core and your own template files. You are also able to use require-js or sinatra-assetpack to include the files.

	<!-- index.html -->
	...
	<script src="js/dust-core.js"></script>
	<script src="js/dust_template_path.js"></script>
	...
	dust.render("demo", {name: "Fred", count: 10}, function(err, out) {
 		console.log(out);
	});

All done. Your template files will be compiled and registered.