Class: Bloc::Command::Tasks

Inherits:
Object
  • Object
show all
Defined in:
lib/bloc/command/tasks.rb,
lib/bloc/command/tasks/formatter.rb

Defined Under Namespace

Modules: Formatter

Class Method Summary collapse

Class Method Details

.git_remotesObject



29
30
31
32
33
34
# File 'lib/bloc/command/tasks.rb', line 29

def self.git_remotes
  `git remote -v`.split("\n").map do |remote|
    name, url, method = remote.split(/\s/)
    url
  end
end

.runObject



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/bloc/command/tasks.rb', line 6

def self.run
  course = Client::Course.find(:scaffold_clone_url => git_remotes.first)
  enrollment = Client::Enrollment.create(:course_id => course.id)

  manifest = Manifest.parse

  puts "Running Chapter #{enrollment.current_step} Tasks".green

  results = Runner.run(manifest.chapters[enrollment.current_step - 1].command)

  puts Formatter.format(results["tests"])

  if results["tests"].all? {|result| result["passed"] }
    puts "Chapter #{enrollment.current_step} Complete!"

    if manifest.chapters.size == enrollment.current_step
      enrollment.update(:completed => true)
    else
      enrollment.update(:current_step => enrollment.current_step + 1)
    end
  end
end