Tempeh
Tasty Ruby Templates
Description
Tempeh is an opininated template engine for rendering html. It steals most of its ideas from Mote and the Herb fork. The motivation for a new library is the different rendering API that is designed for lazily binding a context with instance_eval for use with view components.
Installation
gem install tempeh
Example
# ./templates/eat.tempeh
#
# % if hungry? %
# Eat {{ food }}!
# % end %
require 'tempeh'
class View
include Tempeh::Helpers
def initialize(food)
@food = food
end
def food
@food
end
def hungry?
true
end
end
View.new('Tempeh').render('./templates/eat.tempeh') # Eat Tempeh!API
Templates
% code %: Ruby to be evaluated but not outputted.
{{ code }}: Ruby that gets outputted as an escaped string. Safe for user input.
{{& code }}: Ruby that gets outputted as an unescaped string. Useful for rendering partials and other content that is guarenteed to be safe.
Module Methods
cache: Hash of compiled templates, populated by the render helper.
compile: Creates a proc from the the given string.
escape: HTML escapes the given string.
Helpers
render: instance_eval's a template found at a file path. Saves the compiled template in Tempeh::cache for reuse.