Class: GraphQL::Execution::InputValues
- Inherits:
-
Object
- Object
- GraphQL::Execution::InputValues
- Defined in:
- lib/graphql/execution/input_values.rb
Instance Method Summary collapse
- #argument_values(owner_defn, argument_nodes, field_resolve_step) ⇒ Object
-
#initialize(query, runner) ⇒ InputValues
constructor
A new instance of InputValues.
- #variable_values ⇒ Object
Constructor Details
#initialize(query, runner) ⇒ InputValues
Returns a new instance of InputValues.
5 6 7 8 9 |
# File 'lib/graphql/execution/input_values.rb', line 5 def initialize(query, runner) @query = query @runner = runner @variable_values = nil end |
Instance Method Details
#argument_values(owner_defn, argument_nodes, field_resolve_step) ⇒ Object
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/graphql/execution/input_values.rb', line 38 def argument_values(owner_defn, argument_nodes, field_resolve_step) arg_defns = @query.types.arguments(owner_defn) argument_values = {} arg_defns.each do |argument_definition| arg_ruby_key = argument_definition.keyword arg_graphql_key = argument_definition.graphql_name arg_node = argument_nodes.find { |a| a.name == arg_graphql_key } if arg_node.nil? || (arg_node.value.is_a?(Language::Nodes::VariableIdentifier) && !variable_values.key?(arg_node.value.name)) if argument_definition.default_value? arg_value = value_from_ast(argument_definition.default_value, argument_definition.type) argument_value(argument_values, arg_ruby_key, argument_definition, arg_value, nil, field_resolve_step) end else arg_value = value_from_ast(arg_node.value, argument_definition.type) argument_value(argument_values, arg_ruby_key, argument_definition, arg_value, nil, field_resolve_step) end end argument_values rescue GraphQL::ExecutionError => exec_err exec_err end |
#variable_values ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/graphql/execution/input_values.rb', line 11 def variable_values @variable_values ||= begin variable_nodes = @query.selected_operation.variables if variable_nodes.empty? EmptyObjects::EMPTY_HASH else raw_values = @query.provided_variables values = {} variable_nodes.each do |var_node| var_ast_value = if raw_values.key?(var_node.name) raw_values[var_node.name] elsif raw_values.key?(sym_name = var_node.name.to_sym) raw_values[sym_name] elsif !var_node.default_value.nil? var_node.default_value else next end var_type = @runner.schema.type_from_ast(var_node.type, context: @query.context) values[var_node.name] = variable_value(var_ast_value, var_type) end values end end end |