debug_logging 4.0.3 → 4.0.5

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: b78facefbf394d104b39fed00f6ae90e0a73fea0f8c2a8fd39dc3aa38aa6212c
4
- data.tar.gz: 288d90f6e15cc46f1e300d33b0e01a78b1c5a47d1de95b43b626af8270c4948e
3
+ metadata.gz: c07adf4ce090f66cddfa9c79c7e365910e512a1594ce42b01dc9b08937cba496
4
+ data.tar.gz: 25872a14875d155d6d0e5ada1e798a5e0dc4e6fd54663225243db2d6c2a34f8c
5
5
  SHA512:
6
- metadata.gz: 7e8c650376057d4451143591b600feffbcd413e5fad1c70c3e101f2c645cdc951c80fa8f03d60439eca3e5ccd5388ec59756ac7de018e3756783abf882eed6b8
7
- data.tar.gz: 6cf9ef7235ceb0b04d359cb8f307097eb0a3ca4d1e5f532751af7664ea4db854e024654a11a7670d88b7d4192c68bc83fe89c6deab6120e984f297291c6fdb7a
6
+ metadata.gz: 11afaaea977ac656bfffc1f94f1e93cc28853b2d183a29d8f26ad1d3d143a7be64fdeb3ea719f9d14a24f9ca9616570de3e60fa6e60006f9243abab8b25cc876
7
+ data.tar.gz: 2a82a36a4da174576ca77e2353dad2bb1dd705cfb15acf485582ca223edbd72c2b6164b853abbd09e33983f69703054205db9ddd937eb1cda6d39bc661cd01bf
checksums.yaml.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -28,11 +28,54 @@ Please file a bug if you notice a violation of semantic versioning.
28
28
 
29
29
  ### Fixed
30
30
 
31
+ ### Security
32
+
33
+ ## [4.0.5] - 2026-07-02
34
+
35
+ - TAG: [v4.0.5][4.0.5t]
36
+ - COVERAGE: 97.45% -- 726/745 lines in 28 files
37
+ - BRANCH COVERAGE: 86.07% -- 173/201 branches in 28 files
38
+ - 20.94% documented
39
+
40
+ ### Added
41
+
42
+ - Added support for JRuby 10.1 and TruffleRuby 34.0.
43
+
44
+ ### Changed
45
+
46
+ - Retemplated project metadata and CI/development automation with `kettle-jem` v7.0.0.
47
+
48
+ ### Fixed
49
+
50
+ - Package configured license files in gem release file lists.
51
+
52
+ - Avoid runtime warnings from ActiveSupport loading, method decoration, and
53
+ invocation ID formatting, and update the SimpleCov test setup for the current
54
+ filtering API.
55
+
56
+ ## [4.0.4] - 2026-06-14
57
+
58
+ - TAG: [v4.0.4][4.0.4t]
59
+ - COVERAGE: 97.41% -- 716/735 lines in 28 files
60
+ - BRANCH COVERAGE: 87.83% -- 166/189 branches in 28 files
61
+ - 20.94% documented
62
+
63
+ ### Changed
64
+
65
+ - Raised generated `version_gem` and `appraisal2` dependency floors to
66
+ `version_gem` >= 1.1.10 and `appraisal2` >= 3.0.9.
67
+ - Refreshed generated project metadata, support documentation, workflow pins,
68
+ and dependency floors from the latest `kettle-jem` template, including the
69
+ `yard-fence` 0.9.4 documentation floor and resilient templating bootstrap.
70
+ - Updated generated OpenCollective funding metadata to use the
71
+ `galtzo-floss` collective.
72
+
73
+ ### Fixed
74
+
75
+ - Restored `docs/CNAME` so the generated documentation site keeps its custom domain.
31
76
  - Fixed the TruffleRuby 23.1 CI setup bundle by applying the same JSON
32
77
  constraint before Appraisal runs.
33
78
 
34
- ### Security
35
-
36
79
  ## [4.0.3] - 2026-05-28
37
80
 
38
81
  - TAG: [v4.0.3][4.0.3t]
@@ -269,7 +312,11 @@ Please file a bug if you notice a violation of semantic versioning.
269
312
 
270
313
  - Initial release
271
314
 
272
- [Unreleased]: https://github.com/galtzo-floss/debug_logging/compare/v4.0.3...HEAD
315
+ [Unreleased]: https://github.com/galtzo-floss/debug_logging/compare/v4.0.5...HEAD
316
+ [4.0.5]: https://github.com/galtzo-floss/debug_logging/compare/v4.0.4...v4.0.5
317
+ [4.0.5t]: https://github.com/galtzo-floss/debug_logging/releases/tag/v4.0.5
318
+ [4.0.4]: https://github.com/galtzo-floss/debug_logging/compare/v4.0.3...v4.0.4
319
+ [4.0.4t]: https://github.com/galtzo-floss/debug_logging/releases/tag/v4.0.4
273
320
  [4.0.3]: https://github.com/galtzo-floss/debug_logging/compare/v4.0.2...v4.0.3
274
321
  [4.0.3t]: https://github.com/galtzo-floss/debug_logging/releases/tag/v4.0.3
275
322
  [4.0.2]: https://gitlab.com/galtzo-floss/debug_logging/-/compare/v4.0.1...v4.0.2
data/CONTRIBUTING.md CHANGED
@@ -102,22 +102,41 @@ 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 and local Git `diff.smorg-*` command config 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 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 --local --get-regexp '^diff\.smorg-'`.
119
+ - To remove managed local entries, run `K_JEM_TEMPLATING=true 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.1`.
127
+ in `.structuredmerge/kettle-jem.yml`; this project was templated with `ruby.test_minimum: 3.1`.
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
 
115
131
  They are created and updated with the commands:
116
132
 
117
133
  ```console
118
- bin/rake appraisal:update
134
+ bin/rake appraisal:generate
119
135
  ```
120
136
 
137
+ Use `bin/rake appraisal:update` when you intentionally need to resolve fresh
138
+ appraisal locks.
139
+
121
140
  If you need to reset all gemfiles/*.gemfile.lock files:
122
141
 
123
142
  ```console
data/FUNDING.md CHANGED
@@ -6,22 +6,18 @@ Many paths lead to being a sponsor or a backer of this project. Are you on such
6
6
 
7
7
  [![OpenCollective Backers][🖇osc-backers-i]][🖇osc-backers] [![OpenCollective Sponsors][🖇osc-sponsors-i]][🖇osc-sponsors] [![Sponsor Me on Github][🖇sponsor-img]][🖇sponsor] [![Liberapay Goal Progress][⛳liberapay-img]][⛳liberapay] [![Donate on PayPal][🖇paypal-img]][🖇paypal]
8
8
 
9
- [![Buy me a coffee][🖇buyme-small-img]][🖇buyme] [![Donate on Polar][🖇polar-img]][🖇polar] [![Donate to my FLOSS efforts at ko-fi.com][🖇kofi-img]][🖇kofi] [![Donate to my FLOSS efforts using Patreon][🖇patreon-img]][🖇patreon]
9
+ [![Buy me a coffee][🖇buyme-small-img]][🖇buyme] [![Donate to my FLOSS efforts at ko-fi.com][🖇kofi-img]][🖇kofi]
10
10
 
11
11
  [⛳liberapay-img]: https://img.shields.io/liberapay/goal/pboling.svg?logo=liberapay&color=a51611&style=flat
12
12
  [⛳liberapay]: https://liberapay.com/pboling/donate
