Class: BELParser::Completion::MergeCompletion

Inherits:
Object
  • Object
show all
Includes:
AST::Processor::Mixin
Defined in:
lib/bel_parser/completion.rb

Instance Method Summary collapse

Methods included from AST::Processor::Mixin

#process, #process_all

Constructor Details

#initialize(completion_node) ⇒ MergeCompletion

Returns a new instance of MergeCompletion.



940
941
942
943
944
# File 'lib/bel_parser/completion.rb', line 940

def initialize(completion_node)
  @completion_node = completion_node
  @target_type     = completion_node.type
  @range_start     = completion_node.range_start
end

Instance Method Details

#handler_missing(node) ⇒ Object



946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
# File 'lib/bel_parser/completion.rb', line 946

def handler_missing(node)
  if node.type == @target_type && node.range_start == @range_start
    node = @completion_node
  end

  node.updated(
    node.children.map { |n|
      if n.respond_to?(:type)
        process(n)
      else
        n
      end
    }
  )
end