Class: Ast::Merge::Text::MergeResult

Inherits:
MergeResultBase show all
Defined in:
lib/ast/merge/text/merge_result.rb

Overview

Merge result for text-based AST merging. Tracks merged lines and decisions made during the merge process.

Constant Summary

Constants inherited from MergeResultBase

MergeResultBase::DECISION_ADDED, MergeResultBase::DECISION_APPENDED, MergeResultBase::DECISION_FREEZE_BLOCK, MergeResultBase::DECISION_KEPT_DEST, MergeResultBase::DECISION_KEPT_TEMPLATE, MergeResultBase::DECISION_MERGED, MergeResultBase::DECISION_REPLACED

Instance Attribute Summary

Attributes inherited from MergeResultBase

#conflicts, #decisions, #dest_analysis, #frozen_blocks, #lines, #stats, #template_analysis

Instance Method Summary collapse

Methods inherited from MergeResultBase

#content, #content=, #content?, #decision_summary, #empty?, #initialize, #inspect, #line_count, #to_s

Constructor Details

This class inherits a constructor from Ast::Merge::MergeResultBase

Instance Method Details

#add_line(line) ⇒ void

This method returns an undefined value.

Add a line to the result

Parameters:

  • line (String)

    Line content to add



13
14
15
# File 'lib/ast/merge/text/merge_result.rb', line 13

def add_line(line)
  @lines << line
end

#add_lines(lines) ⇒ void

This method returns an undefined value.

Add multiple lines to the result

Parameters:

  • lines (Array<String>)

    Lines to add



21
22
23
# File 'lib/ast/merge/text/merge_result.rb', line 21

def add_lines(lines)
  @lines.concat(lines)
end

#record_decision(decision, template_node, dest_node) ⇒ void

This method returns an undefined value.

Record a merge decision

Parameters:

  • decision (Symbol)

    Decision constant

  • template_node (Object, nil)

    Template node involved

  • dest_node (Object, nil)

    Destination node involved



31
32
33
34
35
36
37
38
# File 'lib/ast/merge/text/merge_result.rb', line 31

def record_decision(decision, template_node, dest_node)
  @decisions << {
    decision: decision,
    template_node: template_node,
    dest_node: dest_node,
    line: @lines.length,
  }
end