class Examiner::RakeRunner
Attributes
failures[R]
stderr_lines[R]
stdout_lines[R]
tests[R]
Public Class Methods
new()
click to toggle source
# File lib/examiner/rake_runner.rb, line 12 def initialize @tests, @failures = 0, 0 @stdout_lines, @stderr_lines = [], [] @success = false end
Public Instance Methods
run(directory)
click to toggle source
# File lib/examiner/rake_runner.rb, line 18 def run(directory) raise RakefileMissingError.new(directory) unless rakefile?(directory) Open3.popen3('rake', chdir: directory) do |_, stdout, stderr, wait_thr| @stdout_lines, @stderr_lines = stdout.readlines, stderr.readlines parse_stderr(directory) parse_stdout end end
Private Instance Methods
parse_stderr(directory)
click to toggle source
# File lib/examiner/rake_runner.rb, line 30 def parse_stderr(directory) unless MinitestParser.new.default_rake?(@stderr_lines) raise MissingDefaultRakeTaskError.new(directory) end end
parse_stdout()
click to toggle source
# File lib/examiner/rake_runner.rb, line 36 def parse_stdout parser = MinitestParser.new parser.parse @stdout_lines if parser.success? @tests = parser.tests @failures = parser.failures end end
rakefile?(directory)
click to toggle source
# File lib/examiner/rake_runner.rb, line 45 def rakefile?(directory) File.exists?(File.join(directory, 'Rakefile')) end