module Mygen::Templates
Public Instance Methods
make_template_tree(internal = false)
click to toggle source
# File lib/mygen/templates.rb, line 9 def make_template_tree(internal = false) @template_source_dir = internal_template_source_dir if internal fileutils.rm_rf(dest_dir) if File.exist?(dest_dir) fileutils.cp_r(template_source_dir, dest_dir) end
make_template_tree_in_current_dir()
click to toggle source
# File lib/mygen/templates.rb, line 3 def make_template_tree_in_current_dir fileutils.mkdir_p(dest_dir) unless File.exist?(dest_dir) files = Dir.glob(File.join(template_source_dir, "/*")) fileutils.cp_r(files, dest_dir) end
parse(file, bindings)
click to toggle source
# File lib/mygen/templates.rb, line 37 def parse(file, bindings) erb = ERB.new(File.read(file)) result = erb.result bindings File.open(file, "w") { |f| f.write(result) } end
parse_templates(bindings)
click to toggle source
rename directories that should be filtered, from __name files should be from the destination, so no dirs needs to be filtered and only files need to be processed.
# File lib/mygen/templates.rb, line 19 def parse_templates(bindings) template_dirs(File.join(dest_dir)).each do |dir| dest = file_destination(dir, bindings) parent_dir = File.expand_path("..", dest) fileutils.mkdir_p(parent_dir) if parent_dirs_dont_exist?(dest) move_file_in_place(dir, dest) end # Filter files with erb template_files(File.join(dest_dir)).each do |file| dest = file_destination(file, bindings) # This is where you parse the erb files and fill in the contens if file.end_with? 'erb' parse(file, bindings) end move_file_in_place(file, dest) end end