Skip to content

prism-merge v2.0.1

Choose a tag to compare

@pboling pboling released this 22 Feb 12:19
· 6606 commits to main since this release
v2.0.1
98c274e

2.0.1 - 2026-02-22

  • TAG: v2.0.1
  • COVERAGE: 98.80% -- 820/830 lines in 12 files
  • BRANCH COVERAGE: 85.55% -- 450/526 branches in 12 files
  • 93.51% documented

Added

  • SmartMerger#emit_dest_prefix_lines preserves magic comments (e.g., # frozen_string_literal: true)
    and blank lines that appear before the first AST node in the destination file
  • SmartMerger#emit_dest_gap_lines preserves blank lines between consecutive top-level blocks
    in the destination, preventing them from being silently stripped during merge

Changed

  • SmartMerger#merge_with_debug now uses merge_result (returns MergeResult object)
    instead of merge (returns String), so statistics and decision_summary are accessible
  • SmartMerger#build_result now passes template_analysis and dest_analysis to
    MergeResult.new for consistency with SmartMergerBase API

Removed

  • Removed redundant attr_reader :node_typing from SmartMerger — already provided
    by SmartMergerBase

Fixed

  • Inter-node blank line stripping: blank lines between top-level blocks (e.g., between
    appraise blocks in Appraisals, between gem calls in Gemfiles) are now preserved
    from the destination source during merge
  • Prefix line stripping: magic comments and blank lines before the first AST statement
    (e.g., # frozen_string_literal: true in Appraisal.root.gemfile) are now preserved

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