tree_haver 5.0.2 → 5.0.4

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: 3ca322ee7eaf08af41dba8cd7f11eb577d4e2491f382c9842689d46bca615031
4
+ data.tar.gz: bfa7434b7e837a8cc6e73ae47c002d92136cf8ad8db6b54a7c283df0a72350dc
5
5
  SHA512:
6
- metadata.gz: dce567d8e91b11b01618feab1f3757d4a3651c5282168eea8be88c4704228f2288ab6bf098b8a7bcc7940f3f16af6cf1e544e991e99ecc6de1ee6c1d15ef2d77
7
- data.tar.gz: c36d6955f70893ec43f247baead4ab70c449508fc744959e0dd485f73316d490c5892c91151527e2e6a714c99b847daeda9b618daca62337b40be5b727a2362e
6
+ metadata.gz: e9ab1b591d247befd732b2bb0eec47c9c32aecdf9a0a462875cc3408314e65434699f7a9ea33d5616f0d03fb0833807cc9b8d0693ea5640badc4ffba1a6491c0
7
+ data.tar.gz: 7e1805c2137d517158f3211dabede8a4846e0b575f95943e60d81baad71379582909356ec5311f950658fee39e4848ebcf3fbe2fbc3b138ae09364dbbb556ff0
checksums.yaml.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -30,6 +30,39 @@ Please file a bug if you notice a violation of semantic versioning.
30
30
 
31
31
  ### Security
32
32
 
33
+ ## [5.0.4] - 2026-02-04
34
+
35
+ - TAG: [v5.0.4][5.0.4t]
36
+ - COVERAGE: 83.68% -- 2128/2543 lines in 30 files
37
+ - BRANCH COVERAGE: 72.58% -- 863/1189 branches in 30 files
38
+ - 94.78% documented
39
+
40
+ ### Changed
41
+
42
+ - Update documentation on which fork/SHA to use for tree_stump & ruby_tree_sitter
43
+
44
+ ## [5.0.3] - 2026-01-30
45
+
46
+ - TAG: [v5.0.3][5.0.3t]
47
+ - COVERAGE: 83.68% -- 2128/2543 lines in 30 files
48
+ - BRANCH COVERAGE: 72.50% -- 862/1189 branches in 30 files
49
+ - 94.78% documented
50
+
51
+ ### Changed
52
+
53
+ - test against Prism v1.9.0
54
+ - CI updated to use latest version of ore
55
+
56
+ ### Fixed
57
+
58
+ - **Improved dependency handling and test robustness**:
59
+ - Added missing RSpec backend tags (`:parslet_backend`, `:citrus_backend`, etc.) to ensure tests are skipped when dependencies are unavailable.
60
+ - Enhanced `GrammarFinder` to support both `ENV.key?` and `ENV[var]` checks, fixing issues with environment stubbing in tests.
61
+ - Improved `GrammarFinder` spec reliability by using `allow(File).to receive(:exist?).and_call_original`.
62
+ - Configured RSpec to mark grammar-dependent tests as `pending` with helpful instructions when shared libraries are missing.
63
+ - Renamed `:toml_rb` tag to `:toml_rb_gem` for consistency across the codebase.
64
+ - Documentation fixes related to gem family section
65
+
33
66
  ## [5.0.2] - 2026-01-13
34
67
 
35
68
  - TAG: [v5.0.2][5.0.2t]
