Class: GraphQL::Execution::Interpreter::HashResponse
- Inherits:
 - 
      Object
      
        
- Object
 - GraphQL::Execution::Interpreter::HashResponse
 
 
- Defined in:
 - lib/graphql/execution/interpreter/hash_response.rb
 
Overview
This response class handles #write by accumulating
values into a Hash.
Instance Method Summary collapse
- 
  
    
      #final_value  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
 - 
  
    
      #initialize  ⇒ HashResponse 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    
A new instance of HashResponse.
 - 
  
    
      #inspect  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
 - 
  
    
      #write(path, value)  ⇒ void 
    
    
  
  
  
  
  
  
  
  
  
    
Add
valueatpath. 
Constructor Details
#initialize ⇒ HashResponse
Returns a new instance of HashResponse
      9 10 11  | 
    
      # File 'lib/graphql/execution/interpreter/hash_response.rb', line 9 def initialize @result = {} end  | 
  
Instance Method Details
#final_value ⇒ Object
      13 14 15  | 
    
      # File 'lib/graphql/execution/interpreter/hash_response.rb', line 13 def final_value @result end  | 
  
#inspect ⇒ Object
      17 18 19  | 
    
      # File 'lib/graphql/execution/interpreter/hash_response.rb', line 17 def inspect "#<#{self.class.name} result=#{@result.inspect}>" end  | 
  
#write(path, value) ⇒ void
This method returns an undefined value.
Add value at path.
      23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42  | 
    
      # File 'lib/graphql/execution/interpreter/hash_response.rb', line 23 def write(path, value) if path.empty? @result = value elsif (write_target = @result) i = 0 prefinal_steps = path.size - 1 # Use `while` to avoid a closure while i < prefinal_steps path_part = path[i] i += 1 write_target = write_target[path_part] end path_part = path[i] write_target[path_part] = value else # The response is completely nulled out end nil end  |