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