Class: Membrane::Schemas::List::MemberValidator
- Inherits:
-
Object
- Object
- Membrane::Schemas::List::MemberValidator
- Defined in:
- lib/membrane/schemas/list.rb
Instance Method Summary collapse
- #fail!(errors) ⇒ Object
-
#initialize(elem_schema, object) ⇒ MemberValidator
constructor
A new instance of MemberValidator.
- #validate ⇒ Object
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 |
#validate ⇒ Object
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 |