Class: GraphQL::Analysis::QueryComplexity::TypeComplexity
- Inherits:
 - 
      Object
      
        
- Object
 - GraphQL::Analysis::QueryComplexity::TypeComplexity
 
 
- Defined in:
 - lib/graphql/analysis/query_complexity.rb
 
Overview
Selections on an object may apply differently depending on what is actually returned by the resolve function. Find the maximum possible complexity among those combinations.
Instance Method Summary collapse
- 
  
    
      #initialize  ⇒ TypeComplexity 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    
A new instance of TypeComplexity.
 - 
  
    
      #max_possible_complexity  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Return the max possible complexity for types in this selection.
 - 
  
    
      #merge(type_defn, complexity)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Store the complexity for the branch on
type_defn. 
Constructor Details
#initialize ⇒ TypeComplexity
Returns a new instance of TypeComplexity
      71 72 73  | 
    
      # File 'lib/graphql/analysis/query_complexity.rb', line 71 def initialize @types = Hash.new(0) end  | 
  
Instance Method Details
#max_possible_complexity ⇒ Object
Return the max possible complexity for types in this selection
      76 77 78  | 
    
      # File 'lib/graphql/analysis/query_complexity.rb', line 76 def max_possible_complexity @types.each_value.max || 0 end  | 
  
#merge(type_defn, complexity) ⇒ Object
Store the complexity for the branch on type_defn.
Later we will see if this is the max complexity among branches.
      82 83 84  | 
    
      # File 'lib/graphql/analysis/query_complexity.rb', line 82 def merge(type_defn, complexity) @types[type_defn] += complexity end  |