StructuredMerge Ruby provides Ruby gems for building merge-aware tools that need portable structured-merge contracts, fixture-backed behavior, and Ruby-native integration points.
The monorepo includes the core AST/review contracts, parser substrate support, format-specific merge gems, binary/ZIP planning helpers, provider adapters, and a Ruby packaging recipe gem.
Project links:
- Website: https://structuredmerge.org
- Implementations: https://structuredmerge.org/implementations.html
- Specification: https://github.com/structuredmerge/structuredmerge-spec
- Shared fixtures: https://github.com/structuredmerge/structuredmerge-fixtures
Install the gems your tool needs:
bundle add ast-merge json-mergeCore:
tree_haver- parser substrate, byte ranges, backend adapters, and binary tree contracts.ast-merge- AST merge contracts, diagnostics, planning, review, replay, and nested-merge vocabulary.ast-template- template/session transport contracts.
Format libraries:
plain-mergejson-mergeyaml-mergetoml-mergemarkdown-mergeruby-mergego-mergerust-mergetypescript-mergebinary-mergezip-merge
Provider and recipe gems:
psych-mergecitrus-toml-mergeparslet-toml-mergecommonmarker-mergekramdown-mergemarkly-mergeprism-mergekettle-jem
The Ruby gems are developed against the shared StructuredMerge fixtures. Those fixtures define the cross-language behavior expected from the Go, TypeScript, Rust, and Ruby implementations. Conformance checks live in gem specs and in the shared spec/fixture tooling rather than in a static launch-status document.
Common checks:
mise run checkbundle exec rake- package-specific
bundle exec rspeccommands
Bundler path gems are the default isolation mechanism inside this monorepo. When
this repository needs to consume sibling workspace projects outside the monorepo
itself, prefer nomono-driven Bundler wiring rather than manual Ruby load-path
changes.