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 |