class Percheron::Validators::Unit

Attributes

unit[R]

Public Class Methods

new(unit) click to toggle source
# File lib/percheron/validators/unit.rb, line 5
def initialize(unit)
  @unit = unit
end

Public Instance Methods

valid?() click to toggle source
# File lib/percheron/validators/unit.rb, line 9
def valid?
  message = rules.return { |rule| send(rule) }
  message ? fail(Errors::UnitInvalid, formatted_message(message)) : true
end

Private Instance Methods

formatted_message(message) click to toggle source
# File lib/percheron/validators/unit.rb, line 18
def formatted_message(message)
  if unit.name
    "Unit config for '%s' is invalid: %s" % [ unit.name, message ]
  else
    "Unit config is invalid: #{message}"
  end
end
rules() click to toggle source
# File lib/percheron/validators/unit.rb, line 26
def rules
  [
    :validate_name,
    :validate_dockerfile_and_image_name,
    :validate_dockerfile,
    :validate_image,
    :validate_version
  ]
end
validate_dockerfile() click to toggle source
# File lib/percheron/validators/unit.rb, line 49
def validate_dockerfile
  if !unit.dockerfile.nil? && !File.exist?(unit.dockerfile)
    'Dockerfile is invalid'
  end
end
validate_dockerfile_and_image_name() click to toggle source
# File lib/percheron/validators/unit.rb, line 43
def validate_dockerfile_and_image_name
  if unit.dockerfile.nil? && unit.docker_image.nil?
    'Dockerfile OR image name not provided'
  end
end
validate_image() click to toggle source
# File lib/percheron/validators/unit.rb, line 55
def validate_image
  if !unit.docker_image.nil? && !unit.docker_image.match(/^.+:.+$/)
    'Docker image is invalid'
  end
end
validate_name() click to toggle source

rubocop:disable Style/GuardClause

# File lib/percheron/validators/unit.rb, line 37
def validate_name
  if unit.name.nil? || !unit.name.to_s.match(/[\w]{3,}/)
    'Name is invalid'
  end
end
validate_version() click to toggle source

rubocop:enable Style/GuardClause

# File lib/percheron/validators/unit.rb, line 62
def validate_version
  unit.version ? nil : fail(ArgumentError)
rescue ArgumentError
  'Version is invalid'
end