class Greg::Generator
Attributes
current_dir[R]
force[R]
generator[R]
name[R]
output_directory[R]
template_name[R]
template_path[R]
Public Class Methods
new(name:, template_name: , output_directory: ".", force: false)
click to toggle source
# File lib/greg/generator.rb, line 11 def initialize(name:, template_name: , output_directory: ".", force: false) @name = name @template_name = template_name @output_directory = Pathname(output_directory + "/" + name).expand_path @current_dir = Pathname(".").expand_path @force = force end
Public Instance Methods
files()
click to toggle source
# File lib/greg/generator.rb, line 26 def files [] end
inside_dir(&block)
click to toggle source
# File lib/greg/generator.rb, line 30 def inside_dir(&block) Dir.chdir(output_directory, &block) end
run()
click to toggle source
# File lib/greg/generator.rb, line 20 def run create_directory create_files self end
template_dir()
click to toggle source
# File lib/greg/generator.rb, line 34 def template_dir Pathname(Greg.templates_dir + "/" + template_name).expand_path.to_s end
Private Instance Methods
create_directory()
click to toggle source
# File lib/greg/generator.rb, line 48 def create_directory if output_directory.exist? if force puts "#{output_directory + template_name} exists, removing it.\n\n" output_directory.rmtree else raise ExistingProjectError.new(output_directory + template_name) end end output_directory.mkpath end
create_files()
click to toggle source
# File lib/greg/generator.rb, line 40 def create_files puts "Creating Project:" files.each do |file| puts file.msg if file.msg file.create! end end