binary-merge 7.0.0 → 7.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b349575345081a53402e6ea2e04998d863b7acdcfc327037ef60591aafdc1d9d
4
- data.tar.gz: 3a5f7b7eb71932cf7845b92204dd3c71520472f455b75a9463850763f5d9fbcd
3
+ metadata.gz: cbba43e2ced0cc3c802f60d5b4ac81b997a9e0f3312a79e219b7db09eb87d724
4
+ data.tar.gz: 686b68c0d0f824e047fab2caf9381217223ff9efd646c3a9ebe3076f6d27d470
5
5
  SHA512:
6
- metadata.gz: f68920281184c993ed61ea09b4cbbda1cbb1edf73ed1b8dee5a0a4936d1895d2b0281ab686d6de5766f963c4e8a9b77c4317ca522c6626434a38888f59439713
7
- data.tar.gz: e45e8bd9237ae78ae12778737531a736b5a62664e1bab6d63e6ddc17cb24616d3d459a08a3502745e4021e200341c8c598eef73f63f5e33f184328ea0db181a3
6
+ metadata.gz: c0ad7e02abaa2b03982d1809cb3e3c04c49b3d361b7463e32f0d8a435b7b91fbbec0f4e572f9ef53aa1489235c896a1e975775651a33614bdb1047a7a3f56637
7
+ data.tar.gz: 8428f548fc35df0be04e787771f18430460c198b069b05ec4aa52bc09ed23d01ed7e4ae2689d3d2a929cd51a62836b04032b6c7ce4a13a5cdc061bf02f001ae1
checksums.yaml.gz.sig CHANGED
Binary file
data/LICENSE.md ADDED
@@ -0,0 +1,13 @@
1
+ # License
2
+
3
+ This project is made available under the following licenses.
4
+ Choose the option that best fits your use case:
5
+
6
+ - [AGPL-3.0-only](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/AGPL-3.0-only.md)
7
+ - [PolyForm-Small-Business-1.0.0](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/PolyForm-Small-Business-1.0.0.md)
8
+
9
+ If none of the above licenses fit your use case, please [contact us](mailto:floss@galtzo.com) to discuss a custom commercial license.
10
+
11
+ ## Copyright Notice
12
+
13
+ - Required Notice: Copyright (c) 2026 Peter H. Boling
data/README.md ADDED
@@ -0,0 +1,294 @@
1
+ <a href="https://github.com/structuredmerge"><img alt="structuredmerge Logo by GitHub" src="https://github.com/structuredmerge.png?size=192" width="14%" align="right"/></a>
2
+
3
+ # ☯️ Binary::Merge
4
+
5
+ [![Version][👽versioni]][👽version] [![Ruby Users Forum][✉️ruby-forum-top-img]][✉️ruby-forum] [![GitHub tag (latest SemVer)][⛳️tag-img]][⛳️tag] [![License: AGPL-3.0-only OR PolyForm-Small-Business-1.0.0][📄license-img]][📄license] [![Total downloads][👽dl-ranki]][👽dl-rank] [![CI Current][🚎11-c-wfi]][🚎11-c-wf]
6
+
7
+ `if ci_badges.map(&:color).detect { it != "green"}` ☝️ [let me know on Discord][✉️discord-invite] or [RubyForum][✉️ruby-forum], as I may have missed the notification.
8
+
9
+ ---
10
+
11
+ `if ci_badges.map(&:color).all? { it == "green"}` 👇️ send money so I can do more of this. FLOSS maintenance is now my full-time job.
12
+
13
+ [![Sponsor Me on Github][🖇sponsor-img]][🖇sponsor] [![Liberapay Goal Progress][⛳liberapay-img]][⛳liberapay] [![Donate on PayPal][🖇paypal-img]][🖇paypal] [![Buy me a coffee][🖇buyme-small-img]][🖇buyme] [![Donate at ko-fi.com][🖇kofi-img]][🖇kofi]
14
+
15
+ <details markdown="1">
16
+ <summary>👣 How will this project approach the September 2025 hostile takeover of RubyGems? 🚑️</summary>
17
+
18
+ I've summarized my thoughts in [this blog post](https://dev.to/galtzo/hostile-takeover-of-rubygems-my-thoughts-5hlo).
19
+
20
+ </details>
21
+
22
+ ## 🌻 Synopsis <a href="https://discord.gg/3qme4XHNKN"><img alt="Galtzo FLOSS Logo by Aboling0, CC BY-SA 4.0" src="https://logos.galtzo.com/assets/images/galtzo-floss/avatar-128px.svg" width="8%" align="right"/></a> <a href="https://ruby-toolbox.com"><img alt="ruby-lang Logo, Yukihiro Matsumoto, Ruby Visual Identity Team, CC BY-SA 2.5" src="https://logos.galtzo.com/assets/images/ruby-lang/avatar-128px.svg" width="8%" align="right"/></a>
23
+
24
+ `Binary::Merge` is the StructuredMerge substrate for Kaitai-style binary merge
25
+ families. It does not pretend arbitrary bytes are structurally mergeable;
26
+ instead, it records byte ranges, render policies, preservation decisions, and
27
+ unsafe mutation diagnostics for schema-specific parser gems such as
28
+ `zip-merge`.
29
+
30
+ ### Key Features
31
+
32
+ - Binary feature profile for fixture runners.
33
+ - Render policy helpers for schema-aware binary renderers.
34
+ - Unsafe mutation diagnostics with byte ranges.
35
+ - Preservation reports for callers that can safely retain raw byte ranges.
36
+ - Shared substrate vocabulary for Kaitai-family parser gems such as
37
+ `zip-merge`.
38
+
39
+ ## 💡 Info you can shake a stick at
40
+
41
+ | Tokens to Remember | [![Gem name][⛳️name-img]][⛳️gem-name] [![Gem namespace][⛳️namespace-img]][⛳️gem-namespace] |
42
+ |-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
43
+ | Works with MRI Ruby 4 | [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf]|
44
+ | Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Get help from RubyForum][✉️ruby-forum-img]][✉️ruby-forum] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] |
45
+ | Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on GitHub.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] |
46
+ | Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![GitLab Wiki][📜gl-wiki-img]][📜gl-wiki] [![GitHub Wiki][📜gh-wiki-img]][📜gh-wiki] |
47
+ | Compliance | [![License: AGPL-3.0-only OR PolyForm-Small-Business-1.0.0][📄license-img]][📄license] [![Apache license compatibility: Category X][📄license-compat-img]][📄license-compat] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] |
48
+ | Style | [![Enforced Code Style Linter][💎rlts-img]][💎rlts] [![Keep-A-Changelog 1.0.0][📗keep-changelog-img]][📗keep-changelog] [![Gitmoji Commits][📌gitmoji-img]][📌gitmoji] [![Compatibility appraised by: appraisal2][💎appraisal2-img]][💎appraisal2] |
49
+ | Maintainer 🎖️ | [![Follow Me on LinkedIn][💖🖇linkedin-img]][💖🖇linkedin] [![Follow Me on Ruby.Social][💖🐘ruby-mast-img]][💖🐘ruby-mast] [![Follow Me on Bluesky][💖🦋bluesky-img]][💖🦋bluesky] [![Contact Maintainer][🚂maint-contact-img]][🚂maint-contact] [![My technical writing][💖💁🏼‍♂️devto-img]][💖💁🏼‍♂️devto] |
50
+ | `...` 💖 | [![Find Me on WellFound:][💖✌️wellfound-img]][💖✌️wellfound] [![Find Me on CrunchBase][💖💲crunchbase-img]][💖💲crunchbase] [![My LinkTree][💖🌳linktree-img]][💖🌳linktree] [![More About Me][💖💁🏼‍♂️aboutme-img]][💖💁🏼‍♂️aboutme] [🧊][💖🧊berg] [🐙][💖🐙hub] [🛖][💖🛖hut] [🧪][💖🧪lab] |
51
+
52
+ ### Compatibility
53
+
54
+ Compatible with MRI Ruby 4.0.0+, and concordant releases of JRuby, and TruffleRuby.
55
+ CI workflows and Appraisals are generated for MRI Ruby 4.0.0+.
56
+ This test floor is configured by `ruby.test_minimum` in `.kettle-jem.yml` and
57
+ may be higher than the gem's runtime compatibility floor when legacy Rubies are
58
+ not practical for the current toolchain.
59
+
60
+ <a href="https://github.com/kettle-dev"><img alt="kettle-dev Logo by Aboling0, CC BY-SA 4.0" src="https://logos.galtzo.com/assets/images/kettle-dev/avatar-128px.svg" width="14%" align="right"/></a>
61
+
62
+ The _amazing_ test matrix is powered by the kettle-dev stack.
63
+
64
+ <details markdown="1">
65
+ <summary>How kettle-dev manages complexity in tests</summary>
66
+
67
+ | Gem | Source | Role | Total downloads |
68
+ |-----|--------|------|---------------------|
69
+ | [appraisal2](https://clickgems.clickhouse.com/dashboard/appraisal2) | [GitHub](https://github.com/appraisal-rb/appraisal2) | multi-dependency Appraisal matrix generation | [![Total downloads for appraisal2](https://img.shields.io/gem/dt/appraisal2.svg?style=flat-square)](https://clickgems.clickhouse.com/dashboard/appraisal2) |
70
+ | [appraisal2-rubocop](https://clickgems.clickhouse.com/dashboard/appraisal2-rubocop) | [GitHub](https://github.com/appraisal-rb/appraisal2-rubocop) | RuboCop Appraisal generator integration | [![Total downloads for appraisal2-rubocop](https://img.shields.io/gem/dt/appraisal2-rubocop.svg?style=flat-square)](https://clickgems.clickhouse.com/dashboard/appraisal2-rubocop) |
71
+ | [kettle-dev](https://clickgems.clickhouse.com/dashboard/kettle-dev) | [GitHub](https://github.com/kettle-dev/kettle-dev) | development, release, and CI workflow tooling | [![Total downloads for kettle-dev](https://img.shields.io/gem/dt/kettle-dev.svg?style=flat-square)](https://clickgems.clickhouse.com/dashboard/kettle-dev) |
72
+ | [kettle-jem](https://clickgems.clickhouse.com/dashboard/kettle-jem) | [GitHub](https://github.com/kettle-dev/kettle-jem) | Appraisals & CI workflow templates | [![Total downloads for kettle-jem](https://img.shields.io/gem/dt/kettle-jem.svg?style=flat-square)](https://clickgems.clickhouse.com/dashboard/kettle-jem) |
73
+ | [kettle-soup-cover](https://clickgems.clickhouse.com/dashboard/kettle-soup-cover) | [GitHub](https://github.com/kettle-dev/kettle-soup-cover) | SimpleCov coverage policy and reporting | [![Total downloads for kettle-soup-cover](https://img.shields.io/gem/dt/kettle-soup-cover.svg?style=flat-square)](https://clickgems.clickhouse.com/dashboard/kettle-soup-cover) |
74
+ | [kettle-test](https://clickgems.clickhouse.com/dashboard/kettle-test) | [GitHub](https://github.com/kettle-dev/kettle-test) | standard test runner and coverage harness | [![Total downloads for kettle-test](https://img.shields.io/gem/dt/kettle-test.svg?style=flat-square)](https://clickgems.clickhouse.com/dashboard/kettle-test) |
75
+ | [rubocop-lts](https://clickgems.clickhouse.com/dashboard/rubocop-lts) | [GitHub](https://github.com/rubocop-lts/rubocop-lts) | Ruby-version-aware linting | [![Total downloads for rubocop-lts](https://img.shields.io/gem/dt/rubocop-lts.svg?style=flat-square)](https://clickgems.clickhouse.com/dashboard/rubocop-lts) |
76
+ | [turbo_tests2](https://clickgems.clickhouse.com/dashboard/turbo_tests2) | [GitHub](https://github.com/galtzo-floss/turbo_tests2) | parallel test execution | [![Total downloads for turbo_tests2](https://img.shields.io/gem/dt/turbo_tests2.svg?style=flat-square)](https://clickgems.clickhouse.com/dashboard/turbo_tests2) |
77
+
78
+ </details>
79
+
80
+ ## ✨ Installation
81
+
82
+ Install the gem and add to the application's Gemfile by executing:
83
+
84
+ ```console
85
+ bundle add binary-merge
86
+ ```
87
+
88
+ If bundler is not being used to manage dependencies, install the gem by executing:
89
+
90
+ ```console
91
+ gem install binary-merge
92
+ ```
93
+
94
+ ## ⚙️ Configuration
95
+
96
+ `Binary::Merge` has no global parser configuration. Schema-specific parser gems
97
+ register their own TreeHaver parser paths and use this package for shared
98
+ binary-family reporting and renderer-planning behavior.
99
+
100
+ ## 🔧 Basic Usage
101
+
102
+ ```ruby
103
+ require "binary/merge"
104
+
105
+ report = Binary::Merge.preservation_report(
106
+ format: "custom-binary",
107
+ schema: "custom.ksy",
108
+ matched_schema_paths: ["/header"],
109
+ preserved_ranges: [TreeHaver::ByteRange.new(start_byte: 0, end_byte: 16)],
110
+ )
111
+
112
+ puts report.format
113
+ ```
114
+
115
+ ## 🔐 Security
116
+
117
+ See [SECURITY.md][🔐security].
118
+
119
+ ## 🤝 Contributing
120
+
121
+ If you need some ideas of where to help, you could work on adding more code coverage,
122
+ or if it is already 💯 (see [below](#code-coverage)) check [issues][🤝gh-issues] or [PRs][🤝gh-pulls],
123
+ or use the gem and think about how it could be better.
124
+
125
+ We [![Keep A Changelog][📗keep-changelog-img]][📗keep-changelog] so if you make changes, remember to update it.
126
+
127
+ See [CONTRIBUTING.md][🤝contributing] for more detailed instructions.
128
+
129
+ ### Code Coverage
130
+
131
+ <details markdown="1">
132
+ <summary>Coverage service badges</summary>
133
+
134
+ </details>
135
+
136
+ ## 📌 Versioning
137
+
138
+ This library follows [![Semantic Versioning 2.0.0][📌semver-img]][📌semver] for its public API where practical.
139
+ For most applications, prefer the [Pessimistic Version Constraint][📌pvc] with two digits of precision.
140
+
141
+ For example:
142
+
143
+ ```ruby
144
+ spec.add_dependency("binary-merge", "~> 7.0")
145
+ ```
146
+
147
+ <details markdown="1">
148
+ <summary>📌 Is "Platform Support" part of the public API? More details inside.</summary>
149
+
150
+ Dropping support for a platform can be a breaking change for affected users.
151
+ If a release changes supported platforms, it should be called out clearly in the changelog and versioned with that impact in mind.
152
+
153
+ To get a better understanding of how SemVer is intended to work over a project's lifetime,
154
+ read this article from the creator of SemVer:
155
+
156
+ - ["Major Version Numbers are Not Sacred"][📌major-versions-not-sacred]
157
+
158
+ </details>
159
+
160
+ See [CHANGELOG.md][📌changelog] for a list of releases.
161
+
162
+ ## 📄 License
163
+
164
+ The gem is available under the following licenses: [AGPL-3.0-only](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/AGPL-3.0-only.md), [PolyForm-Small-Business-1.0.0](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/PolyForm-Small-Business-1.0.0.md).
165
+ See [LICENSE.md][📄license] for details.
166
+
167
+ If none of the available licenses suit your use case, please [contact us](mailto:floss@galtzo.com) to discuss a custom commercial license.
168
+
169
+ [⛳liberapay-img]: https://img.shields.io/liberapay/goal/pboling.svg?logo=liberapay&color=a51611&style=flat
170
+ [⛳liberapay-bottom-img]: https://img.shields.io/liberapay/goal/pboling.svg?style=for-the-badge&logo=liberapay&color=a51611
171
+ [⛳liberapay]: https://liberapay.com/pboling/donate
172
+ [🖇sponsor-img]: https://img.shields.io/badge/Sponsor_Me!-pboling.svg?style=social&logo=github
173
+ [🖇sponsor-bottom-img]: https://img.shields.io/badge/Sponsor_Me!-pboling-blue?style=for-the-badge&logo=github
174
+ [🖇sponsor]: https://github.com/sponsors/pboling
175
+ [🖇kofi-img]: https://img.shields.io/badge/ko--fi-%E2%9C%93-a51611.svg?style=flat
176
+ [🖇kofi]: https://ko-fi.com/pboling
177
+ [🖇buyme-small-img]: https://img.shields.io/badge/buy_me_a_coffee-%E2%9C%93-a51611.svg?style=flat
178
+ [🖇buyme-img]: https://img.buymeacoffee.com/button-api/?text=Buy%20me%20a%20latte&emoji=&slug=pboling&button_colour=FFDD00&font_colour=000000&font_family=Cookie&outline_colour=000000&coffee_colour=ffffff
179
+ [🖇buyme]: https://www.buymeacoffee.com/pboling
180
+ [🖇paypal-img]: https://img.shields.io/badge/donate-paypal-a51611.svg?style=flat&logo=paypal
181
+ [🖇paypal-bottom-img]: https://img.shields.io/badge/donate-paypal-a51611.svg?style=for-the-badge&logo=paypal&color=0A0A0A
182
+ [🖇paypal]: https://www.paypal.com/paypalme/peterboling
183
+ [🖇floss-funding.dev]: https://floss-funding.dev
184
+ [🖇floss-funding-gem]: https://github.com/galtzo-floss/floss_funding
185
+ [✉️discord-invite]: https://discord.gg/3qme4XHNKN
186
+ [✉️discord-invite-img-ftb]: https://img.shields.io/discord/1373797679469170758?style=for-the-badge&logo=discord
187
+ [✉️ruby-friends-img]: https://img.shields.io/badge/daily.dev-%F0%9F%92%8E_Ruby_Friends-0A0A0A?style=for-the-badge&logo=dailydotdev&logoColor=white
188
+ [✉️ruby-friends]: https://app.daily.dev/squads/rubyfriends
189
+ [✉️ruby-forum-top-img]: https://img.shields.io/discourse/topics?server=https%3A%2F%2Fwww.rubyforum.org&style=flat&logo=discourse&label=Ruby%20Users%20Forum
190
+ [✉️ruby-forum-img]: https://img.shields.io/discourse/topics?server=https%3A%2F%2Fwww.rubyforum.org&style=for-the-badge&logo=discourse&label=Ruby%20Users%20Forum
191
+ [✉️ruby-forum]: https://www.rubyforum.org/tag/structuredmerge
192
+ [✇bundle-group-pattern]: https://gist.github.com/pboling/4564780
193
+ [⛳️gem-namespace]: https://github.com/structuredmerge/structuredmerge-ruby/tree/main/gems/binary-merge
194
+ [⛳️namespace-img]: https://img.shields.io/badge/namespace-Binary::Merge-3C2D2D.svg?style=square&logo=ruby&logoColor=white
195
+ [⛳️gem-name]: https://clickgems.clickhouse.com/dashboard/binary-merge
196
+ [⛳️name-img]: https://img.shields.io/badge/name-binary--merge-3C2D2D.svg?style=square&logo=rubygems&logoColor=red
197
+ [⛳️tag-img]: https://img.shields.io/github/tag/structuredmerge/structuredmerge-ruby.svg
198
+ [⛳️tag]: https://github.com/structuredmerge/structuredmerge-ruby/releases
199
+ [🚂maint-blog]: http://www.railsbling.com/tags/binary-merge
200
+ [🚂maint-blog-img]: https://img.shields.io/badge/blog-railsbling-0093D0.svg?style=for-the-badge&logo=rubyonrails&logoColor=orange
201
+ [🚂maint-contact]: http://www.railsbling.com/contact
202
+ [🚂maint-contact-img]: https://img.shields.io/badge/Contact-Maintainer-0093D0.svg?style=flat&logo=rubyonrails&logoColor=red
203
+ [💖🖇linkedin]: http://www.linkedin.com/in/peterboling
204
+ [💖🖇linkedin-img]: https://img.shields.io/badge/LinkedIn-Profile-0B66C2?style=flat&logo=newjapanprowrestling
205
+ [💖✌️wellfound]: https://wellfound.com/u/peter-boling
206
+ [💖✌️wellfound-img]: https://img.shields.io/badge/peter--boling-orange?style=flat&logo=wellfound
207
+ [💖💲crunchbase]: https://www.crunchbase.com/person/peter-boling
208
+ [💖💲crunchbase-img]: https://img.shields.io/badge/peter--boling-purple?style=flat&logo=crunchbase
209
+ [💖🐘ruby-mast]: https://ruby.social/@galtzo
210
+ [💖🐘ruby-mast-img]: https://img.shields.io/mastodon/follow/109447111526622197?domain=https://ruby.social&style=flat&logo=mastodon&label=Ruby%20@galtzo
211
+ [💖🦋bluesky]: https://bsky.app/profile/galtzo.com
212
+ [💖🦋bluesky-img]: https://img.shields.io/badge/@galtzo.com-0285FF?style=flat&logo=bluesky&logoColor=white
213
+ [💖🌳linktree]: https://linktr.ee/galtzo
214
+ [💖🌳linktree-img]: https://img.shields.io/badge/galtzo-purple?style=flat&logo=linktree
215
+ [💖💁🏼‍♂️devto]: https://dev.to/galtzo
216
+ [💖💁🏼‍♂️devto-img]: https://img.shields.io/badge/dev.to-0A0A0A?style=flat&logo=devdotto&logoColor=white
217
+ [💖💁🏼‍♂️aboutme]: https://about.me/peter.boling
218
+ [💖💁🏼‍♂️aboutme-img]: https://img.shields.io/badge/about.me-0A0A0A?style=flat&logo=aboutme&logoColor=white
219
+ [💖🧊berg]: https://codeberg.org/pboling
220
+ [💖🐙hub]: https://github.org/pboling
221
+ [💖🛖hut]: https://sr.ht/~galtzo/
222
+ [💖🧪lab]: https://gitlab.com/pboling
223
+ [👨🏼‍🏫expsup-upwork]: https://www.upwork.com/freelancers/~014942e9b056abdf86?mp_source=share
224
+ [👨🏼‍🏫expsup-upwork-img]: https://img.shields.io/badge/UpWork-13544E?style=for-the-badge&logo=Upwork&logoColor=white
225
+ [👨🏼‍🏫expsup-codementor]: https://www.codementor.io/peterboling?utm_source=github&utm_medium=button&utm_term=peterboling&utm_campaign=github
226
+ [👨🏼‍🏫expsup-codementor-img]: https://img.shields.io/badge/CodeMentor-Get_Help-1abc9c?style=for-the-badge&logo=CodeMentor&logoColor=white
227
+ [🏙️entsup-tidelift]: https://tidelift.com/subscription/pkg/rubygems-binary-merge?utm_source=rubygems-binary-merge&utm_medium=referral&utm_campaign=readme
228
+ [🏙️entsup-tidelift-img]: https://img.shields.io/badge/Tidelift_and_Sonar-Enterprise_Support-FD3456?style=for-the-badge&logo=sonar&logoColor=white
229
+ [🏙️entsup-tidelift-sonar]: https://blog.tidelift.com/tidelift-joins-sonar
230
+ [💁🏼‍♂️peterboling]: http://www.peterboling.com
231
+ [🚂railsbling]: http://www.railsbling.com
232
+ [📜src-gl-img]: https://img.shields.io/badge/GitLab-FBA326?style=for-the-badge&logo=Gitlab&logoColor=orange
233
+ [📜src-gl]: https://gitlab.com/structuredmerge/structuredmerge-ruby/-/tree/main/gems/binary-merge
234
+ [📜src-cb-img]: https://img.shields.io/badge/CodeBerg-4893CC?style=for-the-badge&logo=CodeBerg&logoColor=blue
235
+ [📜src-cb]: https://codeberg.org/structuredmerge/structuredmerge-ruby/src/branch/main/gems/binary-merge
236
+ [📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=GitHub&logoColor=green
237
+ [📜src-gh]: https://github.com/structuredmerge/structuredmerge-ruby/tree/main/gems/binary-merge
238
+ [📜docs-cr-rd-img]: https://img.shields.io/badge/RubyDoc-Current_Release-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white
239
+ [📜docs-head-rd-img]: https://img.shields.io/badge/YARD_on_Galtzo.com-HEAD-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white
240
+ [📜gl-wiki]: https://gitlab.com/structuredmerge/structuredmerge-ruby/-/wikis/home
241
+ [📜gh-wiki]: https://github.com/structuredmerge/structuredmerge-ruby/wiki
242
+ [📜gl-wiki-img]: https://img.shields.io/badge/wiki-gitlab-943CD2.svg?style=for-the-badge&logo=gitlab&logoColor=white
243
+ [📜gh-wiki-img]: https://img.shields.io/badge/wiki-github-943CD2.svg?style=for-the-badge&logo=github&logoColor=white
244
+ [👽dl-rank]: https://clickgems.clickhouse.com/dashboard/binary-merge
245
+ [👽dl-ranki]: https://img.shields.io/gem/dt/binary-merge.svg
246
+ [👽version]: https://clickgems.clickhouse.com/dashboard/binary-merge
247
+ [👽versioni]: https://img.shields.io/gem/v/binary-merge.svg
248
+ [🚎11-c-wf]: https://github.com/structuredmerge/structuredmerge-ruby/actions/workflows/current.yml
249
+ [🚎11-c-wfi]: https://github.com/structuredmerge/structuredmerge-ruby/actions/workflows/current.yml/badge.svg
250
+ [💎ruby-c-i]: https://img.shields.io/badge/Ruby-current-CC342D?style=for-the-badge&logo=ruby&logoColor=green
251
+ [🤝gh-issues]: https://github.com/structuredmerge/structuredmerge-ruby/issues
252
+ [🤝gh-pulls]: https://github.com/structuredmerge/structuredmerge-ruby/pulls
253
+ [🤝gl-issues]: https://gitlab.com/structuredmerge/structuredmerge-ruby/-/issues
254
+ [🤝gl-pulls]: https://gitlab.com/structuredmerge/structuredmerge-ruby/-/merge_requests
255
+ [🤝cb-issues]: https://codeberg.org/structuredmerge/structuredmerge-ruby/issues
256
+ [🤝cb-pulls]: https://codeberg.org/structuredmerge/structuredmerge-ruby/pulls
257
+ [🤝cb-donate]: https://donate.codeberg.org/
258
+ [🤝contributing]: https://github.com/structuredmerge/structuredmerge-ruby/blob/main/CONTRIBUTING.md
259
+ [🖐contrib-rocks]: https://contrib.rocks
260
+ [🖐contributors]: https://github.com/structuredmerge/structuredmerge-ruby/graphs/contributors
261
+ [🖐contributors-img]: https://contrib.rocks/image?repo=structuredmerge/structuredmerge-ruby
262
+ [🪇conduct]: https://github.com/structuredmerge/structuredmerge-ruby/blob/main/CODE_OF_CONDUCT.md
263
+ [🪇conduct-img]: https://img.shields.io/badge/Contributor_Covenant-2.1-259D6C.svg
264
+ [📌pvc]: http://guides.rubygems.org/patterns/#pessimistic-version-constraint
265
+ [📌semver]: https://semver.org/spec/v2.0.0.html
266
+ [📌semver-img]: https://img.shields.io/badge/semver-2.0.0-259D6C.svg?style=flat
267
+ [📌semver-breaking]: https://github.com/semver/semver/issues/716#issuecomment-869336139
268
+ [📌major-versions-not-sacred]: https://tom.preston-werner.com/2022/05/23/major-version-numbers-are-not-sacred.html
269
+ [📌changelog]: https://github.com/structuredmerge/structuredmerge-ruby/blob/main/CHANGELOG.md
270
+ [📗keep-changelog]: https://keepachangelog.com/en/1.0.0/
271
+ [📗keep-changelog-img]: https://img.shields.io/badge/keep--a--changelog-1.0.0-34495e.svg?style=flat
272
+ [📌gitmoji]: https://gitmoji.dev
273
+ [📌gitmoji-img]: https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
274
+ [🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
275
+ [🧮kloc-img]: https://img.shields.io/badge/KLOC-0.024-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
276
+ [🔐security]: https://github.com/structuredmerge/structuredmerge-ruby/blob/main/SECURITY.md
277
+ [🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
278
+ [📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
279
+ [📄license]: LICENSE.md
280
+ [📄license-ref]: LICENSE.md
281
+ [📄license-img]: https://img.shields.io/badge/License-AGPL--3.0--only_OR_PolyForm--Small--Business--1.0.0-259D6C.svg
282
+ [📄license-compat]: https://www.apache.org/legal/resolved.html#category-x
283
+ [📄license-compat-img]: https://img.shields.io/badge/Apache_Incompatible:_Category_X-%E2%9C%97-C0392B.svg?style=flat&logo=Apache
284
+ [📄ilo-declaration]: https://www.ilo.org/declaration/lang--en/index.htm
285
+ [📄ilo-declaration-img]: https://img.shields.io/badge/ILO_Fundamental_Principles-✓-259D6C.svg?style=flat
286
+ [🚎yard-current]: http://rubydoc.info/gems/binary-merge
287
+ [🚎yard-head]: https://binary-merge.galtzo.com
288
+ [💎stone_checksums]: https://github.com/galtzo-floss/stone_checksums
289
+ [💎SHA_checksums]: https://gitlab.com/structuredmerge/structuredmerge-ruby/-/tree/main/checksums
290
+ [💎rlts]: https://github.com/rubocop-lts/rubocop-lts
291
+ [💎rlts-img]: https://img.shields.io/badge/code_style_&_linting-rubocop--lts-34495e.svg?plastic&logo=ruby&logoColor=white
292
+ [💎appraisal2]: https://github.com/appraisal-rb/appraisal2
293
+ [💎appraisal2-img]: https://img.shields.io/badge/appraised_by-appraisal2-34495e.svg?plastic&logo=ruby&logoColor=white
294
+ [💎d-in-dvcs]: https://railsbling.com/posts/dvcs/put_the_d_in_dvcs/
@@ -2,10 +2,12 @@
2
2
 
3
3
  module Binary
4
4
  module Merge
5
+ # Version namespace for this gem.
5
6
  module Version
6
- VERSION = "7.0.0"
7
+ # Current gem version.
8
+ VERSION = '7.1.1'
7
9
  end
8
-
9
- VERSION = Version::VERSION
10
+ # Current gem version exposed at the traditional constant location.
11
+ VERSION = Version::VERSION # Traditional Constant Location
10
12
  end
11
13
  end
data/lib/binary/merge.rb CHANGED
@@ -1,16 +1,17 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "tree_haver"
3
+ require 'tree_haver'
4
+ require_relative 'merge/version'
4
5
 
5
6
  module Binary
6
7
  module Merge
7
- PACKAGE_NAME = "binary-merge"
8
+ PACKAGE_NAME = 'binary-merge'
8
9
 
9
10
  module_function
10
11
 
11
12
  def binary_feature_profile
12
13
  {
13
- family: "binary",
14
+ family: 'binary',
14
15
  supported_dialects: [],
15
16
  supported_policies: []
16
17
  }
@@ -26,9 +27,9 @@ module Binary
26
27
  )
27
28
  end
28
29
 
29
- def unsafe_diagnostic(schema_path:, byte_range:, message:, category: "unsafe_binary_mutation")
30
+ def unsafe_diagnostic(schema_path:, byte_range:, message:, category: 'unsafe_binary_mutation')
30
31
  TreeHaver::BinaryDiagnostic.new(
31
- severity: "error",
32
+ severity: 'error',
32
33
  category: category,
33
34
  message: message,
34
35
  schema_path: schema_path,
data/lib/binary-merge.rb CHANGED
@@ -1,3 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "binary/merge"
3
+ require 'binary/merge'
4
+ require 'version_gem'
5
+ require_relative 'binary/merge/version'
6
+
7
+ Binary::Merge::Version.class_eval do
8
+ extend VersionGem::Basic
9
+ end
@@ -0,0 +1,8 @@
1
+ module Binary
2
+ module Merge
3
+ module Version
4
+ VERSION: String
5
+ end
6
+ VERSION: String
7
+ end
8
+ end
data.tar.gz.sig CHANGED
@@ -1 +1,3 @@
1
- j��D��L�f"��N�iv���b �b��q���3�[��#���w��EB�n�7�aV����$�M�2�Oԯ�
1
+
2
+ ��@��v�J��
3
+ �]�Ǧ�%��8�xQo����?�g� ر|���E������|d�,���{�@s;2o~m���N�c�k����6o���B>j�l2� �#�L>����hR�9�)��G�U�>Q%I�i+R�8�����t�ַ�� �Tڏc�8S�t4��>U8����t������bkUZp�L �e�zk��a���]Fʂ�l����3�i�_(
metadata CHANGED
@@ -1,11 +1,11 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: binary-merge
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.0.0
4
+ version: 7.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter H. Boling
8
- bindir: bin
8
+ bindir: exe
9
9
  cert_chain:
10
10
  - |
11
11
  -----BEGIN CERTIFICATE-----
@@ -43,40 +43,276 @@ dependencies:
43
43
  requirements:
44
44
  - - '='
45
45
  - !ruby/object:Gem::Version
46
- version: 7.0.0
46
+ version: 7.1.1
47
47
  type: :runtime
48
48
  prerelease: false
49
49
  version_requirements: !ruby/object:Gem::Requirement
50
50
  requirements:
51
51
  - - '='
52
52
  - !ruby/object:Gem::Version
53
- version: 7.0.0
54
- description: Portable binary preservation planning and diagnostics for Structured
55
- Merge.
53
+ version: 7.1.1
54
+ - !ruby/object:Gem::Dependency
55
+ name: version_gem
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: '1.1'
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ version: 1.1.15
64
+ type: :runtime
65
+ prerelease: false
66
+ version_requirements: !ruby/object:Gem::Requirement
67
+ requirements:
68
+ - - "~>"
69
+ - !ruby/object:Gem::Version
70
+ version: '1.1'
71
+ - - ">="
72
+ - !ruby/object:Gem::Version
73
+ version: 1.1.15
74
+ - !ruby/object:Gem::Dependency
75
+ name: kettle-dev
76
+ requirement: !ruby/object:Gem::Requirement
77
+ requirements:
78
+ - - "~>"
79
+ - !ruby/object:Gem::Version
80
+ version: '2.5'
81
+ - - ">="
82
+ - !ruby/object:Gem::Version
83
+ version: 2.5.17
84
+ type: :development
85
+ prerelease: false
86
+ version_requirements: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - "~>"
89
+ - !ruby/object:Gem::Version
90
+ version: '2.5'
91
+ - - ">="
92
+ - !ruby/object:Gem::Version
93
+ version: 2.5.17
94
+ - !ruby/object:Gem::Dependency
95
+ name: bundler-audit
96
+ requirement: !ruby/object:Gem::Requirement
97
+ requirements:
98
+ - - "~>"
99
+ - !ruby/object:Gem::Version
100
+ version: 0.9.3
101
+ type: :development
102
+ prerelease: false
103
+ version_requirements: !ruby/object:Gem::Requirement
104
+ requirements:
105
+ - - "~>"
106
+ - !ruby/object:Gem::Version
107
+ version: 0.9.3
108
+ - !ruby/object:Gem::Dependency
109
+ name: rake
110
+ requirement: !ruby/object:Gem::Requirement
111
+ requirements:
112
+ - - "~>"
113
+ - !ruby/object:Gem::Version
114
+ version: '13.0'
115
+ type: :development
116
+ prerelease: false
117
+ version_requirements: !ruby/object:Gem::Requirement
118
+ requirements:
119
+ - - "~>"
120
+ - !ruby/object:Gem::Version
121
+ version: '13.0'
122
+ - !ruby/object:Gem::Dependency
123
+ name: require_bench
124
+ requirement: !ruby/object:Gem::Requirement
125
+ requirements:
126
+ - - "~>"
127
+ - !ruby/object:Gem::Version
128
+ version: '1.0'
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: 1.0.4
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: '1.0'
139
+ - - ">="
140
+ - !ruby/object:Gem::Version
141
+ version: 1.0.4
142
+ - !ruby/object:Gem::Dependency
143
+ name: anonymous_loader
144
+ requirement: !ruby/object:Gem::Requirement
145
+ requirements:
146
+ - - "~>"
147
+ - !ruby/object:Gem::Version
148
+ version: '0.1'
149
+ - - ">="
150
+ - !ruby/object:Gem::Version
151
+ version: 0.1.3
152
+ type: :development
153
+ prerelease: false
154
+ version_requirements: !ruby/object:Gem::Requirement
155
+ requirements:
156
+ - - "~>"
157
+ - !ruby/object:Gem::Version
158
+ version: '0.1'
159
+ - - ">="
160
+ - !ruby/object:Gem::Version
161
+ version: 0.1.3
162
+ - !ruby/object:Gem::Dependency
163
+ name: appraisal2
164
+ requirement: !ruby/object:Gem::Requirement
165
+ requirements:
166
+ - - "~>"
167
+ - !ruby/object:Gem::Version
168
+ version: '3.2'
169
+ - - ">="
170
+ - !ruby/object:Gem::Version
171
+ version: 3.2.0
172
+ type: :development
173
+ prerelease: false
174
+ version_requirements: !ruby/object:Gem::Requirement
175
+ requirements:
176
+ - - "~>"
177
+ - !ruby/object:Gem::Version
178
+ version: '3.2'
179
+ - - ">="
180
+ - !ruby/object:Gem::Version
181
+ version: 3.2.0
182
+ - !ruby/object:Gem::Dependency
183
+ name: kettle-test
184
+ requirement: !ruby/object:Gem::Requirement
185
+ requirements:
186
+ - - "~>"
187
+ - !ruby/object:Gem::Version
188
+ version: '2.0'
189
+ - - ">="
190
+ - !ruby/object:Gem::Version
191
+ version: 2.0.19
192
+ type: :development
193
+ prerelease: false
194
+ version_requirements: !ruby/object:Gem::Requirement
195
+ requirements:
196
+ - - "~>"
197
+ - !ruby/object:Gem::Version
198
+ version: '2.0'
199
+ - - ">="
200
+ - !ruby/object:Gem::Version
201
+ version: 2.0.19
202
+ - !ruby/object:Gem::Dependency
203
+ name: turbo_tests2
204
+ requirement: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - "~>"
207
+ - !ruby/object:Gem::Version
208
+ version: '3.2'
209
+ - - ">="
210
+ - !ruby/object:Gem::Version
211
+ version: 3.2.4
212
+ type: :development
213
+ prerelease: false
214
+ version_requirements: !ruby/object:Gem::Requirement
215
+ requirements:
216
+ - - "~>"
217
+ - !ruby/object:Gem::Version
218
+ version: '3.2'
219
+ - - ">="
220
+ - !ruby/object:Gem::Version
221
+ version: 3.2.4
222
+ - !ruby/object:Gem::Dependency
223
+ name: ruby-progressbar
224
+ requirement: !ruby/object:Gem::Requirement
225
+ requirements:
226
+ - - "~>"
227
+ - !ruby/object:Gem::Version
228
+ version: '1.13'
229
+ type: :development
230
+ prerelease: false
231
+ version_requirements: !ruby/object:Gem::Requirement
232
+ requirements:
233
+ - - "~>"
234
+ - !ruby/object:Gem::Version
235
+ version: '1.13'
236
+ - !ruby/object:Gem::Dependency
237
+ name: stone_checksums
238
+ requirement: !ruby/object:Gem::Requirement
239
+ requirements:
240
+ - - "~>"
241
+ - !ruby/object:Gem::Version
242
+ version: '1.0'
243
+ - - ">="
244
+ - !ruby/object:Gem::Version
245
+ version: 1.0.8
246
+ type: :development
247
+ prerelease: false
248
+ version_requirements: !ruby/object:Gem::Requirement
249
+ requirements:
250
+ - - "~>"
251
+ - !ruby/object:Gem::Version
252
+ version: '1.0'
253
+ - - ">="
254
+ - !ruby/object:Gem::Version
255
+ version: 1.0.8
256
+ - !ruby/object:Gem::Dependency
257
+ name: gitmoji-regex
258
+ requirement: !ruby/object:Gem::Requirement
259
+ requirements:
260
+ - - "~>"
261
+ - !ruby/object:Gem::Version
262
+ version: '2.0'
263
+ - - ">="
264
+ - !ruby/object:Gem::Version
265
+ version: 2.0.11
266
+ type: :development
267
+ prerelease: false
268
+ version_requirements: !ruby/object:Gem::Requirement
269
+ requirements:
270
+ - - "~>"
271
+ - !ruby/object:Gem::Version
272
+ version: '2.0'
273
+ - - ">="
274
+ - !ruby/object:Gem::Version
275
+ version: 2.0.11
276
+ description: "☯️ Portable binary preservation planning and diagnostics for Structured
277
+ Merge."
56
278
  email:
57
- - info@structuredmerge.org
279
+ - floss@galtzo.com
58
280
  executables: []
59
281
  extensions: []
60
282
  extra_rdoc_files: []
61
283
  files:
284
+ - LICENSE.md
285
+ - README.md
62
286
  - lib/binary-merge.rb
63
287
  - lib/binary/merge.rb
64
288
  - lib/binary/merge/version.rb
289
+ - sig/binary/merge.rbs
65
290
  homepage: https://github.com/structuredmerge/structuredmerge-ruby
66
291
  licenses:
67
292
  - AGPL-3.0-only
68
293
  - PolyForm-Small-Business-1.0.0
69
294
  metadata:
70
295
  homepage_uri: https://structuredmerge.org
71
- source_code_uri: https://github.com/structuredmerge/structuredmerge-ruby/tree/v7.0.0
72
- changelog_uri: https://github.com/structuredmerge/structuredmerge-ruby/blob/v7.0.0/CHANGELOG.md
296
+ source_code_uri: https://github.com/structuredmerge/structuredmerge-ruby/tree/v7.1.1
297
+ changelog_uri: https://github.com/structuredmerge/structuredmerge-ruby/blob/v7.1.1/CHANGELOG.md
73
298
  bug_tracker_uri: https://github.com/structuredmerge/structuredmerge-ruby/issues
74
- documentation_uri: https://www.rubydoc.info/gems/binary-merge/7.0.0
299
+ documentation_uri: https://www.rubydoc.info/gems/binary-merge/7.1.1
75
300
  funding_uri: https://github.com/sponsors/pboling
76
301
  wiki_uri: https://github.com/structuredmerge/structuredmerge-ruby/wiki
302
+ news_uri: https://www.railsbling.com/tags/binary-merge
77
303
  discord_uri: https://discord.gg/3qme4XHNKN
304
+ mailing_list_uri: https://www.rubyforum.org/tag/structuredmerge
78
305
  rubygems_mfa_required: 'true'
79
- rdoc_options: []
306
+ rdoc_options:
307
+ - "--title"
308
+ - binary-merge - ☯️ Structured Merge binary merge contracts for Ruby
309
+ - "--main"
310
+ - README.md
311
+ - "--exclude"
312
+ - "^sig/"
313
+ - "--line-numbers"
314
+ - "--inline-source"
315
+ - "--quiet"
80
316
  require_paths:
81
317
  - lib
82
318
  required_ruby_version: !ruby/object:Gem::Requirement
@@ -90,7 +326,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
90
326
  - !ruby/object:Gem::Version
91
327
  version: '0'
92
328
  requirements: []
93
- rubygems_version: 4.0.10
329
+ rubygems_version: 4.0.17
94
330
  specification_version: 4
95
- summary: Structured Merge binary merge contracts for Ruby
331
+ summary: "☯️ Structured Merge binary merge contracts for Ruby"
96
332
  test_files: []
metadata.gz.sig CHANGED
Binary file