class Senkyoshi::Tasks

Public Class Methods

install_tasks() click to toggle source

Creates rake tasks that can be ran from the gem.

Add this to your Rakefile

require "senkyoshi/tasks"
Senkyoshi::Tasks.install_tasks
# File lib/senkyoshi/tasks.rb, line 70
def self.install_tasks
  namespace :senkyoshi do
    desc "Convert a single given blackboard cartridge to a canvas cartridge"
    task :imscc_single, [:file_path] do |_t, args|
      file_path = args.file_path
      if file_path
        imscc_path = file_path.clone.ext(".imscc")
        Senkyoshi.parse_and_process_single(file_path, imscc_path)
      else
        puts "No file given"
      end
    end

    desc "Convert blackboard cartridges to canvas cartridges"
    task imscc: SOURCE_FILES.pathmap(
      "%{^#{SOURCE_NAME}/,#{OUTPUT_DIR}/}X.imscc",
    )

    directory OUTPUT_NAME

    rule ".imscc" => [->(f) { source_for_imscc(f) }, OUTPUT_NAME] do |t|
      make_directories(t.name, OUTPUT_DIR)
      Senkyoshi.parse(t.source, t.name)
    end

    desc "Upload converted files to canvas"
    task upload: CONVERTED_FILES.pathmap(
      "%{^#{OUTPUT_NAME}/,#{UPLOAD_DIR}/}X.txt",
    )

    directory UPLOAD_NAME

    rule ".txt" => [->(f) { source_for_upload_log(f) }, UPLOAD_NAME] do |t|
      make_directories(t.name, UPLOAD_DIR)
      Senkyoshi.initialize_course(t.source, source_for_imscc(t.source))
      log_file(t.name)
    end

    desc "Completely delete all converted files"
    task :clean do
      rm_rf OUTPUT_DIR
    end
  end
end