class StackMaster::TemplateCompiler
Constants
- TemplateCompilationFailed
Public Class Methods
compile(config, template_compiler, template_dir, template, compile_time_parameters, compiler_options = {})
click to toggle source
# File lib/stack_master/template_compiler.rb, line 5 def self.compile(config, template_compiler, template_dir, template, compile_time_parameters, compiler_options = {}) compiler = if template_compiler find_compiler(template_compiler) else template_compiler_for_stack(template, config) end compiler.require_dependencies compiler.compile(template_dir, template, compile_time_parameters, compiler_options) rescue StandardError => e raise TemplateCompilationFailed, "Failed to compile #{template}" end
find_compiler(name)
click to toggle source
# File lib/stack_master/template_compiler.rb, line 35 def self.find_compiler(name) @compilers.fetch(name.to_sym) do raise "Unknown compiler #{name.inspect}" end end
register(name, klass)
click to toggle source
# File lib/stack_master/template_compiler.rb, line 17 def self.register(name, klass) @compilers ||= {} @compilers[name] = klass end
Private Class Methods
file_ext(template)
click to toggle source
# File lib/stack_master/template_compiler.rb, line 30 def self.file_ext(template) File.extname(template).gsub('.', '').to_sym end
template_compiler_for_stack(template, config)
click to toggle source
private
# File lib/stack_master/template_compiler.rb, line 23 def self.template_compiler_for_stack(template, config) ext = file_ext(template) compiler_name = config.template_compilers.fetch(ext) find_compiler(compiler_name) end