diff --git a/lib/guard/jasmine-headless-webkit/runner.rb b/lib/guard/jasmine-headless-webkit/runner.rb index d2761e3..e7ee617 100644 --- a/lib/guard/jasmine-headless-webkit/runner.rb +++ b/lib/guard/jasmine-headless-webkit/runner.rb @@ -1,8 +1,31 @@ +require 'guard/notifier' + module Guard class JasmineHeadlessWebkitRunner class << self def run(paths = []) - system %{jasmine-headless-webkit -c #{paths.join(" ")}} + passes = fails = 0 + capturing = 0 + + Open3.popen3(%{jasmine-headless-webkit -c #{paths.join(" ")}}) do |stdin, stdout, stderr| + stdin.close + stderr.close + while !stdout.eof? + $stdout.print (char = stdout.getc) + $stdout.flush + + case char.chr + when "\n" + capturing += 1 + when '.' + passes += 1 if capturing == 1 + when "F" + fails += 1 if capturing == 1 + end + end + end + + Notifier.notify("#{passes + fails} examples, #{fails} failures", :title => 'Jasmine results', :image => (fails == 0) ? :success : :failes) $?.exitstatus end end