ast-merge v2.0.8 released!
2.0.8 - 2026-01-01
- TAG: v2.0.8
- COVERAGE: 97.09% – 2636/2715 lines in 48 files
- BRANCH COVERAGE: 89.73% – 882/983 branches in 48 files
- 98.71% documented
Added
Ast::Merge::NodeWrapperBaseabstract base class for format-specific node wrappers- Provides common functionality shared by
*::Merge::NodeWrapperclasses across gems - Handles source context (lines, source string), line info, comments, content extraction
- Defines abstract
#compute_signaturethat subclasses must implement - Includes
#node_wrapper?to distinguish fromNodeTyping::Wrapper - Includes
#underlying_nodeto access the raw TreeHaver node (NOT#unwrapto avoid conflict withNodeTyping::Wrapper#unwrapsemantics inFileAnalyzable) - Documents relationship between
NodeWrapperBaseandNodeTyping::Wrapper:NodeWrapperBase: Format-specific functionality (line info, signatures, type predicates)NodeTyping::Wrapper: Custom merge classification (merge_typeattribute)
- Nodes can be double-wrapped:
NodeTyping::Wrapper(Format::Merge::NodeWrapper(tree_sitter_node)) - Accepts
**optionsin initialize for subclass-specific parameters (e.g.,backend,document_root)
- Provides common functionality shared by
Many paths lead to being a sponsor or a backer of this project. Are you on such a path?