Module: Prism

Defined in:
lib/prism/merge.rb,
lib/prism/merge/version.rb,
lib/prism/merge/file_aligner.rb,
lib/prism/merge/merge_result.rb,
lib/prism/merge/smart_merger.rb,
lib/prism/merge/file_analysis.rb,
lib/prism/merge/conflict_resolver.rb

Overview

Prism::Merge provides a generic Ruby file smart merge system using Prism AST analysis. It intelligently merges template and destination Ruby files by identifying matching sections (anchors) and resolving differences (boundaries) using structural signatures.

Examples:

Basic usage

template = File.read("template.rb")
destination = File.read("destination.rb")
merger = Prism::Merge::SmartMerger.new(template, destination)
result = merger.merge

With debug information

merger = Prism::Merge::SmartMerger.new(template, destination)
debug_result = merger.merge_with_debug
puts debug_result[:debug]
puts debug_result[:statistics]

Defined Under Namespace

Modules: Merge