Class: GraphQL::UnionType

Inherits:
Object
  • Object
show all
Includes:
DefinitionHelpers::NonNullWithBang
Defined in:
lib/graph_ql/union_type.rb

Overview

A collection of ObjectTypes

Examples:

a union of types

PetUnion = GraphQL::UnionType.new("Pet", "House pets", [DogType, CatType])

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from DefinitionHelpers::NonNullWithBang

#!

Constructor Details

#initialize(name, desc, types) ⇒ UnionType

Returns a new instance of UnionType.



9
10
11
12
13
# File 'lib/graph_ql/union_type.rb', line 9

def initialize(name, desc, types)
  @name = name
  @description = desc
  @possible_types = types
end

Instance Attribute Details

#descriptionObject (readonly)

Returns the value of attribute description.



8
9
10
# File 'lib/graph_ql/union_type.rb', line 8

def description
  @description
end

#nameObject (readonly)

Returns the value of attribute name.



8
9
10
# File 'lib/graph_ql/union_type.rb', line 8

def name
  @name
end

#possible_typesObject (readonly)

Returns the value of attribute possible_types.



8
9
10
# File 'lib/graph_ql/union_type.rb', line 8

def possible_types
  @possible_types
end

Instance Method Details

#kindObject



15
16
17
# File 'lib/graph_ql/union_type.rb', line 15

def kind
  GraphQL::TypeKinds::UNION
end

#resolve_type(object) ⇒ Object

See Also:

  • GraphQL::UnionType.{InterfaceType{InterfaceType#resolve_type}


20
21
22
23
# File 'lib/graph_ql/union_type.rb', line 20

def resolve_type(object)
  type_name = object.class.name
  possible_types.find {|t| t.name == type_name}
end