Class: GraphQL::InterfaceType
- Defined in:
- lib/graphql/interface_type.rb
Overview
An Interface contains a collection of types which implement some of the same fields.
Interfaces can have fields, defined with field, just like an object type.
Objects which implement this field inherit field definitions from the interface. An object type can override the inherited definition by redefining that field.
Instance Attribute Summary collapse
- 
  
    
      #fields  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Returns the value of attribute fields. 
- 
  
    
      #orphan_types  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Returns the value of attribute orphan_types. 
- 
  
    
      #resolve_type_proc  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Returns the value of attribute resolve_type_proc. 
Attributes inherited from BaseType
#ast_node, #default_relay, #default_scalar, #description, #introspection, #name
Instance Method Summary collapse
- 
  
    
      #all_fields  ⇒ Array<GraphQL::Field> 
    
    
  
  
  
  
  
  
  
  
  
    These fields don’t have instrumenation applied. 
- 
  
    
      #get_field(field_name)  ⇒ GraphQL::Field 
    
    
  
  
  
  
  
  
  
  
  
    The defined field for field_name.
- 
  
    
      #initialize  ⇒ InterfaceType 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    A new instance of InterfaceType. 
- 
  
    
      #initialize_copy(other)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
- 
  
    
      #kind  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
- 
  
    
      #resolve_type(value, ctx)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
- 
  
    
      #resolve_type=(resolve_type_callable)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Methods inherited from BaseType
#==, #coerce_input, #coerce_isolated_input, #coerce_isolated_result, #coerce_result, #default_relay?, #default_scalar?, #introspection?, #list?, #non_null?, resolve_related_type, #to_definition, #to_list_type, #to_non_null_type, #to_s, #unwrap, #valid_input?, #valid_isolated_input?, #validate_input, #validate_isolated_input
Methods included from Relay::TypeExtensions
#connection_type, #define_connection, #define_edge, #edge_type
Methods included from Define::InstanceDefinable
Methods included from Define::NonNullWithBang
Constructor Details
#initialize ⇒ InterfaceType
Returns a new instance of InterfaceType
| 31 32 33 34 35 36 | # File 'lib/graphql/interface_type.rb', line 31 def initialize super @fields = {} @orphan_types = [] @resolve_type_proc = nil end | 
Instance Attribute Details
#fields ⇒ Object
Returns the value of attribute fields
| 28 29 30 | # File 'lib/graphql/interface_type.rb', line 28 def fields @fields end | 
#orphan_types ⇒ Object
Returns the value of attribute orphan_types
| 28 29 30 | # File 'lib/graphql/interface_type.rb', line 28 def orphan_types @orphan_types end | 
#resolve_type_proc ⇒ Object
Returns the value of attribute resolve_type_proc
| 28 29 30 | # File 'lib/graphql/interface_type.rb', line 28 def resolve_type_proc @resolve_type_proc end | 
Instance Method Details
#all_fields ⇒ Array<GraphQL::Field>
These fields don’t have instrumenation applied
| 64 65 66 | # File 'lib/graphql/interface_type.rb', line 64 def all_fields fields.values end | 
#get_field(field_name) ⇒ GraphQL::Field
Returns The defined field for field_name
| 57 58 59 | # File 'lib/graphql/interface_type.rb', line 57 def get_field(field_name) fields[field_name] end | 
#initialize_copy(other) ⇒ Object
| 38 39 40 41 42 | # File 'lib/graphql/interface_type.rb', line 38 def initialize_copy(other) super @fields = other.fields.dup @orphan_types = other.orphan_types.dup end | 
#kind ⇒ Object
| 44 45 46 | # File 'lib/graphql/interface_type.rb', line 44 def kind GraphQL::TypeKinds::INTERFACE end | 
#resolve_type(value, ctx) ⇒ Object
| 48 49 50 | # File 'lib/graphql/interface_type.rb', line 48 def resolve_type(value, ctx) ctx.query.resolve_type(self, value) end | 
#resolve_type=(resolve_type_callable) ⇒ Object
| 52 53 54 | # File 'lib/graphql/interface_type.rb', line 52 def resolve_type=(resolve_type_callable) @resolve_type_proc = resolve_type_callable end |