class P::Actions::TemplateFile

Public Class Methods

new(builder, source, destination) click to toggle source
# File lib/p/actions/template_file.rb, line 6
def initialize(builder, source, destination)
  @builder = builder
  @source = source
  @destination = destination
  @content = nil
end

Public Instance Methods

content(content = nil) click to toggle source
# File lib/p/actions/template_file.rb, line 21
def content(content = nil)
  if content.nil?
    @content
  else
    @content = content
  end
end
run!() click to toggle source
# File lib/p/actions/template_file.rb, line 29
def run!
  if @content
    IO.write(@destination, @content)
  else
    unless File.exists?(@source)
      raise(P::FileNotFound, "missing template file `#{@source}`") 
    end

    if File.extname(@source) == ".erb"
      content = ERB.new(IO.read(@source)).result(@builder._binding)
      IO.write(@destination, content)
    else
      FileUtils.cp(@source, @destination)
    end
  end
end
source(src = nil) click to toggle source
# File lib/p/actions/template_file.rb, line 13
def source(src = nil)
  if src.nil?
    @source
  else
    @source = @builder.source_file(src)
  end
end