Class: Bloc::Command::Validate

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

Constant Summary collapse

MANIFEST_NOT_FOUND =
"Unable to find Bloc Manifest in bloc/bloc_manifest.json".red
MANIFEST_PATH =
File.join("bloc", "bloc_manifest.json")
INVALID_MANIFEST =
"Invalid JSON in Bloc Manifest: #{MANIFEST_PATH}".red
VALID_MANIFEST =
"Valid Bloc Manifest".green
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

Class Method Summary collapse

Class Method Details

.check_chapter_default_files(manifest) ⇒ Object



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

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



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

def self.check_course_default_file(manifest)
  course_default_file = manifest["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

.parse_manifestObject

Raises:



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

def self.parse_manifest
  raise MANIFEST_NOT_FOUND unless File.exists?(MANIFEST_PATH)
  manifest_raw = File.read(MANIFEST_PATH)

  begin
    manifest = JSON.parse(manifest_raw)
    puts VALID_MANIFEST
  rescue
    raise INVALID_MANIFEST
  end
  manifest
end

.run(*args) ⇒ Object



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

def self.run(*args)
  manifest = parse_manifest
  check_course_default_file manifest
  check_chapter_default_files manifest
end