Sha256: 90211100eb0cf3b640f2e3fbf36789f7cb4291021225aa08a48098be8dc382ad
Contents?: true
Size: 1.31 KB
Versions: 4
Compression:
Stored size: 1.31 KB
Contents
# frozen_string_literal: true module Git module Lint module Analyzers class CommitTrailerCollaboratorName < Abstract def self.defaults { enabled: true, severity: :error, minimum: 2 } end # rubocop:disable Metrics/ParameterLists def initialize commit:, settings: self.class.defaults, parser: Parsers::Trailers::Collaborator, validator: Validators::Name super commit: commit, settings: settings @parser = parser @validator = validator end # rubocop:enable Metrics/ParameterLists def valid? affected_commit_trailers.empty? end def issue return {} if valid? { hint: "Name must follow key and consist of #{minimum} parts (minimum).", lines: affected_commit_trailers } end protected def invalid_line? line collaborator = parser.new line collaborator.match? && !validator.new(collaborator.name.strip, minimum: minimum).valid? end private attr_reader :parser, :validator def minimum settings.fetch :minimum end end end end end
Version data entries
4 entries across 4 versions & 1 rubygems