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
-
.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
23 |
# File 'sig/kettle/dev/source_merger.rbs', line 23 def self.apply: ( |
.apply_append ⇒ String
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_merge ⇒ String
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_generator ⇒ Proc
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_newline ⇒ String
Ensure text ends with newline
47 |
# File 'sig/kettle/dev/source_merger.rbs', line 47 def self.ensure_trailing_newline: (String? text) -> String |
.normalize_strategy ⇒ Symbol
Normalize strategy symbol
34 |
# File 'sig/kettle/dev/source_merger.rbs', line 34 def self.normalize_strategy: (Symbol? strategy) -> Symbol |
.warn_bug ⇒ void
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 |