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 