Class: GraphQL::Argument

Inherits:
Object
  • Object
show all
Includes:
Define::InstanceDefinable
Defined in:
lib/graphql/argument.rb

Overview

Used for defined arguments (Field, InputObjectType)

#name must be a String.

Examples:

defining an argument for a field

GraphQL::Field.define do
  # ...
  argument :favoriteFood, types.String, "Favorite thing to eat", default_value: "pizza"
end

defining an argument for an InputObjectType

GraphQL::InputObjectType.define do
  argument :newName, !types.String
end

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Define::InstanceDefinable

#definition_proc=, included, #metadata

Instance Attribute Details

#nameString

Returns The name of this argument on its Field or InputObjectType.

Returns:



23
24
25
26
# File 'lib/graphql/argument.rb', line 23

def name
  ensure_defined
  @name
end

Instance Method Details

#typeObject

Get the return type for this field.



37
38
39
40
41
42
# File 'lib/graphql/argument.rb', line 37

def type
  @clean_type ||= begin
    ensure_defined
    GraphQL::BaseType.resolve_related_type(@dirty_type)
  end
end

#type=(new_return_type) ⇒ Object



30
31
32
33
34
# File 'lib/graphql/argument.rb', line 30

def type=(new_return_type)
  ensure_defined
  @clean_type = nil
  @dirty_type = new_return_type
end