Class: Legion::Extensions::Transformer::Engines::Registry

Inherits:
Object
  • Object
show all
Defined in:
lib/legion/extensions/transformer/engines/registry.rb

Constant Summary collapse

ENGINES =
{}.freeze

Class Method Summary collapse

Class Method Details

.detect(template) ⇒ Object



29
30
31
32
33
34
35
# File 'lib/legion/extensions/transformer/engines/registry.rb', line 29

def detect(template)
  if template.is_a?(String) && (template.include?('<%') || template.include?('%>'))
    fetch(:erb)
  else
    fetch(:static)
  end
end

.fetch(name) ⇒ Object



24
25
26
27
# File 'lib/legion/extensions/transformer/engines/registry.rb', line 24

def fetch(name)
  @engines ||= {}
  @engines[name.to_sym] || @engines[name.to_s] || raise(ArgumentError, "Unknown engine: #{name}")
end

.register(engine_class) ⇒ Object



17
18
19
20
21
22
# File 'lib/legion/extensions/transformer/engines/registry.rb', line 17

def register(engine_class)
  @engines ||= {}
  instance = engine_class.new
  @engines[instance.name] = instance
  @engines[instance.name.to_s] = instance
end

.reset!Object



37
38
39
# File 'lib/legion/extensions/transformer/engines/registry.rb', line 37

def reset!
  @engines = {}
end