module GraphQL::Types::Relay::ConnectionBehaviors::ClassMethods
def accessible?(ctx)
def accessible?(ctx) node_type.accessible?(ctx) end
def authorized?(obj, ctx)
def authorized?(obj, ctx) true # Let nodes be filtered out end
def define_nodes_field(nullable, field_options: nil)
def define_nodes_field(nullable, field_options: nil) base_field_options = { name: :nodes, type: [@node_type, null: nullable], null: nullable, description: "A list of nodes.", connection: false, } if field_options base_field_options.merge!(field_options) end field(**base_field_options) end
def edge_nullable(new_value = nil)
Set the default `edge_nullable` for this class and its child classes. (Defaults to `true`.)
def edge_nullable(new_value = nil) if new_value.nil? defined?(@edge_nullable) ? @edge_nullable : superclass.edge_nullable else @edge_nullable = new_value end end
def edge_type(edge_type_class, edge_class: GraphQL::Pagination::Connection::Edge, node_type: edge_type_class.node_type, nodes_field: self.has_nodes_field, node_nullable: self.node_nullable, edges_nullable: self.edges_nullable, edge_nullable: self.edge_nullable, field_options: nil)
-
field_options
(Hash
) -- Any extra keyword arguments to pass to the `field :edges, ...` and `field :nodes, ...` configurations
def edge_type(edge_type_class, edge_class: GraphQL::Pagination::Connection::Edge, node_type: edge_type_class.node_type, nodes_field: self.has_nodes_field, node_nullable: self.node_nullable, edges_nullable: self.edges_nullable, edge_nullable: self.edge_nullable, field_options: nil) # Set this connection's graphql name node_type_name = node_type.graphql_name @node_type = node_type @edge_type = edge_type_class @edge_class = edge_class base_field_options = { name: :edges, type: [edge_type_class, null: edge_nullable], null: edges_nullable, description: "A list of edges.", connection: false, } if field_options base_field_options.merge!(field_options) end field(**base_field_options) define_nodes_field(node_nullable, field_options: field_options) if nodes_field description("The connection type for #{node_type_name}.") end
def edges_nullable(new_value = nil)
Set the default `edges_nullable` for this class and its child classes. (Defaults to `true`.)
def edges_nullable(new_value = nil) if new_value.nil? defined?(@edges_nullable) ? @edges_nullable : superclass.edges_nullable else @edges_nullable = new_value end end
def has_nodes_field(new_value = nil)
Set the default `nodes_field` for this class and its child classes. (Defaults to `true`.)
def has_nodes_field(new_value = nil) if new_value.nil? defined?(@nodes_field) ? @nodes_field : superclass.has_nodes_field else @nodes_field = new_value end end
def node_nullable(new_value = nil)
Set the default `node_nullable` for this class and its child classes. (Defaults to `true`.)
def node_nullable(new_value = nil) if new_value.nil? defined?(@node_nullable) ? @node_nullable : superclass.node_nullable else @node_nullable = new_value end end
def nodes_field(node_nullable: self.node_nullable, field_options: nil)
def nodes_field(node_nullable: self.node_nullable, field_options: nil) define_nodes_field(node_nullable, field_options: field_options) end
def scope_items(items, context)
def scope_items(items, context) node_type.scope_items(items, context) end
def visible?(ctx)
def visible?(ctx) # if this is an abstract base class, there may be no `node_type` node_type ? node_type.visible?(ctx) : super end