class Git::Lint::Analyzers::CommitTrailerCollaboratorEmail

Public Class Methods

defaults() click to toggle source
# File lib/git/lint/analyzers/commit_trailer_collaborator_email.rb, line 7
def self.defaults
  {
    enabled: true,
    severity: :error
  }
end
new(commit:, settings: self.class.defaults, parser: Parsers::Trailers::Collaborator, validator: Validators::Email) click to toggle source

rubocop:disable Metrics/ParameterLists

Calls superclass method Git::Lint::Analyzers::Abstract::new
# File lib/git/lint/analyzers/commit_trailer_collaborator_email.rb, line 15
def initialize commit:,
               settings: self.class.defaults,
               parser: Parsers::Trailers::Collaborator,
               validator: Validators::Email

  super commit: commit, settings: settings
  @parser = parser
  @validator = validator
end

Public Instance Methods

invalid_line?(line) click to toggle source
# File lib/git/lint/analyzers/commit_trailer_collaborator_email.rb, line 39
def invalid_line? line
  collaborator = parser.new line
  collaborator.match? && !validator.new(collaborator.email).valid?
end
issue() click to toggle source
# File lib/git/lint/analyzers/commit_trailer_collaborator_email.rb, line 28
def issue
  return {} if valid?

  {
    hint: %(Email must follow name and use format: "<name@server.domain>".),
    lines: affected_commit_trailers
  }
end
valid?(= affected_commit_trailers.empty?) click to toggle source

rubocop:enable Metrics/ParameterLists

# File lib/git/lint/analyzers/commit_trailer_collaborator_email.rb, line 26
  def valid? = affected_commit_trailers.empty?

  def issue
    return {} if valid?

    {
      hint: %(Email must follow name and use format: "<name@server.domain>".),
      lines: affected_commit_trailers
    }
  end

  protected

  def invalid_line? line
    collaborator = parser.new line
    collaborator.match? && !validator.new(collaborator.email).valid?
  end

  private

  attr_reader :parser, :validator
end