tree_haver 5.0.2 → 5.0.3

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: 4a84c922fc46d5f2832bfba861dcf1927327de29546752189f6d6488f4286795
4
- data.tar.gz: 526550b1327829aff144d052d3dcf217295f7d2e27f976735b78573350e3b047
3
+ metadata.gz: 90eec58fbce0b938c367ef85c66f381c47c209595463b85a9c257d0a00dff5b1
4
+ data.tar.gz: 975775bd407c82f5e429a3dcf92801f54ed343709e931adae238e323887316e5
5
5
  SHA512:
6
- metadata.gz: dce567d8e91b11b01618feab1f3757d4a3651c5282168eea8be88c4704228f2288ab6bf098b8a7bcc7940f3f16af6cf1e544e991e99ecc6de1ee6c1d15ef2d77
7
- data.tar.gz: c36d6955f70893ec43f247baead4ab70c449508fc744959e0dd485f73316d490c5892c91151527e2e6a714c99b847daeda9b618daca62337b40be5b727a2362e
6
+ metadata.gz: fd4dde827d3fed70c8705be882be72809b489d80b97e5a1e05ae3d92f97d9a81b69ab676964444a34fc4c0bca9aedddbc5fbdf2d5bf88d9aa40f157b2dd3ecbd
7
+ data.tar.gz: f7f9e60fd544f25722652d76eee5f3e70faad8ff74643dee58ff59cc7817989c2b8b8b8974a8f262d15003903db5d5510412cf2d5f5028623d0a1b6ba0776f23
checksums.yaml.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -30,6 +30,28 @@ Please file a bug if you notice a violation of semantic versioning.
30
30
 
31
31
  ### Security
32
32
 
33
+ ## [5.0.3] - 2026-01-30
34
+
35
+ - TAG: [v5.0.3][5.0.3t]
36
+ - COVERAGE: 83.68% -- 2128/2543 lines in 30 files
37
+ - BRANCH COVERAGE: 72.50% -- 862/1189 branches in 30 files
38
+ - 94.78% documented
39
+
40
+ ### Changed
41
+
42
+ - test against Prism v1.9.0
43
+ - CI updated to use latest version of ore
44
+
45
+ ### Fixed
46
+
47
+ - **Improved dependency handling and test robustness**:
48
+ - Added missing RSpec backend tags (`:parslet_backend`, `:citrus_backend`, etc.) to ensure tests are skipped when dependencies are unavailable.
49
+ - Enhanced `GrammarFinder` to support both `ENV.key?` and `ENV[var]` checks, fixing issues with environment stubbing in tests.
50
+ - Improved `GrammarFinder` spec reliability by using `allow(File).to receive(:exist?).and_call_original`.
51
+ - Configured RSpec to mark grammar-dependent tests as `pending` with helpful instructions when shared libraries are missing.
52
+ - Renamed `:toml_rb` tag to `:toml_rb_gem` for consistency across the codebase.
53
+ - Documentation fixes related to gem family section
54
+
33
55
  ## [5.0.2] - 2026-01-13
34
56
 
35
57
  - TAG: [v5.0.2][5.0.2t]
