Class: GraphQL::Function
- Inherits:
-
Object
- Object
- GraphQL::Function
- Defined in:
- lib/graphql/function.rb
Class Method Summary collapse
-
.argument(*args, **kwargs, &block) ⇒ void
Define an argument for this function & its subclasses.
-
.arguments ⇒ Hash<String => GraphQL::Argument>
Arguments for this function class, including inherited arguments.
-
.build_field(function) ⇒ Object
-
.complexity(new_value = nil) ⇒ Object
Get or set this class’s complexity.
-
.deprecation_reason(new_value = nil) ⇒ Object
Get or set this class’s deprecation_reason.
-
.description(new_value = nil) ⇒ Object
Get or set this class’s description.
-
.inherited_value(name) ⇒ Object
private
Class-level reader/writer which is inherited.
-
.type(premade_type = nil, &block) ⇒ GraphQL::BaseType
Get or set the return type for this function class & descendants.
-
.types ⇒ Object
Provides shorthand access to GraphQL’s built-in types.
Instance Method Summary collapse
-
#arguments ⇒ Hash<String => GraphQL::Argument>
Arguments, keyed by name.
-
#call(obj, args, ctx) ⇒ Object
This function’s resolver.
-
#complexity ⇒ Integer, Proc
-
#deprecation_reason ⇒ String?
-
#description ⇒ String?
-
#type ⇒ GraphQL::BaseType
Return type.
Class Method Details
.argument(*args, **kwargs, &block) ⇒ void
This method returns an undefined value.
Define an argument for this function & its subclasses
39 40 41 42 43 |
# File 'lib/graphql/function.rb', line 39 def argument(*args, **kwargs, &block) argument = GraphQL::Argument.from_dsl(*args, **kwargs, &block) own_arguments[argument.name] = argument nil end |
.arguments ⇒ Hash<String => GraphQL::Argument>
Returns Arguments for this function class, including inherited arguments.
46 47 48 49 50 51 52 |
# File 'lib/graphql/function.rb', line 46 def arguments if parent_function? own_arguments.merge(superclass.arguments) else own_arguments.dup end end |
.build_field(function) ⇒ Object
73 74 75 76 77 78 79 80 81 82 83 |
# File 'lib/graphql/function.rb', line 73 def build_field(function) GraphQL::Field.define( arguments: function.arguments, complexity: function.complexity, type: function.type, resolve: function, description: function.description, function: function, deprecation_reason: function.deprecation_reason, ) end |
.complexity(new_value = nil) ⇒ Object
Get or set this class’s complexity
109 |
# File 'lib/graphql/function.rb', line 109 inherited_value(:complexity) |
.deprecation_reason(new_value = nil) ⇒ Object
Get or set this class’s deprecation_reason
106 |
# File 'lib/graphql/function.rb', line 106 inherited_value(:deprecation_reason) |
.description(new_value = nil) ⇒ Object
Get or set this class’s description
103 |
# File 'lib/graphql/function.rb', line 103 inherited_value(:description) |
.inherited_value(name) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Class-level reader/writer which is inherited
87 88 89 90 91 92 93 94 95 96 97 98 99 |
# File 'lib/graphql/function.rb', line 87 def self.inherited_value(name) self.class_eval <<-RUBY def #{name}(new_value = nil) if new_value @#{name} = new_value elsif parent_function? @#{name} || superclass.#{name} else @#{name} end end RUBY end |
.type(premade_type = nil, &block) ⇒ GraphQL::BaseType
Get or set the return type for this function class & descendants
61 62 63 64 65 66 67 68 69 70 71 |
# File 'lib/graphql/function.rb', line 61 def type(premade_type = nil, &block) if block_given? @type = GraphQL::ObjectType.define(&block) elsif premade_type @type = premade_type elsif parent_function? @type || superclass.type else @type end end |
.types ⇒ Object
Provides shorthand access to GraphQL’s built-in types
55 56 57 |
# File 'lib/graphql/function.rb', line 55 def types GraphQL::Define::TypeDefiner.instance end |
Instance Method Details
#arguments ⇒ Hash<String => GraphQL::Argument>
Returns Arguments, keyed by name.
6 7 8 |
# File 'lib/graphql/function.rb', line 6 def arguments self.class.arguments end |
#call(obj, args, ctx) ⇒ Object
Returns This function’s resolver.
16 17 18 |
# File 'lib/graphql/function.rb', line 16 def call(obj, args, ctx) raise GraphQL::RequiredImplementationMissingError end |
#complexity ⇒ Integer, Proc
31 32 33 |
# File 'lib/graphql/function.rb', line 31 def complexity self.class.complexity || 1 end |
#deprecation_reason ⇒ String?
26 27 28 |
# File 'lib/graphql/function.rb', line 26 def deprecation_reason self.class.deprecation_reason end |
#description ⇒ String?
21 22 23 |
# File 'lib/graphql/function.rb', line 21 def description self.class.description end |
#type ⇒ GraphQL::BaseType
Return type
11 12 13 |
# File 'lib/graphql/function.rb', line 11 def type self.class.type end |