Module: Kettle::Dev::SourceMerger

Defined in:
sig/kettle/dev/source_merger.rbs

Overview

Prism-based AST merging for templated Ruby files. Handles strategy dispatch (skip/replace/append/merge).

Uses prism-merge for AST-aware merging with support for:

  • Freeze blocks (kettle-dev:freeze / kettle-dev:unfreeze)
  • Comment preservation
  • Signature-based node matching

Constant Summary collapse

BUG_URL =

Class Method Summary collapse

Class Method Details

.applyString

Apply a templating strategy to merge source and destination Ruby files

Raises:



23
# File 'sig/kettle/dev/source_merger.rbs', line 23

def self.apply: (

.apply_appendString

Apply append strategy using prism-merge



54
# File 'sig/kettle/dev/source_merger.rbs', line 54

def self.apply_append: (String src_content, String dest_content) -> String

.apply_mergeString

Apply merge strategy using prism-merge



61
# File 'sig/kettle/dev/source_merger.rbs', line 61

def self.apply_merge: (String src_content, String dest_content) -> String

.create_signature_generatorProc

Create a signature generator for prism-merge Handles various Ruby node types for proper matching during merge operations



67
# File 'sig/kettle/dev/source_merger.rbs', line 67

def self.create_signature_generator: () -> ^(Prism::Node) -> (Array[untyped] | Prism::Node)

.ensure_trailing_newlineString

Ensure text ends with newline



47
# File 'sig/kettle/dev/source_merger.rbs', line 47

def self.ensure_trailing_newline: (String? text) -> String

.normalize_strategySymbol

Normalize strategy symbol



34
# File 'sig/kettle/dev/source_merger.rbs', line 34

def self.normalize_strategy: (Symbol? strategy) -> Symbol

.warn_bugvoid

This method returns an undefined value.

Warn about bugs and print error information



41
# File 'sig/kettle/dev/source_merger.rbs', line 41

def self.warn_bug: (String path, StandardError error) -> void