Class: QuestionCompiler::Zipper

Inherits:
Object
  • Object
show all
Defined in:
lib/question_compiler/zipper.rb

Instance Method Summary collapse

Instance Method Details

#zip_all(dir) ⇒ Object

Zips each question and each context, placing the results into the zip subfolder. Creates zip if it doesn’t exist.

Pass the path to the root folder. I.e. the folder that contains the subfolders questions and contexts.



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/question_compiler/zipper.rb', line 10

def zip_all(dir)
  FileUtils.mkdir_p File.join(dir, 'zip')
  
  # Zip each question.
  Dir.glob(File.join(dir, 'questions/*/*')).each do |question_path|
    if File.directory? question_path
      question_name = File.basename(question_path).sub('/', '-')
      zip_folder(
        question_path,
        File.join(dir, 'zip', question_name + '.qst.zip')
      )
    end
  end
  
  # Zip each context.
  Dir.glob(File.join(dir, 'contexts/*/*')).each do |context_path|
    if File.directory? context_path
      context_name = File.basename(context_path).sub('/', '-')
      zip_folder(
        context_path,
        File.join(dir, 'zip', context_name + '.ctx.zip')
      )
    end
  end
end