Class: GraphQL::Relay::Edge

Inherits:
ObjectType
  • Object
show all
Defined in:
lib/graphql/relay/edge.rb

Overview

Mostly an internal concern.

Wraps an object as a ‘node`, and exposes a connection-specific `cursor`.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(node, connection) ⇒ Edge

Returns a new instance of Edge.



8
9
10
11
# File 'lib/graphql/relay/edge.rb', line 8

def initialize(node, connection)
  @node = node
  @connection = connection
end

Instance Attribute Details

#nodeObject (readonly)

Returns the value of attribute node.



7
8
9
# File 'lib/graphql/relay/edge.rb', line 7

def node
  @node
end

Class Method Details

.create_type(wrapped_type) ⇒ Object



17
18
19
20
21
22
23
# File 'lib/graphql/relay/edge.rb', line 17

def self.create_type(wrapped_type)
  GraphQL::ObjectType.define do
    name("#{wrapped_type.name}Edge")
    field :node, wrapped_type
    field :cursor, !types.String
  end
end

Instance Method Details

#cursorObject



13
14
15
# File 'lib/graphql/relay/edge.rb', line 13

def cursor
  @cursor ||= @connection.cursor_from_node(node)
end