Class: GraphQL::Language::Nodes::AbstractNode
- Inherits:
-
Object
- Object
- GraphQL::Language::Nodes::AbstractNode
- Defined in:
- lib/graphql/language/nodes.rb
Overview
AbstractNode creates classes who:
-
require their keyword arguments, throw ArgumentError if they don’t match
-
expose accessors for keyword arguments
Direct Known Subclasses
Argument, Directive, Document, EnumTypeDefinition, Field, FieldDefinition, FragmentDefinition, FragmentSpread, InlineFragment, InputObject, InputObjectTypeDefinition, InputValueDefinition, InterfaceTypeDefinition, NameOnlyNode, ObjectTypeDefinition, OperationDefinition, SchemaDefinition, UnionTypeDefinition, VariableDefinition, WrapperType
Instance Attribute Summary collapse
-
#col ⇒ Object
Returns the value of attribute col.
-
#line ⇒ Object
Returns the value of attribute line.
Class Method Summary collapse
Instance Method Summary collapse
-
#children ⇒ GraphQL::Language::Nodes::AbstractNode
All nodes in the tree below this one.
-
#initialize(options = {}) ⇒ AbstractNode
constructor
A new instance of AbstractNode.
-
#initialize_node(options = {}) ⇒ Object
This is called with node-specific options.
- #position ⇒ Object
- #to_query_string ⇒ Object
Constructor Details
#initialize(options = {}) ⇒ AbstractNode
Returns a new instance of AbstractNode.
11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/graphql/language/nodes.rb', line 11 def initialize(={}) if .key?(:position_source) position_source = .delete(:position_source) @line, @col = position_source.line_and_column elsif .key?(:line) @line = .delete(:line) @col = .delete(:col) end initialize_node() end |
Instance Attribute Details
#col ⇒ Object
Returns the value of attribute col.
8 9 10 |
# File 'lib/graphql/language/nodes.rb', line 8 def col @col end |
#line ⇒ Object
Returns the value of attribute line.
8 9 10 |
# File 'lib/graphql/language/nodes.rb', line 8 def line @line end |
Class Method Details
.child_attributes(*attr_names) ⇒ Object
36 37 38 39 |
# File 'lib/graphql/language/nodes.rb', line 36 def child_attributes(*attr_names) @child_attributes ||= [] @child_attributes += attr_names end |
Instance Method Details
#children ⇒ GraphQL::Language::Nodes::AbstractNode
Returns all nodes in the tree below this one.
29 30 31 32 33 |
# File 'lib/graphql/language/nodes.rb', line 29 def children self.class.child_attributes .map { |attr_name| public_send(attr_name) } .flatten end |
#initialize_node(options = {}) ⇒ Object
This is called with node-specific options
24 25 26 |
# File 'lib/graphql/language/nodes.rb', line 24 def initialize_node(={}) raise NotImplementedError end |
#position ⇒ Object
42 43 44 |
# File 'lib/graphql/language/nodes.rb', line 42 def position [line, col] end |
#to_query_string ⇒ Object
46 47 48 |
# File 'lib/graphql/language/nodes.rb', line 46 def to_query_string Generation.generate(self) end |