class Bwoken::RoxFormatter
Public Class Methods
new()
click to toggle source
# File lib/rox-client-bwoken/formatter.rb, line 18 def initialize @data = {} @original = Bwoken::ColorfulFormatter.new config = RoxClient.config @client = RoxClient::Client.new config.server, config.client_options @run = RoxClient::TestRun.new config.project end
on(name, &block)
click to toggle source
# File lib/rox-client-bwoken/formatter.rb, line 9 def on name, &block method_name = "_on_#{name}_callback" define_method method_name do |*args| @original.send method_name, *args instance_exec *args, &block end end
Public Instance Methods
add_result(line, passed)
click to toggle source
# File lib/rox-client-bwoken/formatter.rb, line 58 def add_result line, passed meta = rox_metadata line @run.add_result meta.merge(passed: passed, duration: ((Time.now - @data[meta[:name]][:start]) * 1000).floor) @data.delete meta[:name] end
prepare_result(line)
click to toggle source
# File lib/rox-client-bwoken/formatter.rb, line 53 def prepare_result line meta = rox_metadata line @data[meta[:name]] = { start: Time.now } end
rox_metadata(line)
click to toggle source
# File lib/rox-client-bwoken/formatter.rb, line 64 def rox_metadata line tokens = line.split(' ') name = tokens[4..-1].join(' ') return { name: name } unless m = name.match(/.*@rox\(([^\(\)]+)\)/) meta = { name: name.gsub(/@rox\([^\(\)]+\)/, '').strip, tags: [], tickets: [] } m[1].split(/\s+/).reject{ |s| s.empty? }.each do |part| if m = part.match(/c:(.+)/) || part.match(/category:(.+)/) meta[:category] << m[1] elsif m = part.match(/g:(.+)/) || part.match(/tag:(.+)/) meta[:tags] << m[1] elsif m = part.match(/t:(.+)/) || part.match(/ticket:(.+)/) meta[:tickets] << m[1] else meta[:key] = part end end meta end