debug_logging 4.0.2 → 4.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/README.md CHANGED
@@ -1,124 +1,110 @@
1
- # DebugLogging
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>
2
2
 
3
- <div id="badges">
3
+ # 🪲 DebugLogging
4
4
 
5
- [![CI Build][🚎dl-cwfi]][🚎dl-cwf]
6
- [![Test Coverage][🔑cc-covi]][🔑cc-cov]
7
- [![Maintainability][🔑cc-mnti]][🔑cc-mnt]
8
- [![Depfu][🔑depfui]][🔑depfu]
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]
9
6
 
10
- -----
7
+ `if ci_badges.map(&:color).detect { it != "green"}` ☝️ [let me know][✉️discord-invite], as I may have missed the [discord notification][✉️discord-invite].
11
8
 
12
- [![Liberapay Patrons][⛳liberapay-img]][⛳liberapay]
13
- [![Sponsor Me on Github][🖇sponsor-img]][🖇sponsor]
14
- <span class="badge-buymeacoffee">
15
- <a href="https://ko-fi.com/O5O86SNP4" target='_blank' title="Donate to my FLOSS or refugee efforts at ko-fi.com"><img src="https://img.shields.io/badge/buy%20me%20coffee-donate-yellow.svg" alt="Buy me coffee donation button" /></a>
16
- </span>
17
- <span class="badge-patreon">
18
- <a href="https://patreon.com/galtzo" title="Donate to my FLOSS or refugee efforts using Patreon"><img src="https://img.shields.io/badge/patreon-donate-yellow.svg" alt="Patreon donate button" /></a>
19
- </span>
9
+ ---
20
10
 
21
- </div>
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.
22
12
 
23
- [⛳liberapay-img]: https://img.shields.io/liberapay/patrons/pboling.svg?logo=liberapay
24
- [⛳liberapay]: https://liberapay.com/pboling/donate
25
- [🖇sponsor-img]: https://img.shields.io/badge/Sponsor_Me!-pboling.svg?style=social&logo=github
26
- [🖇sponsor]: https://github.com/sponsors/pboling
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 on Polar][🖇polar-img]][🖇polar] [![Donate at ko-fi.com][🖇kofi-img]][🖇kofi]
27
14
 
15
+ <details>
16
+ <summary>👣 How will this project approach the September 2025 hostile takeover of RubyGems? 🚑️</summary>
28
17
 
