Class: GraphQL::Schema::EachItemValidator

Inherits:
Object
  • Object
show all
Defined in:
lib/graphql/schema/each_item_validator.rb

Instance Method Summary collapse

Constructor Details

#initialize(errors) ⇒ EachItemValidator

Returns a new instance of EachItemValidator.



2
3
4
# File 'lib/graphql/schema/each_item_validator.rb', line 2

def initialize(errors)
  @errors = errors
end

Instance Method Details

#validate(items, as:, must_be:) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
# File 'lib/graphql/schema/each_item_validator.rb', line 6

def validate(items, as:, must_be:)
  if !items.is_a?(Array)
    @errors << "#{as} must be an Array, not #{items.inspect}"
    return
  else
    invalid_items = items.select {|k| !yield(k) }
    if invalid_items.any?
      @errors << "#{as} must be #{must_be}, but some aren't: #{invalid_items.map(&:to_s).join(", ")}"
    end
  end
end