Class: GraphQL::Analysis::QueryComplexity::ScopedTypeComplexity
- Inherits:
-
Hash
- Object
- Hash
- GraphQL::Analysis::QueryComplexity::ScopedTypeComplexity
- Defined in:
- lib/graphql/analysis/query_complexity.rb
Overview
ScopedTypeComplexity models a tree of GraphQL types mapped to inner selections, ie:
Hash
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/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/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/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/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/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/query_complexity.rb', line 44 def own_complexity(child_complexity) @field_definition.calculate_complexity(query: @query, nodes: @nodes, child_complexity: child_complexity) end |