yard-timekeeper 0.2.4 → 0.2.6

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: e09988dc7f2aa7fbd159d09194aad1c6c8b0fd7108d2a2ed36c28a904783bcea
4
- data.tar.gz: bf3b8b0ddf8b4306a88ba82c676411677ecd142326c6e3678145c0b9e5d45514
3
+ metadata.gz: 6267a8119c1cd9af8de0a943c6705ce1f6398f9a681297abc6778bebc38cdccc
4
+ data.tar.gz: f23776d1bb91eefddeddef517bd905579aa7689331314d0df2db5b1a12f9f7e9
5
5
  SHA512:
6
- metadata.gz: e6b6fc80c60947b4ae41e30cbba483e07739294eb04814e2423e0ec704d29f76e3e8b8d3ce3460baf09859c6d0553568bcdb3a404db047a0b4d1a8f202a73958
7
- data.tar.gz: 12f546cff001d872c891914ef9c76a6da879ed8b1d6a57441d9c79cfcc9291c0ebacf9b73f97746638f253f1d5c23e6b3b791f04f2db9fe8801e368b4ad5fb4e
6
+ metadata.gz: 9c2e8844080d05080f8caa2edebd087a0eed40d92f3ef0b8165d88d0ebdc281ae4ec5ddffbb7bcb3758f5a7ea89cf2ff63ca3824604af196882e252c1e19a510
7
+ data.tar.gz: 86ac3502d9ef5c2a036aecb29ef6600d6346073dcbcc5864c5a204400270d814d9f5e3dc1b86c5c97102b3d5cc6eeaa6bb7f67b540713d6670a07a825bee1734
checksums.yaml.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -30,6 +30,109 @@ Please file a bug if you notice a violation of semantic versioning.
30
30
 
31
31
  ### Security
32
32
 
33
+ ## [0.2.6] - 2026-08-09
34
+
35
+ - TAG: [v0.2.6][0.2.6t]
36
+ - COVERAGE: 96.38% -- 133/138 lines in 3 files
37
+ - BRANCH COVERAGE: 87.93% -- 51/58 branches in 3 files
38
+ - 20.59% documented
39
+
40
+ ### Changed
41
+
42
+ - kettle-jem-template-20260801-001 - Generated README gem dashboard links now
43
+ use ClickGems instead of BestGems.
44
+
45
+ ### Fixed
46
+
47
+ - kettle-jem-template-20260801-002 - Generated RSpec helpers now normalize
48
+ managed configuration block bindings structurally, preventing mixed block
49
+ parameter names from producing invalid configuration after a merge.
50
+ - kettle-jem-template-20260801-003 - Generated project metadata and
51
+ documentation now normalize configured underscore hostnames to valid
52
+ hyphenated hostnames.
53
+ - kettle-jem-template-20260801-004 - Generated organization README logos now
54
+ use GitHub's stable organization avatar endpoint instead of assuming a
55
+ matching Galtzo-hosted asset exists.
56
+
57
+ - kettle-jem-template-20260802-001 - Devcontainer JSON files now merge as JSONC,
58
+ preserving comments and trailing commas during template updates.
59
+
60
+ - Load the version namespace from the public yard/timekeeper entrypoint
61
+
62
+ ## [0.2.5] - 2026-07-31
63
+
64
+ - TAG: [v0.2.5][0.2.5t]
65
+ - COVERAGE: 95.52% -- 128/134 lines in 3 files
66
+ - BRANCH COVERAGE: 87.93% -- 51/58 branches in 3 files
67
+ - 20.59% documented
68
+
69
+ ### Added
70
+
71
+ - Documentation linting now has its generated `yard-lint` dependency and severity config available in the local bundle.
72
+
73
+ - kettle-jem-template-20260726-001 - Projects now include YARD lint
74
+ configuration and documentation dependencies so documentation issues fail
75
+ before generated docs are refreshed.
76
+
77
+ - kettle-jem-template-20260727-001 - Spec harness documentation now lists the
78
+ RSpec helpers provided by `kettle-test`.
79
+
80
+ ### Changed
81
+
82
+ - kettle-jem-template-20260716-002 - Generated gemspec manifests now ship fewer
83
+ repository-only files by default to reduce downstream distro packaging churn.
84
+ - kettle-jem-template-20260720-002 - Generated development Gemfiles now use the
85
+ released `tree_sitter_language_pack` gem 1.13.3 or newer by default.
86
+ - kettle-jem-template-20260720-003 - Generated StructuredMerge Git diff driver
87
+ config now uses the installed `smorg-rb` Ruby driver name.
88
+ - kettle-jem-template-20260720-005 - Generated README Support & Community rows
89
+ now include a RubyForum help badge.
90
+ - kettle-jem-template-20260725-001 - Generated JRuby and TruffleRuby workflow
91
+ files now run when pull request head branches start with `feature/release`,
92
+ so release CI monitoring does not report intentionally skipped engine
93
+ workflows as failures.
94
+
95
+ - kettle-jem-template-20260725-002 - Generated gemspec templates now include
96
+ `anonymous_loader` as a development dependency, and version specs use it to
97
+ execute generated `version.rb` files for coverage without redefining package
98
+ constants. Managed version specs are removed when `version_gem` is disabled
99
+ or incompatible with the project's runtime Ruby floor.
100
+
101
+ - kettle-jem-template-20260728-001 - Generated Ruby workflows now use clearer
102
+ setup-ruby-flash planning and can prepare appraisal-only jobs without
103
+ installing the main Gemfile bundle.
104
+
105
+ ### Fixed
106
+
107
+ - Generated YARD title metadata normalization now replaces only the generated
108
+ `Documentation by YARD ...` text when it appears inline with real HTML markup,
109
+ preventing `_index.html` content wrapper deletion during docs regeneration.
110
+
111
+ - kettle-jem-template-20260726-002 - Generated version files now document their
112
+ version namespace and constants, reducing warning-only YARD lint output.
113
+
114
+ - kettle-jem-template-20260726-003 - Coverage upload steps now treat Coveralls,
115
+ QLTY, and Codecov as optional, so provider outages do not fail CI when local
116
+ coverage thresholds still pass.
117
+ - kettle-jem-template-20260728-002 - Generated RuboCop configs now ignore the
118
+ same `gemfiles/vendor/bundle` tree as `.gitignore`, so vendored dependency
119
+ installs are not reported as project lint debt.
120
+ - kettle-jem-template-20260728-003 - Generated dep-heads workflows now run
121
+ TruffleRuby jobs with current RubyGems and Bundler, avoiding setup failures
122
+ before the test suite starts.
123
+
124
+ - kettle-jem-template-20260728-004 - Generated dep-heads workflows now use the
125
+ setup-ruby Bundler install path for direct appraisal Gemfiles, avoiding rv
126
+ lockfile parser failures on Git and path dependencies.
127
+
128
+ - kettle-jem-template-20260728-005 - VersionGem bootstrap now creates the
129
+ missing canonical version spec when a project only has shim namespace version
130
+ specs.
131
+
132
+ - kettle-jem-template-20260730-001 - Gemspec package file enumeration now runs
133
+ relative to the gemspec directory, so packaged template assets are included
134
+ even when the gemspec is loaded from another working directory.
135
+
33
136
  ## [0.2.4] - 2026-07-18
