Class: GraphQL::Schema::Validator::AllValidator
- Inherits:
- 
      GraphQL::Schema::Validator
      
        - Object
- GraphQL::Schema::Validator
- GraphQL::Schema::Validator::AllValidator
 
- Defined in:
- lib/graphql/schema/validator/all_validator.rb
Overview
Use this to validate each member of an array value.
Constant Summary
Constants included from EmptyObjects
EmptyObjects::EMPTY_ARRAY, EmptyObjects::EMPTY_HASH
Instance Attribute Summary
Attributes inherited from GraphQL::Schema::Validator
Instance Method Summary collapse
- 
  
    
      #initialize(validated:, allow_blank: false, allow_null: false, **validators)  ⇒ AllValidator 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    A new instance of AllValidator. 
- 
  
    
      #validate(object, context, value)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Methods inherited from GraphQL::Schema::Validator
from_config, install, #partial_format, #permitted_empty_value?, uninstall, validate!
Constructor Details
#initialize(validated:, allow_blank: false, allow_null: false, **validators) ⇒ AllValidator
Returns a new instance of AllValidator.
| 24 25 26 27 28 | # File 'lib/graphql/schema/validator/all_validator.rb', line 24 def initialize(validated:, allow_blank: false, allow_null: false, **validators) super(validated: validated, allow_blank: allow_blank, allow_null: allow_null) @validators = Validator.from_config(validated, validators) end | 
Instance Method Details
#validate(object, context, value) ⇒ Object
| 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | # File 'lib/graphql/schema/validator/all_validator.rb', line 30 def validate(object, context, value) return EMPTY_ARRAY if permitted_empty_value?(value) all_errors = EMPTY_ARRAY value.each do |subvalue| @validators.each do |validator| errors = validator.validate(object, context, subvalue) if errors && (errors.is_a?(Array) && errors != EMPTY_ARRAY) || (errors.is_a?(String)) if all_errors.frozen? # It's empty all_errors = [] end if errors.is_a?(String) all_errors << errors else all_errors.concat(errors) end end end end unless all_errors.frozen? all_errors.uniq! end all_errors end |