Class: P::Actions::TemplateFile
- Inherits:
-
Object
- Object
- P::Actions::TemplateFile
- Defined in:
- lib/p/actions/template_file.rb
Instance Method Summary collapse
- #content(content = nil) ⇒ Object
-
#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 11 |
# File 'lib/p/actions/template_file.rb', line 6 def initialize(builder, source, destination) @builder = builder @source = source @destination = destination @content = nil end |
Instance Method Details
#content(content = nil) ⇒ Object
21 22 23 24 25 26 27 |
# File 'lib/p/actions/template_file.rb', line 21 def content(content = nil) if content.nil? @content else @content = content end end |
#run! ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# 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) ⇒ Object
13 14 15 16 17 18 19 |
# 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 |