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 +4 -4
- checksums.yaml.gz.sig +0 -0
- data/CHANGELOG.md +50 -3
- data/CONTRIBUTING.md +21 -2
- data/FUNDING.md +12 -16
- data/LICENSE.md +3 -3
- data/MIT.md +21 -0
- data/README.md +45 -36
- data/SECURITY.md +1 -1
- data/lib/debug_logging/argument_printer.rb +9 -9
- data/lib/debug_logging/class_logger.rb +7 -5
- data/lib/debug_logging/class_notifier.rb +6 -4
- data/lib/debug_logging/colorized_string.rb +3 -3
- data/lib/debug_logging/configuration.rb +1 -1
- data/lib/debug_logging/constants.rb +2 -2
- data/lib/debug_logging/hooks.rb +5 -1
- data/lib/debug_logging/instance_logger.rb +2 -2
- data/lib/debug_logging/instance_logger_modulizer.rb +4 -4
- data/lib/debug_logging/instance_notifier.rb +2 -2
- data/lib/debug_logging/instance_notifier_modulizer.rb +3 -3
- data/lib/debug_logging/lamb_dart/base.rb +2 -2
- data/lib/debug_logging/lamb_dart/log.rb +2 -2
- data/lib/debug_logging/lamb_dart/note.rb +1 -1
- data/lib/debug_logging/lamb_darts/error_handle.rb +2 -2
- data/lib/debug_logging/lamb_darts/notify.rb +1 -1
- data/lib/debug_logging/log_subscriber.rb +6 -4
- data/lib/debug_logging/util.rb +3 -3
- data/lib/debug_logging/version.rb +1 -1
- data.tar.gz.sig +0 -0
- metadata +44 -23
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: c07adf4ce090f66cddfa9c79c7e365910e512a1594ce42b01dc9b08937cba496
|
|
4
|
+
data.tar.gz: 25872a14875d155d6d0e5ada1e798a5e0dc4e6fd54663225243db2d6c2a34f8c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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.
|
|
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:
|
|
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
|
|
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/
|
|
14
|
-
[🖇osc-backers-i]: https://opencollective.com/
|
|
15
|
-
[🖇osc-sponsors]: https://opencollective.com/
|
|
16
|
-
[🖇osc-sponsors-i]: https://opencollective.com/
|
|
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/
|
|
63
|
-
[🖇osc-sponsors-img]: https://img.shields.io/opencollective/sponsors/
|
|
64
|
-
[🖇osc-backers-img]: https://img.shields.io/opencollective/backers/
|
|
65
|
-
[🖇osc-all-bottom-img]: https://img.shields.io/opencollective/all/
|
|
66
|
-
[🖇osc-sponsors-bottom-img]: https://img.shields.io/opencollective/sponsors/
|
|
67
|
-
[🖇osc-backers-bottom-img]: https://img.shields.io/opencollective/backers/
|
|
68
|
-
[🖇osc]: https://opencollective.com/
|
|
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
|
-
|
|
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] [![
|
|
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][
|
|
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
|
|
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
|
|
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
|
-
|
|
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 | [](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 | [](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 | [](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 | [](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 | [](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 | [](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 | [](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 | [](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
|
|
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
|
|
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/
|
|
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
|
|
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.
|
|
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
|
|
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
|
|
828
|
+
| Source | https://github.com/galtzo-floss/debug_logging |
|
|
820
829
|
| License | `MIT` |
|
|
821
|
-
| Funding | https://github.com/sponsors/pboling, https://
|
|
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
|
@@ -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 =
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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)}"
|
|
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
|
data/lib/debug_logging/hooks.rb
CHANGED
|
@@ -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
|
|
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(
|
|
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"
|
|
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
|
|
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
|
|
@@ -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.
|
|
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
|
data/lib/debug_logging/util.rb
CHANGED
|
@@ -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
|
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.
|
|
4
|
+
version: 4.0.5
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
|
-
- Peter Boling
|
|
7
|
+
- Peter H. Boling
|
|
8
8
|
- John Gillson
|
|
9
|
-
-
|
|
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.
|
|
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.
|
|
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.
|
|
68
|
+
version: '2.3'
|
|
69
69
|
- - ">="
|
|
70
70
|
- !ruby/object:Gem::Version
|
|
71
|
-
version: 2.0
|
|
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.
|
|
78
|
+
version: '2.3'
|
|
79
79
|
- - ">="
|
|
80
80
|
- !ruby/object:Gem::Version
|
|
81
|
-
version: 2.0
|
|
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.
|
|
136
|
+
version: '3.1'
|
|
137
137
|
- - ">="
|
|
138
138
|
- !ruby/object:Gem::Version
|
|
139
|
-
version: 3.
|
|
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.
|
|
146
|
+
version: '3.1'
|
|
147
147
|
- - ">="
|
|
148
148
|
- !ruby/object:Gem::Version
|
|
149
|
-
version: 3.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
-
-
|
|
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.
|
|
301
|
-
changelog_uri: https://github.com/galtzo-floss/debug_logging/blob/v4.0.
|
|
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.
|
|
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
|