class FixerUpper::Renderer

Attributes

engines[R]

Public Class Methods

new(engine_registry:, filename:, content:, engines:, view_scope: nil, block: nil) click to toggle source
# File lib/fixer_upper/renderer.rb, line 5
def initialize(engine_registry:,
  filename:,
  content:,
  engines:,
  view_scope: nil,
  block: nil)
  @engine_registry = engine_registry

  @filename = filename
  @content = content
  @engines = engines || []
  @view_scope = view_scope
  @block = block
end

Public Instance Methods

call() click to toggle source
# File lib/fixer_upper/renderer.rb, line 20
def call
  @engines.reduce(@content) do |memo, engine|
    if @engine_registry.engine?(engine)
      render_engine(engine, memo)
    else
      memo
    end
  end
end

Private Instance Methods

compute_extensions() click to toggle source
# File lib/fixer_upper/renderer.rb, line 40
def compute_extensions
  basename = File.basename(@filename)
  basename.split(".")[1..-1]
end
render_engine(engine, memo) click to toggle source
# File lib/fixer_upper/renderer.rb, line 32
def render_engine(engine, memo)
  fixer_upper_engine_class = @engine_registry[engine]

  fixer_upper_engine = fixer_upper_engine_class.new(@filename, memo)

  fixer_upper_engine.render(@view_scope, &@block)
end