token-resolver 2.0.0 → 2.0.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: 2614ef5d4abd4335b18fcfb4a75a7f5fff7e9285ad7690659e3028997b69e765
4
- data.tar.gz: 477a74ae8456d26cd15648bb1e521786e047f906875050960f8b1376a99d2c12
3
+ metadata.gz: 2d0b29a16291b6af534e6da9b907ab056533cab2bd44504f3da0b9498f306b63
4
+ data.tar.gz: a8a2f4b21db6c3549f15a5cb451e956bf3340b21137832edd18b92d9b6755784
5
5
  SHA512:
6
- metadata.gz: d7322c8f2d6ca25f538bc54f9450daf3edae06a07aee627909d1a01b431ba0d6a39f76234d1a9737807adf0c822055ce67ef36ff7166b615791b88b0a0fad7db
7
- data.tar.gz: 393e05d3ab64f07d559bb0e2d4bbdfcd2bac219e05b04d7bdfc96d3cf72dd79403008cc062e69c68a6ccf6e5c5b8e2a053b7d9cc991d4bc2531a658848e2d487
6
+ metadata.gz: cc016ee7c380eefc3bb573eb8c83519e1ffe354f736e092f54dcd7b8e22caf9a4418137b5358700548658020a1142360c72dc4ba56ba2e7d41b0c0609993a9e4
7
+ data.tar.gz: 8726023b36d797327b5fd8a4c04ab75e4212625e915e545da2c66dd88442e3858f9542880f524c01937e95d8af22cc1ce9619e793b1e0ba4b8eadc30804ea048
checksums.yaml.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -30,6 +30,29 @@ Please file a bug if you notice a violation of semantic versioning.
30
30
 
31
31
  ### Security
32
32
 
33
+ ## [2.0.1] - 2026-05-31
34
+
35
+ - TAG: [v2.0.1][2.0.1t]
36
+ - COVERAGE: 100.00% -- 265/265 lines in 10 files
37
+ - BRANCH COVERAGE: 100.00% -- 64/64 branches in 10 files
38
+ - 93.55% documented
39
+
40
+ ### Added
41
+
42
+ - Added StructuredMerge git diff driver config and local `.gitattributes`
43
+ entries generated by the current kettle-jem template.
44
+
45
+ ### Changed
46
+
47
+ - Refreshed kettle-jem-managed project files, migrated template config to
48
+ `.structuredmerge/kettle-jem.yml`, and updated local development tooling
49
+ dependencies including `kettle-dev` 2.0.6 and `nomono` 1.0.2.
50
+
51
+ ### Fixed
52
+
53
+ - Fixed generated documentation URLs that incorrectly pointed at a monorepo
54
+ `gems/token-resolver` path.
55
+
33
56
  ## [2.0.0] - 2026-05-27
34
57
 
35
58
  - TAG: [v2.0.0][2.0.0t]
@@ -145,7 +168,9 @@ Please file a bug if you notice a violation of semantic versioning.
145
168
 
146
169
  ### Security
147
170
 
148
- [Unreleased]: https://github.com/kettle-rb/token-resolver/compare/v2.0.0...HEAD
171
+ [Unreleased]: https://github.com/kettle-rb/token-resolver/compare/v2.0.1...HEAD
172
+ [2.0.1]: https://github.com/kettle-rb/token-resolver/compare/v2.0.0...v2.0.1
173
+ [2.0.1t]: https://github.com/kettle-rb/token-resolver/releases/tag/v2.0.1
149
174
  [2.0.0]: https://github.com/kettle-rb/token-resolver/compare/v1.0.2...v2.0.0
150
175
  [2.0.0t]: https://github.com/kettle-rb/token-resolver/releases/tag/v2.0.0
151
176
  [1.0.2]: https://github.com/kettle-rb/token-resolver/compare/v1.0.1...v1.0.2
data/CONTRIBUTING.md CHANGED
@@ -102,13 +102,29 @@ Git hooks and commit message helpers (exe/kettle-commit-msg)
102
102
  - GIT_HOOK_FOOTER_SENTINEL: Required when footer append is enabled — a unique first-line sentinel to prevent duplicates
103
103
  - GIT_HOOK_FOOTER_APPEND_DEBUG: Extra debug output in the footer template (true/false)
104
104
 
