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