module GraphQL::StaticValidation::VariableNamesAreUnique

Public Instance Methods

on_operation_definition(node, parent) click to toggle source
Calls superclass method
# File lib/graphql/static_validation/rules/variable_names_are_unique.rb, line 5
def on_operation_definition(node, parent)
  var_defns = node.variables
  if var_defns.any?
    vars_by_name = Hash.new { |h, k| h[k] = [] }
    var_defns.each { |v| vars_by_name[v.name] << v }
    vars_by_name.each do |name, defns|
      if defns.size > 1
        add_error(GraphQL::StaticValidation::VariableNamesAreUniqueError.new(
          "There can only be one variable named \"#{name}\"",
          nodes: defns,
          name: name
        ))
      end
    end
  end
  super
end