Class: Canvas::Workflow::CLI::Push

Inherits:
Thor
  • Object
show all
Defined in:
lib/canvas/workflow/cli/push.rb

Instance Method Summary collapse

Instance Method Details

#pushObject



6
7
8
9
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
35
# File 'lib/canvas/workflow/cli/push.rb', line 6

def push
  # upload files
  # FIXME This assumes a unix-like environment which uses backslash as
  #   file separator.
  Dir.glob('files/**/*', File::FNM_DOTMATCH).select do |file|
    push?(file) && (Travis.created?(file) || Travis.modified?(file))
  end.each do |file|
    puts "=> uploading #{file}"

    content = {
      'name' => File.basename(file),
      'size' => File.size(file),
      'parent_folder_path' => File.dirname(file).sub('files', '')
    }

    Workflow.client.upload_file(course, file, content)
  end

  # upload assignments
  # FIXME this only compacts one level
  Dir.glob('assignments/*.md').select do |md_file|
    push?(md_file) && Travis.created?(md_file)
  end.each do |md_file|
    content = YAML.load_file(md_file)

    puts "=> creating #{content['title']}"

    Workflow.client.create_assignment(course, content['title'])
  end
end