Module: Templates

Defined in:
lib/templates.rb

Class Method Summary collapse

Class Method Details

.copy_template_parsed_erbs(template, dir, scope) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
# File 'lib/templates.rb', line 27

def self.copy_template_parsed_erbs(template, dir, scope)
  erbs = Dir.glob(__dir__ + "/../templates/#{template}/*", File::FNM_DOTMATCH).select do |path|
    path =~ /\.erb$/
  end
  erbs.each do |erb|
    erb_contents = File.read(erb)
    open("#{dir}/#{erb.sub(/^.*\/templates\/#{template}\//, '').sub(/\.erb$/, '')}", 'w') do |f|
      f.print ERB.new(erb_contents).result(scope)
    end
  end
end

.copy_template_verbatim_files(template, dir) ⇒ Object



19
20
21
22
23
24
25
# File 'lib/templates.rb', line 19

def self.copy_template_verbatim_files(template, dir)
  Dir.glob(__dir__ + "/../templates/#{template}/**/*", File::FNM_DOTMATCH).reject do |path|
    path =~ /^\.$|^\.\.$|\.erb$/ || File.directory?(path)
  end.each do |path|
    `cp #{path} #{dir}/#{path.sub(/^.*\/templates\/#{template}\//, '')}`
  end
end

.create(template, dir, scope) ⇒ Object



5
6
7
8
9
# File 'lib/templates.rb', line 5

def self.create(template, dir, scope)
  create_template_dirs(template, dir)
  copy_template_verbatim_files(template, dir)
  copy_template_parsed_erbs(template, dir, scope)
end

.create_template_dirs(template, dir) ⇒ Object



11
12
13
14
15
16
17
# File 'lib/templates.rb', line 11

def self.create_template_dirs(template, dir)
  Dir.glob(__dir__ + "/../templates/#{template}/**/*", File::FNM_DOTMATCH).select do |path|
    File.directory?(path)
  end.each do |path|
    FileUtils.mkdir_p "#{dir}/#{path.sub(/^.*\/templates\/#{template}\//, '')}"
  end
end