class P::Builder
Attributes
template[RW]
Public Class Methods
new(template)
click to toggle source
# File lib/p/builder.rb, line 12 def initialize(template) @template = template copy_template_variables! end
run!(template)
click to toggle source
# File lib/p/builder.rb, line 8 def self.run!(template) new(template).run! end
Public Instance Methods
_binding()
click to toggle source
# File lib/p/builder.rb, line 35 def _binding binding end
destination_file(path)
click to toggle source
# File lib/p/builder.rb, line 31 def destination_file(path) File.join(base_directory, path) end
run!()
click to toggle source
# File lib/p/builder.rb, line 17 def run! announce "Generating #{@template.template} project `#{@name}`" say "Creating base directory `#{@name}`" do FileUtils.mkdir(base_directory) end eval(IO.read(@template.path)) end
source_file(path)
click to toggle source
# File lib/p/builder.rb, line 27 def source_file(path) File.join(@template.directory, path) end
Private Instance Methods
announce(str)
click to toggle source
# File lib/p/builder.rb, line 51 def announce(str) $stdout.print "= #{str}\n" end
base_directory()
click to toggle source
# File lib/p/builder.rb, line 47 def base_directory File.join(Dir.pwd, @name) end
copy_template_variables!()
click to toggle source
# File lib/p/builder.rb, line 41 def copy_template_variables! @template.variables.each do |k,v| instance_variable_set("@#{k}".to_sym, v) end end
say(str) { |block| ... }
click to toggle source
# File lib/p/builder.rb, line 55 def say(str, &block) $stdout.print("- #{str}\n") yield block end