Sha256: 9169fa3a1a6874190de4ea62bba5609ba15af26bc93007e92dd816176bebcbae
Contents?: true
Size: 1.24 KB
Versions: 1
Compression:
Stored size: 1.24 KB
Contents
# typed: strict # frozen_string_literal: true require "benchmark" require "sorbet-runtime" require "packwerk/inflector" require "packwerk/output_styles" module Packwerk module Formatters class OffensesFormatter extend T::Sig sig do params(style: T.any(T.class_of(OutputStyles::Plain), T.class_of(OutputStyles::Coloured))).void end def initialize(style: OutputStyles::Plain) @style = style end sig { params(offenses: T::Array[T.nilable(Offense)]).returns(String) } def show_offenses(offenses) return "No offenses detected 🎉" if offenses.empty? <<~EOS #{offenses_list(offenses)} #{offenses_summary(offenses)} EOS end private sig { params(offenses: T::Array[T.nilable(Offense)]).returns(String) } def offenses_list(offenses) offenses .compact .map { |offense| offense.to_s(@style) } .join("\n") end sig { params(offenses: T::Array[T.nilable(Offense)]).returns(String) } def offenses_summary(offenses) offenses_string = Inflector.default.pluralize("offense", offenses.length) "#{offenses.length} #{offenses_string} detected" end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
packwerk-1.1.1 | lib/packwerk/formatters/offenses_formatter.rb |