prism-merge v1.1.1 released!
1.1.1 - 2025-12-04
- TAG: v1.1.1
- COVERAGE: 96.62% – 857/887 lines in 9 files
- BRANCH COVERAGE: 82.75% – 331/400 branches in 9 files
- 100.00% documented
Added
- Documented comparison of this tool, git-merge, and IDE “Smart Merge” in README.md
- Comprehensive node signature support for all Prism node types with nested content:
SingletonClassNode- singleton class definitions (class << self)CaseNode/CaseMatchNode- case statements and pattern matchingWhileNode/UntilNode/ForNode- loop constructsBeginNode- exception handling blocksSuperNode/ForwardingSuperNode- super calls with blocksLambdaNode- lambda expressionsPreExecutionNode/PostExecutionNode- BEGIN/END blocksParenthesesNode/EmbeddedStatementsNode- parenthesized expressions
- Smart signature matching for assignment method calls (
config.setting = value) now matches by receiver and method name, not by value, enabling proper merging of configuration blocks
Changed
- Improved boundary ordering in merge timeline - destination-only content appearing after all template content now correctly appears at the end of merged output (was incorrectly appearing at the beginning)
- Extended recursive merge support to handle
SingletonClassNodeandBeginNodein addition to existingClassNode,ModuleNode, andCallNodetypes - Freeze block validation expanded - freeze blocks can now be placed inside more container node types:
SingletonClassNode(class << self ... end)DefNode(method definitions)LambdaNode(lambda/proc definitions)CallNodewith blocks (e.g., RSpecdescribe/contextblocks)- This allows protecting portions of method implementations or DSL block contents
- Added README documentation comparing Prism::Merge algorithm to git merge and IDE smart merge strategies
- Added RBS type definitions for
FreezeNodeclass
Fixed
- Documentation of freeze blocks, and configuration to customize the freeze token
Many paths lead to being a sponsor or a backer of this project. Are you on such a path?