class PanamaxTemplateValidator::Template

Attributes

errors[R]

Public Class Methods

new(template_attrs) click to toggle source
# File lib/panamax_template_validator/template.rb, line 5
def initialize(template_attrs)
  @template_attrs = template_attrs
  @errors = []
end

Public Instance Methods

validate() click to toggle source
# File lib/panamax_template_validator/template.rb, line 10
def validate
  validate_presence_of('name')
  validate_presence_of('description')
  validate_presence_of('documentation')
  validate_length_of('documentation', '>', 40)
  image_names = @template_attrs['images'].map { |image| image['name'] }
  @template_attrs['images'].each do |image_attrs|
    image = Image.new(image_attrs, image_names)
    image.validate
    @errors += image.errors
  end
end

Private Instance Methods

validate_length_of(key, inequality, length) click to toggle source
# File lib/panamax_template_validator/template.rb, line 31
def validate_length_of(key, inequality, length)
  return unless @template_attrs[key]
  unless @template_attrs[key].length.send(inequality, length)
    @errors << "template #{key} should #{inequality} #{length}"
  end
end
validate_presence_of(key) click to toggle source
# File lib/panamax_template_validator/template.rb, line 25
def validate_presence_of(key)
  if @template_attrs[key].nil? || @template_attrs[key] == ''
    @errors << "template #{key} is required"
  end
end