class AdLint::Report

Attributes

log_fpath[R]
met_fpath[R]
msg_fpath[R]

Public Class Methods

new(msg_fpath, met_fpath, log_fpath, verbose) { |self| ... } click to toggle source
# File lib/adlint/report.rb, line 40
def initialize(msg_fpath, met_fpath, log_fpath, verbose, &block)
  @msg_fpath     = msg_fpath
  @msg_file      = open_msg_file(msg_fpath)
  @met_fpath     = met_fpath
  @met_file      = open_met_file(met_fpath)
  @log_fpath     = log_fpath
  @verbose       = verbose
  @unique_msgs   = Set.new
  @deferred_msgs = []

  yield(self)
ensure
  @msg_file.close if @msg_file
  @met_file.close if @met_file
end

Public Instance Methods

flush_deferred_messages(suppressors) click to toggle source
# File lib/adlint/report.rb, line 81
def flush_deferred_messages(suppressors)
  @deferred_msgs.each do |msg|
    rawrite_message(msg) unless suppressors.suppress?(msg)
  end
  @deferred_msgs.clear
  self
end
write_code_metric(code_metric) click to toggle source

DESCRIPTION

Writes a code quality metric on this report.

PARAMETER

code_metric

CodeMetric – Code metric information to be written.

RETURN VALUE

Report – Self.

# File lib/adlint/report.rb, line 110
def write_code_metric(code_metric)
  code_metric.print_as_csv(@met_file)
  self
end
write_code_struct(code_struct) click to toggle source

DESCRIPTION

Writes a code structure information on this report.

PARAMETER

code_struct

CodeStructure – Code structure info to be written.

RETURN VALUE

Report – Self.

# File lib/adlint/report.rb, line 97
def write_code_struct(code_struct)
  code_struct.print_as_csv(@met_file)
  self
end
write_message(msg, suppressors = nil) click to toggle source

DESCRIPTION

Writes a message on this report.

PARAMETER

message

MessageMessage to be written.

RETURN VALUE

Report – Self.

# File lib/adlint/report.rb, line 68
def write_message(msg, suppressors = nil)
  if suppressors.nil? || !suppressors.suppress?(msg)
    unless msg.must_be_unique? && !@unique_msgs.add?(msg)
      if msg.must_be_deferred?
        @deferred_msgs.push(msg)
      else
        rawrite_message(msg)
      end
    end
  end
  self
end

Private Instance Methods

open_met_file(fpath) click to toggle source
# File lib/adlint/report.rb, line 128
def open_met_file(fpath)
  File.open(fpath, "w").tap do |io|
    io.set_encoding(Encoding.default_external)
    io.puts(["VER", SHORT_VERSION, Time.now.to_s, Dir.getwd].to_csv)
  end
end
open_msg_file(fpath) click to toggle source
# File lib/adlint/report.rb, line 121
def open_msg_file(fpath)
  File.open(fpath, "w").tap do |io|
    io.set_encoding(Encoding.default_external)
    io.puts(["V", SHORT_VERSION, Time.now.to_s, Dir.getwd].to_csv)
  end
end
rawrite_message(msg) click to toggle source
# File lib/adlint/report.rb, line 116
def rawrite_message(msg)
  msg.print_as_csv(@msg_file)
  msg.print_as_str($stderr) unless @verbose
end