Handlebars.rb
This uses therubyracer to bind to the actual JavaScript implementation of Handlebars.js so that you can use it from ruby.
Usage
Simple stuff
require 'handlebars'
template = Handlebars.compile("{{say}}{{what}}")
template.call(:say => "Hey", :what => "Yuh!") #=> "Hey Yuh!"
With functions as properties
template.call(:say => "Hey", :what => lambda {|this| ("yo" * 2) + "!"}) #=> "Hey yoyo!"
Register block helpers:
Handlebars.register_helper(:twice) do |block|
"#{block.call}#{block.call}"
end
template = Handlebars.compile({{#twice}}Hurray!{{/twice}})
template.call #=> Hurray!Hurray!
Hack
git clone [email protected]:cowboyd/handlebars.rb.git #git it
cd handlebars.rb #go to it
git submodule update --init #pull down handlebars.js
rspec spec/ #test it
Rubygems
Handlebars is available via the hbs gem on rubygems.org. There is an abandoned pure-ruby implementation of handlebars on github. Eventually, I'd like to merge these two projects, but I have not been able to contact the owner of that gem.