class Generator
Attributes
dummy_name[R]
script_name[R]
Public Class Methods
new(script_name)
click to toggle source
# File lib/generator.rb, line 9 def initialize(script_name) @script_name = script_name.downcase @dummy_name = 'my_script' end
Public Instance Methods
after_generate()
click to toggle source
# File lib/generator.rb, line 56 def after_generate puts puts "#{script_name.green} has been installed in #{(File.join Dir.pwd, script_name).green}" puts "To start testing, run following commands" puts puts " cd #{script_name}".blue puts " guard".blue puts end
extract_data(type, regex)
click to toggle source
# File lib/generator.rb, line 38 def extract_data(type, regex) (__send__ "template_#{type}").map do |t| rootpath = File.join(Dir.pwd, script_name) + '/' file = t.gsub(regex){ |m| rootpath }.gsub(dummy_name, script_name) [] << file << t end end
generate_filebody(filename)
click to toggle source
# File lib/generator.rb, line 26 def generate_filebody(filename) ERB.new(IO.read(filename)).result(binding) end
result_directories()
click to toggle source
# File lib/generator.rb, line 30 def result_directories extract_data :directories, /^(.+)\/lib\/\.\.\/(.+)\// end
result_files()
click to toggle source
# File lib/generator.rb, line 34 def result_files extract_data :files, /^(.+)\/lib\/\.\.\/template\// end
run_generator!()
click to toggle source
# File lib/generator.rb, line 46 def run_generator! write(result_directories) { |f| FileUtils.mkdir_p f.first } write(result_files) { |f| IO.write(f.first, generate_filebody(f.last)) } after_generate end
template_directories()
click to toggle source
# File lib/generator.rb, line 14 def template_directories template_paths.select { |f| File.directory? f } end
template_files()
click to toggle source
# File lib/generator.rb, line 18 def template_files template_paths.reject { |f| File.directory? f } end
template_paths()
click to toggle source
# File lib/generator.rb, line 22 def template_paths Dir.glob File.dirname(__FILE__) + "/../template/**/*" end
write(files) { |f| ... }
click to toggle source
# File lib/generator.rb, line 52 def write(files) files.each { |f| puts f.first.green; yield f } end