Class: Bloc::Command::Validate

Inherits:
Object
  • Object
show all
Defined in:
lib/bloc/command/validate.rb

Constant Summary collapse

NO_DEFAULT_COURSE_FILE =
"No default file for course specified (OK)".green
VALID_DEFAULT_COURSE_FILE =
"Default file for course exists (OK)".green
INVALID_DEFAULT_COURSE_FILE =
"Default file for course does not exist (expected %s)".red
NO_DEFAULT_CHAPTER_FILE =
"No default file for chapter specified (OK): %s".green
VALID_DEFAULT_CHAPTER_FILE =
"Default file for chapter exists (OK): %s".green
INVALID_DEFAULT_CHAPTER_FILE =
"Default file for chapter does not exist: %s (expected %s)".red
NO_SUCH_PATCH =
"Patch not found: %s".red
PATCH_EXISTS =
"Patch exists: %s".green

Class Method Summary collapse

Class Method Details

.check_chapter_default_files(manifest) ⇒ Object



33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/bloc/command/validate.rb', line 33

def self.check_chapter_default_files(manifest)
  manifest.chapters.each do |chapter|
    if chapter.default_file.nil?
      puts NO_DEFAULT_CHAPTER_FILE % chapter.name
    else
      if File.exists? chapter.default_file
        puts VALID_DEFAULT_CHAPTER_FILE % chapter.name
      else
        raise INVALID_DEFAULT_CHAPTER_FILE % [chapter.name, chapter.default_file]
      end
    end
  end
end

.check_course_default_file(manifest) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/bloc/command/validate.rb', line 20

def self.check_course_default_file(manifest)
  course_default_file = manifest.course.default_file
  if course_default_file.nil?
    puts NO_DEFAULT_COURSE_FILE
  else
    if File.exists? course_default_file
      puts VALID_DEFAULT_COURSE_FILE
    else
      raise INVALID_DEFAULT_COURSE_FILE % manifest
    end
  end
end

.check_patches(manifest) ⇒ Object



47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/bloc/command/validate.rb', line 47

def self.check_patches(manifest)
  # TODO: ensure all chapters have patches
  manifest.chapters.each do |chapter|
    if chapter.patch.nil?

    elsif File.exists? chapter.patch
      puts PATCH_EXISTS % chapter.patch
    else
      raise NO_SUCH_PATCH % chapter.patch
    end
  end
end

.run(*args) ⇒ Object



13
14
15
16
17
18
# File 'lib/bloc/command/validate.rb', line 13

def self.run(*args)
  manifest = Manifest.parse
  check_course_default_file manifest
  check_chapter_default_files manifest
  check_patches manifest
end