@@ -1282,7 +1304,9 @@ Despite the major version bump to 3.0.0 (following semver due to the breaking `L
1282
1304
 
1283
1305
  - Initial release
1284
1306
 
1285
- [Unreleased]: https://github.com/kettle-rb/tree_haver/compare/v5.0.2...HEAD
1307
+ [Unreleased]: https://github.com/kettle-rb/tree_haver/compare/v5.0.3...HEAD
1308
+ [5.0.3]: https://github.com/kettle-rb/tree_haver/compare/v5.0.2...v5.0.3
1309
+ [5.0.3t]: https://github.com/kettle-rb/tree_haver/releases/tag/v5.0.3
1286
1310
  [5.0.2]: https://github.com/kettle-rb/tree_haver/compare/v5.0.1...v5.0.2
1287
1311
  [5.0.2t]: https://github.com/kettle-rb/tree_haver/releases/tag/v5.0.2
1288
1312
  [5.0.1]: https://github.com/kettle-rb/tree_haver/compare/v5.0.0...v5.0.1
data/README.md CHANGED
@@ -148,7 +148,7 @@ The Rust backend uses [tree\_stump][tree_stump], which is a Rust native extensio
148
148
 
149
149
  ```ruby
150
150
  # Add to your Gemfile for Rust backend (MRI only)
151
- gem "tree_stump", github: "joker1007/tree_stump", branch: "main"
151
+ gem "tree_stump", github: "pboling/tree_stump", branch: "feat/upgrade-tree-sitter"
152
152
  ```
153
153
 
154
154
  #### FFI Backend
@@ -319,21 +319,21 @@ tree-sitter is a powerful parser generator that creates incremental parsers for
319
319
 
320
320
  The `*-merge` gem family provides intelligent, AST-based merging for various file formats. At the foundation is [tree_haver][tree_haver], which provides a unified cross-Ruby parsing API that works seamlessly across MRI, JRuby, and TruffleRuby.
321
321
 
322
- | Gem | Version | CI | | Language<br>/ Format | Parser Backend(s) | Description |
323
- |------------------------------------------|----------------------------------------------------------------|--------------------------------------------------------------|----------|-------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------|-------------|
324
- | [tree_haver][tree_haver] | [![Version][tree_haver-gem-i]][tree_haver-gem] | [![Version][tree_haver-ci-i]][tree_haver-ci] | Multi | Supported Backends: MRI C, Rust, FFI, Java, Prism, Psych, Commonmarker, Markly, Citrus, Parslet | **Foundation**: Cross-Ruby adapter for parsing libraries (like Faraday for HTTP) |
325
- | [ast-merge][ast-merge] | [![Version][ast-merge-gem-i]][ast-merge-gem] | [![Version][ast-merge-ci-i]][ast-merge-ci] | Text | internal | **Infrastructure**: Shared base classes and merge logic for all `*-merge` gems |
326
- | [bash-merge][bash-merge] | [![Version][bash-merge-gem-i]][bash-merge-gem] | [![Version][bash-merge-ci-i]][bash-merge-ci] | Bash | [tree-sitter-bash][ts-bash] (via tree_haver) | Smart merge for Bash scripts |
327
- | [commonmarker-merge][commonmarker-merge] | [![Version][commonmarker-merge-gem-i]][commonmarker-merge-gem] | [![Version][commonmarker-merge-ci-i]][commonmarker-merge-ci] | Markdown | [Commonmarker][commonmarker] (via tree_haver) | Smart merge for Markdown (CommonMark via comrak Rust) |
328
- | [dotenv-merge][dotenv-merge] | [![Version][dotenv-merge-gem-i]][dotenv-merge-gem] | [![Version][dotenv-merge-ci-i]][dotenv-merge-ci] | Dotenv | internal | Smart merge for `.env` files |
329
- | [json-merge][json-merge] | [![Version][json-merge-gem-i]][json-merge-gem] | [![Version][json-merge-ci-i]][json-merge-ci] | JSON | [tree-sitter-json][ts-json] (via tree_haver) | Smart merge for JSON files |
330
- | [jsonc-merge][jsonc-merge] | [![Version][jsonc-merge-gem-i]][jsonc-merge-gem] | [![Version][jsonc-merge-ci-i]][jsonc-merge-ci] | JSONC | [tree-sitter-jsonc][ts-jsonc] (via tree_haver) | ⚠️ Proof of concept; Smart merge for JSON with Comments |
331
- | [markdown-merge][markdown-merge] | [![Version][markdown-merge-gem-i]][markdown-merge-gem] | [![Version][markdown-merge-ci-i]][markdown-merge-ci] | Markdown | [Commonmarker][commonmarker] / [Markly][markly] (via tree_haver) | **Foundation**: Shared base for Markdown mergers with inner code block merging |
332
- | [markly-merge][markly-merge] | [![Version][markly-merge-gem-i]][markly-merge-gem] | [![Version][markly-merge-ci-i]][markly-merge-ci] | Markdown | [Markly][markly] (via tree_haver) | Smart merge for Markdown (CommonMark via cmark-gfm C) |
333
- | [prism-merge][prism-merge] | [![Version][prism-merge-gem-i]][prism-merge-gem] | [![Version][prism-merge-ci-i]][prism-merge-ci] | Ruby | [Prism][prism] (`prism` std lib gem) | Smart merge for Ruby source files |
334
- | [psych-merge][psych-merge] | [![Version][psych-merge-gem-i]][psych-merge-gem] | [![Version][psych-merge-ci-i]][psych-merge-ci] | YAML | [Psych][psych] (`psych` std lib gem) | Smart merge for YAML files |
335
- | [rbs-merge][rbs-merge] | [![Version][rbs-merge-gem-i]][rbs-merge-gem] | [![Version][rbs-merge-ci-i]][rbs-merge-ci] | RBS | [tree-sitter-bash][ts-rbs] (via tree_haver), [RBS][rbs] (`rbs` std lib gem) | Smart merge for Ruby type signatures |
336
- | [toml-merge][toml-merge] | [![Version][toml-merge-gem-i]][toml-merge-gem] | [![Version][toml-merge-ci-i]][toml-merge-ci] | TOML | [Parslet + toml][toml], [Citrus + toml-rb][toml-rb], [tree-sitter-toml][ts-toml] (all via tree_haver) | Smart merge for TOML files |
322
+ | Gem | Version / CI | Language<br>/ Format | Parser Backend(s) | Description |
323
+ |------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------:|----------------------|-------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------|
324
+ | [tree_haver][tree_haver] | [![Version][tree_haver-gem-i]][tree_haver-gem] <br/> [![CI][tree_haver-ci-i]][tree_haver-ci] | Multi | Supported Backends: MRI C, Rust, FFI, Java, Prism, Psych, Commonmarker, Markly, Citrus, Parslet | **Foundation**: Cross-Ruby adapter for parsing libraries (like Faraday for HTTP) |
325
+ | [ast-merge][ast-merge] | [![Version][ast-merge-gem-i]][ast-merge-gem] <br/> [![CI][ast-merge-ci-i]][ast-merge-ci] | Text | internal | **Infrastructure**: Shared base classes and merge logic for all `*-merge` gems |
326
+ | [bash-merge][bash-merge] | [![Version][bash-merge-gem-i]][bash-merge-gem] <br/> [![CI][bash-merge-ci-i]][bash-merge-ci] | Bash | [tree-sitter-bash][ts-bash] (via tree_haver) | Smart merge for Bash scripts |
327
+ | [commonmarker-merge][commonmarker-merge] | [![Version][commonmarker-merge-gem-i]][commonmarker-merge-gem] <br/> [![CI][commonmarker-merge-ci-i]][commonmarker-merge-ci] | Markdown | [Commonmarker][commonmarker] (via tree_haver) | Smart merge for Markdown (CommonMark via comrak Rust) |
328
+ | [dotenv-merge][dotenv-merge] | [![Version][dotenv-merge-gem-i]][dotenv-merge-gem] <br/> [![CI][dotenv-merge-ci-i]][dotenv-merge-ci] | Dotenv | internal | Smart merge for `.env` files |
329
+ | [json-merge][json-merge] | [![Version][json-merge-gem-i]][json-merge-gem] <br/> [![CI][json-merge-ci-i]][json-merge-ci] | JSON | [tree-sitter-json][ts-json] (via tree_haver) | Smart merge for JSON files |
330
+ | [jsonc-merge][jsonc-merge] | [![Version][jsonc-merge-gem-i]][jsonc-merge-gem] <br/> [![CI][jsonc-merge-ci-i]][jsonc-merge-ci] | JSONC | [tree-sitter-jsonc][ts-jsonc] (via tree_haver) | ⚠️ Proof of concept; Smart merge for JSON with Comments |
331
+ | [markdown-merge][markdown-merge] | [![Version][markdown-merge-gem-i]][markdown-merge-gem] <br/> [![CI][markdown-merge-ci-i]][markdown-merge-ci] | Markdown | [Commonmarker][commonmarker] / [Markly][markly] (via tree_haver), [Parslet][parslet] | **Foundation**: Shared base for Markdown mergers with inner code block merging |
332
+ | [markly-merge][markly-merge] | [![Version][markly-merge-gem-i]][markly-merge-gem] <br/> [![CI][markly-merge-ci-i]][markly-merge-ci] | Markdown | [Markly][markly] (via tree_haver) | Smart merge for Markdown (CommonMark via cmark-gfm C) |
333
+ | [prism-merge][prism-merge] | [![Version][prism-merge-gem-i]][prism-merge-gem] <br/> [![CI][prism-merge-ci-i]][prism-merge-ci] | Ruby | [Prism][prism] (`prism` std lib gem) | Smart merge for Ruby source files |
334
+ | [psych-merge][psych-merge] | [![Version][psych-merge-gem-i]][psych-merge-gem] <br/> [![CI][psych-merge-ci-i]][psych-merge-ci] | YAML | [Psych][psych] (`psych` std lib gem) | Smart merge for YAML files |
335
+ | [rbs-merge][rbs-merge] | [![Version][rbs-merge-gem-i]][rbs-merge-gem] <br/> [![CI][rbs-merge-ci-i]][rbs-merge-ci] | RBS | [tree-sitter-bash][ts-rbs] (via tree_haver), [RBS][rbs] (`rbs` std lib gem) | Smart merge for Ruby type signatures |
336
+ | [toml-merge][toml-merge] | [![Version][toml-merge-gem-i]][toml-merge-gem] <br/> [![CI][toml-merge-ci-i]][toml-merge-ci] | TOML | [Parslet + toml][toml], [Citrus + toml-rb][toml-rb], [tree-sitter-toml][ts-toml] (all via tree_haver) | Smart merge for TOML files |
337
337
 
338
338
  #### Backend Platform Compatibility
339
339
 
@@ -2003,7 +2003,7 @@ Support us with a monthly donation and help us continue our activities. \[[Becom
2003
2003
  NOTE: [kettle-readme-backers][kettle-readme-backers] updates this list every day, automatically.
2004
2004
 
2005
2005
  <!-- OPENCOLLECTIVE-INDIVIDUALS:START -->
2006
- No backers yet. Be the first\!
2006
+ No backers yet. Be the first!
2007
2007
  <!-- OPENCOLLECTIVE-INDIVIDUALS:END -->
2008
2008
 
2009
2009
  ### Open Collective for Organizations
@@ -2013,7 +2013,7 @@ Become a sponsor and get your logo on our README on GitHub with a link to your s
2013
2013
  NOTE: [kettle-readme-backers][kettle-readme-backers] updates this list every day, automatically.
2014
2014
 
2015
2015
  <!-- OPENCOLLECTIVE-ORGANIZATIONS:START -->
2016
- No sponsors yet. Be the first\!
2016
+ No sponsors yet. Be the first!
2017
2017
  <!-- OPENCOLLECTIVE-ORGANIZATIONS:END -->
2018
2018
 
2019
2019
  [kettle-readme-backers]: https://github.com/kettle-rb/tree_haver/blob/main/exe/kettle-readme-backers
@@ -2318,7 +2318,7 @@ Thanks for RTFM. ☺️
2318
2318
  [📌gitmoji]: https://gitmoji.dev
2319
2319
  [📌gitmoji-img]: https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
2320
2320
  [🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
2321
- [🧮kloc-img]: https://img.shields.io/badge/KLOC-2.542-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
2321
+ [🧮kloc-img]: https://img.shields.io/badge/KLOC-2.543-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
2322
2322
  [🔐security]: SECURITY.md
2323
2323
  [🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
2324
2324
  [📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
data/SECURITY.md CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  | Version | Supported |
6
6
  |----------|-----------|
7
- | 1.latest | ✅ |
7
+ | 5.latest | ✅ |
8
8
 
9
9
  ## Security contact information
10
10
 
@@ -147,8 +147,9 @@ module TreeHaver
147
147
  def find_library_path
148
148
  # Check environment variable first (highest priority)
149
149
  # Use key? to distinguish between "not set" and "set to empty"
150
- if ENV.key?(env_var_name)
151
- env_path = ENV[env_var_name]
150
+ env_var = env_var_name
151
+ if ENV[env_var] || ENV.key?(env_var)
152
+ env_path = ENV[env_var]
152
153
 
153
154
  # :nocov: defensive - ENV.key? true with nil value is rare edge case
154
155
  if env_path.nil?
@@ -1004,6 +1004,20 @@ module TreeHaver
1004
1004
  end
1005
1005
  end
1006
1006
 
1007
+ # NOTE: Availability methods for dynamically registered backends (like markly, commonmarker)
1008
+ # are defined by BackendRegistry.define_availability_method when the backend registers via
1009
+ # register_tag. This happens automatically when gems like markly-merge load, AFTER this file
1010
+ # has been required. The define_availability_method in BackendRegistry checks if DependencyTags
1011
+ # is loaded and defines the *_available? method at registration time.
1012
+ #
1013
+ # Example flow for markly-merge:
1014
+ # 1. spec_helper loads tree_haver/rspec (this file) - DependencyTags module now exists
1015
+ # 2. spec_helper loads markly/merge - calls BackendRegistry.register_tag(:markly_backend)
1016
+ # 3. register_tag calls define_availability_method(:markly, :markly_backend)
1017
+ # 4. define_availability_method defines TreeHaver::RSpec::DependencyTags.markly_available?
1018
+ #
1019
+ # This means by the time RSpec.configure runs below, the methods are already defined.
1020
+
1007
1021
  # Configure RSpec with dependency-based exclusion filters
1008
1022
  RSpec.configure do |config|
1009
1023
  deps = TreeHaver::RSpec::DependencyTags
@@ -1266,12 +1280,25 @@ RSpec.configure do |config|
1266
1280
  # When TREE_HAVER_BACKEND is explicitly set (but not using *_backend_only tags),
1267
1281
  # grammar checks are fine because TreeHaver.parser_for respects the env var.
1268
1282
  unless isolated_test_mode
1269
- config.filter_run_excluding(libtree_sitter: true) unless deps.libtree_sitter_available?
1270
- config.filter_run_excluding(bash_grammar: true) unless deps.tree_sitter_bash_available?
1271
- config.filter_run_excluding(toml_grammar: true) unless deps.tree_sitter_toml_available?
1272
- config.filter_run_excluding(json_grammar: true) unless deps.tree_sitter_json_available?
1273
- config.filter_run_excluding(jsonc_grammar: true) unless deps.tree_sitter_jsonc_available?
1274
- config.filter_run_excluding(rbs_grammar: true) unless deps.tree_sitter_rbs_available?
1283
+ config.before(:each) do |example|
1284
+ grammar_tags = {
1285
+ bash_grammar: [:tree_sitter_bash_available?, "tree-sitter-bash"],
1286
+ toml_grammar: [:tree_sitter_toml_available?, "tree-sitter-toml"],
1287
+ json_grammar: [:tree_sitter_json_available?, "tree-sitter-json"],
1288
+ jsonc_grammar: [:tree_sitter_jsonc_available?, "tree-sitter-jsonc"],
1289
+ rbs_grammar: [:tree_sitter_rbs_available?, "tree-sitter-rbs"],
1290
+ libtree_sitter: [:libtree_sitter_available?, "libtree-sitter"],
1291
+ }
1292
+
1293
+ grammar_tags.each do |tag, (method, name)|
1294
+ next unless example.metadata[tag]
1295
+ unless deps.public_send(method)
1296
+ env_var = "TREE_SITTER_#{tag.to_s.sub("_grammar", "").upcase}_PATH"
1297
+ env_var = "TREE_SITTER_RUNTIME_LIB" if tag == :libtree_sitter
1298
+ skip "#{name} grammar not available. Set #{env_var} to the path of the shared library."
1299
+ end
1300
+ end
1301
+ end
1275
1302
  end
1276
1303
 
1277
1304
  # ============================================================
@@ -1287,10 +1314,21 @@ RSpec.configure do |config|
1287
1314
  # triggers grammar_works? and loads MRI. Skip when running isolated tests.
1288
1315
 
1289
1316
  unless isolated_test_mode
1290
- config.filter_run_excluding(toml_parsing: true) unless deps.any_toml_backend_available?
1291
- config.filter_run_excluding(markdown_parsing: true) unless deps.any_markdown_backend_available?
1292
- config.filter_run_excluding(rbs_parsing: true) unless deps.any_rbs_backend_available?
1293
- config.filter_run_excluding(native_parsing: true) unless deps.any_native_grammar_available?
1317
+ config.before(:each) do |example|
1318
+ parsing_tags = {
1319
+ toml_parsing: [:any_toml_backend_available?, "TOML"],
1320
+ markdown_parsing: [:any_markdown_backend_available?, "Markdown"],
1321
+ rbs_parsing: [:any_rbs_backend_available?, "RBS"],
1322
+ native_parsing: [:any_native_grammar_available?, "Native"],
1323
+ }
1324
+
1325
+ parsing_tags.each do |tag, (method, name)|
1326
+ next unless example.metadata[tag]
1327
+ unless deps.public_send(method)
1328
+ skip "#{name} parsing capability not available."
1329
+ end
1330
+ end
1331
+ end
1294
1332
  end
1295
1333
 
1296
1334
  # ============================================================
@@ -10,7 +10,7 @@ module TreeHaver
10
10
  # Current version of the tree_haver gem
11
11
  #
12
12
  # @return [String] the version string
13
- VERSION = "5.0.2"
13
+ VERSION = "5.0.3"
14
14
  end
15
15
 
16
16
  # Traditional location for VERSION constant
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tree_haver
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.0.2
4
+ version: 5.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter H. Boling
@@ -162,7 +162,7 @@ dependencies:
162
162
  version: '1.0'
163
163
  - - ">="
164
164
  - !ruby/object:Gem::Version
165
- version: 1.0.6
165
+ version: 1.0.7
166
166
  type: :development
167
167
  prerelease: false
168
168
  version_requirements: !ruby/object:Gem::Requirement
@@ -172,7 +172,7 @@ dependencies:
172
172
  version: '1.0'
173
173
  - - ">="
174
174
  - !ruby/object:Gem::Version
175
- version: 1.0.6
175
+ version: 1.0.7
176
176
  - !ruby/object:Gem::Dependency
177
177
  name: ruby-progressbar
178
178
  requirement: !ruby/object:Gem::Requirement
@@ -300,10 +300,10 @@ licenses:
300
300
  - MIT
301
301
  metadata:
302
302
  homepage_uri: https://tree-haver.galtzo.com/
303
- source_code_uri: https://github.com/kettle-rb/tree_haver/tree/v5.0.2
304
- changelog_uri: https://github.com/kettle-rb/tree_haver/blob/v5.0.2/CHANGELOG.md
303
+ source_code_uri: https://github.com/kettle-rb/tree_haver/tree/v5.0.3
304
+ changelog_uri: https://github.com/kettle-rb/tree_haver/blob/v5.0.3/CHANGELOG.md
305
305
  bug_tracker_uri: https://github.com/kettle-rb/tree_haver/issues
306
- documentation_uri: https://www.rubydoc.info/gems/tree_haver/5.0.2
306
+ documentation_uri: https://www.rubydoc.info/gems/tree_haver/5.0.3
307
307
  funding_uri: https://github.com/sponsors/pboling
308
308
  wiki_uri: https://github.com/kettle-rb/tree_haver/wiki
309
309
  news_uri: https://www.railsbling.com/tags/tree_haver
@@ -333,7 +333,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
333
333
  - !ruby/object:Gem::Version
334
334
  version: '0'
335
335
  requirements: []
336
- rubygems_version: 4.0.3
336
+ rubygems_version: 4.0.5
337
337
  specification_version: 4
338
338
  summary: "\U0001F334 Cross-Ruby adapter for AST parsing libraries, like tree-sitter,
339
339
  citrus, & parslet; works on MRI, JRuby, and TruffleRuby"
metadata.gz.sig CHANGED
Binary file