Class: Bookshelf::Generator

Inherits:
Thor::Group
  • Object
show all
Includes:
Thor::Actions
Defined in:
lib/bookshelf/generator.rb

Overview

The Bookshelf::Generator class will create a new book structure.

ebook = Bookshelf::Generator.new
ebook.destination_root = "/some/path/book-name"
ebook.invoke_all

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.source_rootObject



13
14
15
# File 'lib/bookshelf/generator.rb', line 13

def self.source_root
  File.dirname(__FILE__) + "/../../templates"
end

Instance Method Details

#copy_assetsObject



22
23
24
25
26
27
28
# File 'lib/bookshelf/generator.rb', line 22

def copy_assets
  copy_file "epub.scss", "assets/styles/epub.scss"
  copy_file "html.scss", "assets/styles/html.scss"
  copy_file "_fonts.scss", "assets/styles/_fonts.scss"
  empty_directory "assets/fonts"
  empty_directory "assets/images"
end

#copy_config_fileObject



30
31
32
# File 'lib/bookshelf/generator.rb', line 30

def copy_config_file
  template "config.erb", "config/config.yml"
end

#copy_helper_fileObject



34
35
36
# File 'lib/bookshelf/generator.rb', line 34

def copy_helper_file
  copy_file "helper.rb", "config/helper.rb"
end

#copy_templatesObject



38
39
40
41
42
43
# File 'lib/bookshelf/generator.rb', line 38

def copy_templates
  copy_file "layout.erb", "templates/html/layout.erb"
  copy_file "cover.erb", "templates/epub/cover.erb"
  copy_file "epub.erb", "templates/epub/page.erb"
  copy_file "toc.erb", "templates/epub/toc.erb"
end

#copy_top_levelObject



17
18
19
20
# File 'lib/bookshelf/generator.rb', line 17

def copy_top_level
  copy_file "Gemfile", "Gemfile"
  copy_file "README.md", "README.md"
end

#create_empty_directoriesObject



45
46
47
48
# File 'lib/bookshelf/generator.rb', line 45

def create_empty_directories
  empty_directory "output"
  empty_directory "text"
end

#create_git_filesObject



50
51
52
53
54
55
56
57
58
59
60
# File 'lib/bookshelf/generator.rb', line 50

def create_git_files
  create_file ".gitignore" do
    "output\n.sass-cache"
  end
  create_file "assets/.gitkeep"
  create_file "assets/fonts/.gitkeep"
  create_file "assets/images/.gitkeep"
  create_file "assets/styles/.gitkeep"
  create_file "output/.gitkeep"
  create_file "text/.gitkeep"
end