105
+ Git diff driver setup
106
+ - Local setup writes repository `.gitattributes` entries so this checkout uses StructuredMerge semantic diffs.
107
+ - Global setup registers `diff.smorg-*` commands once in the user Git config; use it when you work across several StructuredMerge-enabled repositories.
108
+ - Include-file setup writes `.git/smorg/config` and includes it from local Git config, keeping command registrations out of the repository files.
109
+ - Git hosting forges generally ignore external diff drivers, so pull request views may still show raw textual diffs even when local `git diff` uses semantic drivers.
110
+
111
+ ```console
112
+ K_JEM_TEMPLATING=true bundle exec kettle-jem install
113
+ ```
114
+
115
+ Troubleshooting Git diffs
116
+ - Use `git diff --no-ext-diff` to compare against Git's built-in diff output.
117
+ - Use `git diff --no-textconv` when a textconv projection obscures the raw file bytes you need to inspect.
118
+ - If Git reports a missing `smorg-*` executable, rerun `bundle install` and the setup command above, then check `git config --get-regexp '^diff\.smorg-'`.
119
+ - To remove managed local entries, run `K_JEM_TEMPLATING=true bundle exec kettle-jem install --undo`; remove global command registrations with `git config --global --unset-all diff.smorg-ruby.command`.
120
+
105
121
  For a quick starting point, this repository’s `mise.toml` defines the shared defaults, and `.env.local` can override them locally. Copy `.env.local.example` to `.env.local`, use `KEY=value` lines, and either activate `mise` in your shell or run commands through `mise exec -C /path/to/project -- ...`.
106
122
 
107
123
  ## Appraisals
108
124
 
109
125
  From time to time the [appraisal2][🚎appraisal2] gemfiles in `gemfiles/` will need to be updated.
110
126
  Generated appraisal and CI workflow floors are controlled by `ruby.test_minimum`
111
- in `.kettle-jem.yml`; this project was templated with `ruby.test_minimum: 3.2.0`.
127
+ in `.structuredmerge/kettle-jem.yml`; this project was templated with `ruby.test_minimum: 3.2.0`.
112
128
  That value describes the lowest Ruby version expected to run the test/development
113
129
  toolchain, and it may be higher than the gemspec runtime floor.
114
130
 
@@ -233,9 +249,9 @@ NOTE: To build without signing the gem set `SKIP_GEM_SIGNING` to any value in th
233
249
  14. Run `bundle exec rake release` which will create a git tag for the version,
234
250
  push git commits and tags, and push the `.gem` file to the gem host configured in the gemspec.
235
251
 
236
- [📜src-gl]: https://gitlab.com/kettle-rb/token-resolver/-/tree/main/gems/token-resolver
237
- [📜src-cb]: https://codeberg.org/kettle-rb/token-resolver/src/branch/main/gems/token-resolver
238
- [📜src-gh]: https://github.com/kettle-rb/token-resolver/tree/main/gems/token-resolver
252
+ [📜src-gl]: https://gitlab.com/kettle-rb/token-resolver
253
+ [📜src-cb]: https://codeberg.org/kettle-rb/token-resolver
254
+ [📜src-gh]: https://github.com/kettle-rb/token-resolver
239
255
  [🧪build]: https://github.com/kettle-rb/token-resolver/actions
240
256
  [🤝conduct]: https://github.com/kettle-rb/token-resolver/blob/main/CODE_OF_CONDUCT.md
241
257
  [🖐contrib-rocks]: https://contrib.rocks
data/README.md CHANGED
@@ -1,17 +1,10 @@
1
- [![Galtzo FLOSS Logo by Aboling0, CC BY-SA 4.0][🖼️galtzo-floss-i]][🖼️galtzo-floss] [![ruby-lang Logo, Yukihiro Matsumoto, Ruby Visual Identity Team, CC BY-SA 2.5][🖼️ruby-lang-i]][🖼️ruby-lang] [![kettle-rb Logo by Aboling0, CC BY-SA 4.0][🖼️kettle-rb-i]][🖼️kettle-rb]
2
-
3
- [🖼️galtzo-floss-i]: https://logos.galtzo.com/assets/images/galtzo-floss/avatar-192px.svg
4
- [🖼️galtzo-floss]: https://discord.gg/3qme4XHNKN
5
- [🖼️ruby-lang-i]: https://logos.galtzo.com/assets/images/ruby-lang/avatar-192px.svg
6
- [🖼️ruby-lang]: https://www.ruby-lang.org/
7
- [🖼️kettle-rb-i]: https://logos.galtzo.com/assets/images/kettle-rb/avatar-192px.svg
8
- [🖼️kettle-rb]: https://github.com/kettle-rb
1
+ <a href="https://github.com/kettle-rb"><img alt="kettle-rb Logo by Aboling0, CC BY-SA 4.0" src="https://logos.galtzo.com/assets/images/kettle-rb/avatar-128px.svg" width="14%" align="right"/></a>
9
2
 
