Class: GraphQL::UnionType

Inherits:
BaseType show all
Includes:
BaseType::HasPossibleTypes
Defined in:
lib/graphql/union_type.rb

Overview

A collection of ObjectTypes

Examples:

a union of types


PetUnion = GraphQL::UnionType.define do
  name "Pet"
  description "Animals that live in your house"
  possible_types [DogType, CatType, FishType]
end

Constant Summary

Constants included from BaseType::HasPossibleTypes

BaseType::HasPossibleTypes::DEFAULT_RESOLVE_TYPE

Instance Method Summary collapse

Methods included from BaseType::HasPossibleTypes

#resolve_type, #resolve_type=

Methods inherited from BaseType

#==, #coerce_input, #connection_type, #define_connection, #define_edge, #edge_type, #get_field, resolve_related_type, #resolve_type, #to_list_type, #to_non_null_type, #to_s, #unwrap, #valid_input?, #validate_input

Methods included from Define::InstanceDefinable

#definition_proc=, included, #metadata

Methods included from Define::NonNullWithBang

#!

Instance Method Details

#include?(child_type_defn) ⇒ Boolean

Returns:

  • (Boolean)


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

def include?(child_type_defn)
  possible_types.include?(child_type_defn)
end

#kindObject



16
17
18
# File 'lib/graphql/union_type.rb', line 16

def kind
  GraphQL::TypeKinds::UNION
end

#possible_typesObject



29
30
31
32
33
34
35
36
# File 'lib/graphql/union_type.rb', line 29

def possible_types
  @clean_possible_types ||= begin
    ensure_defined
    @dirty_possible_types.map { |type| GraphQL::BaseType.resolve_related_type(type) }
  rescue
    @dirty_possible_types
  end
end

#possible_types=(new_possible_types) ⇒ Object



24
25
26
27
# File 'lib/graphql/union_type.rb', line 24

def possible_types=(new_possible_types)
  @clean_possible_types = nil
  @dirty_possible_types = new_possible_types
end