class Schmersion::MessageValidator

Attributes

errors[R]

Public Class Methods

new(config, message) click to toggle source
# File lib/schmersion/message_validator.rb, line 8
def initialize(config, message)
  @config = config
  @message = message
  @errors = []
  validate_all
end

Public Instance Methods

valid?() click to toggle source
# File lib/schmersion/message_validator.rb, line 15
def valid?
  @errors.empty?
end
validate_all() click to toggle source
# File lib/schmersion/message_validator.rb, line 19
def validate_all
  return if @message.merge?

  validate_valid_format
  return unless @message.valid?

  validate_type
  validate_scope
  validate_description_presence
  validate_description_length
end

Private Instance Methods

validate_description_length() click to toggle source
# File lib/schmersion/message_validator.rb, line 59
def validate_description_length
  return if @message.description.nil?
  return if @message.description.size.zero?
  return if @message.description.size <= @config.linting[:max_description_length]

  errors << "Commit description must be less than #{@config.linting[:max_description_length]} " \
            "characters (currently #{@message.description.size})"
end
validate_description_presence() click to toggle source
# File lib/schmersion/message_validator.rb, line 53
def validate_description_presence
  return if @message.description&.size&.positive?

  errors << 'A description (text after the type) must be provided'
end
validate_scope() click to toggle source
# File lib/schmersion/message_validator.rb, line 46
def validate_scope
  return if @message.scope.nil?
  return if @config.valid_scope?(@message.scope)

  errors << "Scope (#{@message.scope}) is not valid"
end
validate_type() click to toggle source
# File lib/schmersion/message_validator.rb, line 39
def validate_type
  return if @message.type.nil?
  return if @config.valid_type?(@message.type)

  errors << "Type (#{@message.type}) is not valid"
end
validate_valid_format() click to toggle source
# File lib/schmersion/message_validator.rb, line 33
def validate_valid_format
  return if @message.valid?

  errors << 'The commit message is not in a valid format'
end