class Copypasta::Entry::ERB
Attributes
locals[R]
source[R]
Public Class Methods
new(filename, directory:, locals: {}, source: nil, only_if: nil)
click to toggle source
# File lib/copypasta/entry/erb.rb, line 11 def initialize(filename, directory:, locals: {}, source: nil, only_if: nil) raise "filename must be a string." unless filename.is_a?(String) raise "only_if must be null or a Proc." if !only_if.nil? && !only_if.is_a?(Proc) raise "locals must be a Hash." unless locals.is_a?(Hash) @filename = filename.dup.freeze @directory = directory.dup.freeze @locals = locals.dup.freeze @source = (source || "#{filename}.erb").dup.freeze @only_if = only_if end
Private Instance Methods
do_apply(destination, parameters)
click to toggle source
# File lib/copypasta/entry/erb.rb, line 25 def do_apply(destination, parameters) template = Tilt::ERBTemplate.new("#{@directory}/#{@source}") output = template.render(Object.new, @locals.merge(parameters: parameters)) IO.write(target_file(destination), output) end