class LaTeXProjectTemplate
Constants
- DEFAULT_CONFIG
Public Class Methods
new(dir, template, home_directory = nil)
click to toggle source
# File lib/latex_project_template.rb, line 216 def initialize(dir, template, home_directory = nil) @config = LaTeXProjectTemplate::Configuration.new(home_directory) @target_dir = File.expand_path(dir) unless @template = @config.template_exist?(template) raise ArgumentError, "Can not find template: #{template}" end if File.exist?(@target_dir) raise ArgumentError, "File #{@target_dir} exists." end @project_name = File.basename(dir).sub(/\/$/, '') end
Public Instance Methods
create(opts = {})
click to toggle source
# File lib/latex_project_template.rb, line 240 def create(opts = {}) FileUtils.mkdir_p(@target_dir) git = Git.init(@target_dir) files = create_files git.add git.commit("Copy template: #{@template.name}.") if io = opts[:io] files.map! do |path| path.sub!(@target_dir, '') path.sub!(/^\//, '') end io.puts "Create the following files from template '#{@template.name}' and commit to git." io.puts files.join("\n") end end
Private Instance Methods
create_files()
click to toggle source
# File lib/latex_project_template.rb, line 228 def create_files erb_obj = LaTeXProjectTemplate::ErbObject.new(@project_name, @config.user_variables, @config) created_files = @template.copy_to_directory(@target_dir, erb_obj) @template.files_to_import.each do |name, files| if template_to_import = @config.template_exist?(name) created_files.concat(template_to_import.copy_to_directory(@target_dir, erb_obj, files)) end end created_files.sort! end