Sha256: b92ef13ce6df58f6422b283fa5110671dfc612db9eb43e40f77de6d2be44b4b5
Contents?: true
Size: 972 Bytes
Versions: 4
Compression:
Stored size: 972 Bytes
Contents
module Cycromatic class JSONFormatter attr_reader :io def initialize(io:) @io = io @results = {} end def started(path:) @path_results = [] @results[path.to_s] = { results: @path_results } end def finished(path:) @path_results = nil end def completed @io.puts @results.to_json end def error(path:, exception:) @results[path.to_s] = { error: { message: exception.to_s, trace: exception.backtrace } } end def calculated(path:, complexity:) loc = complexity.node.loc name = case complexity.type when :toplevel "[toplevel]" when :method complexity.node.children.find {|c| c.is_a? Symbol }.to_s end @path_results << { method: name, line: [loc.first_line, loc.last_line], complexity: complexity.value } end end end
Version data entries
4 entries across 4 versions & 1 rubygems