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

Version Path
deas-0.39.1 lib/deas/template_engine.rb
deas-0.39.0 lib/deas/template_engine.rb
deas-0.38.0 lib/deas/template_engine.rb
deas-0.37.1 lib/deas/template_engine.rb
deas-0.37.0 lib/deas/template_engine.rb
deas-0.36.0 lib/deas/template_engine.rb
deas-0.35.0 lib/deas/template_engine.rb
deas-0.34.0 lib/deas/template_engine.rb
deas-0.33.0 lib/deas/template_engine.rb
deas-0.32.0 lib/deas/template_engine.rb
deas-0.31.0 lib/deas/template_engine.rb
deas-0.30.0 lib/deas/template_engine.rb
deas-0.29.0 lib/deas/template_engine.rb