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
      43 44 45 46 47  | 
    
      # File 'lib/graphql/function.rb', line 43 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.
      50 51 52 53 54 55 56  | 
    
      # File 'lib/graphql/function.rb', line 50 def arguments if parent_function? own_arguments.merge(superclass.arguments) else own_arguments.dup end end  | 
  
.build_field(function) ⇒ Object
      77 78 79 80 81 82 83 84 85 86 87  | 
    
      # File 'lib/graphql/function.rb', line 77 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
      113  | 
    
      # File 'lib/graphql/function.rb', line 113 inherited_value(:complexity)  | 
  
.deprecation_reason(new_value = nil) ⇒ Object
Get or set this class’s deprecation_reason
      110  | 
    
      # File 'lib/graphql/function.rb', line 110 inherited_value(:deprecation_reason)  | 
  
.description(new_value = nil) ⇒ Object
Get or set this class’s description
      107  | 
    
      # File 'lib/graphql/function.rb', line 107 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
      91 92 93 94 95 96 97 98 99 100 101 102 103  | 
    
      # File 'lib/graphql/function.rb', line 91 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
      65 66 67 68 69 70 71 72 73 74 75  | 
    
      # File 'lib/graphql/function.rb', line 65 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
      59 60 61  | 
    
      # File 'lib/graphql/function.rb', line 59 def types GraphQL::Define::TypeDefiner.instance end  | 
  
Instance Method Details
#arguments ⇒ Hash<String => GraphQL::Argument>
Returns Arguments, keyed by name.
      10 11 12  | 
    
      # File 'lib/graphql/function.rb', line 10 def arguments self.class.arguments end  | 
  
#call(obj, args, ctx) ⇒ Object
Returns This function’s resolver.
      20 21 22  | 
    
      # File 'lib/graphql/function.rb', line 20 def call(obj, args, ctx) raise GraphQL::RequiredImplementationMissingError end  | 
  
#complexity ⇒ Integer, Proc
      35 36 37  | 
    
      # File 'lib/graphql/function.rb', line 35 def complexity self.class.complexity || 1 end  | 
  
#deprecation_reason ⇒ String?
      30 31 32  | 
    
      # File 'lib/graphql/function.rb', line 30 def deprecation_reason self.class.deprecation_reason end  | 
  
#description ⇒ String?
      25 26 27  | 
    
      # File 'lib/graphql/function.rb', line 25 def description self.class.description end  | 
  
#type ⇒ GraphQL::BaseType
Return type
      15 16 17  | 
    
      # File 'lib/graphql/function.rb', line 15 def type self.class.type end  |