Skip to content

structuredmerge/structuredmerge-ruby

Repository files navigation

StructuredMerge Ruby

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:

Install

Install the gems your tool needs:

bundle add ast-merge json-merge

Gems

Core:

  • 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:

Provider and recipe gems:

Portability

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.

Development

Common checks:

  • mise run check
  • bundle exec rake
  • package-specific bundle exec rspec commands

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.

About

Ruby implementation of the StructuredMerge contract

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors