Class: GraphQL::Upgrader::ResolveProcToMethodTransform::ResolveProcProcessor
- Inherits:
- 
      Parser::AST::Processor
      
        - Object
- Parser::AST::Processor
- GraphQL::Upgrader::ResolveProcToMethodTransform::ResolveProcProcessor
 
- Defined in:
- lib/graphql/upgrader/member.rb
Defined Under Namespace
Classes: ResolveProcSection
Instance Attribute Summary collapse
- 
  
    
      #resolve_proc_sections  ⇒ Object 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    Returns the value of attribute resolve_proc_sections. 
Instance Method Summary collapse
- 
  
    
      #initialize  ⇒ ResolveProcProcessor 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    A new instance of ResolveProcProcessor. 
- 
  
    
      #on_block(node)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
- 
  
    
      #on_send(node)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Constructor Details
#initialize ⇒ ResolveProcProcessor
Returns a new instance of ResolveProcProcessor.
| 590 591 592 | # File 'lib/graphql/upgrader/member.rb', line 590 def initialize @resolve_proc_sections = [] end | 
Instance Attribute Details
#resolve_proc_sections ⇒ Object (readonly)
Returns the value of attribute resolve_proc_sections.
| 589 590 591 | # File 'lib/graphql/upgrader/member.rb', line 589 def resolve_proc_sections @resolve_proc_sections end | 
Instance Method Details
#on_block(node) ⇒ Object
| 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 | # File 'lib/graphql/upgrader/member.rb', line 620 def on_block(node) send_node, args_node, body_node = node.children _receiver, method_name, _send_args_node = *send_node # Assume that the first three-argument proc we enter is the resolve if ( method_name == :lambda && args_node.children.size == 3 && !@resolve_proc_sections.empty? && @resolve_proc_sections[-1].proc_arg_names.nil? ) resolve_proc_section = @resolve_proc_sections[-1] source_exp = body_node.loc.expression resolve_proc_section.proc_arg_names = args_node.children.map { |arg_node| arg_node.children[0].to_s } resolve_proc_section.proc_start = source_exp.begin.begin_pos resolve_proc_section.proc_end = source_exp.end.end_pos end super(node) end | 
#on_send(node) ⇒ Object
| 606 607 608 609 610 611 612 613 614 615 616 617 618 | # File 'lib/graphql/upgrader/member.rb', line 606 def on_send(node) receiver, method_name, _args = *node if method_name == :resolve && receiver.nil? resolve_proc_section = ResolveProcSection.new source_exp = node.loc.expression resolve_proc_section.resolve_start = source_exp.begin.begin_pos resolve_proc_section.resolve_end = source_exp.end.end_pos resolve_proc_section.resolve_indent = source_exp.column @resolve_proc_sections << resolve_proc_section end super(node) end |