class Threatinator::Actions::Run::CoverageObserver
Attributes
filename[R]
Public Class Methods
new(filename)
click to toggle source
# File lib/threatinator/actions/run/coverage_observer.rb, line 8 def initialize(filename) @filename = filename @csv = nil end
Public Instance Methods
close()
click to toggle source
# File lib/threatinator/actions/run/coverage_observer.rb, line 53 def close @csv.close unless closed? end
closed?()
click to toggle source
# File lib/threatinator/actions/run/coverage_observer.rb, line 13 def closed? return false if @csv.nil? @csv.closed? end
log_record(status, record, event_count, message = '')
click to toggle source
@param [Symbol] status :parsed, :missed, :filtered @param [Threatinator::Record] record @param [Array<Threatinator::Event>] events
# File lib/threatinator/actions/run/coverage_observer.rb, line 46 def log_record(status, record, event_count, message = '') return if closed? @csv.add_row( [ status, event_count, record.line_number, record.pos_start, record.pos_end, record.data.inspect, message]) end
open()
click to toggle source
# File lib/threatinator/actions/run/coverage_observer.rb, line 18 def open @csv = ::CSV.open(@filename, "wb", :headers => [:status, :event_count, :line_number, :pos_start, :pos_end, :data, :message], :write_headers => true) end
update(message, *args)
click to toggle source
Handles FeedRunner
observations
# File lib/threatinator/actions/run/coverage_observer.rb, line 23 def update(message, *args) case message when :record_missed log_record(:missed, args.shift, 0) when :record_filtered log_record(:filtered, args.shift, 0) when :record_parsed log_record(:parsed, args.shift, args.shift.count) when :record_error record = args.shift errors = args.shift message = errors.map { |e| e.message }.join(', ') log_record(:error, record, 0, message) when :end close when :start open end end