10
3
  # 🪙 Token::Resolver
11
4
 
12
- [![Version][👽versioni]][👽version] [![GitHub tag (latest SemVer)][⛳️tag-img]][⛳️tag] [![License: AGPL-3.0-only OR PolyForm-Small-Business-1.0.0][📄license-img]][📄license] [![Downloads Rank][👽dl-ranki]][👽dl-rank] [![CodeCov Test Coverage][🏀codecovi]][🏀codecov] [![Coveralls Test Coverage][🏀coveralls-img]][🏀coveralls] [![QLTY Test Coverage][🏀qlty-covi]][🏀qlty-cov] [![QLTY Maintainability][🏀qlty-mnti]][🏀qlty-mnt] [![CI Heads][🚎3-hd-wfi]][🚎3-hd-wf] [![CI Runtime Dependencies @ HEAD][🚎12-crh-wfi]][🚎12-crh-wf] [![CI Current][🚎11-c-wfi]][🚎11-c-wf] [![CI Truffle Ruby][🚎9-t-wfi]][🚎9-t-wf] [![CI JRuby][🚎10-j-wfi]][🚎10-j-wf] [![Deps Locked][🚎13-🔒️-wfi]][🚎13-🔒️-wf] [![Deps Unlocked][🚎14-🔓️-wfi]][🚎14-🔓️-wf] [![CI Test Coverage][🚎2-cov-wfi]][🚎2-cov-wf] [![CI Style][🚎5-st-wfi]][🚎5-st-wf] [![CodeQL][🖐codeQL-img]][🖐codeQL]
5
+ [![Version][👽versioni]][👽version] [![GitHub tag (latest SemVer)][⛳️tag-img]][⛳️tag] [![License: AGPL-3.0-only OR PolyForm-Small-Business-1.0.0][📄license-img]][📄license] [![Downloads Rank][👽dl-ranki]][👽dl-rank] [![CodeCov Test Coverage][🏀codecovi]][🏀codecov] [![Coveralls Test Coverage][🏀coveralls-img]][🏀coveralls] [![QLTY Test Coverage][🏀qlty-covi]][🏀qlty-cov] [![QLTY Maintainability][🏀qlty-mnti]][🏀qlty-mnt] [![CI Heads][🚎3-hd-wfi]][🚎3-hd-wf] [![CI Runtime Dependencies @ HEAD][🚎12-crh-wfi]][🚎12-crh-wf] [![CI Current][🚎11-c-wfi]][🚎11-c-wf] [![CI Truffle Ruby][🚎9-t-wfi]][🚎9-t-wf] [![CI JRuby][🚎10-j-wfi]][🚎10-j-wf] [![Deps Locked][🚎13-🔒️-wfi]][🚎13-🔒️-wf] [![Deps Unlocked][🚎14-🔓️-wfi]][🚎14-🔓️-wf] [![CI Test Coverage][🚎2-cov-wfi]][🚎2-cov-wf] [![CI Style][🚎5-st-wfi]][🚎5-st-wf]
13
6
 
14
- `if ci_badges.map(&:color).detect { it != "green"}` ☝️ [let me know][🖼️galtzo-floss], as I may have missed the [discord notification][🖼️galtzo-floss].
7
+ `if ci_badges.map(&:color).detect { it != "green"}` ☝️ [let me know][✉️discord-invite], as I may have missed the [discord notification][✉️discord-invite].
15
8
 
16
9
  ---
17
10
 
@@ -26,7 +19,7 @@ I've summarized my thoughts in [this blog post](https://dev.to/galtzo/hostile-ta
26
19
 
27
20
  </details>
28
21
 
29
- ## 🌻 Synopsis
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>
30
23
 
31
24
  Token::Resolver is a configurable PEG-based token parser and resolver for structured token detection and replacement in arbitrary text.
32
25
 
@@ -36,7 +29,7 @@ Detects structured tokens like `{KJ|GEM_NAME}` in any file format and resolves t
36
29
  # One-liner: parse and resolve
