Class: CourseGen::Templates

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

Overview

Class Templates represent a Coursegen template.

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeTemplates

invoke methods from Thor::Actions



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

def initialize
  super
  destination_root = Dir.getwd
end

Class Method Details

.source_rootObject



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

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

Instance Method Details

#copy_template_dir(from, to) ⇒ Object



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

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

#copy_template_file(from, to) ⇒ Object



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

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

#create_empty_dir(to) ⇒ Object



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

def create_empty_dir(to)
  empty_directory(to)
end

#delete_target_file(to) ⇒ Object



66
67
68
# File 'lib/coursegen/templates.rb', line 66

def delete_target_file(to)
  remove_file(to)
end

#generate_allObject

Generate_all generates a Coursegen site using the default template.



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

def generate_all
  copy_template_dir('layouts', 'layouts')
  copy_template_dir('content/bootstrap', 'content/bootstrap')
  copy_template_dir('content/content', 'content/content')
  delete_target_file('lib/default.rb')
  copy_template_dir('lib', 'lib')
  delete_target_file('Rules')
  copy_template_file('Rules', 'Rules')
  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')
end

#valid_cg_directory?Boolean

Valid_cg_directory? checks if the underlying directory is a valid nanoc site.

This method is used by Coursegen::CLI.

Returns:

  • (Boolean)


32
33
34
35
36
37
38
39
40
41
42
# File 'lib/coursegen/templates.rb', line 32

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