guard-jasmine-headless-webkit/lib/guard/jasmine-headless-webkit/runner.rb

49 lines
1.3 KiB
Ruby
Raw Normal View History

2011-05-26 14:31:56 +00:00
require 'guard/notifier'
require 'jasmine/headless/runner'
2011-05-26 14:31:56 +00:00
2011-05-24 01:28:01 +00:00
module Guard
class JasmineHeadlessWebkitRunner
class << self
def run(paths = [])
file = Tempfile.new('guard-jasmine-headless-webkit')
file.close
2011-05-26 14:31:56 +00:00
Jasmine::Headless::Runner.run(:report => file.path, :colors => true, :files => paths)
2011-05-26 14:31:56 +00:00
notify(file.path)
end
def notify(file)
if (data = File.read(file).strip).empty?
Notifier.notify('Spec runner interrupted!', :title => 'Jasmine results', :image => :failed)
else
total, fails, any_console, secs = File.read(file).strip.split('/')
2011-05-26 15:26:47 +00:00
Notifier.notify(message(total, fails, secs, any_console == "T"), :title => 'Jasmine results', :image => image(any_console == "T", fails))
fails.to_i
end
2011-05-26 15:26:47 +00:00
end
private
def message(total, fails, secs, any_console)
total_word = (total.to_i == 1) ? "test" : "tests"
"#{total} #{total_word}, #{fails} failures, #{secs} secs#{any_console ? ', console.log used' : ''}."
2011-05-26 15:26:47 +00:00
end
def image(any_console, fails)
if any_console
:pending
else
if fails.to_i == 0
:success
else
:failed
end
end
2011-05-24 01:28:01 +00:00
end
end
end
end