Class: GraphQL::Analysis::AST::QueryComplexity::ScopedTypeComplexity
- Inherits:
- 
      Hash
      
        - Object
- Hash
- GraphQL::Analysis::AST::QueryComplexity::ScopedTypeComplexity
 
- Defined in:
- lib/graphql/analysis/ast/query_complexity.rb
Overview
ScopedTypeComplexity models a tree of GraphQL types mapped to inner selections, ie: Hash<GraphQL::BaseType, Hash<String, ScopedTypeComplexity»
Constant Summary collapse
- DEFAULT_PROC =
          A proc for defaulting empty namespace requests as a new scope hash. 
- ->(h, k) { h[k] = {} } 
Instance Attribute Summary collapse
- 
  
    
      #field_definition  ⇒ Object 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    Returns the value of attribute field_definition. 
- 
  
    
      #nodes  ⇒ Array<GraphQL::Language::Nodes::Field> 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    
- 
  
    
      #query  ⇒ Object 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    Returns the value of attribute query. 
- 
  
    
      #response_path  ⇒ Object 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    Returns the value of attribute response_path. 
Instance Method Summary collapse
- 
  
    
      #initialize(parent_type, field_definition, query, response_path)  ⇒ Hash<GraphQL::BaseType, Hash<String, ScopedTypeComplexity>> 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    
- 
  
    
      #own_complexity(child_complexity)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Constructor Details
#initialize(parent_type, field_definition, query, response_path) ⇒ Hash<GraphQL::BaseType, Hash<String, ScopedTypeComplexity>>
| 32 33 34 35 36 37 38 39 | # File 'lib/graphql/analysis/ast/query_complexity.rb', line 32 def initialize(parent_type, field_definition, query, response_path) super(&DEFAULT_PROC) @parent_type = parent_type @field_definition = field_definition @query = query @response_path = response_path @nodes = [] end | 
Instance Attribute Details
#field_definition ⇒ Object (readonly)
Returns the value of attribute field_definition.
| 25 26 27 | # File 'lib/graphql/analysis/ast/query_complexity.rb', line 25 def field_definition @field_definition end | 
#nodes ⇒ Array<GraphQL::Language::Nodes::Field> (readonly)
| 42 43 44 | # File 'lib/graphql/analysis/ast/query_complexity.rb', line 42 def nodes @nodes end | 
#query ⇒ Object (readonly)
Returns the value of attribute query.
| 25 26 27 | # File 'lib/graphql/analysis/ast/query_complexity.rb', line 25 def query @query end | 
#response_path ⇒ Object (readonly)
Returns the value of attribute response_path.
| 25 26 27 | # File 'lib/graphql/analysis/ast/query_complexity.rb', line 25 def response_path @response_path end | 
Instance Method Details
#own_complexity(child_complexity) ⇒ Object
| 44 45 46 | # File 'lib/graphql/analysis/ast/query_complexity.rb', line 44 def own_complexity(child_complexity) @field_definition.calculate_complexity(query: @query, nodes: @nodes, child_complexity: child_complexity) end |