lib/basis/template.rb in basis-1.0.0 vs lib/basis/template.rb in basis-1.1.0

- old
+ new

@@ -2,15 +2,37 @@ require "fileutils" module Basis class Template attr_reader :srcdir + attr_reader :origin def initialize srcdir @srcdir = File.expand_path srcdir + + Dir.chdir @srcdir do + remote = `git remote -v`.split(/\s/)[1] + rev = `git rev-parse HEAD` + @origin = "#{remote}@#{rev}" + end + + if File.exist?(template = "#@srcdir/.basis/template.rb") + src = IO.read template + extend eval("Module.new do;#{src};end", nil, template, 1) + end end + def description + "An awesome template." + end + def render destdir, context + FileUtils.mkdir_p File.join(destdir, ".basis") + + File.open File.join(destdir, ".basis", "origin"), "wb" do |f| + f.puts origin + end + Dir.glob("#{srcdir}/**/*", File::FNM_DOTMATCH).each do |src| next unless File.file? src rel = src.gsub(/^#{srcdir}\//, "") next if /^\.basis/ =~ rel || /^\.git\// =~ rel