@@ -1282,7 +1315,11 @@ Despite the major version bump to 3.0.0 (following semver due to the breaking `L
1282
1315
 
1283
1316
  - Initial release
1284
1317
 
1285
- [Unreleased]: https://github.com/kettle-rb/tree_haver/compare/v5.0.2...HEAD
1318
+ [Unreleased]: https://github.com/kettle-rb/tree_haver/compare/v5.0.4...HEAD
1319
+ [5.0.4]: https://github.com/kettle-rb/tree_haver/compare/v5.0.3...v5.0.4
1320
+ [5.0.4t]: https://github.com/kettle-rb/tree_haver/releases/tag/v5.0.4
1321
+ [5.0.3]: https://github.com/kettle-rb/tree_haver/compare/v5.0.2...v5.0.3
1322
+ [5.0.3t]: https://github.com/kettle-rb/tree_haver/releases/tag/v5.0.3
1286
1323
  [5.0.2]: https://github.com/kettle-rb/tree_haver/compare/v5.0.1...v5.0.2
1287
1324
  [5.0.2t]: https://github.com/kettle-rb/tree_haver/releases/tag/v5.0.2
1288
1325
  [5.0.1]: https://github.com/kettle-rb/tree_haver/compare/v5.0.0...v5.0.1
data/README.md CHANGED
@@ -92,8 +92,9 @@ tree = parser.parse(source_code)
92
92
  - **10 Parsing Backends** - Choose the right backend for your needs:
93
93
  - **Tree-sitter Backends** (high-performance, incremental parsing):
94
94
  - **MRI Backend**: Leverages [`ruby_tree_sitter`][ruby_tree_sitter] gem (C extension, fastest on MRI)
95
+ - **Note**: `ruby_tree_sitter` currently requires unreleased fixes in the `pboling` fork, `tree_haver` branch.
95
96
  - **Rust Backend**: Uses [`tree_stump`][tree_stump] gem (Rust with precompiled binaries)
96
- - **Note**: `tree_stump` currently requires unreleased fixes in the `main` branch.
97
+ - **Note**: `tree_stump` currently requires unreleased fixes in the `pboling` fork, `tree_haver` branch.
97
98
  - **FFI Backend**: Pure Ruby FFI bindings to `libtree-sitter` (JRuby only; TruffleRuby's FFI doesn't support tree-sitter's struct-by-value returns)
98
99
  - **Java Backend**: Native Java integration for JRuby with [`java-tree-sitter`](https://github.com/tree-sitter/java-tree-sitter) / [`jtreesitter`][jtreesitter] grammar JARs
99
100
  - **Language-Specific Backends** (native parser integration):
@@ -132,8 +133,11 @@ In ruby\_tree\_sitter v2.0, all TreeSitter exceptions were changed to inherit fr
132
133
  | `TreeSitter::QueryCreationError` | `TreeHaver::NotAvailable` | Query creation fails |
133
134
 
134
135
  ```ruby
135
- # Add to your Gemfile for MRI backend
136
- gem "ruby_tree_sitter", "~> 2.0"
136
+ # MRI tree-sitter Backend
137
+ gem "ruby_tree_sitter",
138
+ github: "pboling/ruby-tree-sitter",
139
+ branch: "tree_haver",
140
+ require: false # DO NOT LOAD, because conflicts with FFI
137
141
  ```
138
142
 
139
143
  #### Rust Backend (tree\_stump)
@@ -147,8 +151,11 @@ The Rust backend uses [tree\_stump][tree_stump], which is a Rust native extensio
147
151
  NOTE: `tree_stump` currently requires unreleased fixes in the `main` branch.
148
152
 
149
153
  ```ruby
150
- # Add to your Gemfile for Rust backend (MRI only)
151
- gem "tree_stump", github: "joker1007/tree_stump", branch: "main"
154
+ # Rust tree-sitter backend (MRI only)
155
+ gem "tree_stump",
156
+ # path: "../../vendor/tree_stump"
157
+ github: "pboling/tree_stump",
158
+ branch: "tree_haver"
152
159
  ```
153
160
 
154
161
  #### FFI Backend
@@ -319,21 +326,21 @@ tree-sitter is a powerful parser generator that creates incremental parsers for
319
326
 
320
327
  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
328
 
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 |
329
+ | Gem | Version / CI | Language<br>/ Format | Parser Backend(s) | Description |
330
+ |------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------:|----------------------|-------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------|
331
+ | [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) |
332
+ | [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 |
333
+ | [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 |
334
+ | [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) |
335
+ | [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 |
336
+ | [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 |
337
+ | [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 |
338
+ | [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 |
339
+ | [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) |
340
+ | [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 |
341
+ | [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 |
342
+ | [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 |
343
+ | [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
344
 
338
345
  #### Backend Platform Compatibility
339
346
 
@@ -2003,7 +2010,7 @@ Support us with a monthly donation and help us continue our activities. \[[Becom
2003
2010
  NOTE: [kettle-readme-backers][kettle-readme-backers] updates this list every day, automatically.
2004
2011
 
2005
2012
  <!-- OPENCOLLECTIVE-INDIVIDUALS:START -->
2006
- No backers yet. Be the first\!
2013
+ No backers yet. Be the first!
2007
2014
  <!-- OPENCOLLECTIVE-INDIVIDUALS:END -->
2008
2015
 
2009
2016
  ### Open Collective for Organizations
@@ -2013,7 +2020,7 @@ Become a sponsor and get your logo on our README on GitHub with a link to your s
2013
2020
  NOTE: [kettle-readme-backers][kettle-readme-backers] updates this list every day, automatically.
2014
2021
 
2015
2022
  <!-- OPENCOLLECTIVE-ORGANIZATIONS:START -->
2016
- No sponsors yet. Be the first\!
2023
+ No sponsors yet. Be the first!
2017
2024
  <!-- OPENCOLLECTIVE-ORGANIZATIONS:END -->
2018
2025
 
2019
2026
  [kettle-readme-backers]: https://github.com/kettle-rb/tree_haver/blob/main/exe/kettle-readme-backers
@@ -2318,7 +2325,7 @@ Thanks for RTFM. ☺️
2318
2325
  [📌gitmoji]: https://gitmoji.dev
2319
2326
  [📌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
2327
  [🧮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
2328
+ [🧮kloc-img]: https://img.shields.io/badge/KLOC-2.543-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
2322
2329
  [🔐security]: SECURITY.md
2323
2330
  [🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
2324
2331
  [📄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.4"
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.4
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.4
304
+ changelog_uri: https://github.com/kettle-rb/tree_haver/blob/v5.0.4/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.4
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