module GraphQL::Schema::HasSingleInputArgument::ClassMethods
Public Instance Methods
# File lib/graphql/schema/has_single_input_argument.rb, line 91 def all_field_argument_definitions dummy.all_argument_definitions end
Source
# File lib/graphql/schema/has_single_input_argument.rb, line 87 def any_field_arguments? dummy.any_arguments? end
# File lib/graphql/schema/has_single_input_argument.rb, line 96 def argument(*args, own_argument: false, **kwargs, &block) it = input_type # make sure any inherited arguments are already added to it args = args #: untyped arg = super(*args, **kwargs, &block) # This definition might be overriding something inherited; # if it is, remove the inherited definition so it's not confused at runtime as having multiple definitions prev_args = it.own_arguments[arg.graphql_name] case prev_args when GraphQL::Schema::Argument if prev_args.owner != self it.own_arguments.delete(arg.graphql_name) end when Array prev_args.reject! { |a| a.owner != self } if prev_args.empty? it.own_arguments.delete(arg.graphql_name) end end it.add_argument(arg) arg end
Also apply this argument to the input type:
Calls superclass method
Source
# File lib/graphql/schema/has_single_input_argument.rb, line 64 def dummy @dummy ||= begin d = Class.new(GraphQL::Schema::Resolver) d.graphql_name "#{self.graphql_name}DummyResolver" d.argument_class(self.argument_class) # TODO make this lazier? d.argument(:input, input_type, description: "Parameters for #{self.graphql_name}") d end end
# File lib/graphql/schema/has_single_input_argument.rb, line 75 def field_arguments(context = GraphQL::Query::NullContext.instance) dummy.arguments(context) end
# File lib/graphql/schema/has_single_input_argument.rb, line 79 def get_field_argument(name, context = GraphQL::Query::NullContext.instance) dummy.get_argument(name, context) end
# File lib/graphql/schema/has_single_input_argument.rb, line 132 def input_object_class(new_class = nil) if new_class @input_object_class = new_class end @input_object_class || (superclass.respond_to?(:input_object_class) ? superclass.input_object_class : GraphQL::Schema::InputObject) end
The base class for generated input object types
Parameters
-
new_class(Class) — The base class to use for generating input object definitions
Returns
-
Class— The base class for this mutation’s generated input object (default isGraphQL::Schema::InputObject)
# File lib/graphql/schema/has_single_input_argument.rb, line 149 def input_type(new_input_type = nil) if new_input_type @input_type = new_input_type end @input_type ||= generate_input_type end
Parameters
-
new_input_type(Class, nil) — If provided, it configures this mutation to acceptnew_input_typeinstead of generating an input type
Returns
-
Class— The generatedSchema::InputObjectclass for this mutation’sinput
Source
# File lib/graphql/schema/has_single_input_argument.rb, line 83 def own_field_arguments dummy.own_arguments end