Sha256: 403136db285f77405e6adfe24efd2cffa4895729fd19f5ead051575961bf1706

Contents?: true

Size: 1017 Bytes

Versions: 3

Compression:

Stored size: 1017 Bytes

Contents

module PreCommit
  module Message
    ##
    # Responsible for format a given output
    class Formatter
      ##
      # Format output for a given +errors+ details
      #
      # @param checkstyle [Domain::Checkstyle] Checkstyle details
      # @return [String] formatted output or nil when has no errors
      # @raise ArgumentError when input is empty
      #
      def format(checkstyle)
        throw ArgumentError.new if checkstyle.nil?
        return nil if checkstyle.good?

        format_multiple(checkstyle.bad_files)
      end

      private

      def format_multiple(files)
        files.reduce('') { |a, e| a + format_single(e) }
      end

      def format_single(bad_file)
        "File errors: #{bad_file.name} \n" + format_errors(bad_file.errors)
      end

      def format_errors(errors)
        errors.reduce('') { |a, e| a + line(e) }
      end

      def line(error)
        "  line: #{error['line']}:#{error['column']}"\
          " error: #{error['message']}\n"
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
java-checkstyle-1.1.0 lib/plugins/pre_commit/message/formatter.rb
java-checkstyle-1.0.5 lib/plugins/pre-commit/message/formatter.rb
java-checkstyle-1.0.4 lib/plugins/pre-commit/message/formatter.rb