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
-
.apply ⇒ String
Apply a templating strategy to merge source and destination Ruby files.
-
.apply_append ⇒ String
Apply append strategy using prism-merge.
-
.apply_merge ⇒ String
Apply merge strategy using prism-merge.
-
.create_signature_generator ⇒ Proc
Create a signature generator for prism-merge Handles various Ruby node types for proper matching during merge operations.
-
.ensure_trailing_newline ⇒ String
Ensure text ends with newline.
-
.normalize_strategy ⇒ Symbol
Normalize strategy symbol.
-
.warn_bug ⇒ void
Warn about bugs and print error information.
Class Method Details
.apply ⇒ String
Apply a templating strategy to merge source and destination Ruby files
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
|