Class: SuperTemplate::Compiler
- Inherits:
-
Object
- Object
- SuperTemplate::Compiler
- Defined in:
- lib/super_template/compiler.rb
Instance Method Summary collapse
- #compile(raise_errors: false, force: false) ⇒ Object
-
#initialize(template_class) ⇒ Compiler
constructor
A new instance of Compiler.
Constructor Details
#initialize(template_class) ⇒ Compiler
Returns a new instance of Compiler.
7 8 9 10 |
# File 'lib/super_template/compiler.rb', line 7 def initialize(template_class) @template_class = template_class @redefinition_lock = Mutex.new end |
Instance Method Details
#compile(raise_errors: false, force: false) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/super_template/compiler.rb', line 12 def compile(raise_errors: false, force: false) return if template_class.compiled? && !force return if template_class == SuperTemplate::Base template_class.superclass.compile(raise_errors: raise_errors) redefinition_lock.synchronize do templates = [] templates = find_sidecar_templates templates << template_class.inline_template if template_class.inline_template raise TemplateError, "There are #{templates.size} templates defined for #{self}" if templates.size >= 2 unless templates.empty? compile_template(templates[0]) end end return true end |