続:テンプレートエンジンTenjinを使ってみる
Tenjin::ContextHelperを使ったら、いちいち値を渡さなくてよいのでちょっと便利。
main.rb:
require 'sinatra/base' require 'tenjin' class MyEngine < Tenjin::Engine def initialize(path, line, options) @template_path = path super({}) end def render(app, locals, &block) super(@template_path, app) end end Tilt.register :rbhtml, MyEngine class Main < Sinatra::Base include Tenjin::ContextHelper def bar 'bar method' end get '/' do @ins_var = 'instance value' render(:rbhtml, :index, {}, self) end end
実行結果:
hiro@neptune% cat views/index.rbhtml @ins_var = #{@ins_var} bar = #{bar} hiro@neptune% cat config.ru require './main' run Main hiro@neptune% thin start & [1] 5296 hiro@neptune% >> Using rack adapter >> Thin web server (v1.2.7 codename No Hup) >> Maximum connections set to 1024 >> Listening on 0.0.0.0:3000, CTRL+C to stop hiro@neptune% curl localhost:3000 @ins_var = instance value bar = bar method