34
137
 
35
138
  - TAG: [v0.2.4][0.2.4t]
@@ -132,7 +235,11 @@ Please file a bug if you notice a violation of semantic versioning.
132
235
 
133
236
  - Initial release
134
237
 
135
- [Unreleased]: https://github.com/galtzo-floss/yard-timekeeper/compare/v0.2.4...HEAD
238
+ [Unreleased]: https://github.com/galtzo-floss/yard-timekeeper/compare/v0.2.6...HEAD
239
+ [0.2.6]: https://github.com/galtzo-floss/yard-timekeeper/compare/v0.2.5...v0.2.6
240
+ [0.2.6t]: https://github.com/galtzo-floss/yard-timekeeper/releases/tag/v0.2.6
241
+ [0.2.5]: https://github.com/galtzo-floss/yard-timekeeper/compare/v0.2.4...v0.2.5
242
+ [0.2.5t]: https://github.com/galtzo-floss/yard-timekeeper/releases/tag/v0.2.5
136
243
  [0.2.4]: https://github.com/galtzo-floss/yard-timekeeper/compare/v0.2.3...v0.2.4
137
244
  [0.2.4t]: https://github.com/galtzo-floss/yard-timekeeper/releases/tag/v0.2.4
138
245
  [0.2.3]: https://github.com/galtzo-floss/yard-timekeeper/compare/v0.2.2...v0.2.3
data/LICENSE.md CHANGED
@@ -3,7 +3,7 @@
3
3
  This project is made available under the following license.
4
4
  Choose the option that best fits your use case:
5
5
 
