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  |