Class: MetaCommit::Factories::ContextualAstNodeFactory

Inherits:
Object
  • Object
show all
Defined in:
lib/meta_commit/factories/contextual_ast_node_factory.rb

Overview

Factory that builds ContextualAstNode from ast nodes

Constant Summary collapse

WHOLE_FILE =
:whole_file_change

Instance Method Summary collapse

Instance Method Details

#create_contextual_node(source_ast, line_number) ⇒ MetaCommit::Models::ContextualAstNode

Parameters:

  • source_ast (MetaCommit::Contracts::Ast)
  • line_number (Integer)

Returns:



9
10
11
12
13
14
15
16
17
# File 'lib/meta_commit/factories/contextual_ast_node_factory.rb', line 9

def create_contextual_node(source_ast, line_number)
  visited_nodes = []
  contextual_node = MetaCommit::Models::ContextualAstNode.new
  contextual_node.parser_class = source_ast.parser_class
  contextual_node.target_node = collect_path_to_ast_at_line(source_ast, line_number, visited_nodes)
  contextual_node.context_nodes = visited_nodes
  contextual_node.whole_file_change = (line_number == WHOLE_FILE)
  contextual_node
end