module Skeleton

Skeleton class

Public Class Methods

copyfile(source, dest) click to toggle source

Copy file @param source (String) Source file @param dest (String) Dest file

# File lib/teuton/project/skeleton.rb, line 70
def self.copyfile(source, dest)
  if File.exist? dest
    puts "* Exists file!      => #{Rainbow(dest).yellow}"
  else
    puts "* File not found!   => #{Rainbow(source).yellow}" unless File.exist? source
    begin
      FileUtils.cp(source, dest)
      puts "* Create file       => #{Rainbow(dest).green}"
    rescue StandardError
      puts "* Create file ERROR => #{Rainbow(dest).red}"
    end
  end
end
create(project_dir) click to toggle source

Create teuton project skeleton @param project_dir (String)

# File lib/teuton/project/skeleton.rb, line 17
def self.create(project_dir)
  project_name = File.basename(project_dir)
  puts "\n[INFO] Creating #{Rainbow(project_name).bright} project skeleton"
  source_basedir = File.join(File.dirname(__FILE__), '..')
  create_dir project_dir
  create_main_dir_and_files(project_dir, source_basedir)
end
create_dir(dirpath) click to toggle source

Create dir @param dirpath (String)

# File lib/teuton/project/skeleton.rb, line 46
def self.create_dir(dirpath)
  if Dir.exist? dirpath
    puts "* Exists dir!       => #{Rainbow(dirpath).yellow}"
  else
    begin
      FileUtils.mkdir_p(dirpath)
      puts "* Create dir        => #{Rainbow(dirpath).green}"
    rescue StandardError
      puts "* Create dir  ERROR => #{Rainbow(dirpath).red}"
    end
  end
end
create_dirs(*args) click to toggle source

Create dirs @param args (Array)

# File lib/teuton/project/skeleton.rb, line 62
def self.create_dirs(*args)
  args.each { |arg| create_dir arg }
end
create_main_dir_and_files(project_dir, source_basedir) click to toggle source

Create main dir and files @param project_dir (String) @param source_basedir (String)

# File lib/teuton/project/skeleton.rb, line 29
def self.create_main_dir_and_files(project_dir, source_basedir)
  # Directory and files: Ruby script, Configfile, gitignore
  items = [
    { source: 'files/config.yaml', target: 'config.yaml' },
    { source: 'files/start.rb', target: 'start.rb' }
    # { source: 'files/gitignore', target: '.gitignore' }
  ]
  items.each do |item|
    source = File.join(source_basedir, item[:source])
    target = File.join(project_dir, item[:target])
    copyfile(source, target)
  end
end