6
- - [MIT](MIT.md)
6
+ - [MIT](https://github.com/galtzo-floss/yard-timekeeper/blob/main/MIT.md)
7
7
 
8
8
  ## Copyright Notice
9
9
 
data/README.md CHANGED
@@ -2,9 +2,9 @@
2
2
 
3
3
  # 🕰️ Yard::Timekeeper
4
4
 
5
- [![Version][👽versioni]][👽version] [![GitHub tag (latest SemVer)][⛳️tag-img]][⛳️tag] [![License: MIT][📄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] [![Apache SkyWalking Eyes License Compatibility Check][🚎15-🪪-wfi]][🚎15-🪪-wf]
5
+ [![Version][👽versioni]][👽version] [![Ruby Users Forum][✉️ruby-forum-top-img]][✉️ruby-forum] [![GitHub tag (latest SemVer)][⛳️tag-img]][⛳️tag] [![License: MIT][📄license-img]][📄license] [![Total downloads][👽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] [![Apache SkyWalking Eyes License Compatibility Check][🚎15-🪪-wfi]][🚎15-🪪-wf]
6
6
 
7
- `if ci_badges.map(&:color).detect { it != "green"}` ☝️ [let me know][✉️discord-invite], as I may have missed the [discord notification][✉️discord-invite].
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
8
 
9
9
  ---
10
10
 
@@ -43,8 +43,8 @@ Just the important bits:
43
43
  | Works with Truffle Ruby | [![Truffle Ruby 24.2 Compat][💎truby-24.2i]][🚎truby-24.2-wf] [![Truffle Ruby 25.0 Compat][💎truby-25.0i]][🚎truby-25.0-wf] [![Truffle Ruby 33.0 Compat][💎truby-33.0i]][🚎truby-33.0-wf] [![Truffle Ruby current Compat][💎truby-c-i]][🚎9-t-wf] [![Truffle Ruby HEAD Compat][💎truby-headi]][🚎3-hd-wf]|
44
44
  | Works with MRI Ruby 4 | [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf] [![Ruby HEAD Compat][💎ruby-headi]][🚎3-hd-wf]|
45
45
  | Works with MRI Ruby 3 | [![Ruby 3.2 Compat][💎ruby-3.2i]][🚎ruby-3.2-wf] [![Ruby 3.3 Compat][💎ruby-3.3i]][🚎ruby-3.3-wf] [![Ruby 3.4 Compat][💎ruby-3.4i]][🚎ruby-3.4-wf]|
46
- | Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![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] |
47
- | 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
+ | 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] |
47
+ | 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] |
48
48
  | 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] |
49
49
  | Compliance | [![License: MIT][📄license-img]][📄license] [![Apache license compatibility: Category A][📄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] |
50
50
  | 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] |
@@ -66,16 +66,16 @@ The _amazing_ test matrix is powered by the kettle-dev stack.
66
66
  <details markdown="1">
67
67
  <summary>How kettle-dev manages complexity in tests</summary>
68
68
 
69
- | Gem | Source | Role | Daily download rank |
69
+ | Gem | Source | Role | Total downloads |
70
70
  |-----|--------|------|---------------------|
