class Canvas::Workflow::CLI::Deploy

Public Instance Methods

deploy() click to toggle source
# File lib/canvas/workflow/cli/deploy.rb, line 11
def deploy
  # upload syllabus
  # FIXME this only compacts one level
  Dir.glob('README.md').select do |md_file|
    upload?(md_file)
  end.each do |md_file|
    html_file = File.join('_site', File.basename(md_file, '.md') + '.html')

    puts "=> uploading #{html_file}"

    content = YAML.load_file(html_file)

    content.each { |k,v| v.compact! }.compact!

    Workflow.client.update_course(course, content)
  end

  # upload pages
  # FIXME see upload syllabus
  Dir.glob('pages/*.md').select do |md_file|
    upload?(md_file)
  end.each do |md_file|
    url       = File.basename(md_file, '.md')
    html_file = File.join('_site', 'pages', url + '.html')

    puts "=> uploading #{html_file}"

    content = YAML.load_file(html_file)

    content.each { |k,v| v.compact! }.compact!

    Workflow.client.update_create_page_courses(course, url, content)
  end

  # upload assignments
  # FIXME see upload syllabus
  Dir.glob('assignments/*.md').select do |md_file|
    upload?(md_file)
  end.each do |md_file|
    html_file = File.join('_site', 'assignments', File.basename(md_file, '.md') + '.html')

    puts "=> uploading #{html_file}"

    content = YAML.load_file(html_file)

    content.each { |k,v| v.compact! }.compact!

    Workflow.client.edit_assignment(course, content['assignment']['id'], content)
  end
end

Private Instance Methods

course() click to toggle source
# File lib/canvas/workflow/cli/deploy.rb, line 66
def course
  @course ||= Workflow.config['course']
end
upload?(file) click to toggle source
# File lib/canvas/workflow/cli/deploy.rb, line 70
def upload?(file)
  Travis.created?(file) || Travis.modified?(file)
end