13
- [🖇osc-backers]: https://opencollective.com/pboling#backer
14
- [🖇osc-backers-i]: https://opencollective.com/pboling/backers/badge.svg?style=flat
15
- [🖇osc-sponsors]: https://opencollective.com/pboling#sponsor
16
- [🖇osc-sponsors-i]: https://opencollective.com/pboling/sponsors/badge.svg?style=flat
13
+ [🖇osc-backers]: https://opencollective.com/galtzo-floss#backer
14
+ [🖇osc-backers-i]: https://opencollective.com/galtzo-floss/backers/badge.svg?style=flat
15
+ [🖇osc-sponsors]: https://opencollective.com/galtzo-floss#sponsor
16
+ [🖇osc-sponsors-i]: https://opencollective.com/galtzo-floss/sponsors/badge.svg?style=flat
17
17
  [🖇sponsor-img]: https://img.shields.io/badge/Sponsor_Me!-pboling.svg?style=social&logo=github
18
18
  [🖇sponsor]: https://github.com/sponsors/pboling
19
- [🖇polar-img]: https://img.shields.io/badge/polar-donate-a51611.svg?style=flat
20
- [🖇polar]: https://polar.sh/pboling
21
19
  [🖇kofi-img]: https://img.shields.io/badge/ko--fi-%E2%9C%93-a51611.svg?style=flat
22
20
  [🖇kofi]: https://ko-fi.com/pboling
23
- [🖇patreon-img]: https://img.shields.io/badge/patreon-donate-a51611.svg?style=flat
24
- [🖇patreon]: https://patreon.com/galtzo
25
21
  [🖇buyme-small-img]: https://img.shields.io/badge/buy_me_a_coffee-%E2%9C%93-a51611.svg?style=flat
26
22
  [🖇buyme]: https://www.buymeacoffee.com/pboling
27
23
  [🖇paypal-img]: https://img.shields.io/badge/donate-paypal-a51611.svg?style=flat&logo=paypal
@@ -59,13 +55,13 @@ I’m developing a new library, [floss_funding][🖇floss-funding-gem], designed
59
55
  **[Floss-Funding.dev][🖇floss-funding.dev]: 👉️ No network calls. 👉️ No tracking. 👉️ No oversight. 👉️ Minimal crypto hashing. 💡 Easily disabled nags**
60
56
 
61
57
  [⛳liberapay-bottom-img]: https://img.shields.io/liberapay/goal/pboling.svg?style=for-the-badge&logo=liberapay&color=a51611
62
- [🖇osc-all-img]: https://img.shields.io/opencollective/all/pboling
63
- [🖇osc-sponsors-img]: https://img.shields.io/opencollective/sponsors/pboling
64
- [🖇osc-backers-img]: https://img.shields.io/opencollective/backers/pboling
65
- [🖇osc-all-bottom-img]: https://img.shields.io/opencollective/all/pboling?style=for-the-badge
66
- [🖇osc-sponsors-bottom-img]: https://img.shields.io/opencollective/sponsors/pboling?style=for-the-badge
67
- [🖇osc-backers-bottom-img]: https://img.shields.io/opencollective/backers/pboling?style=for-the-badge
68
- [🖇osc]: https://opencollective.com/pboling
58
+ [🖇osc-all-img]: https://img.shields.io/opencollective/all/galtzo-floss
59
+ [🖇osc-sponsors-img]: https://img.shields.io/opencollective/sponsors/galtzo-floss
60
+ [🖇osc-backers-img]: https://img.shields.io/opencollective/backers/galtzo-floss
61
+ [🖇osc-all-bottom-img]: https://img.shields.io/opencollective/all/galtzo-floss?style=for-the-badge
62
+ [🖇osc-sponsors-bottom-img]: https://img.shields.io/opencollective/sponsors/galtzo-floss?style=for-the-badge
63
+ [🖇osc-backers-bottom-img]: https://img.shields.io/opencollective/backers/galtzo-floss?style=for-the-badge
64
+ [🖇osc]: https://opencollective.com/galtzo-floss
69
65
  [🖇sponsor-bottom-img]: https://img.shields.io/badge/Sponsor_Me!-pboling-blue?style=for-the-badge&logo=github
70
66
  [🖇buyme-img]: https://img.buymeacoffee.com/button-api/?text=Buy%20me%20a%20latte&emoji=&slug=pboling&button_colour=FFDD00&font_colour=000000&font_family=Cookie&outline_colour=000000&coffee_colour=ffffff
71
67
  [🖇paypal-bottom-img]: https://img.shields.io/badge/donate-paypal-a51611.svg?style=for-the-badge&logo=paypal&color=0A0A0A
data/LICENSE.md CHANGED
@@ -7,6 +7,6 @@ Choose the option that best fits your use case:
7
7
 
8
8
  ## Copyright Notice
9
9
 
10
- Copyright (c) 2017-2018, 2020-2021, 2023-2024, 2026 Peter H. Boling
11
- Copyright (c) 2020 John Gillson
12
- Copyright (c) 2024 Aboling0
10
+ - Copyright (c) 2017-2018, 2020-2021, 2023-2024, 2026 Peter H. Boling
11
+ - Copyright (c) 2020 John Gillson
12
+ - Copyright (c) 2024 Aboling0
data/MIT.md ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ See [LICENSE.md](LICENSE.md) for the copyright notice.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
data/README.md CHANGED
@@ -1,38 +1,33 @@
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]
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/
1
+ <a href="https://github.com/galtzo-floss"><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="14%" align="right"/></a>
7
2
 
8
3
  # 🪲 DebugLogging
9
4
 
10
- [![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] [![CodeQL][🖐codeQL-img]][🖐codeQL] [![Apache SkyWalking Eyes License Compatibility Check][🚎15-🪪-wfi]][🚎15-🪪-wf]
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]
11
6
 
