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