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



43
44
45
46
# File 'lib/coursegen/templates.rb', line 43

def initialize
  super
  destination_root = Dir.getwd
end

Class Method Details

.source_rootObject



38
39
40
# File 'lib/coursegen/templates.rb', line 38

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

Instance Method Details

#copy_template_dir(from, to) ⇒ Object



52
53
54
# File 'lib/coursegen/templates.rb', line 52

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

#copy_template_file(from, to) ⇒ Object



56
57
58
# File 'lib/coursegen/templates.rb', line 56

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

#create_empty_dir(to) ⇒ Object



48
49
50
# File 'lib/coursegen/templates.rb', line 48

def create_empty_dir to
  empty_directory(to)
end

#delete_target_file(to) ⇒ Object



60
61
62
# File 'lib/coursegen/templates.rb', line 60

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
# 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("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)


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

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