Sha256: c4537bba6404a72a3422e9c072add200fe2e5fbf7076362aa6f022ffe45ea90d
Contents?: true
Size: 1.15 KB
Versions: 13
Compression:
Stored size: 1.15 KB
Contents
require 'pathname' require 'deas/logger' module Deas class TemplateEngine attr_reader :source_path, :logger, :opts def initialize(opts = nil) @opts = opts || {} @source_path = Pathname.new(@opts['source_path'].to_s) @logger = @opts['logger'] || Deas::NullLogger.new end def render(template_name, view_handler, locals, &content) raise NotImplementedError end def partial(template_name, locals, &content) raise NotImplementedError end def compile(template_name, compiled_content) raise NotImplementedError end end class NullTemplateEngine < TemplateEngine def render(template_name, view_handler, locals, &content) template_file = self.source_path.join(template_name).to_s unless File.exists?(template_file) raise ArgumentError, "template file `#{template_file}` does not exist" end File.read(template_file) end def partial(template_name, locals, &content) render(template_name, nil, locals) end def compile(template_name, compiled_content) compiled_content # no-op, pass-thru - just return the given content end end end
Version data entries
13 entries across 13 versions & 1 rubygems