Class: GraphQL::GraphQLObjectType

Inherits:
Configuration::Configurable show all
Includes:
GraphQLCompositeType, GraphQLNamedType, GraphQLNullableType, GraphQLOutputType, GraphQLType
Defined in:
lib/graphql/type/object_type.rb

Instance Method Summary collapse

Methods included from GraphQLNullableType

#!

Methods included from GraphQLType

#+@

Methods inherited from Configuration::Configurable

configuration, configure_with, #method_missing, new

Constructor Details

#initialize(configuration) ⇒ GraphQLObjectType

Returns a new instance of GraphQLObjectType.



22
23
24
25
# File 'lib/graphql/type/object_type.rb', line 22

def initialize(configuration)
  super
  interfaces.each { |interface| interface.implement!(self) }
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class GraphQL::Configuration::Configurable

Instance Method Details

#field(name) ⇒ Object



40
41
42
# File 'lib/graphql/type/object_type.rb', line 40

def field(name)
  field_map[name.to_sym]
end

#field_mapObject



28
29
30
# File 'lib/graphql/type/object_type.rb', line 28

def field_map
  @field_map ||= @configuration.fields.reduce({}) { |memo, field| memo[field.name.to_sym] = field ; memo}
end

#field_namesObject



32
33
34
# File 'lib/graphql/type/object_type.rb', line 32

def field_names
  @field_names ||= field_map.keys
end

#fieldsObject



36
37
38
# File 'lib/graphql/type/object_type.rb', line 36

def fields
  @fields ||= field_map.values
end

#interfacesObject



44
45
46
# File 'lib/graphql/type/object_type.rb', line 44

def interfaces
  @configuration.interfaces
end

#to_sObject



52
53
54
# File 'lib/graphql/type/object_type.rb', line 52

def to_s
  name
end

#type_of?(type) ⇒ Boolean

Returns:

  • (Boolean)


48
49
50
# File 'lib/graphql/type/object_type.rb', line 48

def type_of?(type)
  @configuration.type_of?.nil? ? false : @configuration.type_of?.call(type)
end