Module: Kettle::Dev::SourceMerger

Defined in:
sig/kettle/dev.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

.apply ⇒ String

Apply a templating strategy to merge source and destination Ruby files

Raises:



423
# File 'sig/kettle/dev.rbs', line 423

def self.apply: (

.apply_append ⇒ String

Apply append strategy using prism-merge



454
# File 'sig/kettle/dev.rbs', line 454

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

.apply_merge ⇒ String

Apply merge strategy using prism-merge



461
# File 'sig/kettle/dev.rbs', line 461

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

.create_signature_generator ⇒ Proc

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



467
# File 'sig/kettle/dev.rbs', line 467

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

.ensure_trailing_newline ⇒ String

Ensure text ends with newline



447
# File 'sig/kettle/dev.rbs', line 447

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

.normalize_strategy ⇒ Symbol

Normalize strategy symbol



434
# File 'sig/kettle/dev.rbs', line 434

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

.warn_bug ⇒ void

This method returns an undefined value.

Warn about bugs and print error information



441
# File 'sig/kettle/dev.rbs', line 441

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