class Git::Lint::Reporters::Style

Reports issues related to a single style.

Public Class Methods

new(analyzer, colorizer: Pastel.new) click to toggle source
# File lib/git/lint/reporters/style.rb, line 10
def initialize analyzer, colorizer: Pastel.new
  @analyzer = analyzer
  @issue = analyzer.issue
  @colorizer = colorizer
end

Public Instance Methods

affected_lines() click to toggle source
# File lib/git/lint/reporters/style.rb, line 44
def affected_lines
  issue.fetch(:lines, []).reduce("") { |lines, line| lines + Line.new(line).to_s }
end
color() click to toggle source
# File lib/git/lint/reporters/style.rb, line 36
def color
  case analyzer.severity
    when :warn then :yellow
    when :error then :red
    else :white
  end
end
message() click to toggle source
# File lib/git/lint/reporters/style.rb, line 22
def message
  "  #{analyzer.class.label}#{severity_suffix}. " \
  "#{issue.fetch :hint}\n" \
  "#{affected_lines}"
end
severity_suffix() click to toggle source
# File lib/git/lint/reporters/style.rb, line 28
def severity_suffix
  case analyzer.severity
    when :warn then " Warning"
    when :error then " Error"
    else ""
  end
end
to_s(= colorizer.public_send(color, message)) click to toggle source
# File lib/git/lint/reporters/style.rb, line 16
  def to_s = colorizer.public_send(color, message)

  private

  attr_reader :analyzer, :issue, :colorizer

  def message
    "  #{analyzer.class.label}#{severity_suffix}. " \
    "#{issue.fetch :hint}\n" \
    "#{affected_lines}"
  end

  def severity_suffix
    case analyzer.severity
      when :warn then " Warning"
      when :error then " Error"
      else ""
    end
  end

  def color
    case analyzer.severity
      when :warn then :yellow
      when :error then :red
      else :white
    end
  end

  def affected_lines
    issue.fetch(:lines, []).reduce("") { |lines, line| lines + Line.new(line).to_s }
  end
end