From 06407e93054f688362ed9d397b383ca840e9c2ec Mon Sep 17 00:00:00 2001 From: Shaun Sim Date: Tue, 11 Nov 2025 15:35:56 -0500 Subject: [PATCH] Add an optional argument_definition parameter for required_validator --- lib/graphql/schema/argument.rb | 2 +- lib/graphql/schema/validator/required_validator.rb | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/graphql/schema/argument.rb b/lib/graphql/schema/argument.rb index 07165f1909..756870b632 100644 --- a/lib/graphql/schema/argument.rb +++ b/lib/graphql/schema/argument.rb @@ -86,7 +86,7 @@ def initialize(arg_name = nil, type_expr = nil, desc = nil, required: true, type end if required == :nullable - self.owner.validates(required: { argument: arg_name }) + self.owner.validates(required: { argument: arg_name, argument_definition: self }) end if definition_block diff --git a/lib/graphql/schema/validator/required_validator.rb b/lib/graphql/schema/validator/required_validator.rb index 69b30514c4..7a19420e59 100644 --- a/lib/graphql/schema/validator/required_validator.rb +++ b/lib/graphql/schema/validator/required_validator.rb @@ -37,8 +37,10 @@ class Validator class RequiredValidator < Validator # @param one_of [Array] A list of arguments, exactly one of which is required for this field # @param argument [Symbol] An argument that is required for this field + # @param argument_definition [GraphQL::Schema::Argument] The argument definition or instance, which may contain attributes needed by the validator # @param message [String] - def initialize(one_of: nil, argument: nil, message: nil, **default_options) + def initialize(one_of: nil, argument: nil, argument_definition: nil, message: nil, **default_options) + @argument_definition = argument_definition @one_of = if one_of one_of elsif argument