Sha256: 84d14ad5898f5da2136a48f3d6e8afe7e17f9680d3bc2a4fa1539d212aa663bd

Contents?: true

Size: 923 Bytes

Versions: 2

Compression:

Stored size: 923 Bytes

Contents

# typed: true
# frozen_string_literal: true

require "parser/source/map"
require "sorbet-runtime"

require "packwerk/output_style"
require "packwerk/output_styles/plain"

module Packwerk
  class Offense
    extend T::Sig
    extend T::Helpers

    attr_reader :location, :file, :message

    sig do
      params(file: String, message: String, location: T.nilable(Node::Location))
        .void
    end
    def initialize(file:, message:, location: nil)
      @location = location
      @file = file
      @message = message
    end

    sig { params(style: OutputStyle).returns(String) }
    def to_s(style = OutputStyles::Plain.new)
      if location
        <<~EOS
          #{style.filename}#{file}#{style.reset}:#{location.line}:#{location.column}
          #{@message}
        EOS
      else
        <<~EOS
          #{style.filename}#{file}#{style.reset}
          #{@message}
        EOS
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
packwerk-1.1.3 lib/packwerk/offense.rb
packwerk-1.1.2 lib/packwerk/offense.rb