class CC::Analyzer::EngineOutput
Attributes
name[RW]
raw_output[RW]
Public Class Methods
new(name, raw_output)
click to toggle source
# File lib/cc/analyzer/engine_output.rb, line 6 def initialize(name, raw_output) @name = name @raw_output = raw_output end
Public Instance Methods
as_issue()
click to toggle source
# File lib/cc/analyzer/engine_output.rb, line 19 def as_issue Issue.new(name, raw_output) end
error()
click to toggle source
# File lib/cc/analyzer/engine_output.rb, line 35 def error if !valid_json? { message: "Invalid JSON", output: raw_output } elsif !validator.present? { message: "Unsupported document type", output: raw_output } else validator.error end end
issue?()
click to toggle source
# File lib/cc/analyzer/engine_output.rb, line 11 def issue? valid_with_type?("issue") end
measurement?()
click to toggle source
# File lib/cc/analyzer/engine_output.rb, line 15 def measurement? valid_with_type?("measurement") end
to_json()
click to toggle source
# File lib/cc/analyzer/engine_output.rb, line 23 def to_json if issue? as_issue.to_json elsif measurement? Measurement.new(name, raw_output).to_json end end
valid?()
click to toggle source
# File lib/cc/analyzer/engine_output.rb, line 31 def valid? valid_json? && validator && validator.valid? end
Private Instance Methods
parsed_output()
click to toggle source
# File lib/cc/analyzer/engine_output.rb, line 59 def parsed_output @parsed_output ||= JSON.parse(raw_output) rescue JSON::ParserError nil end
valid_json?()
click to toggle source
# File lib/cc/analyzer/engine_output.rb, line 49 def valid_json? parsed_output.present? end
valid_with_type?(type)
click to toggle source
# File lib/cc/analyzer/engine_output.rb, line 53 def valid_with_type?(type) parsed_output && parsed_output["type"].present? && parsed_output["type"].downcase == type end
validator()
click to toggle source
# File lib/cc/analyzer/engine_output.rb, line 65 def validator if issue? IssueValidator.new(parsed_output) elsif measurement? MeasurementValidator.new(parsed_output) end end