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 |