29
- Unobtrusive, inheritable-overridable-configurable, drop-in debug logging, instrumented via method decorators.
30
- Don't leave a mess behind when it is time to remove logging!
31
- Supports `ActiveSupport::Notifications` (thanks [@jgillson](https://github.com/jgillson)). Optional ActiveRecord callback-style hooks that you can decorate your methods with. Hooks logic was taken from the [`slippy_method_hooks` gem](https://github.com/guckin/slippy_method_hooks), (thanks [@guckin](https://github.com/guckin)), and prefaced with `debug_` for this implementation. `DebugLogging::Finalize` is lightly modified from [this stackoverflow answer](https://stackoverflow.com/a/34559282).
18
+ I've summarized my thoughts in [this blog post](https://dev.to/galtzo/hostile-takeover-of-rubygems-my-thoughts-5hlo).
32
19
 
33
- ## What do I mean by "unobtrusive"?
20
+ </details>
34
21
 
35
- **Ugly** debug logging is added inside the body of a method, so it runs when a method is called. This can create a mess of your git history, and can even introduce new bugs to your code. Don't `puts` all over your codebase... Instead use this gem.
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>
36
23
 
37
- **Unobtrusive** debug logging stays out of the method, changes no logic, can't break your code, and yet it still runs when your method is called, and tells you everything you wanted to know. It doesn't mess with the git history of the method at all!
24
+ ## 💡 Info you can shake a stick at
38
25
 
39
- | Project | DebugLogging |
40
- |------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
41
- | install | `bundle add debug_logging` |
42
- | compatibility | Ruby >= 3.1 (use version 3.x for Ruby 2.4 - 2.7 compatibility) |
43
- | license | [![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://opensource.org/licenses/MIT) |
44
- | download rank | [![Downloads Today](https://img.shields.io/gem/rd/debug_logging.svg)](https://github.com/pboling/debug_logging) |
45
- | version | [![Version](https://img.shields.io/gem/v/debug_logging.svg)](https://rubygems.org/gems/debug_logging) |
46
- | code triage | [![Open Source Helpers](https://www.codetriage.com/pboling/debug_logging/badges/users.svg)](https://www.codetriage.com/pboling/debug_logging) |
47
- | documentation | [on RDoc.info][documentation] |
48
- | live chat | [![Join the chat at https://gitter.im/pboling/debug_logging](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/pboling/debug_logging?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) |
49
- | expert support | [![Get help on Codementor](https://cdn.codementor.io/badges/get_help_github.svg)](https://www.codementor.io/peterboling?utm_source=github&utm_medium=button&utm_term=peterboling&utm_campaign=github) |
50
- | Spread ~♡ⓛⓞⓥⓔ♡~ | [🌏](https://about.me/peter.boling), [👼](https://angel.co/peter-boling), [![Liberapay Patrons][⛳liberapay-img]][⛳liberapay] [![Follow Me on LinkedIn][🖇linkedin-img]][🖇linkedin] [![Find Me on WellFound:][✌️wellfound-img]][✌️wellfound] [![My Blog][🚎blog-img]][🚎blog] [![Follow Me on Twitter][🐦twitter-img]][🐦twitter] |
26
+ | Tokens to Remember | [![Gem name][⛳️name-img]][⛳️gem-name] [![Gem namespace][⛳️namespace-img]][⛳️gem-namespace] |
27
+ |-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
28
+ | 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]|
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 current Compat][💎truby-c-i]][🚎9-t-wf]|
30
+ | 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]|
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]|
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] |
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] |
34
+ | Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![GitLab Wiki][📜gl-wiki-img]][📜gl-wiki] [![GitHub Wiki][📜gh-wiki-img]][📜gh-wiki] |
35
+ | Compliance | [![License: MIT][📄license-img]][📄license] [![Apache license compatibility: Category A][📄license-compat-img]][📄license-compat] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] |
36
+ | Style | [![Enforced Code Style Linter][💎rlts-img]][💎rlts] [![Keep-A-Changelog 1.0.0][📗keep-changelog-img]][📗keep-changelog] [![Gitmoji Commits][📌gitmoji-img]][📌gitmoji] [![Compatibility appraised by: appraisal2][💎appraisal2-img]][💎appraisal2] |
37
+ | Maintainer 🎖️ | [![Follow Me on LinkedIn][💖🖇linkedin-img]][💖🖇linkedin] [![Follow Me on Ruby.Social][💖🐘ruby-mast-img]][💖🐘ruby-mast] [![Follow Me on Bluesky][💖🦋bluesky-img]][💖🦋bluesky] [![Contact Maintainer][🚂maint-contact-img]][🚂maint-contact] [![My technical writing][💖💁🏼‍♂️devto-img]][💖💁🏼‍♂️devto] |
38
+ | `...` 💖 | [![Find Me on WellFound:][💖✌️wellfound-img]][💖✌️wellfound] [![Find Me on CrunchBase][💖💲crunchbase-img]][💖💲crunchbase] [![My LinkTree][💖🌳linktree-img]][💖🌳linktree] [![More About Me][💖💁🏼‍♂️aboutme-img]][💖💁🏼‍♂️aboutme] [🧊][💖🧊berg] [🐙][💖🐙hub] [🛖][💖🛖hut] [🧪][💖🧪lab] |
51
39
 
52
- [🚎dl-cwf]: https://github.com/pboling/debug_logging/actions/workflows/current.yml
53
- [🚎dl-cwfi]: https://github.com/pboling/debug_logging/actions/workflows/current.yml/badge.svg
40
+ ### Compatibility
54
41
 
55
- [⛳liberapay-img]: https://img.shields.io/liberapay/patrons/pboling.svg?logo=liberapay
56
- [⛳liberapay]: https://liberapay.com/pboling/donate
57
- [🖇linkedin]: http://www.linkedin.com/in/peterboling
58
- [🖇linkedin-img]: https://img.shields.io/badge/PeterBoling-blue?style=plastic&logo=linkedin
59
- [✌️wellfound]: https://angel.co/u/peter-boling
60
- [✌️wellfound-img]: https://img.shields.io/badge/peter--boling-orange?style=plastic&logo=angellist
61
- [🐦twitter]: http://twitter.com/intent/user?screen_name=galtzo
62
- [🐦twitter-img]: https://img.shields.io/twitter/follow/galtzo.svg?style=social&label=Follow%20@galtzo
63
- [🚎blog]: http://www.railsbling.com/tags/debug_logging/
64
- [🚎blog-img]: https://img.shields.io/badge/blog-railsbling-brightgreen.svg?style=flat
65
- [my🧪lab]: https://gitlab.com/pboling
66
- [my🧊berg]: https://codeberg.org/pboling
67
- [my🛖hut]: https://sr.ht/~galtzo/
68
-
69
- ### Gives you (all are optional):
70
-
71
- * *benchmarking*
72
- * *colorization by class/method*
73
- * *robust argument printer with customizable ellipsis*
74
- * *unique invocation identifiers*
75
- * *simple single line global config, or per class/instance/method config*
76
- * *separate loggers, if needed*
77
- * *log method calls, also when exit scope*
78
- * *Prevents heavy computation of strings with `logger.debug { 'log me' }` block format, since v1.0.12*
79
- * *ActiveSupport::Notifications integration for instrumenting/logging events on class and instance methods, since v3.1.3*
80
- * *Optional instance, and class-instance, variable logging, since v3.1.3*
81
- * *ActiveRecord style callback-hooks (optional: `require 'debug_logging/hooks'` and `include DebugLogging::Hooks`), since v3.1.3*
82
- * *All configuration is inheritable to, and overridable by, child classes, since v3.1.3*
83
- * *[Class finalization hook](https://stackoverflow.com/a/34559282) (optional: `require 'debug_logging/finalize'` and `extend DebugLogging::Finalize`), since v3.1.3*
84
- * *Error handling hooks you can use to log problems when they happen, since v3.1.7*
85
- * *Fixed: Works with benchmarking options since v4.0.2*
86
- * **so many free ponies** 🎠🐴🎠🐴🎠🐴
87
-
88
- ## Next Level Magic
89
-
90
- Herein you will find:
91
-
92
- * ~~Classes inheriting from Module~~ Refactored to use standard Modules and `prepend`!
93
- * Zero tolerance policy on global monkey patching
94
- * When the gem is loaded there are no monkey patches.
95
- * Rather, your own classes/methods get "patched" and "hooked" as you configure them.
96
- * 100% clean, 0% obtrusive
97
- * Greater than 94% test coverage & 82% branch coverage
98
- * 100% Ruby 2.1+ compatible
99
- - use version `gem "debug_logging", "~> 1.0"` for Ruby < 2.3
100
- - use version `gem "debug_logging", "~> 2.0"` for Ruby 2.3
101
- - use version `gem "debug_logging", "~> 3.1"` for Ruby >= 2.4, < 3
102
- - apologies to Ruby 3.0, which is hiding under a blanket
103
- - use version `gem "debug_logging", "~> 4.0"` for Ruby >= 3.1
104
-
105
- ## Installation
106
-
107
- Add this line to your application's Gemfile:
42
+ Compatible with MRI Ruby 3.1+, and concordant releases of JRuby, and TruffleRuby.
43
+ CI workflows and Appraisals are generated for MRI Ruby 3.1+.
44
+ This test floor is configured by `ruby.test_minimum` in `.kettle-jem.yml` and
45
+ may be higher than the gem's runtime compatibility floor when legacy Rubies are
46
+ not practical for the current toolchain.
108
47
 
109
- ```ruby
110
- gem "debug_logging", "~> 4.0"
111
- ```
48
+ | 🚚 _Amazing_ test matrix was brought to you by | 🔎 appraisal2 🔎 and the color 💚 green 💚 |
49
+ |------------------------------------------------|--------------------------------------------------------|
50
+ | 👟 Check it out! | ✨ [github.com/appraisal-rb/appraisal2][💎appraisal2] ✨ |
51
+
52
+ ### Federated DVCS
53
+
54
+ <details markdown="1">
55
+ <summary>Find this repo on federated forges (Coming soon!)</summary>
56
+
57
+ | Federated [DVCS][💎d-in-dvcs] Repository | Status | Issues | PRs | Wiki | CI | Discussions |
58
+ |-------------------------------------------------|-----------------------------------------------------------------------|---------------------------|--------------------------|---------------------------|--------------------------|------------------------------|
59
+ | 🧪 [galtzo-floss/debug_logging on GitLab][📜src-gl] | The Truth | [💚][🤝gl-issues] | [💚][🤝gl-pulls] | [💚][📜gl-wiki] | 🐭 Tiny Matrix | ➖ |
60
+ | 🧊 [galtzo-floss/debug_logging on CodeBerg][📜src-cb] | An Ethical Mirror ([Donate][🤝cb-donate]) | [💚][🤝cb-issues] | [💚][🤝cb-pulls] | ➖ | ⭕️ No Matrix | ➖ |
61
+ | 🐙 [galtzo-floss/debug_logging on GitHub][📜src-gh] | Another Mirror | [💚][🤝gh-issues] | [💚][🤝gh-pulls] | [💚][📜gh-wiki] | 💯 Full Matrix | [💚][gh-discussions] |
62
+ | 🎮️ [Discord Server][✉️discord-invite] | [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] | [Let's][✉️discord-invite] | [talk][✉️discord-invite] | [about][✉️discord-invite] | [this][✉️discord-invite] | [library!][✉️discord-invite] |
63
+
64
+ </details>
65
+
66
+ [gh-discussions]: https://github.com/galtzo-floss/debug_logging/discussions
67
+
68
+ ### Enterprise Support [![Tidelift](https://tidelift.com/badges/package/rubygems/debug_logging)](https://tidelift.com/subscription/pkg/rubygems-debug_logging?utm_source=rubygems-debug_logging&utm_medium=referral&utm_campaign=readme)
69
+
70
+ Available as part of the Tidelift Subscription.
112
71
 
113
- And then execute:
72
+ <details markdown="1">
73
+ <summary>Need enterprise-level guarantees?</summary>
114
74
 
115
- $ bundle
75
+ The maintainers of this and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source packages you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact packages you use.
116
76
 
117
- Or install it yourself as:
77
+ [![Get help from me on Tidelift][🏙️entsup-tidelift-img]][🏙️entsup-tidelift]
118
78
 
119
- $ gem install debug_logging
79
+ - 💡Subscribe for support guarantees covering _all_ your FLOSS dependencies
80
+ - 💡Tidelift is part of [Sonar][🏙️entsup-tidelift-sonar]
81
+ - 💡Tidelift pays maintainers to maintain the software you depend on!<br/>📊`@`Pointy Haired Boss: An [enterprise support][🏙️entsup-tidelift] subscription is "[never gonna let you down][🧮kloc]", and *supports* open source maintainers
120
82
 
121
- ## Usage
83
+ Alternatively:
84
+
85
+ - [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite]
86
+ - [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork]
87
+ - [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor]
88
+
89
+ </details>
90
+
91
+ ## ✨ Installation
92
+
93
+ Install the gem and add to the application's Gemfile by executing:
94
+
95
+ ```console
96
+ bundle add debug_logging
97
+ ```
98
+
99
+ If bundler is not being used to manage dependencies, install the gem by executing:
100
+
101
+ ```console
102
+ gem install debug_logging
103
+ ```
104
+
105
+ ## ⚙️ Configuration
106
+
107
+ ## 🔧 Basic Usage
122
108
 
123
109
  Crack open the specs for more complex usage examples than the ones below.
124
110
 
@@ -242,20 +228,28 @@ class Car
242
228
  # == BEGIN CLASS METHODS ==
243
229
  # For class methods:
244
230
  # Option 1: Use *logged* as a method decorator
245
- logged def self.make
246
- new
247
- end
248
- def self.design(*_args)
249
- new
250
- end
251
-
252
- def self.safety(*_args)
253
- new
254
- end
255
-
256
- def self.dealer_options(*_args)
257
- new
231
+ class << self
232
+ def make
233
+ new
234
+ end
235
+
236
+ def design(*_args)
237
+ new
238
+ end
239
+
240
+ def safety(*_args)
241
+ new
242
+ end
243
+
244
+ def dealer_options(*_args)
245
+ new
246
+ end
247
+
248
+ def will_not_be_logged
249
+ false
250
+ end
258
251
  end
252
+ logged :make
259
253
 
260
254
  # Option 2: Use *logged* as a macro
261
255
  logged :design, :safety
@@ -265,11 +259,8 @@ class Car
265
259
  logged :dealer_options, {
266
260
  something: "here", # <= will be logged, and available to last_hash_to_s_proc
267
261
  multiple_last_hashes: true, # <= Overrides config
268
- 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!
262
+ 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!
269
263
  }
270
- def self.will_not_be_logged
271
- false
272
- end
273
264
  # == END CLASS METHODS ==
274
265
 
275
266
  # == BEGIN INSTANCE METHODS ==
@@ -278,7 +269,7 @@ class Car
278
269
  i_notified [
279
270
  :drive,
280
271
  :stop,
281
- [:turn, {instance_variables: %i[direction angle]}],
272
+ [:turn, {instance_variables: %i[direction angle]}]
282
273
  ]
283
274
 
284
275
  def drive(speed)
@@ -320,7 +311,7 @@ class Car
320
311
  time_formatter_proc: DebugLogging::Constants::DEFAULT_TIME_FORMATTER,
321
312
  add_timestamp: false,
322
313
  instance_benchmarks: false,
323
- class_benchmarks: false,
314
+ class_benchmarks: false
324
315
  }
325
316
 
326
317
  # You can also use `i_logged` as a true method decorator:
@@ -372,26 +363,34 @@ class Car
372
363
  i_notified [
373
364
  :drive,
374
365
  :stop,
375
- [:turn, {instance_variables: %i[direction angle]}],
366
+ [:turn, {instance_variables: %i[direction angle]}]
376
367
  ]
377
368
 
378
369
  # == BEGIN CLASS METHODS ==
379
370
  # For class methods:
380
371
  # Option 1: Use *notified* as a method decorator
381
- notified def self.make
382
- new
383
- end
384
- def self.design(*_args)
385
- new
386
- end
387
-
388
- def self.safety(*_args)
389
- new
390
- end
391
-
392
- def self.dealer_options(*_args)
393
- new
372
+ class << self
373
+ def make
374
+ new
375
+ end
376
+
377
+ def design(*_args)
378
+ new
379
+ end
380
+
381
+ def safety(*_args)
382
+ new
383
+ end
384
+
385
+ def dealer_options(*_args)
386
+ new
387
+ end
388
+
389
+ def will_not_be_notified
390
+ false
391
+ end
394
392
  end
393
+ notified :make
395
394
 
396
395
  # Option 2: Use *logged* as a macro
397
396
  notified :design, :safety
@@ -400,11 +399,8 @@ class Car
400
399
  # and also made available to last_hash_to_s_proc
401
400
  notified :dealer_options, {
402
401
  something: "here", # <== will be added to the event payload, and be available to last_hash_to_s_proc
403
- add_invocation_id: false, # <== Overrides config
402
+ add_invocation_id: false # <== Overrides config
404
403
  }
405
- def self.will_not_be_notified
406
- false
407
- end
408
404
  # == END CLASS METHODS ==
409
405
 
410
406
  # == BEGIN INSTANCE METHODS ==
@@ -436,43 +432,124 @@ class Car
436
432
  end
437
433
  ```
438
434
 
439
- ## Development
435
+ ## 🦷 FLOSS Funding
440
436
 
441
- Run tests!
437
+ While galtzo-floss tools are free software and will always be, the project would benefit immensely from some funding.
438
+ Raising a monthly budget of... "dollars" would make the project more sustainable.
442
439
 
443
- ```shell
444
- bin/setup
445
- bin/rake
446
- ```
440
+ We welcome both individual and corporate sponsors! We also offer a
441
+ wide array of funding channels to account for your preferences.
442
+ Currently, [Open Collective][🖇osc] is our preferred funding platform.
447
443
 
448
- ## Contributing
444
+ **If you're working in a company that's making significant use of galtzo-floss tools we'd
445
+ appreciate it if you suggest to your company to become a galtzo-floss sponsor.**
449
446
 
450
- See [CONTRIBUTING.md][🪇conduct]
447
+ You can support the development of galtzo-floss tools via
448
+ [GitHub Sponsors][🖇sponsor],
449
+ [Liberapay][⛳liberapay],
450
+ [PayPal][🖇paypal],
451
+ [Open Collective][🖇osc]
452
+ and [Tidelift][🏙️entsup-tidelift].
451
453
 
452
- [🪇conduct]: CONTRIBUTING.md
454
+ | 📍 NOTE |
455
+ |----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
456
+ | If doing a sponsorship in the form of donation is problematic for your company <br/> from an accounting standpoint, we'd recommend the use of Tidelift, <br/> where you can get a support-like subscription instead. |
453
457
 
454
- ## 🪇 Code of Conduct
458
+ ### Open Collective for Individuals
455
459
 
456
- Everyone interacting in this project's codebases, issue trackers,
457
- chat rooms and mailing lists is expected to follow the [code of conduct][🪇conduct].
460
+ Support us with a monthly donation and help us continue our activities. [[Become a backer](https://opencollective.com/galtzo-floss#backer)]
458
461
 
459
- [🪇conduct]: CODE_OF_CONDUCT.md
462
+ NOTE: [kettle-readme-backers][kettle-readme-backers] updates this list every day, automatically.
460
463
 
461
- ## 📌 Versioning
464
+ <!-- OPENCOLLECTIVE-INDIVIDUALS:START -->
465
+ No backers yet. Be the first!
466
+ <!-- OPENCOLLECTIVE-INDIVIDUALS:END -->
462
467
 
463
- This Library adheres to [Semantic Versioning 2.0.0][📌semver].
464
- Violations of this scheme should be reported as bugs.
465
- Specifically, if a minor or patch version is released that breaks backward compatibility,
466
- a new version should be immediately released that restores compatibility.
467
- Breaking changes to the public API will only be introduced with new major versions.
468
+ ### Open Collective for Organizations
468
469
 
469
- To get a better understanding of how SemVer is intended to work over a project's lifetime,
470
- read this article from the creator of SemVer:
470
+ Become a sponsor and get your logo on our README on GitHub with a link to your site. [[Become a sponsor](https://opencollective.com/galtzo-floss#sponsor)]
471
471
 
472
- - ["Major Version Numbers are Not Sacred"][📌major-versions-not-sacred]
472
+ NOTE: [kettle-readme-backers][kettle-readme-backers] updates this list every day, automatically.
473
+
474
+ <!-- OPENCOLLECTIVE-ORGANIZATIONS:START -->
475
+ No sponsors yet. Be the first!
476
+ <!-- OPENCOLLECTIVE-ORGANIZATIONS:END -->
477
+
478
+ [kettle-readme-backers]: https://github.com/galtzo-floss/debug_logging/blob/main/exe/kettle-readme-backers
479
+
480
+ ### Another way to support open-source
481
+
482
+ I’m driven by a passion to foster a thriving open-source community – a space where people can tackle complex problems, no matter how small. Revitalizing libraries that have fallen into disrepair, and building new libraries focused on solving real-world challenges, are my passions. I was recently affected by layoffs, and the tech jobs market is unwelcoming. I’m reaching out here because your support would significantly aid my efforts to provide for my family, and my farm (11 🐔 chickens, 2 🐶 dogs, 3 🐰 rabbits, 8 🐈‍ cats).
483
+
484
+ If you work at a company that uses my work, please encourage them to support me as a corporate sponsor. My work on gems you use might show up in `bundle fund`.
485
+
486
+ I’m developing a new library, [floss_funding][🖇floss-funding-gem], designed to empower open-source developers like myself to get paid for the work we do, in a sustainable way. Please give it a look.
487
+
488
+ **[Floss-Funding.dev][🖇floss-funding.dev]: 👉️ No network calls. 👉️ No tracking. 👉️ No oversight. 👉️ Minimal crypto hashing. 💡 Easily disabled nags**
489
+
490
+ [![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]
491
+
492
+ ## 🔐 Security
473
493
 
474
- As a result of this policy, you can (and should) specify a dependency on these libraries using
475
- the [Pessimistic Version Constraint][📌pvc] with two digits of precision.
494
+ See [SECURITY.md][🔐security].
495
+
496
+ ## 🤝 Contributing
497
+
498
+ If you need some ideas of where to help, you could work on adding more code coverage,
499
+ or if it is already 💯 (see [below](#code-coverage)) check [issues][🤝gh-issues] or [PRs][🤝gh-pulls],
500
+ or use the gem and think about how it could be better.
501
+
502
+ We [![Keep A Changelog][📗keep-changelog-img]][📗keep-changelog] so if you make changes, remember to update it.
503
+
504
+ See [CONTRIBUTING.md][🤝contributing] for more detailed instructions.
505
+
506
+ ### 🚀 Release Instructions
507
+
508
+ See [CONTRIBUTING.md][🤝contributing].
509
+
510
+ ### Code Coverage
511
+
512
+ <details markdown="1">
513
+ <summary>Coverage service badges</summary>
514
+
515
+ [![Coverage Graph][🏀codecov-g]][🏀codecov]
516
+
517
+ [![Coveralls Test Coverage][🏀coveralls-img]][🏀coveralls]
518
+
519
+ [![QLTY Test Coverage][🏀qlty-covi]][🏀qlty-cov]
520
+
521
+ </details>
522
+
523
+ ### 🪇 Code of Conduct
524
+
525
+ Everyone interacting with this project's codebases, issue trackers,
526
+ chat rooms and mailing lists agrees to follow the [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct].
527
+
528
+ ## 🌈 Contributors
529
+
530
+ [![Contributors][🖐contributors-img]][🖐contributors]
531
+
532
+ Made with [contributors-img][🖐contrib-rocks].
533
+
534
+ Also see GitLab Contributors: [https://gitlab.com/galtzo-floss/debug_logging/-/graphs/main][🚎contributors-gl]
535
+
536
+ <details>
537
+ <summary>⭐️ Star History</summary>
538
+
539
+ <a href="https://star-history.com/galtzo-floss/debug_logging&Date">
540
+ <picture>
541
+ <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=galtzo-floss/debug_logging&type=Date&theme=dark" />
542
+ <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=galtzo-floss/debug_logging&type=Date" />
543
+ <img alt="Star History Chart" src="https://api.star-history.com/svg?repos=galtzo-floss/debug_logging&type=Date" />
544
+ </picture>
545
+ </a>
546
+
547
+ </details>
548
+
549
+ ## 📌 Versioning
550
+
551
+ This library follows [![Semantic Versioning 2.0.0][📌semver-img]][📌semver] for its public API where practical.
552
+ For most applications, prefer the [Pessimistic Version Constraint][📌pvc] with two digits of precision.
476
553
 
477
554
  For example:
478
555
 
@@ -480,54 +557,259 @@ For example:
480
557
  spec.add_dependency("debug_logging", "~> 4.0")
481
558
  ```
482
559
 
483
- [comment]: <> ( VERSIONING LINKS )
560
+ <details markdown="1">
561
+ <summary>📌 Is "Platform Support" part of the public API? More details inside.</summary>
484
562
 
485
- [📌pvc]: http://guides.rubygems.org/patterns/#pessimistic-version-constraint
486
- [📌semver]: http://semver.org/
487
- [📌major-versions-not-sacred]: https://tom.preston-werner.com/2022/05/23/major-version-numbers-are-not-sacred.html
563
+ Dropping support for a platform can be a breaking change for affected users.
564
+ If a release changes supported platforms, it should be called out clearly in the changelog and versioned with that impact in mind.
565
+
566
+ To get a better understanding of how SemVer is intended to work over a project's lifetime,
567
+ read this article from the creator of SemVer:
568
+
569
+ - ["Major Version Numbers are Not Sacred"][📌major-versions-not-sacred]
570
+
571
+ </details>
572
+
573
+ See [CHANGELOG.md][📌changelog] for a list of releases.
488
574
 
489
575
  ## 📄 License
490
576
 
491
577
  The gem is available as open source under the terms of
492
- the [MIT License][📄license] [![License: MIT][📄license-img]][📄license-ref], with one exception:
578
+ the [MIT](MIT.md) [![License: MIT][📄license-img]][📄license-ref].
493
579
 
494
- * [`lib/debug_logging/finalize.rb`](lib/debug_logging/finalize.rb) came from [this StackOverflow](https://stackoverflow.com/a/34559282).
495
- * As such, it is licensed under [CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/)
580
+ ### © Copyright
496
581
 
497
- See [LICENSE.txt][📄license] for the official [Copyright Notice][📄copyright-notice-explainer].
582
+ See [LICENSE.md][📄license] for the official copyright notice.
498
583
 
499
- [comment]: <> ( LEGAL LINKS )
584
+ <details markdown="1">
585
+ <summary>Copyright holders</summary>
500
586
 
501
- [📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
502
- [📄license]: LICENSE.txt
503
- [📄license-ref]: https://opensource.org/licenses/MIT
504
- [📄license-img]: https://img.shields.io/badge/License-MIT-green.svg
505
-
506
- [semver]: http://semver.org/
507
- [pvc]: http://docs.rubygems.org/read/chapter/16#page74
508
- [railsbling]: http://www.railsbling.com
509
- [peterboling]: http://www.peterboling.com
510
- [coderwall]: http://coderwall.com/pboling
511
- [angellist]: https://angel.co/peter-boling
512
- [documentation]: http://rdoc.info/github/pboling/debug_logging/frames
513
- [homepage]: https://github.com/pboling/debug_logging
514
- [blogpage]: http://www.railsbling.com/tags/debug_logging/
515
-
516
- [comment]: <> ( 💁🏼‍♂️ PERSONAL LINKS )
517
-
518
- [💁🏼‍♂️aboutme]: https://about.me/peter.boling
519
- [💁🏼‍♂️angellist]: https://angel.co/peter-boling
520
- [💁🏼‍♂️devto]: https://dev.to/galtzo
521
- [💁🏼‍♂️followme]: https://img.shields.io/twitter/follow/galtzo.svg?style=social&label=Follow
522
- [💁🏼‍♂️twitter]: http://twitter.com/galtzo
523
- [💁🏼‍♂️peterboling]: http://www.peterboling.com
524
- [💁🏼‍♂️railsbling]: http://www.railsbling.com
587
+ - Copyright (c) 2017-2018, 2020-2021, 2023-2024, 2026 Peter H. Boling
588
+ - Copyright (c) 2020 John Gillson
589
+ - Copyright (c) 2024 Aboling0
590
+
591
+ </details>
592
+
593
+ ## 🤑 A request for help
594
+
595
+ Maintainers have teeth and need to pay their dentists.
596
+ After getting laid off in an RIF in March, and encountering difficulty finding a new one,
597
+ I began spending most of my time building open source tools.
598
+ I'm hoping to be able to pay for my kids' health insurance this month,
599
+ so if you value the work I am doing, I need your support.
600
+ Please consider sponsoring me or the project.
601
+
602
+ To join the community or get help 👇️ Join the Discord.
525
603
 
526
- [comment]: <> ( KEYED LINKS )
604
+ [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite]
527
605
 
528
- [🔑cc-mnt]: https://codeclimate.com/github/pboling/debug_logging/maintainability
529
- [🔑cc-mnti]: https://api.codeclimate.com/v1/badges/1f36d7019c3b81cae1a2/maintainability
530
- [🔑cc-cov]: https://codeclimate.com/github/pboling/debug_logging/test_coverage
531
- [🔑cc-covi]: https://api.codeclimate.com/v1/badges/1f36d7019c3b81cae1a2/test_coverage
532
- [🔑depfu]: https://depfu.com/github/pboling/debug_logging?project_id=2675
533
- [🔑depfui]: https://badges.depfu.com/badges/d1a4cf43255916521fef1e3685c61faa/count.svg
606
+ To say "thanks!" ☝️ Join the Discord or 👇️ send money.
607
+
608
+ [![Sponsor galtzo-floss/debug_logging on Open Source Collective][🖇osc-all-bottom-img]][🖇osc] 💌 [![Sponsor me on GitHub Sponsors][🖇sponsor-bottom-img]][🖇sponsor] 💌 [![Sponsor me on Liberapay][⛳liberapay-bottom-img]][⛳liberapay] 💌 [![Donate on PayPal][🖇paypal-bottom-img]][🖇paypal]
609
+
610
+ ### Please give the project a star ⭐ ♥.
611
+
612
+ 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.
613
+
614
+ Thanks for RTFM. ☺️
615
+
616
+ [⛳liberapay-img]: https://img.shields.io/liberapay/goal/pboling.svg?logo=liberapay&color=a51611&style=flat
617
+ [⛳liberapay-bottom-img]: https://img.shields.io/liberapay/goal/pboling.svg?style=for-the-badge&logo=liberapay&color=a51611
618
+ [⛳liberapay]: https://liberapay.com/pboling/donate
619
+ [🖇osc-all-img]: https://img.shields.io/opencollective/all/galtzo-floss
620
+ [🖇osc-sponsors-img]: https://img.shields.io/opencollective/sponsors/galtzo-floss
621
+ [🖇osc-backers-img]: https://img.shields.io/opencollective/backers/galtzo-floss
622
+ [🖇osc-backers]: https://opencollective.com/galtzo-floss#backer
623
+ [🖇osc-backers-i]: https://opencollective.com/galtzo-floss/backers/badge.svg?style=flat
624
+ [🖇osc-sponsors]: https://opencollective.com/galtzo-floss#sponsor
625
+ [🖇osc-sponsors-i]: https://opencollective.com/galtzo-floss/sponsors/badge.svg?style=flat
626
+ [🖇osc-all-bottom-img]: https://img.shields.io/opencollective/all/galtzo-floss?style=for-the-badge
627
+ [🖇osc-sponsors-bottom-img]: https://img.shields.io/opencollective/sponsors/galtzo-floss?style=for-the-badge
628
+ [🖇osc-backers-bottom-img]: https://img.shields.io/opencollective/backers/galtzo-floss?style=for-the-badge
629
+ [🖇osc]: https://opencollective.com/galtzo-floss
630
+ [🖇sponsor-img]: https://img.shields.io/badge/Sponsor_Me!-pboling.svg?style=social&logo=github
631
+ [🖇sponsor-bottom-img]: https://img.shields.io/badge/Sponsor_Me!-pboling-blue?style=for-the-badge&logo=github
632
+ [🖇sponsor]: https://github.com/sponsors/pboling
633
+ [🖇polar-img]: https://img.shields.io/badge/polar-donate-a51611.svg?style=flat
634
+ [🖇polar]: https://polar.sh/pboling
635
+ [🖇kofi-img]: https://img.shields.io/badge/ko--fi-%E2%9C%93-a51611.svg?style=flat
636
+ [🖇kofi]: https://ko-fi.com/pboling
637
+ [🖇patreon-img]: https://img.shields.io/badge/patreon-donate-a51611.svg?style=flat
638
+ [🖇patreon]: https://patreon.com/galtzo
639
+ [🖇buyme-small-img]: https://img.shields.io/badge/buy_me_a_coffee-%E2%9C%93-a51611.svg?style=flat
640
+ [🖇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
641
+ [🖇buyme]: https://www.buymeacoffee.com/pboling
642
+ [🖇paypal-img]: https://img.shields.io/badge/donate-paypal-a51611.svg?style=flat&logo=paypal
643
+ [🖇paypal-bottom-img]: https://img.shields.io/badge/donate-paypal-a51611.svg?style=for-the-badge&logo=paypal&color=0A0A0A
644
+ [🖇paypal]: https://www.paypal.com/paypalme/peterboling
645
+ [🖇floss-funding.dev]: https://floss-funding.dev
646
+ [🖇floss-funding-gem]: https://github.com/galtzo-floss/floss_funding
647
+ [✉️discord-invite]: https://discord.gg/3qme4XHNKN
648
+ [✉️discord-invite-img-ftb]: https://img.shields.io/discord/1373797679469170758?style=for-the-badge&logo=discord
649
+ [✉️ruby-friends-img]: https://img.shields.io/badge/daily.dev-%F0%9F%92%8E_Ruby_Friends-0A0A0A?style=for-the-badge&logo=dailydotdev&logoColor=white
650
+ [✉️ruby-friends]: https://app.daily.dev/squads/rubyfriends
651
+
652
+ [✇bundle-group-pattern]: https://gist.github.com/pboling/4564780
653
+ [⛳️gem-namespace]: https://github.com/galtzo-floss/debug_logging
654
+ [⛳️namespace-img]: https://img.shields.io/badge/namespace-DebugLogging-3C2D2D.svg?style=square&logo=ruby&logoColor=white
655
+ [⛳️gem-name]: https://bestgems.org/gems/debug_logging
656
+ [⛳️name-img]: https://img.shields.io/badge/name-debug__logging-3C2D2D.svg?style=square&logo=rubygems&logoColor=red
657
+ [⛳️tag-img]: https://img.shields.io/github/tag/galtzo-floss/debug_logging.svg
658
+ [⛳️tag]: https://github.com/galtzo-floss/debug_logging/releases
659
+ [🚂maint-blog]: http://www.railsbling.com/tags/debug_logging
660
+ [🚂maint-blog-img]: https://img.shields.io/badge/blog-railsbling-0093D0.svg?style=for-the-badge&logo=rubyonrails&logoColor=orange
661
+ [🚂maint-contact]: http://www.railsbling.com/contact
662
+ [🚂maint-contact-img]: https://img.shields.io/badge/Contact-Maintainer-0093D0.svg?style=flat&logo=rubyonrails&logoColor=red
663
+ [💖🖇linkedin]: http://www.linkedin.com/in/peterboling
664
+ [💖🖇linkedin-img]: https://img.shields.io/badge/LinkedIn-Profile-0B66C2?style=flat&logo=newjapanprowrestling
665
+ [💖✌️wellfound]: https://wellfound.com/u/peter-boling
666
+ [💖✌️wellfound-img]: https://img.shields.io/badge/peter--boling-orange?style=flat&logo=wellfound
667
+ [💖💲crunchbase]: https://www.crunchbase.com/person/peter-boling
668
+ [💖💲crunchbase-img]: https://img.shields.io/badge/peter--boling-purple?style=flat&logo=crunchbase
669
+ [💖🐘ruby-mast]: https://ruby.social/@galtzo
670
+ [💖🐘ruby-mast-img]: https://img.shields.io/mastodon/follow/109447111526622197?domain=https://ruby.social&style=flat&logo=mastodon&label=Ruby%20@galtzo
671
+ [💖🦋bluesky]: https://bsky.app/profile/galtzo.com
672
+ [💖🦋bluesky-img]: https://img.shields.io/badge/@galtzo.com-0285FF?style=flat&logo=bluesky&logoColor=white
673
+ [💖🌳linktree]: https://linktr.ee/galtzo
674
+ [💖🌳linktree-img]: https://img.shields.io/badge/galtzo-purple?style=flat&logo=linktree
675
+ [💖💁🏼‍♂️devto]: https://dev.to/galtzo
676
+ [💖💁🏼‍♂️devto-img]: https://img.shields.io/badge/dev.to-0A0A0A?style=flat&logo=devdotto&logoColor=white
677
+ [💖💁🏼‍♂️aboutme]: https://about.me/peter.boling
678
+ [💖💁🏼‍♂️aboutme-img]: https://img.shields.io/badge/about.me-0A0A0A?style=flat&logo=aboutme&logoColor=white
679
+ [💖🧊berg]: https://codeberg.org/pboling
680
+ [💖🐙hub]: https://github.org/pboling
681
+ [💖🛖hut]: https://sr.ht/~galtzo/
682
+ [💖🧪lab]: https://gitlab.com/pboling
683
+ [👨🏼‍🏫expsup-upwork]: https://www.upwork.com/freelancers/~014942e9b056abdf86?mp_source=share
684
+ [👨🏼‍🏫expsup-upwork-img]: https://img.shields.io/badge/UpWork-13544E?style=for-the-badge&logo=Upwork&logoColor=white
685
+ [👨🏼‍🏫expsup-codementor]: https://www.codementor.io/peterboling?utm_source=github&utm_medium=button&utm_term=peterboling&utm_campaign=github
686
+ [👨🏼‍🏫expsup-codementor-img]: https://img.shields.io/badge/CodeMentor-Get_Help-1abc9c?style=for-the-badge&logo=CodeMentor&logoColor=white
687
+ [🏙️entsup-tidelift]: https://tidelift.com/subscription/pkg/rubygems-debug_logging?utm_source=rubygems-debug_logging&utm_medium=referral&utm_campaign=readme
688
+ [🏙️entsup-tidelift-img]: https://img.shields.io/badge/Tidelift_and_Sonar-Enterprise_Support-FD3456?style=for-the-badge&logo=sonar&logoColor=white
689
+ [🏙️entsup-tidelift-sonar]: https://blog.tidelift.com/tidelift-joins-sonar
690
+ [💁🏼‍♂️peterboling]: http://www.peterboling.com
691
+ [🚂railsbling]: http://www.railsbling.com
692
+ [📜src-gl-img]: https://img.shields.io/badge/GitLab-FBA326?style=for-the-badge&logo=Gitlab&logoColor=orange
693
+ [📜src-gl]: https://gitlab.com/galtzo-floss/debug_logging
694
+ [📜src-cb-img]: https://img.shields.io/badge/CodeBerg-4893CC?style=for-the-badge&logo=CodeBerg&logoColor=blue
695
+ [📜src-cb]: https://codeberg.org/galtzo-floss/debug_logging
696
+ [📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=Github&logoColor=green
697
+ [📜src-gh]: https://github.com/galtzo-floss/debug_logging
698
+ [📜docs-cr-rd-img]: https://img.shields.io/badge/RubyDoc-Current_Release-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white
699
+ [📜docs-head-rd-img]: https://img.shields.io/badge/YARD_on_Galtzo.com-HEAD-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white
700
+ [📜gl-wiki]: https://gitlab.com/galtzo-floss/debug_logging/-/wikis/home
701
+ [📜gh-wiki]: https://github.com/galtzo-floss/debug_logging/wiki
702
+ [📜gl-wiki-img]: https://img.shields.io/badge/wiki-gitlab-943CD2.svg?style=for-the-badge&logo=gitlab&logoColor=white
703
+ [📜gh-wiki-img]: https://img.shields.io/badge/wiki-github-943CD2.svg?style=for-the-badge&logo=github&logoColor=white
704
+ [👽dl-rank]: https://bestgems.org/gems/debug_logging
705
+ [👽dl-ranki]: https://img.shields.io/gem/rd/debug_logging.svg
706
+ [👽version]: https://bestgems.org/gems/debug_logging
707
+ [👽versioni]: https://img.shields.io/gem/v/debug_logging.svg
708
+ [🏀qlty-mnt]: https://qlty.sh/gh/galtzo-floss/projects/debug_logging
709
+ [🏀qlty-mnti]: https://qlty.sh/gh/galtzo-floss/projects/debug_logging/maintainability.svg
710
+ [🏀qlty-cov]: https://qlty.sh/gh/galtzo-floss/projects/debug_logging/metrics/code?sort=coverageRating
711
+ [🏀qlty-covi]: https://qlty.sh/gh/galtzo-floss/projects/debug_logging/coverage.svg
712
+ [🏀codecov]: https://codecov.io/gh/galtzo-floss/debug_logging
713
+ [🏀codecovi]: https://codecov.io/gh/galtzo-floss/debug_logging/graph/badge.svg
714
+ [🏀coveralls]: https://coveralls.io/github/galtzo-floss/debug_logging?branch=main
715
+ [🏀coveralls-img]: https://coveralls.io/repos/github/galtzo-floss/debug_logging/badge.svg?branch=main
716
+ [🚎ruby-3.1-wf]: https://github.com/galtzo-floss/debug_logging/actions/workflows/ruby-3.1.yml
717
+ [🚎ruby-3.2-wf]: https://github.com/galtzo-floss/debug_logging/actions/workflows/ruby-3.2.yml
718
+ [🚎ruby-3.3-wf]: https://github.com/galtzo-floss/debug_logging/actions/workflows/ruby-3.3.yml
719
+ [🚎ruby-3.4-wf]: https://github.com/galtzo-floss/debug_logging/actions/workflows/ruby-3.4.yml
720
+ [🚎jruby-9.4-wf]: https://github.com/galtzo-floss/debug_logging/actions/workflows/jruby-9.4.yml
721
+ [🚎truby-23.1-wf]: https://github.com/galtzo-floss/debug_logging/actions/workflows/truffleruby-23.1.yml
722
+ [🚎truby-24.2-wf]: https://github.com/galtzo-floss/debug_logging/actions/workflows/truffleruby-24.2.yml
723
+ [🚎truby-25.0-wf]: https://github.com/galtzo-floss/debug_logging/actions/workflows/truffleruby-25.0.yml
724
+ [🚎2-cov-wf]: https://github.com/galtzo-floss/debug_logging/actions/workflows/coverage.yml
725
+ [🚎2-cov-wfi]: https://github.com/galtzo-floss/debug_logging/actions/workflows/coverage.yml/badge.svg
726
+ [🚎3-hd-wf]: https://github.com/galtzo-floss/debug_logging/actions/workflows/heads.yml
727
+ [🚎3-hd-wfi]: https://github.com/galtzo-floss/debug_logging/actions/workflows/heads.yml/badge.svg
728
+ [🚎5-st-wf]: https://github.com/galtzo-floss/debug_logging/actions/workflows/style.yml
729
+ [🚎5-st-wfi]: https://github.com/galtzo-floss/debug_logging/actions/workflows/style.yml/badge.svg
730
+ [🚎9-t-wf]: https://github.com/galtzo-floss/debug_logging/actions/workflows/truffle.yml
731
+ [🚎9-t-wfi]: https://github.com/galtzo-floss/debug_logging/actions/workflows/truffle.yml/badge.svg
732
+ [🚎10-j-wf]: https://github.com/galtzo-floss/debug_logging/actions/workflows/jruby.yml
733
+ [🚎10-j-wfi]: https://github.com/galtzo-floss/debug_logging/actions/workflows/jruby.yml/badge.svg
734
+ [🚎11-c-wf]: https://github.com/galtzo-floss/debug_logging/actions/workflows/current.yml
735
+ [🚎11-c-wfi]: https://github.com/galtzo-floss/debug_logging/actions/workflows/current.yml/badge.svg
736
+ [🚎12-crh-wf]: https://github.com/galtzo-floss/debug_logging/actions/workflows/dep-heads.yml
737
+ [🚎12-crh-wfi]: https://github.com/galtzo-floss/debug_logging/actions/workflows/dep-heads.yml/badge.svg
738
+ [🚎13-🔒️-wf]: https://github.com/galtzo-floss/debug_logging/actions/workflows/locked_deps.yml
739
+ [🚎13-🔒️-wfi]: https://github.com/galtzo-floss/debug_logging/actions/workflows/locked_deps.yml/badge.svg
740
+ [🚎14-🔓️-wf]: https://github.com/galtzo-floss/debug_logging/actions/workflows/unlocked_deps.yml
741
+ [🚎14-🔓️-wfi]: https://github.com/galtzo-floss/debug_logging/actions/workflows/unlocked_deps.yml/badge.svg
742
+ [🚎15-🪪-wf]: https://github.com/galtzo-floss/debug_logging/actions/workflows/license-eye.yml
743
+ [🚎15-🪪-wfi]: https://github.com/galtzo-floss/debug_logging/actions/workflows/license-eye.yml/badge.svg
744
+ [💎ruby-3.1i]: https://img.shields.io/badge/Ruby-3.1-CC342D?style=for-the-badge&logo=ruby&logoColor=white
745
+ [💎ruby-3.2i]: https://img.shields.io/badge/Ruby-3.2-CC342D?style=for-the-badge&logo=ruby&logoColor=white
746
+ [💎ruby-3.3i]: https://img.shields.io/badge/Ruby-3.3-CC342D?style=for-the-badge&logo=ruby&logoColor=white
747
+ [💎ruby-3.4i]: https://img.shields.io/badge/Ruby-3.4-CC342D?style=for-the-badge&logo=ruby&logoColor=white
748
+ [💎ruby-4.0i]: https://img.shields.io/badge/Ruby-4.0-CC342D?style=for-the-badge&logo=ruby&logoColor=white
749
+ [💎ruby-c-i]: https://img.shields.io/badge/Ruby-current-CC342D?style=for-the-badge&logo=ruby&logoColor=green
750
+ [💎ruby-headi]: https://img.shields.io/badge/Ruby-HEAD-CC342D?style=for-the-badge&logo=ruby&logoColor=blue
751
+ [💎truby-23.1i]: https://img.shields.io/badge/Truffle_Ruby-23.1-34BCB1?style=for-the-badge&logo=ruby&logoColor=pink
752
+ [💎truby-24.2i]: https://img.shields.io/badge/Truffle_Ruby-24.2-34BCB1?style=for-the-badge&logo=ruby&logoColor=pink
753
+ [💎truby-25.0i]: https://img.shields.io/badge/Truffle_Ruby-25.0-34BCB1?style=for-the-badge&logo=ruby&logoColor=pink
754
+ [💎truby-c-i]: https://img.shields.io/badge/Truffle_Ruby-current-34BCB1?style=for-the-badge&logo=ruby&logoColor=green
755
+ [💎jruby-9.4i]: https://img.shields.io/badge/JRuby-9.4-FBE742?style=for-the-badge&logo=ruby&logoColor=red
756
+ [💎jruby-c-i]: https://img.shields.io/badge/JRuby-current-FBE742?style=for-the-badge&logo=ruby&logoColor=green
757
+ [💎jruby-headi]: https://img.shields.io/badge/JRuby-HEAD-FBE742?style=for-the-badge&logo=ruby&logoColor=blue
758
+ [🤝gh-issues]: https://github.com/galtzo-floss/debug_logging/issues
759
+ [🤝gh-pulls]: https://github.com/galtzo-floss/debug_logging/pulls
760
+ [🤝gl-issues]: https://gitlab.com/galtzo-floss/debug_logging/-/issues
761
+ [🤝gl-pulls]: https://gitlab.com/galtzo-floss/debug_logging/-/merge_requests
762
+ [🤝cb-issues]: https://codeberg.org/galtzo-floss/debug_logging/issues
763
+ [🤝cb-pulls]: https://codeberg.org/galtzo-floss/debug_logging/pulls
764
+ [🤝cb-donate]: https://donate.codeberg.org/
765
+ [🤝contributing]: https://github.com/galtzo-floss/debug_logging/blob/main/CONTRIBUTING.md
766
+ [🏀codecov-g]: https://codecov.io/gh/galtzo-floss/debug_logging/graph/badge.svg
767
+ [🖐contrib-rocks]: https://contrib.rocks
768
+ [🖐contributors]: https://github.com/galtzo-floss/debug_logging/graphs/contributors
769
+ [🖐contributors-img]: https://contrib.rocks/image?repo=galtzo-floss/debug_logging
770
+ [🚎contributors-gl]: https://gitlab.com/galtzo-floss/debug_logging/-/graphs/main
771
+ [🪇conduct]: https://github.com/galtzo-floss/debug_logging/blob/main/CODE_OF_CONDUCT.md
772
+ [🪇conduct-img]: https://img.shields.io/badge/Contributor_Covenant-2.1-259D6C.svg
773
+ [📌pvc]: http://guides.rubygems.org/patterns/#pessimistic-version-constraint
774
+ [📌semver]: https://semver.org/spec/v2.0.0.html
775
+ [📌semver-img]: https://img.shields.io/badge/semver-2.0.0-259D6C.svg?style=flat
776
+ [📌semver-breaking]: https://github.com/semver/semver/issues/716#issuecomment-869336139
777
+ [📌major-versions-not-sacred]: https://tom.preston-werner.com/2022/05/23/major-version-numbers-are-not-sacred.html
778
+ [📌changelog]: https://github.com/galtzo-floss/debug_logging/blob/main/CHANGELOG.md
779
+ [📗keep-changelog]: https://keepachangelog.com/en/1.0.0/
780
+ [📗keep-changelog-img]: https://img.shields.io/badge/keep--a--changelog-1.0.0-34495e.svg?style=flat
781
+ [📌gitmoji]: https://gitmoji.dev
782
+ [📌gitmoji-img]: https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
783
+ [🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
784
+ [🧮kloc-img]: https://img.shields.io/badge/KLOC-0.735-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
785
+ [🔐security]: https://github.com/galtzo-floss/debug_logging/blob/main/SECURITY.md
786
+ [🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
787
+ [📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
788
+ [📄license]: LICENSE.md
789
+ [📄license-ref]: MIT.md
790
+ [📄license-img]: https://img.shields.io/badge/License-MIT-259D6C.svg
791
+ [📄license-compat]: https://www.apache.org/legal/resolved.html#category-a
792
+ [📄license-compat-img]: https://img.shields.io/badge/Apache_Compatible:_Category_A-%E2%9C%93-259D6C.svg?style=flat&logo=Apache
793
+
794
+ [📄ilo-declaration]: https://www.ilo.org/declaration/lang--en/index.htm
795
+ [📄ilo-declaration-img]: https://img.shields.io/badge/ILO_Fundamental_Principles-✓-259D6C.svg?style=flat
796
+ [🚎yard-current]: http://rubydoc.info/gems/debug_logging
797
+ [🚎yard-head]: https://debug-logging.galtzo.com
798
+ [💎stone_checksums]: https://github.com/galtzo-floss/stone_checksums
799
+ [💎SHA_checksums]: https://gitlab.com/galtzo-floss/debug_logging/-/tree/main/checksums
800
+ [💎rlts]: https://github.com/rubocop-lts/rubocop-lts
801
+ [💎rlts-img]: https://img.shields.io/badge/code_style_&_linting-rubocop--lts-34495e.svg?plastic&logo=ruby&logoColor=white
802
+ [💎appraisal2]: https://github.com/appraisal-rb/appraisal2
803
+ [💎appraisal2-img]: https://img.shields.io/badge/appraised_by-appraisal2-34495e.svg?plastic&logo=ruby&logoColor=white
804
+ [💎d-in-dvcs]: https://railsbling.com/posts/dvcs/put_the_d_in_dvcs/
805
+
806
+ <!-- kettle-jem:metadata:start -->
807
+ | Field | Value |
808
+ |---|---|
809
+ | Package | debug_logging |
810
+ | Description | 🪲 Unobtrusive debug logging for Ruby. NO LITTERING.<br>Automatically log selected methods and their arguments as they are called at runtime! |
811
+ | Homepage | https://github.com/galtzo-floss/debug_logging |
812
+ | Source | https://github.com/galtzo-floss/debug_logging/tree/v4.0.3 |
813
+ | License | `MIT` |
814
+ | Funding | https://github.com/sponsors/pboling, https://issuehunt.io/u/pboling, https://ko-fi.com/pboling, https://liberapay.com/pboling/donate, https://opencollective.com/galtzo-floss, 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 |
815
+ <!-- kettle-jem:metadata:end -->