Class: P::Actions::TemplateFile
- Inherits:
-
Object
- Object
- P::Actions::TemplateFile
- Defined in:
- lib/p/actions/template_file.rb
Instance Method Summary collapse
-
#initialize(builder, source, destination) ⇒ TemplateFile
constructor
A new instance of TemplateFile.
- #run! ⇒ Object
- #source(src = nil) ⇒ Object
Constructor Details
#initialize(builder, source, destination) ⇒ TemplateFile
Returns a new instance of TemplateFile.
6 7 8 9 10 |
# File 'lib/p/actions/template_file.rb', line 6 def initialize(builder, source, destination) @builder = builder @source = source @destination = destination end |
Instance Method Details
#run! ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/p/actions/template_file.rb', line 20 def run! 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 |
#source(src = nil) ⇒ Object
12 13 14 15 16 17 18 |
# File 'lib/p/actions/template_file.rb', line 12 def source(src = nil) if src.nil? @source else @source = @builder.source_file(src) end end |