Class: Ligarb::Initializer

Inherits:
Object
  • Object
show all
Defined in:
lib/ligarb/initializer.rb

Instance Method Summary collapse

Constructor Details

#initialize(directory = nil) ⇒ Initializer

Returns a new instance of Initializer.



8
9
10
# File 'lib/ligarb/initializer.rb', line 8

def initialize(directory = nil)
  @directory = directory || "."
end

Instance Method Details

#runObject



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/ligarb/initializer.rb', line 12

def run
  target = File.expand_path(@directory)
  book_yml = File.join(target, "book.yml")

  if File.exist?(book_yml)
    $stderr.puts "Error: book.yml already exists in #{target}"
    exit 1
  end

  FileUtils.mkdir_p(target)
  FileUtils.mkdir_p(File.join(target, "images"))

  title = dir_to_title(File.basename(File.expand_path(target)))

  existing_md = collect_markdown_files(target)
  if existing_md.any?
    chapter_paths = existing_md
  else
    chapter_paths = ["01-introduction.md"]
    File.write(File.join(target, "01-introduction.md"), generate_chapter)
  end

  File.write(book_yml, generate_book_yml(title, chapter_paths))
  File.write(File.join(target, "images", ".gitkeep"), "")

  init_git(target)
  print_success(target, chapter_paths)
end