Module: GraphQL::Schema::Member::HasArguments Private

Included in:
Field, InputObject, Resolver
Defined in:
lib/graphql/schema/member/has_arguments.rb

This module is part of a private API. You should avoid using this module if possible, as it may be removed or be changed in the future.

Defined Under Namespace

Modules: ArgumentClassAccessor

Instance Method Summary collapse

Instance Method Details

#add_argument(arg_defn) ⇒ GraphQL::Schema::Argument

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Register this argument with the class.



25
26
27
28
# File 'lib/graphql/schema/member/has_arguments.rb', line 25

def add_argument(arg_defn)
  own_arguments[arg_defn.name] = arg_defn
  arg_defn
end

#argument(*args, **kwargs, &block) ⇒ GraphQL::Schema::Argument

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns An instance of arguments_class, created from *args.

See Also:

  • for parameters


16
17
18
19
20
# File 'lib/graphql/schema/member/has_arguments.rb', line 16

def argument(*args, **kwargs, &block)
  kwargs[:owner] = self
  arg_defn = self.argument_class.new(*args, **kwargs, &block)
  add_argument(arg_defn)
end

#argument_class(new_arg_class = nil) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



38
39
40
# File 'lib/graphql/schema/member/has_arguments.rb', line 38

def argument_class(new_arg_class = nil)
  self.class.argument_class(new_arg_class)
end

#argumentsHash<String => GraphQL::Schema::Argument] Arguments defined on this thing, keyed by name. Includes inherited definitions

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns Hash GraphQL::Schema::Argument] Arguments defined on this thing, keyed by name. Includes inherited definitions.



31
32
33
34
35
# File 'lib/graphql/schema/member/has_arguments.rb', line 31

def arguments
  inherited_arguments = ((self.is_a?(Class) && superclass.respond_to?(:arguments)) ? superclass.arguments : {})
  # Local definitions override inherited ones
  inherited_arguments.merge(own_arguments)
end

#own_argumentsObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



52
53
54
# File 'lib/graphql/schema/member/has_arguments.rb', line 52

def own_arguments
  @own_arguments ||= {}
end