lib/deas/template_source.rb in deas-0.28.0 vs lib/deas/template_source.rb in deas-0.29.0
- old
+ new
@@ -12,12 +12,13 @@
attr_reader :path, :engines
def initialize(path, logger = nil)
@path = path.to_s
@default_opts = {
- 'source_path' => @path,
- 'logger' => logger || Deas::NullLogger.new
+ 'source_path' => @path,
+ 'logger' => logger || Deas::NullLogger.new,
+ 'deas_template_source' => self
}
@engines = Hash.new{ |h,k| Deas::NullTemplateEngine.new(@default_opts) }
end
def engine(input_ext, engine_class, registered_opts = nil)
@@ -31,19 +32,19 @@
def engine_for?(template_name)
@engines.keys.include?(get_template_ext(template_name))
end
- def render(template_name, view_handler, locals)
- get_engine(template_name).render(template_name, view_handler, locals)
+ def render(template_name, view_handler, locals, &content)
+ [ view_handler.class.layouts,
+ template_name
+ ].flatten.reverse.inject(content) do |render_proc, name|
+ proc{ get_engine(name).render(name, view_handler, locals, &render_proc) }
+ end.call
end
- def partial(template_name, locals)
- get_engine(template_name).partial(template_name, locals)
- end
-
- def capture_partial(template_name, locals, &content)
- get_engine(template_name).capture_partial(template_name, locals, &content)
+ def partial(template_name, locals, &content)
+ get_engine(template_name).partial(template_name, locals, &content)
end
private
def get_engine(template_name)