class DomainModel::Validator::Collection
Attributes
values[R]
Public Class Methods
new(field, values)
click to toggle source
# File lib/domain_model.rb, line 310 def initialize(field, values) @field, @values = field, values end
Public Instance Methods
errors()
click to toggle source
# File lib/domain_model.rb, line 314 def errors case when (not enumerable?) ["was declared as a collection and is not enumerable"] when type_mismatch? ["contains a value that is not an instance of #{types.map(&:inspect).join(' or ')}"] when transitively_invalid? ["is invalid"] else [] end end
Private Instance Methods
enumerable?()
click to toggle source
# File lib/domain_model.rb, line 331 def enumerable? values.is_a?(Enumerable) end
transitively_invalid?()
click to toggle source
# File lib/domain_model.rb, line 341 def transitively_invalid? field.validate? and values.any? { |v| not v.valid? } end
type_mismatch?()
click to toggle source
# File lib/domain_model.rb, line 335 def type_mismatch? values.any? do |value| field.types.none? { |t| value.is_a?(t) } end end