37
30
  result = Token::Resolver.resolve(
38
31
  "Hello {KJ|NAME}, welcome to {KJ|PROJECT}!",
39
- {"KJ|NAME" => "World", "KJ|PROJECT" => "my-app"},
32
+ {"KJ|NAME" => "World", "KJ|PROJECT" => "my-app"}
40
33
  )
41
34
  # => "Hello World, welcome to my-app!"
42
35
  ```
@@ -172,7 +165,7 @@ doc.text_only? # => false
172
165
  # Resolve tokens
173
166
  result = Token::Resolver.resolve(
174
167
  "Deploy {KJ|GEM_NAME} to {KJ|GH_ORG}",
175
- {"KJ|GEM_NAME" => "my-gem", "KJ|GH_ORG" => "my-org"},
168
+ {"KJ|GEM_NAME" => "my-gem", "KJ|GH_ORG" => "my-org"}
176
169
  )
177
170
  # => "Deploy my-gem to my-org"
178
171
  ```
@@ -200,7 +193,7 @@ Token::Resolver.resolve("{KJ|MISSING}", {}, on_missing: :remove)
200
193
  config = Token::Resolver::Config.new(
201
194
  pre: "<<",
202
195
  post: ">>",
203
- separators: [":"],
196
+ separators: [":"]
204
197
  )
205
198
  Token::Resolver.resolve("Hello <<NS:NAME>>!", {"NS:NAME" => "World"}, config: config)
206
199
  # => "Hello World!"
