Class: GraphQL::Field
- Inherits:
-
Object
- Object
- GraphQL::Field
- Extended by:
- DefinitionHelpers::Definable
- Defined in:
- lib/graph_ql/field.rb
Overview
These are valid values for a type’s ‘fields` hash.
You can also use FieldDefiner#build to create fields.
Instance Method Summary collapse
- #arguments(new_arguments = nil) ⇒ Object
-
#arguments=(new_arguments) ⇒ Object
Define the arguments for this field using StringNamedHash.
-
#initialize {|_self, GraphQL::DefinitionHelpers::TypeDefiner.instance, GraphQL::DefinitionHelpers::FieldDefiner.instance, GraphQL::DefinitionHelpers::ArgumentDefiner.instance| ... } ⇒ Field
constructor
A new instance of Field.
- #resolve(proc_or_object, arguments = nil, context = nil) ⇒ Object
- #type(type_or_proc = nil) ⇒ Object
Methods included from DefinitionHelpers::Definable
Constructor Details
#initialize {|_self, GraphQL::DefinitionHelpers::TypeDefiner.instance, GraphQL::DefinitionHelpers::FieldDefiner.instance, GraphQL::DefinitionHelpers::ArgumentDefiner.instance| ... } ⇒ Field
Returns a new instance of Field.
17 18 19 20 21 22 23 24 25 26 |
# File 'lib/graph_ql/field.rb', line 17 def initialize @arguments = {} @resolve_proc = -> (o, a, c) { GraphQL::Query::DEFAULT_RESOLVE } yield( self, GraphQL::DefinitionHelpers::TypeDefiner.instance, GraphQL::DefinitionHelpers::FieldDefiner.instance, GraphQL::DefinitionHelpers::ArgumentDefiner.instance ) end |
Instance Method Details
#arguments(new_arguments = nil) ⇒ Object
28 29 30 31 32 33 |
# File 'lib/graph_ql/field.rb', line 28 def arguments(new_arguments=nil) if !new_arguments.nil? self.arguments=(new_arguments) end @arguments end |
#arguments=(new_arguments) ⇒ Object
Define the arguments for this field using StringNamedHash
36 37 38 |
# File 'lib/graph_ql/field.rb', line 36 def arguments=(new_arguments) @arguments = GraphQL::DefinitionHelpers::StringNamedHash.new(new_arguments).to_h end |
#resolve(definition_proc) ⇒ Object #resolve(object, arguments, context) ⇒ Object
54 55 56 57 58 59 60 |
# File 'lib/graph_ql/field.rb', line 54 def resolve(proc_or_object, arguments=nil, context=nil) if arguments.nil? && context.nil? @resolve_proc = proc_or_object else @resolve_proc.call(proc_or_object, arguments, context) end end |
#type(return_type) ⇒ Object #type(return_type_proc) ⇒ Object
73 74 75 76 77 78 79 80 81 |
# File 'lib/graph_ql/field.rb', line 73 def type(type_or_proc=nil) if !type_or_proc.nil? @type = type_or_proc elsif @type.is_a?(Proc) # lazy-eval it @type = @type.call end @type end |