class AocRb::Cli

Public Instance Methods

new(name) click to toggle source
# File lib/aoc_rb/cli.rb, line 12
def new(name)
  project_dir = File.join(Dir.getwd, name)
  if File.exist?(project_dir)
    puts "ERROR: #{project_dir} already exists!"
    exit 0
  end

  bin_dir = File.join(project_dir, "bin")
  bin_path = File.join(bin_dir, "aoc")
  bin_template = File.join(File.dirname(__FILE__), "../../templates/bin/aoc")
  FileUtils.mkdir_p bin_dir
  File.open(bin_path, "w") { |f| f.write(File.read(bin_template)) }

  spec_dir = File.join(project_dir, "spec")
  spec_helper_path = File.join(spec_dir, "spec_helper.rb")
  spec_helper_template = File.join(File.dirname(__FILE__), "../../templates/spec/spec_helper.rb")
  FileUtils.mkdir_p spec_dir
  File.open(spec_helper_path, "w") { |f| f.write(File.read(spec_helper_template)) }

  env_template_path = File.join(project_dir, ".env-template")
  env_template = File.join(File.dirname(__FILE__), "../../templates/.env-template")
  File.open(env_template_path, "w") { |f| f.write(File.read(env_template)) }

  gemfile_dst = File.join(project_dir, "Gemfile")
  gemfile_src = File.join(File.dirname(__FILE__), "../../templates/Gemfile")
  File.open(gemfile_dst, "w") { |f| f.write(File.read(gemfile_src))}
end