@@ -211,7 +204,7 @@ Token::Resolver.resolve("Hello <<NS:NAME>>!", {"NS:NAME" => "World"}, config: co
211
204
  ```ruby
212
205
  # Tokens like {KJ|SECTION:SUBSECTION}
213
206
  config = Token::Resolver::Config.new(
214
- separators: ["|", ":"], # First boundary uses |, second uses :, rest repeat :
207
+ separators: ["|", ":"] # First boundary uses |, second uses :, rest repeat :
215
208
  )
216
209
  doc = Token::Resolver.parse("{KJ|META:AUTHOR}", config: config)
217
210
  doc.tokens.first.key # => "KJ|META:AUTHOR"
@@ -357,6 +350,8 @@ To say "thanks!" ☝️ Join the Discord or 👇️ send money.
357
350
 
358
351
  ### Please give the project a star ⭐ ♥.
359
352
 
353
+ Many parts of this project are actively managed by a [kettle-jem](https://github.com/structuredmerge/structuredmerge-ruby/tree/main/gems/kettle-jem) smart template utilizing [StructuredMerge.org](https://structuredmerge.org) merge contracts.
354
+
360
355
  Thanks for RTFM. ☺️
361
356
 
362
357
  [⛳liberapay-img]: https://img.shields.io/liberapay/goal/pboling.svg?logo=liberapay&color=a51611&style=flat
@@ -396,7 +391,7 @@ Thanks for RTFM. ☺️
396
391
  [✉️ruby-friends]: https://app.daily.dev/squads/rubyfriends
397
392
 
398
393
  [✇bundle-group-pattern]: https://gist.github.com/pboling/4564780
399
- [⛳️gem-namespace]: https://github.com/kettle-rb/token-resolver/tree/main/gems/token-resolver
394
+ [⛳️gem-namespace]: https://github.com/kettle-rb/token-resolver
400
395
  [⛳️namespace-img]: https://img.shields.io/badge/namespace-Token::Resolver-3C2D2D.svg?style=square&logo=ruby&logoColor=white
401
396
  [⛳️gem-name]: https://bestgems.org/gems/token-resolver
402
397
  [⛳️name-img]: https://img.shields.io/badge/name-token--resolver-3C2D2D.svg?style=square&logo=rubygems&logoColor=red
@@ -436,11 +431,11 @@ Thanks for RTFM. ☺️
436
431
  [💁🏼‍♂️peterboling]: http://www.peterboling.com
437
432
  [🚂railsbling]: http://www.railsbling.com
438
433
  [📜src-gl-img]: https://img.shields.io/badge/GitLab-FBA326?style=for-the-badge&logo=Gitlab&logoColor=orange
439
- [📜src-gl]: https://gitlab.com/kettle-rb/token-resolver/-/tree/main/gems/token-resolver
434
+ [📜src-gl]: https://gitlab.com/kettle-rb/token-resolver
440
435
  [📜src-cb-img]: https://img.shields.io/badge/CodeBerg-4893CC?style=for-the-badge&logo=CodeBerg&logoColor=blue
441
- [📜src-cb]: https://codeberg.org/kettle-rb/token-resolver/src/branch/main/gems/token-resolver
436
+ [📜src-cb]: https://codeberg.org/kettle-rb/token-resolver
442
437
  [📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=Github&logoColor=green
443
- [📜src-gh]: https://github.com/kettle-rb/token-resolver/tree/main/gems/token-resolver
438
+ [📜src-gh]: https://github.com/kettle-rb/token-resolver
444
439
  [📜docs-cr-rd-img]: https://img.shields.io/badge/RubyDoc-Current_Release-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white
445
440
  [📜docs-head-rd-img]: https://img.shields.io/badge/YARD_on_Galtzo.com-HEAD-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white
446
441
  [📜gl-wiki]: https://gitlab.com/kettle-rb/token-resolver/-/wikis/home
@@ -459,8 +454,6 @@ Thanks for RTFM. ☺️
459
454
  [🏀codecovi]: https://codecov.io/gh/kettle-rb/token-resolver/graph/badge.svg
460
455
  [🏀coveralls]: https://coveralls.io/github/kettle-rb/token-resolver?branch=main
461
456
  [🏀coveralls-img]: https://coveralls.io/repos/github/kettle-rb/token-resolver/badge.svg?branch=main
462
- [🖐codeQL]: https://github.com/kettle-rb/token-resolver/security/code-scanning
463
- [🖐codeQL-img]: https://github.com/kettle-rb/token-resolver/actions/workflows/codeql-analysis.yml/badge.svg
464
457
  [🚎ruby-3.2-wf]: https://github.com/kettle-rb/token-resolver/actions/workflows/ruby-3.2.yml
465
458
  [🚎ruby-3.3-wf]: https://github.com/kettle-rb/token-resolver/actions/workflows/ruby-3.3.yml
466
459
  [🚎ruby-3.4-wf]: https://github.com/kettle-rb/token-resolver/actions/workflows/ruby-3.4.yml
@@ -3,7 +3,7 @@
3
3
  module Token
4
4
  module Resolver
5
5
  module Version
6
- VERSION = "2.0.0"
6
+ VERSION = "2.0.1"
7
7
  end
8
8
  VERSION = Version::VERSION # Traditional Constant Location
9
9
  end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: token-resolver
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter H. Boling
@@ -80,7 +80,7 @@ dependencies:
80
80
  version: '2.0'
81
81
  - - ">="
82
82
  - !ruby/object:Gem::Version
83
- version: 2.0.4
83
+ version: 2.0.6
84
84
  type: :development
85
85
  prerelease: false
86
86
  version_requirements: !ruby/object:Gem::Requirement
@@ -90,7 +90,7 @@ dependencies:
90
90
  version: '2.0'
91
91
  - - ">="
92
92
  - !ruby/object:Gem::Version
93
- version: 2.0.4
93
+ version: 2.0.6
94
94
  - !ruby/object:Gem::Dependency
95
95
  name: bundler-audit
96
96
  requirement: !ruby/object:Gem::Requirement
@@ -281,10 +281,10 @@ licenses:
281
281
  - PolyForm-Small-Business-1.0.0
282
282
  metadata:
283
283
  homepage_uri: https://token-resolver.galtzo.com/
284
- source_code_uri: https://github.com/kettle-rb/token-resolver/tree/v2.0.0
285
- changelog_uri: https://github.com/kettle-rb/token-resolver/blob/v2.0.0/CHANGELOG.md
284
+ source_code_uri: https://github.com/kettle-rb/token-resolver/tree/v2.0.1
285
+ changelog_uri: https://github.com/kettle-rb/token-resolver/blob/v2.0.1/CHANGELOG.md
286
286
  bug_tracker_uri: https://github.com/kettle-rb/token-resolver/issues
287
- documentation_uri: https://www.rubydoc.info/gems/token-resolver/2.0.0
287
+ documentation_uri: https://www.rubydoc.info/gems/token-resolver/2.0.1
288
288
  funding_uri: https://github.com/sponsors/pboling
289
289
  wiki_uri: https://github.com/kettle-rb/token-resolver/wiki
290
290
  news_uri: https://www.railsbling.com/tags/token-resolver
metadata.gz.sig CHANGED
Binary file