Class: Prism::Merge::BeginNodePlanEmitter

Inherits:
Object
  • Object
show all
Includes:
SourceLineLookup
Defined in:
lib/prism/merge/begin_node_plan_emitter.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(merger:) ⇒ BeginNodePlanEmitter

Returns a new instance of BeginNodePlanEmitter.



10
11
12
# File 'lib/prism/merge/begin_node_plan_emitter.rb', line 10

def initialize(merger:)
  @merger = merger
end

Instance Attribute Details

#mergerObject (readonly)

Returns the value of attribute merger.



8
9
10
# File 'lib/prism/merge/begin_node_plan_emitter.rb', line 8

def merger
  @merger
end

Instance Method Details

#emit(template_node:, dest_node:, node_preference:, decision:, template_inline_by_line:, dest_inline_by_line:) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/prism/merge/begin_node_plan_emitter.rb', line 14

def emit(template_node:, dest_node:, node_preference:, decision:, template_inline_by_line:, dest_inline_by_line:)
  begin_clause_line_map = merger.send(:begin_node_clause_line_map, template_node, dest_node)

  merger.send(
    :begin_node_merge_planner,
    template_node: template_node,
    dest_node: dest_node,
    node_preference: node_preference
  ).plan.each do |step|
    emit_step(
      step,
      node_preference: node_preference,
      decision: decision,
      template_inline_by_line: ,
      dest_inline_by_line: ,
      begin_clause_line_map: begin_clause_line_map
    )
  end
end