71
- | [appraisal2](https://bestgems.org/gems/appraisal2) | [GitHub](https://github.com/appraisal-rb/appraisal2) | multi-dependency Appraisal matrix generation | [![Daily download rank for appraisal2](https://img.shields.io/gem/rd/appraisal2.svg?style=flat-square)](https://bestgems.org/gems/appraisal2) |
72
- | [appraisal2-rubocop](https://bestgems.org/gems/appraisal2-rubocop) | [GitHub](https://github.com/appraisal-rb/appraisal2-rubocop) | RuboCop Appraisal generator integration | [![Daily download rank for appraisal2-rubocop](https://img.shields.io/gem/rd/appraisal2-rubocop.svg?style=flat-square)](https://bestgems.org/gems/appraisal2-rubocop) |
73
- | [kettle-dev](https://bestgems.org/gems/kettle-dev) | [GitHub](https://github.com/kettle-dev/kettle-dev) | development, release, and CI workflow tooling | [![Daily download rank for kettle-dev](https://img.shields.io/gem/rd/kettle-dev.svg?style=flat-square)](https://bestgems.org/gems/kettle-dev) |
74
- | [kettle-jem](https://bestgems.org/gems/kettle-jem) | [GitHub](https://github.com/kettle-dev/kettle-jem) | Appraisals & CI workflow templates | [![Daily download rank for kettle-jem](https://img.shields.io/gem/rd/kettle-jem.svg?style=flat-square)](https://bestgems.org/gems/kettle-jem) |
75
- | [kettle-soup-cover](https://bestgems.org/gems/kettle-soup-cover) | [GitHub](https://github.com/kettle-dev/kettle-soup-cover) | SimpleCov coverage policy and reporting | [![Daily download rank for kettle-soup-cover](https://img.shields.io/gem/rd/kettle-soup-cover.svg?style=flat-square)](https://bestgems.org/gems/kettle-soup-cover) |
76
- | [kettle-test](https://bestgems.org/gems/kettle-test) | [GitHub](https://github.com/kettle-dev/kettle-test) | standard test runner and coverage harness | [![Daily download rank for kettle-test](https://img.shields.io/gem/rd/kettle-test.svg?style=flat-square)](https://bestgems.org/gems/kettle-test) |
77
- | [rubocop-lts](https://bestgems.org/gems/rubocop-lts) | [GitHub](https://github.com/rubocop-lts/rubocop-lts) | Ruby-version-aware linting | [![Daily download rank for rubocop-lts](https://img.shields.io/gem/rd/rubocop-lts.svg?style=flat-square)](https://bestgems.org/gems/rubocop-lts) |
78
- | [turbo_tests2](https://bestgems.org/gems/turbo_tests2) | [GitHub](https://github.com/galtzo-floss/turbo_tests2) | parallel test execution | [![Daily download rank for turbo_tests2](https://img.shields.io/gem/rd/turbo_tests2.svg?style=flat-square)](https://bestgems.org/gems/turbo_tests2) |
71
+ | [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) |
72
+ | [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) |
73
+ | [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) |
74
+ | [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) |
75
+ | [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) |
76
+ | [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) |
77
+ | [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) |
78
+ | [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) |
79
79
 
80
80
  </details>
81
81
 
@@ -84,17 +84,14 @@ The _amazing_ test matrix is powered by the kettle-dev stack.
84
84
  <details markdown="1">
85
85
  <summary>Find this repo on federated forges (Coming soon!)</summary>
86
86
 
87
- | Federated [DVCS][💎d-in-dvcs] Repository | Status | Issues | PRs | Wiki | CI | Discussions |
88
- |-------------------------------------------------|-----------------------------------------------------------------------|---------------------------|--------------------------|---------------------------|--------------------------|------------------------------|
89
- | 🧪 [galtzo-floss/yard-timekeeper on GitLab][📜src-gl] | The Truth | [💚][🤝gl-issues] | [💚][🤝gl-pulls] | [💚][📜gl-wiki] | 🐭 Tiny Matrix | ➖ |
90
- | 🧊 [galtzo-floss/yard-timekeeper on CodeBerg][📜src-cb] | An Ethical Mirror ([Donate][🤝cb-donate]) | [💚][🤝cb-issues] | [💚][🤝cb-pulls] | ➖ | ⭕️ No Matrix | ➖ |
91
- | 🐙 [galtzo-floss/yard-timekeeper on GitHub][📜src-gh] | Another Mirror | [💚][🤝gh-issues] | [💚][🤝gh-pulls] | [💚][📜gh-wiki] | 💯 Full Matrix | [💚][gh-discussions] |
92
- | 🎮️ [Discord Server][✉️discord-invite] | [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] | [Let's][✉️discord-invite] | [talk][✉️discord-invite] | [about][✉️discord-invite] | [this][✉️discord-invite] | [library!][✉️discord-invite] |
87
+ | Federated [DVCS][💎d-in-dvcs] Repository | Status | Issues | PRs | Wiki | CI |
88
+ |-------------------------------------------------|-------------------------------------------|-------------------|------------------|-----------------|----------------|
89
+ | 🧪 [galtzo-floss/yard-timekeeper on GitLab][📜src-gl] | The Truth | [💚][🤝gl-issues] | [💚][🤝gl-pulls] | [💚][📜gl-wiki] | 🐭 Tiny Matrix |
90
+ | 🧊 [galtzo-floss/yard-timekeeper on CodeBerg][📜src-cb] | An Ethical Mirror ([Donate][🤝cb-donate]) | [💚][🤝cb-issues] | [💚][🤝cb-pulls] | ➖ | ⭕️ No Matrix |
91
+ | 🐙 [galtzo-floss/yard-timekeeper on GitHub][📜src-gh] | Another Mirror | [💚][🤝gh-issues] | [💚][🤝gh-pulls] | [💚][📜gh-wiki] | 💯 Full Matrix |
93
92
 
94
93
  </details>
95
94
 
96
- [gh-discussions]: https://github.com/galtzo-floss/yard-timekeeper/discussions
97
-
98
95
  ### Enterprise Support [![Tidelift](https://tidelift.com/badges/package/rubygems/yard-timekeeper)](https://tidelift.com/subscription/pkg/rubygems-yard-timekeeper?utm_source=rubygems-yard-timekeeper&utm_medium=referral&utm_campaign=readme)
99
96
 
100
97
  Available as part of the Tidelift Subscription.
@@ -112,6 +109,7 @@ The maintainers of this and thousands of other packages are working with Tidelif
112
109
 
113
110
  Alternatively:
114
111
 
112
+ - [![Ruby Users Forum][✉️ruby-forum-img]][✉️ruby-forum]
115
113
  - [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite]
116
114
  - [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork]
117
115
  - [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor]
@@ -342,7 +340,7 @@ See [CHANGELOG.md][📌changelog] for a list of releases.
342
340
  ## 📄 License
343
341
 
344
342
  The gem is available as open source under the terms of
345
- the [MIT](MIT.md) [![License: MIT][📄license-img]][📄license-ref].
343
+ the [MIT](https://github.com/galtzo-floss/yard-timekeeper/blob/main/MIT.md) [![License: MIT][📄license-img]][📄license-ref].
346
344
 
347
345
  ### © Copyright
348
346
 
@@ -364,11 +362,12 @@ I'm hoping to be able to pay for my kids' health insurance this month,
364
362
  so if you value the work I am doing, I need your support.
365
363
  Please consider sponsoring me or the project.
366
364
 
367
- To join the community or get help 👇️ Join the Discord.
365
+ To join the community or get help, use the RubyForum or Discord.
368
366
 
367
+ [![Ruby Users Forum][✉️ruby-forum-img]][✉️ruby-forum]
369
368
  [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite]
370
369
 
371
- To say "thanks!" ☝️ Join the Discord or 👇️ send money.
370
+ To say "thanks!" ☝️ Join the community or 👇️ send money.
372
371
 
373
372
  [![Sponsor galtzo-floss/yard-timekeeper on Open Source Collective][🖇osc-all-bottom-img]][🖇osc] 💌 [![Sponsor me on GitHub Sponsors][🖇sponsor-bottom-img]][🖇sponsor] 💌 [![Sponsor me on Liberapay][⛳liberapay-bottom-img]][⛳liberapay] 💌 [![Donate on PayPal][🖇paypal-bottom-img]][🖇paypal]
374
373
 
@@ -409,11 +408,14 @@ Thanks for RTFM. ☺️
409
408
  [✉️discord-invite-img-ftb]: https://img.shields.io/discord/1373797679469170758?style=for-the-badge&logo=discord
410
409
  [✉️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
411
410
  [✉️ruby-friends]: https://app.daily.dev/squads/rubyfriends
411
+ [✉️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
412
+ [✉️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
413
+ [✉️ruby-forum]: https://www.rubyforum.org/tag/galtzo-floss
412
414
 
413
415
  [✇bundle-group-pattern]: https://gist.github.com/pboling/4564780
414
416
  [⛳️gem-namespace]: https://github.com/galtzo-floss/yard-timekeeper
415
417
  [⛳️namespace-img]: https://img.shields.io/badge/namespace-Yard::Timekeeper-3C2D2D.svg?style=square&logo=ruby&logoColor=white
416
- [⛳️gem-name]: https://bestgems.org/gems/yard-timekeeper
418
+ [⛳️gem-name]: https://clickgems.clickhouse.com/dashboard/yard-timekeeper
417
419
  [⛳️name-img]: https://img.shields.io/badge/name-yard--timekeeper-3C2D2D.svg?style=square&logo=rubygems&logoColor=red
418
420
  [⛳️tag-img]: https://img.shields.io/github/tag/galtzo-floss/yard-timekeeper.svg
419
421
  [⛳️tag]: https://github.com/galtzo-floss/yard-timekeeper/releases
@@ -454,7 +456,7 @@ Thanks for RTFM. ☺️
454
456
  [📜src-gl]: https://gitlab.com/galtzo-floss/yard-timekeeper
455
457
  [📜src-cb-img]: https://img.shields.io/badge/CodeBerg-4893CC?style=for-the-badge&logo=CodeBerg&logoColor=blue
456
458
  [📜src-cb]: https://codeberg.org/galtzo-floss/yard-timekeeper
457
- [📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=Github&logoColor=green
459
+ [📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=GitHub&logoColor=green
458
460
  [📜src-gh]: https://github.com/galtzo-floss/yard-timekeeper
459
461
  [📜docs-cr-rd-img]: https://img.shields.io/badge/RubyDoc-Current_Release-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white
460
462
  [📜docs-head-rd-img]: https://img.shields.io/badge/YARD_on_Galtzo.com-HEAD-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white
@@ -462,9 +464,9 @@ Thanks for RTFM. ☺️
462
464
  [📜gh-wiki]: https://github.com/galtzo-floss/yard-timekeeper/wiki
463
465
  [📜gl-wiki-img]: https://img.shields.io/badge/wiki-gitlab-943CD2.svg?style=for-the-badge&logo=gitlab&logoColor=white
464
466
  [📜gh-wiki-img]: https://img.shields.io/badge/wiki-github-943CD2.svg?style=for-the-badge&logo=github&logoColor=white
465
- [👽dl-rank]: https://bestgems.org/gems/yard-timekeeper
466
- [👽dl-ranki]: https://img.shields.io/gem/rd/yard-timekeeper.svg
467
- [👽version]: https://bestgems.org/gems/yard-timekeeper
467
+ [👽dl-rank]: https://clickgems.clickhouse.com/dashboard/yard-timekeeper
468
+ [👽dl-ranki]: https://img.shields.io/gem/dt/yard-timekeeper.svg
469
+ [👽version]: https://clickgems.clickhouse.com/dashboard/yard-timekeeper
468
470
  [👽versioni]: https://img.shields.io/gem/v/yard-timekeeper.svg
469
471
  [🏀qlty-mnt]: https://qlty.sh/gh/galtzo-floss/projects/yard-timekeeper
470
472
  [🏀qlty-mnti]: https://qlty.sh/gh/galtzo-floss/projects/yard-timekeeper/maintainability.svg
@@ -540,12 +542,12 @@ Thanks for RTFM. ☺️
540
542
  [📌gitmoji]: https://gitmoji.dev
541
543
  [📌gitmoji-img]: https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
542
544
  [🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
543
- [🧮kloc-img]: https://img.shields.io/badge/KLOC-0.125-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
545
+ [🧮kloc-img]: https://img.shields.io/badge/KLOC-0.138-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
544
546
  [🔐security]: https://github.com/galtzo-floss/yard-timekeeper/blob/main/SECURITY.md
545
547
  [🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
546
548
  [📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
547
549
  [📄license]: LICENSE.md
548
- [📄license-ref]: MIT.md
550
+ [📄license-ref]: https://github.com/galtzo-floss/yard-timekeeper/blob/main/MIT.md
549
551
  [📄license-img]: https://img.shields.io/badge/License-MIT-259D6C.svg
550
552
  [📄license-compat]: https://www.apache.org/legal/resolved.html#category-a
551
553
  [📄license-compat-img]: https://img.shields.io/badge/Apache_Compatible:_Category_A-%E2%9C%93-259D6C.svg?style=flat&logo=Apache
@@ -2,9 +2,12 @@
2
2
 
3
3
  module Yard
4
4
  module Timekeeper
5
+ # Version namespace for this gem.
5
6
  module Version
6
- VERSION = "0.2.4"
7
+ # Current gem version.
8
+ VERSION = "0.2.6"
7
9
  end
10
+ # Current gem version exposed at the traditional constant location.
8
11
  VERSION = Version::VERSION # Traditional Constant Location
9
12
  end
10
13
  end
@@ -4,10 +4,6 @@ require "open3"
4
4
  require "version_gem"
5
5
  require_relative "timekeeper/version"
6
6
 
7
- Yard::Timekeeper::Version.class_eval do
8
- extend VersionGem::Basic
9
- end
10
-
11
7
  module Yard
12
8
  module Timekeeper
13
9
  class Error < StandardError; end
@@ -176,9 +172,10 @@ module Yard
176
172
  normalized_lines = current.lines.map do |line|
177
173
  kind = generated_metadata_kind(line)
178
174
  replacement = replacement_lines[kind]
179
- if replacement && line != replacement
175
+ normalized_line = replacement ? normalize_generated_metadata_line(line, kind, replacement) : line
176
+ if replacement && line != normalized_line
180
177
  changed = true
181
- replacement
178
+ normalized_line
182
179
  else
183
180
  line
184
181
  end
@@ -202,7 +199,25 @@ module Yard
202
199
  def generated_metadata_lines(content)
203
200
  content.lines.each_with_object({}) do |line, replacements|
204
201
  kind = generated_metadata_kind(line)
205
- replacements[kind] ||= line if kind
202
+ replacements[kind] ||= generated_metadata_value(line, kind) if kind
203
+ end
204
+ end
205
+
206
+ def generated_metadata_value(line, kind)
207
+ case kind
208
+ when :title_generator
209
+ line[TITLE_GENERATOR_LINE_RE]
210
+ else
211
+ line
212
+ end
213
+ end
214
+
215
+ def normalize_generated_metadata_line(line, kind, replacement)
216
+ case kind
217
+ when :title_generator
218
+ line.sub(TITLE_GENERATOR_LINE_RE, replacement.to_s)
219
+ else
220
+ replacement
206
221
  end
207
222
  end
208
223
 
@@ -227,3 +242,7 @@ end
227
242
  # Rake integration is explicit. Call Yard::Timekeeper.install_rake_tasks! from
228
243
  # your Rakefile after defining the :yard task so postprocess only runs for
229
244
  # documentation builds, never for unrelated processes that happen to load YARD.
245
+
246
+ Yard::Timekeeper::Version.class_eval do
247
+ extend VersionGem::Basic
248
+ end
@@ -5,3 +5,9 @@
5
5
  # it can be loaded regardless of whether YARD attempts `yard-timekeeper`
6
6
  # or `yard/timekeeper`.
7
7
  require_relative "yard/timekeeper"
8
+ require "version_gem"
9
+ require_relative "yard/timekeeper/version"
10
+
11
+ Yard::Timekeeper::Version.class_eval do
12
+ extend VersionGem::Basic
13
+ end
@@ -1,5 +1,9 @@
1
1
  module Yard
2
2
  module Timekeeper
3
3
  # See the writing guide of rbs: https://github.com/ruby/rbs#guides
4
+ module Version
5
+ VERSION: String
6
+ end
7
+ VERSION: String
4
8
  end
5
9
  end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yard-timekeeper
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.4
4
+ version: 0.2.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter H. Boling
@@ -46,7 +46,7 @@ dependencies:
46
46
  version: '1.1'
47
47
  - - ">="
48
48
  - !ruby/object:Gem::Version
49
- version: 1.1.13
49
+ version: 1.1.15
50
50
  type: :runtime
51
51
  prerelease: false
52
52
  version_requirements: !ruby/object:Gem::Requirement
@@ -56,27 +56,27 @@ dependencies:
56
56
  version: '1.1'
57
57
  - - ">="
58
58
  - !ruby/object:Gem::Version
59
- version: 1.1.13
59
+ version: 1.1.15
60
60
  - !ruby/object:Gem::Dependency
61
61
  name: kettle-dev
62
62
  requirement: !ruby/object:Gem::Requirement
63
63
  requirements:
64
64
  - - "~>"
65
65
  - !ruby/object:Gem::Version
66
- version: '2.3'
66
+ version: '2.5'
67
67
  - - ">="
68
68
  - !ruby/object:Gem::Version
69
- version: 2.3.0
69
+ version: 2.5.17
70
70
  type: :development
71
71
  prerelease: false
72
72
  version_requirements: !ruby/object:Gem::Requirement
73
73
  requirements:
74
74
  - - "~>"
75
75
  - !ruby/object:Gem::Version
76
- version: '2.3'
76
+ version: '2.5'
77
77
  - - ">="
78
78
  - !ruby/object:Gem::Version
79
- version: 2.3.0
79
+ version: 2.5.17
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: bundler-audit
82
82
  requirement: !ruby/object:Gem::Requirement
@@ -125,26 +125,46 @@ dependencies:
125
125
  - - ">="
126
126
  - !ruby/object:Gem::Version
127
127
  version: 1.0.4
128
+ - !ruby/object:Gem::Dependency
129
+ name: anonymous_loader
130
+ requirement: !ruby/object:Gem::Requirement
131
+ requirements:
132
+ - - "~>"
133
+ - !ruby/object:Gem::Version
134
+ version: '0.1'
135
+ - - ">="
136
+ - !ruby/object:Gem::Version
137
+ version: 0.1.3
138
+ type: :development
139
+ prerelease: false
140
+ version_requirements: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - "~>"
143
+ - !ruby/object:Gem::Version
144
+ version: '0.1'
145
+ - - ">="
146
+ - !ruby/object:Gem::Version
147
+ version: 0.1.3
128
148
  - !ruby/object:Gem::Dependency
129
149
  name: appraisal2
130
150
  requirement: !ruby/object:Gem::Requirement
131
151
  requirements:
132
152
  - - "~>"
133
153
  - !ruby/object:Gem::Version
134
- version: '3.1'
154
+ version: '3.2'
135
155
  - - ">="
136
156
  - !ruby/object:Gem::Version
137
- version: 3.1.4
157
+ version: 3.2.0
138
158
  type: :development
139
159
  prerelease: false
140
160
  version_requirements: !ruby/object:Gem::Requirement
141
161
  requirements:
142
162
  - - "~>"
143
163
  - !ruby/object:Gem::Version
144
- version: '3.1'
164
+ version: '3.2'
145
165
  - - ">="
146
166
  - !ruby/object:Gem::Version
147
- version: 3.1.4
167
+ version: 3.2.0
148
168
  - !ruby/object:Gem::Dependency
149
169
  name: kettle-test
150
170
  requirement: !ruby/object:Gem::Requirement
@@ -154,7 +174,7 @@ dependencies:
154
174
  version: '2.0'
155
175
  - - ">="
156
176
  - !ruby/object:Gem::Version
157
- version: 2.0.9
177
+ version: 2.0.19
158
178
  type: :development
159
179
  prerelease: false
160
180
  version_requirements: !ruby/object:Gem::Requirement
@@ -164,27 +184,27 @@ dependencies:
164
184
  version: '2.0'
165
185
  - - ">="
166
186
  - !ruby/object:Gem::Version
167
- version: 2.0.9
187
+ version: 2.0.19
168
188
  - !ruby/object:Gem::Dependency
169
189
  name: turbo_tests2
170
190
  requirement: !ruby/object:Gem::Requirement
171
191
  requirements:
172
192
  - - "~>"
173
193
  - !ruby/object:Gem::Version
174
- version: '3.1'
194
+ version: '3.2'
175
195
  - - ">="
176
196
  - !ruby/object:Gem::Version
177
- version: 3.1.6
197
+ version: 3.2.4
178
198
  type: :development
179
199
  prerelease: false
180
200
  version_requirements: !ruby/object:Gem::Requirement
181
201
  requirements:
182
202
  - - "~>"
183
203
  - !ruby/object:Gem::Version
184
- version: '3.1'
204
+ version: '3.2'
185
205
  - - ">="
186
206
  - !ruby/object:Gem::Version
187
- version: 3.1.6
207
+ version: 3.2.4
188
208
  - !ruby/object:Gem::Dependency
189
209
  name: ruby-progressbar
190
210
  requirement: !ruby/object:Gem::Requirement
@@ -208,7 +228,7 @@ dependencies:
208
228
  version: '1.0'
209
229
  - - ">="
210
230
  - !ruby/object:Gem::Version
211
- version: 1.0.4
231
+ version: 1.0.8
212
232
  type: :development
213
233
  prerelease: false
214
234
  version_requirements: !ruby/object:Gem::Requirement
@@ -218,7 +238,7 @@ dependencies:
218
238
  version: '1.0'
219
239
  - - ">="
220
240
  - !ruby/object:Gem::Version
221
- version: 1.0.4
241
+ version: 1.0.8
222
242
  - !ruby/object:Gem::Dependency
223
243
  name: gitmoji-regex
224
244
  requirement: !ruby/object:Gem::Requirement
@@ -228,7 +248,7 @@ dependencies:
228
248
  version: '2.0'
229
249
  - - ">="
230
250
  - !ruby/object:Gem::Version
231
- version: 2.0.4
251
+ version: 2.0.11
232
252
  type: :development
233
253
  prerelease: false
234
254
  version_requirements: !ruby/object:Gem::Requirement
@@ -238,7 +258,7 @@ dependencies:
238
258
  version: '2.0'
239
259
  - - ">="
240
260
  - !ruby/object:Gem::Version
241
- version: 2.0.4
261
+ version: 2.0.11
242
262
  description: "\U0001F570️ A YARD plugin that post-processes generated docs, detects
243
263
  timestamp-only diffs in tracked HTML files under docs/, and restores those files
244
264
  from git to prevent pointless churn while keeping the footer timestamp on genuinely
@@ -247,46 +267,29 @@ email:
247
267
  - floss@galtzo.com
248
268
  executables: []
249
269
  extensions: []
250
- extra_rdoc_files:
251
- - CHANGELOG.md
252
- - CITATION.cff
253
- - CODE_OF_CONDUCT.md
254
- - CONTRIBUTING.md
255
- - FUNDING.md
256
- - LICENSE.md
257
- - README.md
258
- - RUBOCOP.md
259
- - SECURITY.md
270
+ extra_rdoc_files: []
260
271
  files:
261
272
  - CHANGELOG.md
262
- - CITATION.cff
263
- - CODE_OF_CONDUCT.md
264
- - CONTRIBUTING.md
265
- - FUNDING.md
266
273
  - LICENSE.md
267
- - MIT.md
268
274
  - README.md
269
- - RUBOCOP.md
270
- - SECURITY.md
271
- - certs/pboling.pem
272
275
  - lib/yard-timekeeper.rb
273
276
  - lib/yard/timekeeper.rb
274
277
  - lib/yard/timekeeper/version.rb
275
278
  - sig/yard/timekeeper.rbs
276
- - sig/yard/timekeeper/version.rbs
277
279
  homepage: https://github.com/galtzo-floss/yard-timekeeper
278
280
  licenses:
279
281
  - MIT
280
282
  metadata:
281
283
  homepage_uri: https://yard-timekeeper.galtzo.com
282
- source_code_uri: https://github.com/galtzo-floss/yard-timekeeper/tree/v0.2.4
283
- changelog_uri: https://github.com/galtzo-floss/yard-timekeeper/blob/v0.2.4/CHANGELOG.md
284
+ source_code_uri: https://github.com/galtzo-floss/yard-timekeeper/tree/v0.2.6
285
+ changelog_uri: https://github.com/galtzo-floss/yard-timekeeper/blob/v0.2.6/CHANGELOG.md
284
286
  bug_tracker_uri: https://github.com/galtzo-floss/yard-timekeeper/issues
285
- documentation_uri: https://www.rubydoc.info/gems/yard-timekeeper/0.2.4
287
+ documentation_uri: https://www.rubydoc.info/gems/yard-timekeeper/0.2.6
286
288
  funding_uri: https://github.com/sponsors/pboling
287
289
  wiki_uri: https://github.com/galtzo-floss/yard-timekeeper/wiki
288
290
  news_uri: https://www.railsbling.com/tags/yard-timekeeper
289
291
  discord_uri: https://discord.gg/3qme4XHNKN
292
+ mailing_list_uri: https://www.rubyforum.org/tag/galtzo-floss
290
293
  rubygems_mfa_required: 'true'
291
294
  rdoc_options:
292
295
  - "--title"
@@ -312,7 +315,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
312
315
  - !ruby/object:Gem::Version
313
316
  version: '0'
314
317
  requirements: []
315
- rubygems_version: 4.0.16
318
+ rubygems_version: 4.0.17
316
319
  specification_version: 4
317
320
  summary: "\U0001F570️ Preserve tracked YARD docs when only the generated timestamp
318
321
  changed."