Class: GraphQL::Query::Result
- Inherits:
-
Object
- Object
- GraphQL::Query::Result
- Extended by:
- Forwardable
- Defined in:
- lib/graphql/query/result.rb
Overview
A result from Schema#execute. It provides the requested data and access to the GraphQL::Query and Context.
Instance Attribute Summary collapse
-
#query ⇒ GraphQL::Query
readonly
The query that was executed.
-
#to_h ⇒ Hash
readonly
The resulting hash of "data" and/or "errors".
Instance Method Summary collapse
-
#==(other) ⇒ Boolean
A result is equal to another object when:.
-
#initialize(query:, values:) ⇒ Result
constructor
A new instance of Result.
- #inspect ⇒ Object
-
#method_missing(method_name, *args, &block) ⇒ Object
Delegate any hash-like method to the underlying hash.
- #respond_to_missing?(method_name, include_private = false) ⇒ Boolean
Constructor Details
#initialize(query:, values:) ⇒ Result
Returns a new instance of Result.
11 12 13 14 |
# File 'lib/graphql/query/result.rb', line 11 def initialize(query:, values:) @query = query @to_h = values end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method_name, *args, &block) ⇒ Object
Delegate any hash-like method to the underlying hash.
27 28 29 30 31 32 33 |
# File 'lib/graphql/query/result.rb', line 27 def method_missing(method_name, *args, &block) if @to_h.respond_to?(method_name) @to_h.public_send(method_name, *args, &block) else super end end |
Instance Attribute Details
#query ⇒ GraphQL::Query (readonly)
Returns The query that was executed.
17 18 19 |
# File 'lib/graphql/query/result.rb', line 17 def query @query end |
#to_h ⇒ Hash (readonly)
Returns The resulting hash of "data" and/or "errors".
20 21 22 |
# File 'lib/graphql/query/result.rb', line 20 def to_h @to_h end |
Instance Method Details
#==(other) ⇒ Boolean
A result is equal to another object when:
- The other object is a Hash whose value matches
result.to_h
- The other object is a Result whose value matches
result.to_h
(The query is ignored for comparing result equality.)
51 52 53 54 55 56 57 58 59 60 |
# File 'lib/graphql/query/result.rb', line 51 def ==(other) case other when Hash @to_h == other when Query::Result @to_h == other.to_h else super end end |
#inspect ⇒ Object
39 40 41 |
# File 'lib/graphql/query/result.rb', line 39 def inspect "#<GraphQL::Query::Result @query=... @to_h=#{@to_h}>" end |
#respond_to_missing?(method_name, include_private = false) ⇒ Boolean
35 36 37 |
# File 'lib/graphql/query/result.rb', line 35 def respond_to_missing?(method_name, include_private = false) @to_h.respond_to?(method_name) || super end |