class Makanai::Template

Attributes

engine[R]
locals[R]
path[R]

Public Class Methods

new(path:, engine: :erb, locals: {}) click to toggle source
# File lib/makanai/template.rb, line 7
def initialize(path:, engine: :erb, locals: {})
  @path = path
  @engine = engine
  @locals = locals
end

Public Instance Methods

render() click to toggle source
# File lib/makanai/template.rb, line 15
def render
  template_file = File.read("#{path}.#{engine}")
  engine_class.new(text: template_file, locals: locals).result
end

Private Instance Methods

engine_class() click to toggle source
# File lib/makanai/template.rb, line 22
def engine_class
  require_relative File.join('template_engine', engine.to_s)
  Object.const_get("Makanai::TemplateEngine::#{engine.capitalize}")
rescue LoadError
  raise UnsupportedException
end