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 +4 -4
- checksums.yaml.gz.sig +0 -0
- data/CHANGELOG.md +38 -1
- data/README.md +30 -23
- data/SECURITY.md +1 -1
- data/lib/tree_haver/grammar_finder.rb +3 -2
- data/lib/tree_haver/rspec/dependency_tags.rb +48 -10
- data/lib/tree_haver/version.rb +1 -1
- data.tar.gz.sig +0 -0
- metadata +7 -7
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 3ca322ee7eaf08af41dba8cd7f11eb577d4e2491f382c9842689d46bca615031
|
|
4
|
+
data.tar.gz: bfa7434b7e837a8cc6e73ae47c002d92136cf8ad8db6b54a7c283df0a72350dc
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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.
|
|
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 `
|
|
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
|
-
#
|
|
136
|
-
gem "ruby_tree_sitter",
|
|
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
|
-
#
|
|
151
|
-
gem "tree_stump",
|
|
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 |
|
|
323
|
-
|
|
324
|
-
| [tree_haver][tree_haver] |
|
|
325
|
-
| [ast-merge][ast-merge] |
|
|
326
|
-
| [bash-merge][bash-merge] |
|
|
327
|
-
| [commonmarker-merge][commonmarker-merge] | [![Version][commonmarker-merge-gem-i]][commonmarker-merge-gem]
|
|
328
|
-
| [dotenv-merge][dotenv-merge] |
|
|
329
|
-
| [json-merge][json-merge] |
|
|
330
|
-
| [jsonc-merge][jsonc-merge] |
|
|
331
|
-
| [markdown-merge][markdown-merge] |
|
|
332
|
-
| [markly-merge][markly-merge] |
|
|
333
|
-
| [prism-merge][prism-merge] |
|
|
334
|
-
| [psych-merge][psych-merge] |
|
|
335
|
-
| [rbs-merge][rbs-merge] |
|
|
336
|
-
| [toml-merge][toml-merge] |
|
|
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.
|
|
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
|
@@ -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
|
-
|
|
151
|
-
|
|
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.
|
|
1270
|
-
|
|
1271
|
-
|
|
1272
|
-
|
|
1273
|
-
|
|
1274
|
-
|
|
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.
|
|
1291
|
-
|
|
1292
|
-
|
|
1293
|
-
|
|
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
|
# ============================================================
|
data/lib/tree_haver/version.rb
CHANGED
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.
|
|
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.
|
|
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.
|
|
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.
|
|
304
|
-
changelog_uri: https://github.com/kettle-rb/tree_haver/blob/v5.0.
|
|
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.
|
|
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.
|
|
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
|