Class: GraphQL::Relay::RangeAdd
- Inherits:
- 
      Object
      
        - Object
- GraphQL::Relay::RangeAdd
 
- Defined in:
- lib/graphql/relay/range_add.rb
Overview
This provides some isolation from GraphQL::Relay internals.
Given a list of items and a new item, it will provide a connection and an edge.
The connection doesn’t receive outside arguments, so the list of items should be ordered and paginated before providing it here.
Instance Attribute Summary collapse
- 
  
    
      #connection  ⇒ Object 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    Returns the value of attribute connection. 
- 
  
    
      #edge  ⇒ Object 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    Returns the value of attribute edge. 
- 
  
    
      #parent  ⇒ Object 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    Returns the value of attribute parent. 
Instance Method Summary collapse
- 
  
    
      #initialize(collection:, item:, parent: nil, context: nil, edge_class: nil)  ⇒ RangeAdd 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    A new instance of RangeAdd. 
Constructor Details
#initialize(collection:, item:, parent: nil, context: nil, edge_class: nil) ⇒ RangeAdd
Returns a new instance of RangeAdd.
| 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | # File 'lib/graphql/relay/range_add.rb', line 37 def initialize(collection:, item:, parent: nil, context: nil, edge_class: nil) if context && context.schema.new_connections? conn_class = context.schema.connections.wrapper_for(collection) # The rest will be added by ConnectionExtension @connection = conn_class.new(collection, parent: parent, context: context, edge_class: edge_class) # Check if this connection supports it, to support old versions of GraphQL-Pro @edge = if @connection.respond_to?(:range_add_edge) @connection.range_add_edge(item) else @connection.edge_class.new(item, @connection) end else connection_class = BaseConnection.connection_for_nodes(collection) @connection = connection_class.new(collection, {}, parent: parent, context: context) edge_class ||= Relay::Edge @edge = edge_class.new(item, @connection) end @parent = parent end | 
Instance Attribute Details
#connection ⇒ Object (readonly)
Returns the value of attribute connection.
| 30 31 32 | # File 'lib/graphql/relay/range_add.rb', line 30 def connection @connection end | 
#edge ⇒ Object (readonly)
Returns the value of attribute edge.
| 30 31 32 | # File 'lib/graphql/relay/range_add.rb', line 30 def edge @edge end | 
#parent ⇒ Object (readonly)
Returns the value of attribute parent.
| 30 31 32 | # File 'lib/graphql/relay/range_add.rb', line 30 def parent @parent end |