require 'fileutils' require File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib', 'temp.rb')) # Create a template and return a hash with all the template's information def create_template(path, name, desc, files, ignore, erb) path = File.expand_path(path) Dir.mkdir(path) files.each do |file| file = File.join(path, file) if file =~ /.*\..*/ File.open(file, 'w') { |f| f.write("Hello, World!\n") } else Dir.mkdir(file) end end tempfile = "name '#{name}'\ndesc '#{desc}'\n\n" ignore.each { |f| tempfile << "ignore '#{f}'\n" } erb.each { |f| tempfile << "use_erb '#{f}'\n" } tempfile << "\n@foo = 'Foo'\n" File.open(File.join(path, 'Tempfile'), 'w') { |f| f.write(tempfile) } { :path => path, :filename => File.basename(path), :name => name, :desc => desc, :files => (['Tempfile'] + files).sort, :ignore => ignore.map { |f| Dir.glob(File.join(path, f)) }.flatten. map { |f| f.sub(path + '/', '') }, :erb => erb.map { |f| Dir.glob(File.join(path, f)) }.flatten. map { |f| f.sub(path + '/', '') }, } end