Class: Membrane::Schemas::List::MemberValidator

Inherits:
Object
  • Object
show all
Defined in:
lib/membrane/schemas/list.rb

Instance Method Summary collapse

Constructor Details

#initialize(elem_schema, object) ⇒ MemberValidator

Returns a new instance of MemberValidator.



39
40
41
42
# File 'lib/membrane/schemas/list.rb', line 39

def initialize(elem_schema, object)
  @elem_schema = elem_schema
  @object = object
end

Instance Method Details

#fail!(errors) ⇒ Object



58
59
60
61
# File 'lib/membrane/schemas/list.rb', line 58

def fail!(errors)
  emsg = errors.map { |ii, e| "At index #{ii}: #{e}" }.join(", ")
  raise Membrane::SchemaValidationError.new(emsg)
end

#validateObject



44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/membrane/schemas/list.rb', line 44

def validate
  errors = {}

  @object.each_with_index do |elem, ii|
    begin
      @elem_schema.validate(elem)
    rescue Membrane::SchemaValidationError => e
      errors[ii] = e.to_s
    end
  end

  fail!(errors) if errors.size > 0
end