Skip to content

prism-merge v1.1.1

Choose a tag to compare

@pboling pboling released this 04 Dec 22:48
· 6625 commits to main since this release
v1.1.1
30b9429

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 matching
    • WhileNode / UntilNode / ForNode - loop constructs
    • BeginNode - exception handling blocks
    • SuperNode / ForwardingSuperNode - super calls with blocks
    • LambdaNode - lambda expressions
    • PreExecutionNode / PostExecutionNode - BEGIN/END blocks
    • ParenthesesNode / 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 SingletonClassNode and BeginNode in addition to existing ClassNode, ModuleNode, and CallNode types
  • 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)
    • CallNode with blocks (e.g., RSpec describe/context blocks)
    • 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 FreezeNode class

Fixed

  • Documentation of freeze blocks, and configuration to customize the freeze token

Official Discord 👉️ Live Chat on Discord

Many paths lead to being a sponsor or a backer of this project. Are you on such a path?

OpenCollective Backers OpenCollective Sponsors Sponsor Me on Github Liberapay Goal Progress Donate on PayPal

Buy me a coffee Donate on Polar Donate to my FLOSS efforts at ko-fi.com Donate to my FLOSS efforts using Patreon