Class: CourseGen::Templates

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

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeTemplates

invoke methods from Thor::Actions



45
46
47
48
# File 'lib/coursegen/templates.rb', line 45

def initialize
  super
  destination_root = Dir.getwd
end

Class Method Details

.source_rootObject



40
41
42
# File 'lib/coursegen/templates.rb', line 40

def self.source_root
  Pathname.new(File.dirname(__FILE__)).parent.parent.to_s
end

Instance Method Details

#copy_template_dir(from, to) ⇒ Object



54
55
56
# File 'lib/coursegen/templates.rb', line 54

def copy_template_dir from, to
  directory("templates/#{from}", "#{to}")
end

#copy_template_file(from, to) ⇒ Object



58
59
60
# File 'lib/coursegen/templates.rb', line 58

def copy_template_file from, to
  template("templates/#{from}", "#{to}")
end

#create_empty_dir(to) ⇒ Object



50
51
52
# File 'lib/coursegen/templates.rb', line 50

def create_empty_dir to
  empty_directory(to)
end

#delete_target_file(to) ⇒ Object



62
63
64
# File 'lib/coursegen/templates.rb', line 62

def delete_target_file(to)
  remove_file(to)
end

#generate_allObject



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/coursegen/templates.rb', line 7

def generate_all
  copy_template_dir("layouts", "layouts")
  copy_template_dir("content/bootstrap", "content/bootstrap")
  copy_template_dir("content/content", "content/content")
  copy_template_dir("content/chalkmark", "content/chalkmark")
  delete_target_file("lib/default.rb")
  copy_template_dir("lib", "lib")
  delete_target_file("Rules")
  copy_template_file("Rules", "Rules")
  copy_template_file("Guardfile", "Guardfile")
  copy_template_file(".gitignore", ".gitignore")
  copy_template_file("cg_config.rb", "cg_config.rb")
  copy_template_file("cg_config.rb_sample", "cg_config.rb_sample")
  delete_target_file("content/stylesheet.css")
  delete_target_file("content/index.html")
  delete_target_file("layouts/default.html")
  create_empty_dir("content/images")
  copy_template_dir("content/tipuesearch", "content/tipuesearch")
  copy_template_dir("content/tipuesearch_logic", "content/tipuesearch_logic")
end

#valid_cg_directory?Boolean

Returns:

  • (Boolean)


28
29
30
31
32
33
34
35
36
37
38
# File 'lib/coursegen/templates.rb', line 28

def valid_cg_directory?
  valid = true
  list = ["Rules", "nanoc.yaml", "content", "lib"]
  list.each do |filename|
    if !File.exists?(filename)
      valid = false
      say("Required file not found: #{filename}")
    end
  end
  valid
end