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 also a handlebars gem, which is a pure-ruby implementation that appears to no longer be maintained.