12
- `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].
13
8
 
14
9
  ---
15
10
 
16
11
  `if ci_badges.map(&:color).all? { it == "green"}` 👇️ send money so I can do more of this. FLOSS maintenance is now my full-time job.
17
12
 
18
- [![OpenCollective Backers][🖇osc-backers-i]][🖇osc-backers] [![OpenCollective Sponsors][🖇osc-sponsors-i]][🖇osc-sponsors] [![Sponsor Me on Github][🖇sponsor-img]][🖇sponsor] [![Liberapay Goal Progress][⛳liberapay-img]][⛳liberapay] [![Donate on PayPal][🖇paypal-img]][🖇paypal] [![Buy me a coffee][🖇buyme-small-img]][🖇buyme] [![Donate on Polar][🖇polar-img]][🖇polar] [![Donate at ko-fi.com][🖇kofi-img]][🖇kofi]
13
+ [![OpenCollective Backers][🖇osc-backers-i]][🖇osc-backers] [![OpenCollective Sponsors][🖇osc-sponsors-i]][🖇osc-sponsors] [![Sponsor Me on Github][🖇sponsor-img]][🖇sponsor] [![Liberapay Goal Progress][⛳liberapay-img]][⛳liberapay] [![Donate on PayPal][🖇paypal-img]][🖇paypal] [![Buy me a coffee][🖇buyme-small-img]][🖇buyme] [![Donate at ko-fi.com][🖇kofi-img]][🖇kofi]
19
14
 
20
- <details>
15
+ <details markdown="1">
21
16
  <summary>👣 How will this project approach the September 2025 hostile takeover of RubyGems? 🚑️</summary>
22
17
 
23
18
  I've summarized my thoughts in [this blog post](https://dev.to/galtzo/hostile-takeover-of-rubygems-my-thoughts-5hlo).
24
19
 
25
20
  </details>
26
21
 
27
- ## 🌻 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>
28
23
 
29
24
  ## 💡 Info you can shake a stick at
30
25
 
31
26
  | Tokens to Remember | [![Gem name][⛳️name-img]][⛳️gem-name] [![Gem namespace][⛳️namespace-img]][⛳️gem-namespace] |
32
27
  |-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
33
- | Works with JRuby | [![JRuby 9.4 Compat][💎jruby-9.4i]][🚎jruby-9.4-wf] [![JRuby current Compat][💎jruby-c-i]][🚎10-j-wf] [![JRuby HEAD Compat][💎jruby-headi]][🚎3-hd-wf]|
34
- | Works with Truffle Ruby | [![Truffle Ruby 23.1 Compat][💎truby-23.1i]][🚎truby-23.1-wf] <br/> [![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 current Compat][💎truby-c-i]][🚎9-t-wf]|
35
- | Works with MRI Ruby 4 | [![Ruby 4.0 Compat][💎ruby-4.0i]][🚎11-c-wf] [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf] [![Ruby HEAD Compat][💎ruby-headi]][🚎3-hd-wf]|
28
+ | Works with JRuby | [![JRuby 9.4 Compat][💎jruby-9.4i]][🚎jruby-9.4-wf] [![JRuby 10.0 Compat][💎jruby-10.0i]][🚎jruby-10.0-wf] [![JRuby current Compat][💎jruby-c-i]][🚎10-j-wf] [![JRuby HEAD Compat][💎jruby-headi]][🚎3-hd-wf]|
29
+ | Works with Truffle Ruby | [![Truffle Ruby 23.1 Compat][💎truby-23.1i]][🚎truby-23.1-wf] <br/> [![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]|
30
+ | Works with MRI Ruby 4 | [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf] [![Ruby HEAD Compat][💎ruby-headi]][🚎3-hd-wf]|
36
31
  | Works with MRI Ruby 3 | [![Ruby 3.1 Compat][💎ruby-3.1i]][🚎ruby-3.1-wf] [![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]|
37
32
  | 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] |
38
33
  | 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] |
@@ -50,11 +45,25 @@ This test floor is configured by `ruby.test_minimum` in `.kettle-jem.yml` and
50
45
  may be higher than the gem's runtime compatibility floor when legacy Rubies are
51
46
  not practical for the current toolchain.
52
47
 
53
- | 🚚 _Amazing_ test matrix was brought to you by | 🔎 appraisal2 🔎 and the color 💚 green 💚 |
54
- |------------------------------------------------|--------------------------------------------------------|
55
- | 👟 Check it out! | ✨ [github.com/appraisal-rb/appraisal2][💎appraisal2] ✨ |
48
+ <a href="https://github.com/kettle-dev"><img alt="kettle-dev Logo by Aboling0, CC BY-SA 4.0" src="https://logos.galtzo.com/assets/images/kettle-dev/avatar-128px.svg" width="14%" align="right"/></a>
56
49
 
50
+ The _amazing_ test matrix is powered by the kettle-dev stack.
57
51
 
52
+ <details markdown="1">
53
+ <summary>How kettle-dev manages complexity in tests</summary>
54
+
55
+ | Gem | Source | Role | Daily download rank |
56
+ |-----|--------|------|---------------------|
57
+ | [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) |
58
+ | [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) |
59
+ | [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) |
60
+ | [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) |
61
+ | [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) |
62
+ | [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) |
63
+ | [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) |
64
+ | [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) |
65
+
66
+ </details>
58
67
 
59
68
  ### Federated DVCS
60
69
 
@@ -266,7 +275,7 @@ class Car
266
275
  logged :dealer_options, {
267
276
  something: "here", # <= will be logged, and available to last_hash_to_s_proc
268
277
  multiple_last_hashes: true, # <= Overrides config
269
- error_handler_proc: nil, # NOTE: if you define the error_handler_proc inside a class like this you can use self inside the proc to refer to the class the method was called on!
278
+ error_handler_proc: nil # NOTE: if you define the error_handler_proc inside a class like this you can use self inside the proc to refer to the class the method was called on!
270
279
  }
271
280
  # == END CLASS METHODS ==
272
281
 
@@ -276,7 +285,7 @@ class Car
276
285
  i_notified [
277
286
  :drive,
278
287
  :stop,
279
- [:turn, {instance_variables: %i[direction angle]}],
288
+ [:turn, {instance_variables: %i[direction angle]}]
280
289
  ]
281
290
 
282
291
  def drive(speed)
@@ -318,7 +327,7 @@ class Car
318
327
  time_formatter_proc: DebugLogging::Constants::DEFAULT_TIME_FORMATTER,
319
328
  add_timestamp: false,
320
329
  instance_benchmarks: false,
321
- class_benchmarks: false,
330
+ class_benchmarks: false
322
331
  }
323
332
 
324
333
  # You can also use `i_logged` as a true method decorator:
@@ -370,7 +379,7 @@ class Car
370
379
  i_notified [
371
380
  :drive,
372
381
  :stop,
373
- [:turn, {instance_variables: %i[direction angle]}],
382
+ [:turn, {instance_variables: %i[direction angle]}]
374
383
  ]
375
384
 
376
385
  # == BEGIN CLASS METHODS ==
@@ -406,7 +415,7 @@ class Car
406
415
  # and also made available to last_hash_to_s_proc
407
416
  notified :dealer_options, {
408
417
  something: "here", # <== will be added to the event payload, and be available to last_hash_to_s_proc
409
- add_invocation_id: false, # <== Overrides config
418
+ add_invocation_id: false # <== Overrides config
410
419
  }
411
420
  # == END CLASS METHODS ==
412
421
 
@@ -482,7 +491,7 @@ NOTE: [kettle-readme-backers][kettle-readme-backers] updates this list every day
482
491
  No sponsors yet. Be the first!
483
492
  <!-- OPENCOLLECTIVE-ORGANIZATIONS:END -->
484
493
 
485
- [kettle-readme-backers]: https://github.com/galtzo-floss/debug_logging/blob/main/exe/kettle-readme-backers
494
+ [kettle-readme-backers]: https://github.com/galtzo-floss/debug_logging/blob/main/bin/kettle-readme-backers
486
495
 
487
496
  ### Another way to support open-source
488
497
 
@@ -494,7 +503,7 @@ I’m developing a new library, [floss_funding][🖇floss-funding-gem], designed
494
503
 
495
504
  **[Floss-Funding.dev][🖇floss-funding.dev]: 👉️ No network calls. 👉️ No tracking. 👉️ No oversight. 👉️ Minimal crypto hashing. 💡 Easily disabled nags**
496
505
 
497
- [![OpenCollective Backers][🖇osc-backers-i]][🖇osc-backers] [![OpenCollective Sponsors][🖇osc-sponsors-i]][🖇osc-sponsors] [![Sponsor Me on Github][🖇sponsor-img]][🖇sponsor] [![Liberapay Goal Progress][⛳liberapay-img]][⛳liberapay] [![Donate on PayPal][🖇paypal-img]][🖇paypal] [![Buy me a coffee][🖇buyme-small-img]][🖇buyme] [![Donate on Polar][🖇polar-img]][🖇polar] [![Donate to my FLOSS efforts at ko-fi.com][🖇kofi-img]][🖇kofi] [![Donate to my FLOSS efforts using Patreon][🖇patreon-img]][🖇patreon]
506
+ [![OpenCollective Backers][🖇osc-backers-i]][🖇osc-backers] [![OpenCollective Sponsors][🖇osc-sponsors-i]][🖇osc-sponsors] [![Sponsor Me on Github][🖇sponsor-img]][🖇sponsor] [![Liberapay Goal Progress][⛳liberapay-img]][⛳liberapay] [![Donate on PayPal][🖇paypal-img]][🖇paypal] [![Buy me a coffee][🖇buyme-small-img]][🖇buyme] [![Donate to my FLOSS efforts at ko-fi.com][🖇kofi-img]][🖇kofi]
498
507
 
499
508
  ## 🔐 Security
500
509
 
@@ -540,7 +549,7 @@ Made with [contributors-img][🖐contrib-rocks].
540
549
 
541
550
  Also see GitLab Contributors: [https://gitlab.com/galtzo-floss/debug_logging/-/graphs/main][🚎contributors-gl]
542
551
 
543
- <details>
552
+ <details markdown="1">
544
553
  <summary>⭐️ Star History</summary>
545
554
 
546
555
  <a href="https://star-history.com/galtzo-floss/debug_logging&Date">
@@ -616,6 +625,8 @@ To say "thanks!" ☝️ Join the Discord or 👇️ send money.
616
625
 
617
626
  ### Please give the project a star ⭐ ♥.
618
627
 
628
+ 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.
629
+
619
630
  Thanks for RTFM. ☺️
620
631
 
621
632
  [⛳liberapay-img]: https://img.shields.io/liberapay/goal/pboling.svg?logo=liberapay&color=a51611&style=flat
@@ -635,12 +646,8 @@ Thanks for RTFM. ☺️
635
646
  [🖇sponsor-img]: https://img.shields.io/badge/Sponsor_Me!-pboling.svg?style=social&logo=github
636
647
  [🖇sponsor-bottom-img]: https://img.shields.io/badge/Sponsor_Me!-pboling-blue?style=for-the-badge&logo=github
637
648
  [🖇sponsor]: https://github.com/sponsors/pboling
638
- [🖇polar-img]: https://img.shields.io/badge/polar-donate-a51611.svg?style=flat
639
- [🖇polar]: https://polar.sh/pboling
640
649
  [🖇kofi-img]: https://img.shields.io/badge/ko--fi-%E2%9C%93-a51611.svg?style=flat
641
650
  [🖇kofi]: https://ko-fi.com/pboling
642
- [🖇patreon-img]: https://img.shields.io/badge/patreon-donate-a51611.svg?style=flat
643
- [🖇patreon]: https://patreon.com/galtzo
644
651
  [🖇buyme-small-img]: https://img.shields.io/badge/buy_me_a_coffee-%E2%9C%93-a51611.svg?style=flat
645
652
  [🖇buyme-img]: https://img.buymeacoffee.com/button-api/?text=Buy%20me%20a%20latte&emoji=&slug=pboling&button_colour=FFDD00&font_colour=000000&font_family=Cookie&outline_colour=000000&coffee_colour=ffffff
646
653
  [🖇buyme]: https://www.buymeacoffee.com/pboling
@@ -718,16 +725,16 @@ Thanks for RTFM. ☺️
718
725
  [🏀codecovi]: https://codecov.io/gh/galtzo-floss/debug_logging/graph/badge.svg
719
726
  [🏀coveralls]: https://coveralls.io/github/galtzo-floss/debug_logging?branch=main
720
727
  [🏀coveralls-img]: https://coveralls.io/repos/github/galtzo-floss/debug_logging/badge.svg?branch=main
721
- [🖐codeQL]: https://github.com/galtzo-floss/debug_logging/security/code-scanning
722
- [🖐codeQL-img]: https://github.com/galtzo-floss/debug_logging/actions/workflows/codeql-analysis.yml/badge.svg
723
728
  [🚎ruby-3.1-wf]: https://github.com/galtzo-floss/debug_logging/actions/workflows/ruby-3.1.yml
724
729
  [🚎ruby-3.2-wf]: https://github.com/galtzo-floss/debug_logging/actions/workflows/ruby-3.2.yml
725
730
  [🚎ruby-3.3-wf]: https://github.com/galtzo-floss/debug_logging/actions/workflows/ruby-3.3.yml
726
731
  [🚎ruby-3.4-wf]: https://github.com/galtzo-floss/debug_logging/actions/workflows/ruby-3.4.yml
727
732
  [🚎jruby-9.4-wf]: https://github.com/galtzo-floss/debug_logging/actions/workflows/jruby-9.4.yml
733
+ [🚎jruby-10.0-wf]: https://github.com/galtzo-floss/debug_logging/actions/workflows/jruby-10.0.yml
728
734
  [🚎truby-23.1-wf]: https://github.com/galtzo-floss/debug_logging/actions/workflows/truffleruby-23.1.yml
729
735
  [🚎truby-24.2-wf]: https://github.com/galtzo-floss/debug_logging/actions/workflows/truffleruby-24.2.yml
730
736
  [🚎truby-25.0-wf]: https://github.com/galtzo-floss/debug_logging/actions/workflows/truffleruby-25.0.yml
737
+ [🚎truby-33.0-wf]: https://github.com/galtzo-floss/debug_logging/actions/workflows/truffleruby-33.0.yml
731
738
  [🚎2-cov-wf]: https://github.com/galtzo-floss/debug_logging/actions/workflows/coverage.yml
732
739
  [🚎2-cov-wfi]: https://github.com/galtzo-floss/debug_logging/actions/workflows/coverage.yml/badge.svg
733
740
  [🚎3-hd-wf]: https://github.com/galtzo-floss/debug_logging/actions/workflows/heads.yml
@@ -752,14 +759,16 @@ Thanks for RTFM. ☺️
752
759
  [💎ruby-3.2i]: https://img.shields.io/badge/Ruby-3.2-CC342D?style=for-the-badge&logo=ruby&logoColor=white
753
760
  [💎ruby-3.3i]: https://img.shields.io/badge/Ruby-3.3-CC342D?style=for-the-badge&logo=ruby&logoColor=white
754
761
  [💎ruby-3.4i]: https://img.shields.io/badge/Ruby-3.4-CC342D?style=for-the-badge&logo=ruby&logoColor=white
755
- [💎ruby-4.0i]: https://img.shields.io/badge/Ruby-4.0-CC342D?style=for-the-badge&logo=ruby&logoColor=white
756
762
  [💎ruby-c-i]: https://img.shields.io/badge/Ruby-current-CC342D?style=for-the-badge&logo=ruby&logoColor=green
757
763
  [💎ruby-headi]: https://img.shields.io/badge/Ruby-HEAD-CC342D?style=for-the-badge&logo=ruby&logoColor=blue
758
764
  [💎truby-23.1i]: https://img.shields.io/badge/Truffle_Ruby-23.1-34BCB1?style=for-the-badge&logo=ruby&logoColor=pink
759
765
  [💎truby-24.2i]: https://img.shields.io/badge/Truffle_Ruby-24.2-34BCB1?style=for-the-badge&logo=ruby&logoColor=pink
760
766
  [💎truby-25.0i]: https://img.shields.io/badge/Truffle_Ruby-25.0-34BCB1?style=for-the-badge&logo=ruby&logoColor=pink
767
+ [💎truby-33.0i]: https://img.shields.io/badge/Truffle_Ruby-33.0-34BCB1?style=for-the-badge&logo=ruby&logoColor=pink
761
768
  [💎truby-c-i]: https://img.shields.io/badge/Truffle_Ruby-current-34BCB1?style=for-the-badge&logo=ruby&logoColor=green
769
+ [💎truby-headi]: https://img.shields.io/badge/Truffle_Ruby-HEAD-34BCB1?style=for-the-badge&logo=ruby&logoColor=blue
762
770
  [💎jruby-9.4i]: https://img.shields.io/badge/JRuby-9.4-FBE742?style=for-the-badge&logo=ruby&logoColor=red
771
+ [💎jruby-10.0i]: https://img.shields.io/badge/JRuby-10.0-FBE742?style=for-the-badge&logo=ruby&logoColor=red
763
772
  [💎jruby-c-i]: https://img.shields.io/badge/JRuby-current-FBE742?style=for-the-badge&logo=ruby&logoColor=green
764
773
  [💎jruby-headi]: https://img.shields.io/badge/JRuby-HEAD-FBE742?style=for-the-badge&logo=ruby&logoColor=blue
765
774
  [🤝gh-issues]: https://github.com/galtzo-floss/debug_logging/issues
@@ -788,7 +797,7 @@ Thanks for RTFM. ☺️
788
797
  [📌gitmoji]: https://gitmoji.dev
789
798
  [📌gitmoji-img]: https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
790
799
  [🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
791
- [🧮kloc-img]: https://img.shields.io/badge/KLOC-0.735-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
800
+ [🧮kloc-img]: https://img.shields.io/badge/KLOC-0.745-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
792
801
  [🔐security]: https://github.com/galtzo-floss/debug_logging/blob/main/SECURITY.md
793
802
  [🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
794
803
  [📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
@@ -796,7 +805,7 @@ Thanks for RTFM. ☺️
796
805
  [📄license-ref]: MIT.md
797
806
  [📄license-img]: https://img.shields.io/badge/License-MIT-259D6C.svg
798
807
  [📄license-compat]: https://www.apache.org/legal/resolved.html#category-a
799
- [📄license-compat-img]: https://img.shields.io/badge/Apache_Compatible:_Category_A-✓-259D6C.svg?style=flat&logo=Apache
808
+ [📄license-compat-img]: https://img.shields.io/badge/Apache_Compatible:_Category_A-%E2%9C%93-259D6C.svg?style=flat&logo=Apache
800
809
 
801
810
  [📄ilo-declaration]: https://www.ilo.org/declaration/lang--en/index.htm
802
811
  [📄ilo-declaration-img]: https://img.shields.io/badge/ILO_Fundamental_Principles-✓-259D6C.svg?style=flat
@@ -816,7 +825,7 @@ Thanks for RTFM. ☺️
816
825
  | Package | debug_logging |
817
826
  | Description | 🪲 Unobtrusive debug logging for Ruby. NO LITTERING.<br>Automatically log selected methods and their arguments as they are called at runtime! |
818
827
  | Homepage | https://github.com/galtzo-floss/debug_logging |
819
- | Source | https://github.com/galtzo-floss/debug_logging/tree/v4.0.3 |
828
+ | Source | https://github.com/galtzo-floss/debug_logging |
820
829
  | License | `MIT` |
821
- | Funding | https://github.com/sponsors/pboling, https://issuehunt.io/u/pboling, https://ko-fi.com/pboling, https://liberapay.com/pboling/donate, https://opencollective.com/pboling, https://patreon.com/galtzo, https://polar.sh/pboling, https://thanks.dev/u/gh/pboling, https://tidelift.com/funding/github/rubygems/debug_logging, https://www.buymeacoffee.com/pboling |
830
+ | Funding | https://github.com/sponsors/pboling, https://ko-fi.com/pboling, https://liberapay.com/pboling/donate, https://opencollective.com/galtzo-floss, https://thanks.dev/u/gh/pboling, https://tidelift.com/funding/github/rubygems/debug_logging, https://www.buymeacoffee.com/pboling |
822
831
  <!-- kettle-jem:metadata:end -->
data/SECURITY.md CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  | Version | Supported |
6
6
  |----------|-----------|
7
- | 1.latest | ✅ |
7
+ | 4.0.latest | ✅ |
8
8
 
9
9
  ## Security contact information
10
10
 
@@ -13,7 +13,7 @@ module DebugLogging
13
13
 
14
14
  if config_proxy.debug_add_invocation_id
15
15
  time = start_at ? Util.debug_time(start_at) : Time.now
16
- unique_id = (time.to_f.to_s % "%#-21a")[4..-4]
16
+ unique_id = time.to_f.to_s[4..-4]
17
17
  invocation = " ~#{args.object_id}|#{kwargs.object_id}@#{unique_id}~"
18
18
  case config_proxy.debug_add_invocation_id
19
19
  when true
@@ -84,7 +84,7 @@ module DebugLogging
84
84
  proc_name: "args_to_s_proc",
85
85
  proc: config_proxy.debug_args_to_s_proc,
86
86
  args: other_args,
87
- max_length: config_proxy.debug_args_max_length,
87
+ max_length: config_proxy.debug_args_max_length
88
88
  )
89
89
  printed
90
90
  else
@@ -102,7 +102,7 @@ module DebugLogging
102
102
  proc_name: "last_hash_to_s_proc",
103
103
  proc: config_proxy.debug_last_hash_to_s_proc,
104
104
  args: arg,
105
- max_length: config_proxy.debug_last_hash_max_length,
105
+ max_length: config_proxy.debug_last_hash_max_length
106
106
  )
107
107
  printed += config_proxy.debug_ellipsis if add_last_hash_ellipsis
108
108
  arr << printed
@@ -118,7 +118,7 @@ module DebugLogging
118
118
  proc_name: "args_to_s_proc",
119
119
  proc: config_proxy.debug_args_to_s_proc,
120
120
  args: other_args,
121
- max_length: config_proxy.debug_args_max_length,
121
+ max_length: config_proxy.debug_args_max_length
122
122
  )
123
123
  printed
124
124
  else
@@ -132,7 +132,7 @@ module DebugLogging
132
132
  proc_name: "last_hash_to_s_proc",
133
133
  proc: config_proxy.debug_last_hash_to_s_proc,
134
134
  args: args[-1],
135
- max_length: config_proxy.debug_last_hash_max_length,
135
+ max_length: config_proxy.debug_last_hash_max_length
136
136
  )
137
137
  printed_args += ", #{printed}"
138
138
  printed_args += config_proxy.debug_ellipsis if add_last_hash_ellipsis
@@ -142,7 +142,7 @@ module DebugLogging
142
142
  proc_name: "last_hash_to_s_proc",
143
143
  proc: config_proxy.debug_last_hash_to_s_proc,
144
144
  args: args[0],
145
- max_length: config_proxy.debug_last_hash_max_length,
145
+ max_length: config_proxy.debug_last_hash_max_length
146
146
  )
147
147
  printed_args += printed
148
148
  printed_args += config_proxy.debug_ellipsis if add_last_hash_ellipsis
@@ -153,7 +153,7 @@ module DebugLogging
153
153
  proc_name: "args_to_s_proc",
154
154
  proc: config_proxy.debug_args_to_s_proc,
155
155
  args: args,
156
- max_length: config_proxy.debug_args_max_length,
156
+ max_length: config_proxy.debug_args_max_length
157
157
  )
158
158
  printed
159
159
  elsif args.length == 1 && args[0].is_a?(Hash)
@@ -179,7 +179,7 @@ module DebugLogging
179
179
  add_ellipsis = x.length > max_length
180
180
  end[0..max_length]
181
181
  [printed, add_ellipsis]
182
- rescue StandardError => e
182
+ rescue => e
183
183
  ["#{e.class}: #{e.message}\nPlease check that your #{proc_name} is able to handle #{args}", false]
184
184
  end
185
185
  end
@@ -196,7 +196,7 @@ module DebugLogging
196
196
  proc_name: "add_payload",
197
197
  proc: config_proxy.debug_add_payload,
198
198
  args: payload,
199
- max_length: config_proxy.debug_payload_max_length,
199
+ max_length: config_proxy.debug_payload_max_length
200
200
  )
201
201
  printed_payload += printed
202
202
  printed_payload += config_proxy.debug_ellipsis if add_payload_ellipsis
@@ -10,16 +10,18 @@ module DebugLogging
10
10
  methods_to_log, payload, config_opts = DebugLogging::Util.extract_payload_and_config(
11
11
  method_names: methods_to_log,
12
12
  payload: nil,
13
- config: nil,
13
+ config: nil
14
14
  )
15
15
  Array(methods_to_log).each do |decorated_method|
16
16
  decorated_method, method_payload, method_config_opts = DebugLogging::Util.extract_payload_and_config(
17
17
  method_names: decorated_method,
18
18
  payload: payload,
19
- config: config_opts,
19
+ config: config_opts
20
20
  )
21
21
  original_method = method(decorated_method)
22
- (class << self; self; end).class_eval do
22
+ singleton_class = class << self; self; end
23
+ singleton_class.send(:remove_method, decorated_method) if original_method.owner.equal?(singleton_class)
24
+ singleton_class.class_eval do
23
25
  define_method(decorated_method) do |*args, **kwargs, &block|
24
26
  lamb_dart = LambDart::Log.new(
25
27
  klass: self,
@@ -27,9 +29,9 @@ module DebugLogging
27
29
  method_payload:,
28
30
  args:,
29
31
  kwargs:,
30
- decorated_method:,
32
+ decorated_method:
31
33
  )
32
- real_mccoy = ->() {
34
+ real_mccoy = -> {
33
35
  original_method.call(*args, **kwargs, &block)
34
36
  }
35
37
  _dl_ld_enter_log(lamb_dart) do
@@ -10,16 +10,18 @@ module DebugLogging
10
10
  methods_to_notify, payload, config_opts = DebugLogging::Util.extract_payload_and_config(
11
11
  method_names: methods_to_notify,
12
12
  payload: nil,
13
- config: nil,
13
+ config: nil
14
14
  )
15
15
  Array(methods_to_notify).each do |decorated_method|
16
16
  decorated_method, method_payload, method_config_opts = DebugLogging::Util.extract_payload_and_config(
17
17
  method_names: decorated_method,
18
18
  payload: payload,
19
- config: config_opts,
19
+ config: config_opts
20
20
  )
21
21
  original_method = method(decorated_method)
22
- (class << self; self; end).class_eval do
22
+ singleton_class = class << self; self; end
23
+ singleton_class.send(:remove_method, decorated_method) if original_method.owner.equal?(singleton_class)
24
+ singleton_class.class_eval do
23
25
  define_method(decorated_method) do |*args, **kwargs, &block|
24
26
  lamb_dart = LambDart::Note.new(
25
27
  klass: self,
@@ -27,7 +29,7 @@ module DebugLogging
27
29
  method_payload:,
28
30
  args:,
29
31
  kwargs:,
30
- decorated_method:,
32
+ decorated_method:
31
33
  )
32
34
  _dl_ld_notify(lamb_dart) do
33
35
  _dl_ld_error_handle(lamb_dart) do
@@ -19,7 +19,7 @@ module DebugLogging
19
19
  light_magenta: 95,
20
20
  light_cyan: 96,
21
21
  light_white: 97,
22
- default: 39,
22
+ default: 39
23
23
  }.freeze
24
24
  BACKGROUND_CODES = FOREGROUND_CODES.transform_values { |code| code + 10 }.merge(default: 49).freeze
25
25
  FORMAT_CODES = {
@@ -31,7 +31,7 @@ module DebugLogging
31
31
  conceal: 8,
32
32
  hide: 8,
33
33
  strikethrough: 9,
34
- double_underline: 21,
34
+ double_underline: 21
35
35
  }.freeze
36
36
 
37
37
  class << self
@@ -59,7 +59,7 @@ module DebugLogging
59
59
  @raw,
60
60
  foreground: foreground ? normalized_color(foreground) : @foreground,
61
61
  background: background ? normalized_color(background) : @background,
62
- formats: merge_formats(formats),
62
+ formats: merge_formats(formats)
63
63
  )
64
64
  end
65
65
 
@@ -43,7 +43,7 @@ module DebugLogging
43
43
  # Methods names that do not match the following regex can't be part of an ivar name
44
44
  # /[a-zA-Z_][a-zA-Z0-9_]*/
45
45
  # Thus we have to use a different form of the method name that is compatible with ivar name conventions
46
- "@debug_logging_config_#{type}_#{Digest::MD5.hexdigest(decorated_method.to_s)}".to_sym
46
+ :"@debug_logging_config_#{type}_#{Digest::MD5.hexdigest(decorated_method.to_s)}"
47
47
  end
48
48
  end
49
49
 
@@ -21,13 +21,13 @@ module DebugLogging
21
21
  payload_max_length: 1_000,
22
22
  error_handler_proc: nil,
23
23
  time_formatter_proc: DEFAULT_TIME_FORMATTER,
24
- add_timestamp: false,
24
+ add_timestamp: false
25
25
  }.freeze
26
26
  CONFIG_ATTRS = CONFIG_ATTRS_DEFAULTS.keys
27
27
  CONFIG_READERS_DEFAULTS = {
28
28
  instance_benchmarks: false,
29
29
  class_benchmarks: false,
30
- active_support_notifications: false,
30
+ active_support_notifications: false
31
31
  }.freeze
32
32
  CONFIG_READERS = CONFIG_READERS_DEFAULTS.keys
33
33
  CONFIG_KEYS = CONFIG_ATTRS + CONFIG_READERS
@@ -17,6 +17,7 @@ module DebugLogging
17
17
  def debug_time_box(time, *names, &blk)
18
18
  names.each do |name|
19
19
  meth = instance_method(name)
20
+ remove_method(name) if meth.owner.equal?(self)
20
21
  define_method(name) do |*args, &block|
21
22
  Timeout.timeout(time) do
22
23
  meth.bind_call(self, *args, &block)
@@ -38,9 +39,10 @@ module DebugLogging
38
39
  end
39
40
  names.each do |name|
40
41
  meth = instance_method(name)
42
+ remove_method(name) if meth.owner.equal?(self)
41
43
  define_method(name) do |*args, &block|
42
44
  meth.bind_call(self, *args, &block)
43
- rescue StandardError => e
45
+ rescue => e
44
46
  instance_exec(e, &blk)
45
47
  end
46
48
  end
@@ -54,6 +56,7 @@ module DebugLogging
54
56
  end
55
57
  names.each do |name|
56
58
  meth = instance_method(name)
59
+ remove_method(name) if meth.owner.equal?(self)
57
60
  define_method(name) do |*args, &block|
58
61
  instance_exec(name, *args, block, &blk)
59
62
  meth.bind_call(self, *args, &block)
@@ -69,6 +72,7 @@ module DebugLogging
69
72
  end
70
73
  names.each do |name|
71
74
  meth = instance_method(name)
75
+ remove_method(name) if meth.owner.equal?(self)
72
76
  define_method(name) do |*args, &block|
73
77
  result = meth.bind_call(self, *args, &block)
74
78
  instance_exec(result, &blk)
@@ -32,14 +32,14 @@ module DebugLogging
32
32
  methods_to_log, payload, config_opts = DebugLogging::Util.extract_payload_and_config(
33
33
  method_names: methods_to_log,
34
34
  payload: nil,
35
- config: nil,
35
+ config: nil
36
36
  )
37
37
  instance_method_modules =
38
38
  Array(methods_to_log).map do |decorated_method|
39
39
  DebugLogging::InstanceLoggerModulizer.to_mod(
40
40
  methods_to_log: Array(decorated_method),
41
41
  payload: payload,
42
- config: config_opts,
42
+ config: config_opts
43
43
  )
44
44
  end
45
45
  wrapped_in_logs = Module.new do
@@ -6,13 +6,13 @@ module DebugLogging
6
6
  methods_to_log, payload, config_opts = DebugLogging::Util.extract_payload_and_config(
7
7
  method_names: Array(methods_to_log),
8
8
  payload:,
9
- config:,
9
+ config:
10
10
  )
11
11
  Array(methods_to_log).each do |decorated_method|
12
12
  decorated_method, method_payload, method_config_opts = DebugLogging::Util.extract_payload_and_config(
13
13
  method_names: decorated_method,
14
14
  payload:,
15
- config: config_opts,
15
+ config: config_opts
16
16
  )
17
17
  define_method(decorated_method) do |*args, **kwargs, &block|
18
18
  lamb_dart = LambDart::Log.new(
@@ -21,9 +21,9 @@ module DebugLogging
21
21
  method_payload:,
22
22
  args:,
23
23
  kwargs:,
24
- decorated_method:,
24
+ decorated_method:
25
25
  )
26
- real_mccoy = ->() {
26
+ real_mccoy = -> {
27
27
  super(*args, **kwargs, &block)
28
28
  }
29
29
  _dl_ld_enter_log(lamb_dart) do
@@ -10,12 +10,12 @@ module DebugLogging
10
10
  method_names, payload, config_opts = DebugLogging::Util.extract_payload_and_config(
11
11
  method_names: methods_to_log,
12
12
  payload: nil,
13
- config: nil,
13
+ config: nil
14
14
  )
15
15
  instance_method_notifier = DebugLogging::InstanceNotifierModulizer.to_mod(
16
16
  methods_to_notify: Array(method_names),
17
17
  payload: payload,
18
- config: config_opts,
18
+ config: config_opts
19
19
  )
20
20
 
21
21
  wrapped_in_notifier = Module.new do
@@ -6,13 +6,13 @@ module DebugLogging
6
6
  methods_to_notify, payload, config_opts = DebugLogging::Util.extract_payload_and_config(
7
7
  method_names: Array(methods_to_notify),
8
8
  payload:,
9
- config:,
9
+ config:
10
10
  )
11
11
  Array(methods_to_notify).each do |decorated_method|
12
12
  decorated_method, method_payload, method_config_opts = DebugLogging::Util.extract_payload_and_config(
13
13
  method_names: decorated_method,
14
14
  payload:,
15
- config: config_opts,
15
+ config: config_opts
16
16
  )
17
17
  define_method(decorated_method) do |*args, **kwargs, &block|
18
18
  lamb_dart = LambDart::Note.new(
@@ -21,7 +21,7 @@ module DebugLogging
21
21
  method_payload:,
22
22
  args:,
23
23
  kwargs:,
24
- decorated_method:,
24
+ decorated_method:
25
25
  )
26
26
  _dl_ld_notify(lamb_dart) do
27
27
  _dl_ld_error_handle(lamb_dart) do
@@ -17,7 +17,7 @@ module DebugLogging
17
17
 
18
18
  def_delegator :@config_proxy, :error_handler_proc
19
19
 
20
- def initialize(instance: nil, klass: nil, method_config_opts:, method_payload:, args:, kwargs:, decorated_method:)
20
+ def initialize(method_config_opts:, method_payload:, args:, kwargs:, decorated_method:, instance: nil, klass: nil)
21
21
  @instance = instance || klass
22
22
  @klass = klass || instance.class
23
23
  @method_payload = method_payload
@@ -30,7 +30,7 @@ module DebugLogging
30
30
  scope: self.klass,
31
31
  config_opts: method_config_opts,
32
32
  method_name: self.decorated_method,
33
- proxy_ref:,
33
+ proxy_ref:
34
34
  ) do |proxy|
35
35
  yield proxy if block_given?
36
36
  end
@@ -12,7 +12,7 @@ module DebugLogging
12
12
  klass: klass.to_s,
13
13
  separator: is_class ? "::" : "#",
14
14
  decorated_method:,
15
- config_proxy:,
15
+ config_proxy:
16
16
  )
17
17
  @invocation_id = klass.debug_invocation_id_to_s(args:, config_proxy:)
18
18
  end
@@ -30,7 +30,7 @@ module DebugLogging
30
30
  end
31
31
 
32
32
  def bench_scope
33
- "debug_#{scope_term}_benchmarks".to_sym
33
+ :"debug_#{scope_term}_benchmarks"
34
34
  end
35
35
 
36
36
  def bench?
@@ -14,7 +14,7 @@ module DebugLogging
14
14
 
15
15
  def subscribe(proxy)
16
16
  ActiveSupport::Notifications.subscribe(
17
- DebugLogging::ArgumentPrinter.debug_event_name_to_s(decorated_method: decorated_method),
17
+ DebugLogging::ArgumentPrinter.debug_event_name_to_s(decorated_method: decorated_method)
18
18
  ) do |*subscribe_args|
19
19
  proxy.log do
20
20
  DebugLogging::LogSubscriber.log_event(ActiveSupport::Notifications::Event.new(*subscribe_args))
@@ -5,7 +5,7 @@ module DebugLogging
5
5
  if ld.config_proxy.error_handler_proc
6
6
  begin
7
7
  yield
8
- rescue StandardError => e
8
+ rescue => e
9
9
  if ld.error_handler_proc
10
10
  ld.error_handler_proc.call(
11
11
  ld.config_proxy,
@@ -13,7 +13,7 @@ module DebugLogging
13
13
  self,
14
14
  ld.decorated_method,
15
15
  *ld.args,
16
- **ld.kwargs,
16
+ **ld.kwargs
17
17
  )
18
18
  else
19
19
  raise e
@@ -7,7 +7,7 @@ module DebugLogging
7
7
  DebugLogging::ArgumentPrinter.debug_event_name_to_s(decorated_method: ld.decorated_method),
8
8
  debug_args: ld.debug_args,
9
9
  config_proxy: ld.config_proxy,
10
- **paydirt,
10
+ **paydirt
11
11
  ) do
12
12
  yield
13
13
  end
@@ -1,4 +1,6 @@
1
- require "active_support"
1
+ require "active_support/notifications"
2
+ require "active_support/isolated_execution_state"
3
+ require "active_support/core_ext/hash/except"
2
4
  require "active_support/log_subscriber"
3
5
 
4
6
  module DebugLogging
@@ -25,19 +27,19 @@ module DebugLogging
25
27
  end
26
28
  end
27
29
 
28
- # @param [ActiveSupport::Notifications::Event]
30
+ # @param event [ActiveSupport::Notifications::Event]
29
31
  # @return [Hash]
30
32
  def event_to_format_options(event)
31
33
  args = event.payload[:debug_args]
32
34
  config_proxy = event.payload[:config_proxy]
33
- payload = event.payload.reject { |k, _| EXCLUDE_FROM_PAYLOAD.include?(k) }
35
+ payload = event.payload.except(*EXCLUDE_FROM_PAYLOAD)
34
36
  {
35
37
  name: event.name,
36
38
  duration: Rational(event.duration, 1000).to_f,
37
39
  time: debug_event_time_to_s(event.time),
38
40
  end: debug_event_time_to_s(event.end),
39
41
  args: debug_signature_to_s(args: args, config_proxy: config_proxy),
40
- payload: debug_payload_to_s(payload: payload, config_proxy: config_proxy),
42
+ payload: debug_payload_to_s(payload: payload, config_proxy: config_proxy)
41
43
  }
42
44
  end
43
45
  end
@@ -75,8 +75,8 @@ module DebugLogging
75
75
  :instance_variable_get,
76
76
  DebugLogging::Configuration.config_pointer(
77
77
  proxy_ref,
78
- method_name,
79
- ),
78
+ method_name
79
+ )
80
80
  )
81
81
  # short circuit on subsequent calls is required
82
82
  # so we only register notifications once
@@ -92,7 +92,7 @@ module DebugLogging
92
92
  scope.send(
93
93
  :instance_variable_set,
94
94
  DebugLogging::Configuration.config_pointer(proxy_ref, method_name),
95
- proxy,
95
+ proxy
96
96
  )
97
97
  yield proxy if block
98
98
  proxy
@@ -2,7 +2,7 @@
2
2
 
3
3
  module DebugLogging
4
4
  module Version
5
- VERSION = "4.0.3"
5
+ VERSION = "4.0.5"
6
6
  end
7
7
  VERSION = Version::VERSION # Traditional Constant Location
8
8
  end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,12 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: debug_logging
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.3
4
+ version: 4.0.5
5
5
  platform: ruby
6
6
  authors:
7
- - Peter Boling
7
+ - Peter H. Boling
8
8
  - John Gillson
9
- - guckin
9
+ - Aboling0
10
10
  bindir: exe
11
11
  cert_chain:
12
12
  - |
@@ -48,7 +48,7 @@ dependencies:
48
48
  version: '1.1'
49
49
  - - ">="
50
50
  - !ruby/object:Gem::Version
51
- version: 1.1.9
51
+ version: 1.1.13
52
52
  type: :runtime
53
53
  prerelease: false
54
54
  version_requirements: !ruby/object:Gem::Requirement
@@ -58,27 +58,27 @@ dependencies:
58
58
  version: '1.1'
59
59
  - - ">="
60
60
  - !ruby/object:Gem::Version
61
- version: 1.1.9
61
+ version: 1.1.13
62
62
  - !ruby/object:Gem::Dependency
63
63
  name: kettle-dev
64
64
  requirement: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '2.0'
68
+ version: '2.3'
69
69
  - - ">="
70
70
  - !ruby/object:Gem::Version
71
- version: 2.0.5
71
+ version: 2.3.0
72
72
  type: :development
73
73
  prerelease: false
74
74
  version_requirements: !ruby/object:Gem::Requirement
75
75
  requirements:
76
76
  - - "~>"
77
77
  - !ruby/object:Gem::Version
78
- version: '2.0'
78
+ version: '2.3'
79
79
  - - ">="
80
80
  - !ruby/object:Gem::Version
81
- version: 2.0.5
81
+ version: 2.3.0
82
82
  - !ruby/object:Gem::Dependency
83
83
  name: bundler-audit
84
84
  requirement: !ruby/object:Gem::Requirement
@@ -133,20 +133,20 @@ dependencies:
133
133
  requirements:
134
134
  - - "~>"
135
135
  - !ruby/object:Gem::Version
136
- version: '3.0'
136
+ version: '3.1'
137
137
  - - ">="
138
138
  - !ruby/object:Gem::Version
139
- version: 3.0.6
139
+ version: 3.1.4
140
140
  type: :development
141
141
  prerelease: false
142
142
  version_requirements: !ruby/object:Gem::Requirement
143
143
  requirements:
144
144
  - - "~>"
145
145
  - !ruby/object:Gem::Version
146
- version: '3.0'
146
+ version: '3.1'
147
147
  - - ">="
148
148
  - !ruby/object:Gem::Version
149
- version: 3.0.6
149
+ version: 3.1.4
150
150
  - !ruby/object:Gem::Dependency
151
151
  name: kettle-test
152
152
  requirement: !ruby/object:Gem::Requirement
@@ -156,7 +156,7 @@ dependencies:
156
156
  version: '2.0'
157
157
  - - ">="
158
158
  - !ruby/object:Gem::Version
159
- version: 2.0.1
159
+ version: 2.0.9
160
160
  type: :development
161
161
  prerelease: false
162
162
  version_requirements: !ruby/object:Gem::Requirement
@@ -166,7 +166,27 @@ dependencies:
166
166
  version: '2.0'
167
167
  - - ">="
168
168
  - !ruby/object:Gem::Version
169
- version: 2.0.1
169
+ version: 2.0.9
170
+ - !ruby/object:Gem::Dependency
171
+ name: turbo_tests2
172
+ requirement: !ruby/object:Gem::Requirement
173
+ requirements:
174
+ - - "~>"
175
+ - !ruby/object:Gem::Version
176
+ version: '3.1'
177
+ - - ">="
178
+ - !ruby/object:Gem::Version
179
+ version: 3.1.6
180
+ type: :development
181
+ prerelease: false
182
+ version_requirements: !ruby/object:Gem::Requirement
183
+ requirements:
184
+ - - "~>"
185
+ - !ruby/object:Gem::Version
186
+ version: '3.1'
187
+ - - ">="
188
+ - !ruby/object:Gem::Version
189
+ version: 3.1.6
170
190
  - !ruby/object:Gem::Dependency
171
191
  name: ruby-progressbar
172
192
  requirement: !ruby/object:Gem::Requirement
@@ -190,7 +210,7 @@ dependencies:
190
210
  version: '1.0'
191
211
  - - ">="
192
212
  - !ruby/object:Gem::Version
193
- version: 1.0.3
213
+ version: 1.0.4
194
214
  type: :development
195
215
  prerelease: false
196
216
  version_requirements: !ruby/object:Gem::Requirement
@@ -200,7 +220,7 @@ dependencies:
200
220
  version: '1.0'
201
221
  - - ">="
202
222
  - !ruby/object:Gem::Version
203
- version: 1.0.3
223
+ version: 1.0.4
204
224
  - !ruby/object:Gem::Dependency
205
225
  name: gitmoji-regex
206
226
  requirement: !ruby/object:Gem::Requirement
@@ -210,7 +230,7 @@ dependencies:
210
230
  version: '2.0'
211
231
  - - ">="
212
232
  - !ruby/object:Gem::Version
213
- version: 2.0.0
233
+ version: 2.0.4
214
234
  type: :development
215
235
  prerelease: false
216
236
  version_requirements: !ruby/object:Gem::Requirement
@@ -220,7 +240,7 @@ dependencies:
220
240
  version: '2.0'
221
241
  - - ">="
222
242
  - !ruby/object:Gem::Version
223
- version: 2.0.0
243
+ version: 2.0.4
224
244
  - !ruby/object:Gem::Dependency
225
245
  name: activesupport
226
246
  requirement: !ruby/object:Gem::Requirement
@@ -238,7 +258,7 @@ dependencies:
238
258
  description: "\U0001FAB2 Unobtrusive debug logging for Ruby. NO LITTERING.\nAutomatically
239
259
  log selected methods and their arguments as they are called at runtime!\n"
240
260
  email:
241
- - peter.boling@gmail.com
261
+ - floss@galtzo.com
242
262
  executables: []
243
263
  extensions: []
244
264
  extra_rdoc_files:
@@ -258,6 +278,7 @@ files:
258
278
  - CONTRIBUTING.md
259
279
  - FUNDING.md
260
280
  - LICENSE.md
281
+ - MIT.md
261
282
  - README.md
262
283
  - RUBOCOP.md
263
284
  - SECURITY.md
@@ -297,10 +318,10 @@ licenses:
297
318
  - MIT
298
319
  metadata:
299
320
  homepage_uri: https://debug-logging.galtzo.com/
300
- source_code_uri: https://github.com/galtzo-floss/debug_logging/tree/v4.0.3
301
- changelog_uri: https://github.com/galtzo-floss/debug_logging/blob/v4.0.3/CHANGELOG.md
321
+ source_code_uri: https://github.com/galtzo-floss/debug_logging/tree/v4.0.5
322
+ changelog_uri: https://github.com/galtzo-floss/debug_logging/blob/v4.0.5/CHANGELOG.md
302
323
  bug_tracker_uri: https://github.com/galtzo-floss/debug_logging/issues
303
- documentation_uri: https://www.rubydoc.info/gems/debug_logging/4.0.3
324
+ documentation_uri: https://www.rubydoc.info/gems/debug_logging/4.0.5
304
325
  funding_uri: https://github.com/sponsors/pboling
305
326
  wiki_uri: https://github.com/galtzo-floss/debug_logging/wiki
306
327
  news_uri: https://www.railsbling.com/tags/debug_logging
metadata.gz.sig CHANGED
Binary file