Module: GraphQL::StaticValidation::TypeStack::ArgumentStrategy
- Defined in:
- lib/graphql/static_validation/type_stack.rb
Class Method Summary collapse
- .pop(stack, node) ⇒ Object
-
.push(stack, node) ⇒ Object
Push ‘argument_defn` onto the stack.
Class Method Details
.pop(stack, node) ⇒ Object
168 169 170 171 |
# File 'lib/graphql/static_validation/type_stack.rb', line 168 def pop(stack, node) stack.argument_definitions.pop stack.path.pop end |
.push(stack, node) ⇒ Object
Push ‘argument_defn` onto the stack. It’s possible that ‘argument_defn` will be nil. Push it anyways so `pop` has something to pop.
149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 |
# File 'lib/graphql/static_validation/type_stack.rb', line 149 def push(stack, node) if stack.argument_definitions.last arg_type = stack.argument_definitions.last.type.unwrap if arg_type.kind.input_object? argument_defn = arg_type.input_fields[node.name] else argument_defn = nil end elsif stack.directive_definitions.last argument_defn = stack.directive_definitions.last.arguments[node.name] elsif stack.field_definitions.last argument_defn = stack.field_definitions.last.arguments[node.name] else argument_defn = nil end stack.argument_definitions.push(argument_defn) stack.path.push(node.name) end |