Module: Psych

Defined in:
lib/psych/merge.rb,
lib/psych/merge/emitter.rb,
lib/psych/merge/version.rb,
lib/psych/merge/diff_mapper.rb,
lib/psych/merge/freeze_node.rb,
lib/psych/merge/debug_logger.rb,
lib/psych/merge/merge_result.rb,
lib/psych/merge/node_wrapper.rb,
lib/psych/merge/smart_merger.rb,
lib/psych/merge/file_analysis.rb,
lib/psych/merge/comment_tracker.rb,
lib/psych/merge/conflict_resolver.rb,
lib/psych/merge/mapping_match_refiner.rb,
lib/psych/merge/partial_template_merger.rb

Overview

Psych::Merge provides a generic YAML file smart merge system using Psych AST analysis.
It intelligently merges template and destination YAML files by identifying matching
keys and resolving differences using structural signatures.

Examples:

Basic usage

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

With debug information

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

Defined Under Namespace

Modules: Merge