Module: ProjectCreator

Defined in:
lib/teuton/project/project_creator.rb

Overview

Project#create

  • create
  • create_main_dir_and_files
  • create_assets_dir_and_files
  • create_dir
  • create_dirs
  • copyfile

Class Method Summary collapse

Class Method Details

.copyfile(target, dest) ⇒ Object



67
68
69
70
71
72
73
74
75
76
77
78
79
# File 'lib/teuton/project/project_creator.rb', line 67

def self.copyfile(target, dest)
  if File.exist? dest
    puts "* Exists file!      => #{Rainbow(dest).yellow}"
  else
    puts "* File not found!   => #{Rainbow(target).yellow}" unless File.exist? target
    begin
      FileUtils.cp(target, dest)
      puts "* Create file       => #{Rainbow(dest).green}"
    rescue StandardError
      puts "* Create file ERROR => #{Rainbow(dest).red}"
    end
  end
end

.create(project_dir) ⇒ Object



14
15
16
17
18
19
20
21
22
23
# File 'lib/teuton/project/project_creator.rb', line 14

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)
  create_assets_dir_and_files(project_dir, source_basedir)
end

.create_assets_dir_and_files(project_dir, source_basedir) ⇒ Object



40
41
42
43
44
45
46
47
48
# File 'lib/teuton/project/project_creator.rb', line 40

def self.create_assets_dir_and_files(project_dir, source_basedir)
  # Assets Directory and files
  project_assets_dir = File.join(project_dir, 'assets')
  create_dir project_assets_dir
#    source = File.join(source_basedir, 'lib/files/README.md')
#    target = File.join(project_dir, 'README.md')
#    copyfile(source, target) # README.md
  puts ''
end

.create_dir(dirpath) ⇒ Object



50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/teuton/project/project_creator.rb', line 50

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) ⇒ Object



63
64
65
# File 'lib/teuton/project/project_creator.rb', line 63

def self.create_dirs(*args)
  args.each { |arg| create_dir arg }
end

.create_main_dir_and_files(project_dir, source_basedir) ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/teuton/project/project_creator.rb', line 25

def self.create_main_dir_and_files(project_dir, source_basedir)
  # Directory and files: Ruby script, Configfile, gitignore
  items = [
    { source: 'teuton/files/config.yaml', target: 'config.yaml' },
    { source: 'teuton/files/start.rb', target: 'start.rb' },
    { source: 'teuton/files/README.md', target: 'README.md' },
    { source: 'teuton/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