activesupport-broadcast_logger 2.0.3 → 3.0.0

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,113 +1,133 @@
1
- # Activesupport::BroadcastLogger
2
-
3
- [![Version][👽versioni]][👽version]
4
- [![License: MIT][📄license-img]][📄license-ref]
5
- [![Downloads Rank][👽dl-ranki]][👽dl-rank]
6
- [![Open Source Helpers][👽oss-helpi]][👽oss-help]
7
- [![Depfu][🔑depfui♻️]][🔑depfu]
8
- [![CodeCov][🔑codecovi♻️]][🔑codecov]
9
- [![Test Coverage][🔑cc-covi♻️]][🔑cc-cov]
10
- [![Maintainability][🔑cc-mnti♻️]][🔑cc-mnt]
11
- [![CI Supported Build][🚎6-s-wfi]][🚎6-s-wf]
12
- [![CI Legacy Build][🚎4-lg-wfi]][🚎4-lg-wf]
13
- [![CI Unsupported Build][🚎7-us-wfi]][🚎7-us-wf]
14
- [![CI Heads Build][🚎3-hd-wfi]][🚎3-hd-wf]
15
- [![CI Coverage Build][🚎2-cov-wfi]][🚎2-cov-wf]
16
- [![CI Style Build][🚎5-st-wfi]][🚎5-st-wf]
17
-
18
- <!--- ( 👽️ INFO LINKS ) -->
19
-
20
- [👽dl-rank]: https://rubygems.org/gems/activesupport-broadcast_logger
21
- [👽dl-ranki]: https://img.shields.io/gem/rd/activesupport-broadcast_logger.svg
22
- [👽oss-help]: https://www.codetriage.com/pboling/activesupport-broadcast_logger
23
- [👽oss-helpi]: https://www.codetriage.com/pboling/activesupport-broadcast_logger/badges/users.svg
24
- [👽version]: https://rubygems.org/gems/activesupport-broadcast_logger
25
- [👽versioni]: https://img.shields.io/gem/v/activesupport-broadcast_logger.svg
1
+ <a href="https://github.com/galtzo-floss"><img alt="galtzo-floss Logo by GitHub" src="https://github.com/galtzo-floss.png?size=192" width="14%" align="right"/></a>
26
2
 
27
- <!--- ( 🔑 KEYED LINKS ) -->
28
-
29
- [🔑cc-mnt]: https://codeclimate.com/github/pboling/activesupport-broadcast_logger/maintainability
30
- [🔑cc-mnti♻️]: https://api.codeclimate.com/v1/badges/c19ba0b6a247c540ae50/maintainability
31
- [🔑cc-cov]: https://codeclimate.com/github/pboling/activesupport-broadcast_logger/test_coverage
32
- [🔑cc-covi♻️]: https://api.codeclimate.com/v1/badges/c19ba0b6a247c540ae50/test_coverage
33
- [🔑codecov]: https://codecov.io/gh/pboling/activesupport-broadcast_logger
34
- [🔑codecovi♻️]: https://codecov.io/gh/pboling/activesupport-broadcast_logger/branch/main/graph/badge.svg?token=1oWkmE3qSs
35
- [🔑depfu]: https://depfu.com/github/pboling/activesupport-broadcast_logger
36
- [🔑depfui♻️]: https://badges.depfu.com/badges/f6465157c6cc8971bff86ea59376bd8d/count.svg
37
-
38
- <!--- ( 🚎 BUILD LINKS ) -->
39
-
40
- [🚎2-cov-wf]: https://github.com/pboling/activesupport-broadcast_logger/actions/workflows/coverage.yml
41
- [🚎2-cov-wfi]: https://github.com/pboling/activesupport-broadcast_logger/actions/workflows/coverage.yml/badge.svg
42
- [🚎3-hd-wf]: https://github.com/pboling/activesupport-broadcast_logger/actions/workflows/heads.yml
43
- [🚎3-hd-wfi]: https://github.com/pboling/activesupport-broadcast_logger/actions/workflows/heads.yml/badge.svg
44
- [🚎4-lg-wf]: https://github.com/pboling/activesupport-broadcast_logger/actions/workflows/legacy.yml
45
- [🚎4-lg-wfi]: https://github.com/pboling/activesupport-broadcast_logger/actions/workflows/legacy.yml/badge.svg
46
- [🚎5-st-wf]: https://github.com/pboling/activesupport-broadcast_logger/actions/workflows/style.yml
47
- [🚎5-st-wfi]: https://github.com/pboling/activesupport-broadcast_logger/actions/workflows/style.yml/badge.svg
48
- [🚎6-s-wf]: https://github.com/pboling/activesupport-broadcast_logger/actions/workflows/supported.yml
49
- [🚎6-s-wfi]: https://github.com/pboling/activesupport-broadcast_logger/actions/workflows/supported.yml/badge.svg
50
- [🚎7-us-wf]: https://github.com/pboling/activesupport-broadcast_logger/actions/workflows/unsupported.yml
51
- [🚎7-us-wfi]: https://github.com/pboling/activesupport-broadcast_logger/actions/workflows/unsupported.yml/badge.svg
52
-
53
- -----
54
-
55
- [![Liberapay Patrons][⛳liberapay-img]][⛳liberapay]
56
- [![Sponsor Me on Github][🖇sponsor-img]][🖇sponsor]
57
- [![Polar Shield][🖇polar-img]][🖇polar]
58
- [![Donate to my FLOSS or refugee efforts at ko-fi.com][🖇kofi-img]][🖇kofi]
59
- [![Donate to my FLOSS or refugee efforts using Patreon][🖇patreon-img]][🖇patreon]
60
-
61
- [⛳liberapay-img]: https://img.shields.io/liberapay/patrons/pboling.svg?logo=liberapay
62
- [⛳liberapay]: https://liberapay.com/pboling/donate
63
- [🖇sponsor-img]: https://img.shields.io/badge/Sponsor_Me!-pboling.svg?style=social&logo=github
64
- [🖇sponsor]: https://github.com/sponsors/pboling
65
- [🖇polar-img]: https://polar.sh/embed/seeks-funding-shield.svg?org=pboling
66
- [🖇polar]: https://polar.sh/pboling
67
- [🖇kofi-img]: https://img.shields.io/badge/buy%20me%20coffee-donate-yellow.svg
68
- [🖇kofi]: https://ko-fi.com/O5O86SNP4
69
- [🖇patreon-img]: https://img.shields.io/badge/patreon-donate-yellow.svg
70
- [🖇patreon]: https://patreon.com/galtzo
3
+ # 💎 ActiveSupport::BroadcastLogger
71
4
 
72
- This is an **unofficial** extraction of Rails' v8 `ActiveSupport::BroadcastLogger` which has been:
73
- * refactored ([here](https://github.com/rails/rails/pull/53093)) to only execute blocks once, and
74
- * backported to work with Rails v5.2+ and Ruby 2.7+.
5
+ [![Version][👽versioni]][👽version] [![Ruby Users Forum][✉️ruby-forum-top-img]][✉️ruby-forum] [![GitHub tag (latest SemVer)][⛳️tag-img]][⛳️tag] [![License: MIT][📄license-img]][📄license] [![Total downloads][👽dl-ranki]][👽dl-rank] [![CodeCov Test Coverage][🏀codecovi]][🏀codecov] [![Coveralls Test Coverage][🏀coveralls-img]][🏀coveralls] [![QLTY Test Coverage][🏀qlty-covi]][🏀qlty-cov] [![QLTY Maintainability][🏀qlty-mnti]][🏀qlty-mnt] [![CI Heads][🚎3-hd-wfi]][🚎3-hd-wf] [![CI Runtime Dependencies @ HEAD][🚎12-crh-wfi]][🚎12-crh-wf] [![CI Current][🚎11-c-wfi]][🚎11-c-wf] [![CI Truffle Ruby][🚎9-t-wfi]][🚎9-t-wf] [![CI JRuby][🚎10-j-wfi]][🚎10-j-wf] [![Deps Locked][🚎13-🔒️-wfi]][🚎13-🔒️-wf] [![Deps Unlocked][🚎14-🔓️-wfi]][🚎14-🔓️-wf] [![CI Test Coverage][🚎2-cov-wfi]][🚎2-cov-wf] [![CI Style][🚎5-st-wfi]][🚎5-st-wf] [![Apache SkyWalking Eyes License Compatibility Check][🚎15-🪪-wfi]][🚎15-🪪-wf]
75
6
 
76
- If the suite of gems this is part of is loaded in any version of Rails >= 5.2,
77
- it will replace the logging tooling completely.
7
+ `if ci_badges.map(&:color).detect { it != "green"}` ☝️ [let me know on Discord][✉️discord-invite] or [RubyForum][✉️ruby-forum], as I may have missed the notification.
78
8
 
79
- This gem is automatically depended on and configured by [activesupport-tagged_logging][activesupport-tagged_logging],
80
- so you don't need to do anything beyond adding **that gem** to your app's Gemfile, and configuring it.
9
+ ---
81
10
 
82
- Simplified, the load order is basically:
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.
83
12
 
84
- - Enhanced [activesupport-logger][activesupport-logger] which was ripped from Rails v8.0
85
- - Enhanced [activesupport-broadcast_logger][activesupport-broadcast_logger] (this gem) which was ripped from Rails v8.0, and [this PR][pr-53093]
86
- - Enhanced [activesupport-tagged_logging][activesupport-tagged_logging] which was ripped from Rails v8.0, and [this PR][pr-53105]
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]
87
14
 
88
- Above load order is handled for you in [activesupport-tagged_logging][activesupport-tagged_logging] (not this gem),
89
- so depend on that, not this. ;)
15
+ <details markdown="1">
16
+ <summary>👣 How will this project approach the September 2025 hostile takeover of RubyGems? 🚑️</summary>
90
17
 
91
- [activesupport-logger]: https://github.com/pboling/activesupport-logger
92
- [activesupport-broadcast_logger]: https://github.com/pboling/activesupport-broadcast_logger
93
- [activesupport-tagged_logging]: https://github.com/pboling/activesupport-tagged_logging
94
- [pr-53105]: https://github.com/rails/rails/pull/53105
95
- [pr-53093]: https://github.com/rails/rails/pull/53093
18
+ I've summarized my thoughts in [this blog post](https://dev.to/galtzo/hostile-takeover-of-rubygems-my-thoughts-5hlo).
96
19
 
97
- ## Installation
20
+ </details>
98
21
 
99
- NOTE: **Don't do this**. Instead, use [activesupport-tagged_logging][activesupport-tagged_logging]
100
- (not this gem, but which uses this gem as a dependency).
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>
23
+
24
+ Provides the Rails 8 `ActiveSupport::BroadcastLogger` API as a backport for
25
+ older supported Rails and Ruby versions. It broadcasts logger calls to multiple
26
+ underlying loggers and exposes their combined severity state.
27
+
28
+ ## 💡 Info you can shake a stick at
29
+
30
+ | Tokens to Remember | [![Gem name][⛳️name-img]][⛳️gem-name] [![Gem namespace][⛳️namespace-img]][⛳️gem-namespace] |
31
+ |-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
32
+ | 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]|
33
+ | 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]|
34
+ | Works with MRI Ruby 4 | [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf] [![Ruby HEAD Compat][💎ruby-headi]][🚎3-hd-wf]|
35
+ | 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]|
36
+ | Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Get help from RubyForum][✉️ruby-forum-img]][✉️ruby-forum] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] |
37
+ | 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] |
38
+ | 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] |
39
+ | 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] |
40
+ | 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] |
41
+ | 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] |
42
+ | `...` 💖 | [![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] |
43
+
44
+ ### Compatibility
45
+
46
+ Compatible with MRI Ruby, JRuby, and TruffleRuby.
47
+ CI workflows and Appraisals are generated for MRI Ruby 3.1.0+.
48
+ This test floor is configured by `ruby.test_minimum` in `.kettle-jem.yml` and
49
+ may be higher than the gem's runtime compatibility floor when legacy Rubies are
50
+ not practical for the current toolchain.
51
+
52
+ <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>
53
+
54
+ The _amazing_ test matrix is powered by the kettle-dev stack.
55
+
56
+ <details markdown="1">
57
+ <summary>How kettle-dev manages complexity in tests</summary>
58
+
59
+ | Gem | Source | Role | Total downloads |
60
+ |-----|--------|------|---------------------|
61
+ | [appraisal2](https://clickgems.clickhouse.com/dashboard/appraisal2) | [GitHub](https://github.com/appraisal-rb/appraisal2) | multi-dependency Appraisal matrix generation | [![Total downloads for appraisal2](https://img.shields.io/gem/dt/appraisal2.svg?style=flat-square)](https://clickgems.clickhouse.com/dashboard/appraisal2) |
62
+ | [appraisal2-rubocop](https://clickgems.clickhouse.com/dashboard/appraisal2-rubocop) | [GitHub](https://github.com/appraisal-rb/appraisal2-rubocop) | RuboCop Appraisal generator integration | [![Total downloads for appraisal2-rubocop](https://img.shields.io/gem/dt/appraisal2-rubocop.svg?style=flat-square)](https://clickgems.clickhouse.com/dashboard/appraisal2-rubocop) |
63
+ | [kettle-dev](https://clickgems.clickhouse.com/dashboard/kettle-dev) | [GitHub](https://github.com/kettle-dev/kettle-dev) | development, release, and CI workflow tooling | [![Total downloads for kettle-dev](https://img.shields.io/gem/dt/kettle-dev.svg?style=flat-square)](https://clickgems.clickhouse.com/dashboard/kettle-dev) |
64
+ | [kettle-jem](https://clickgems.clickhouse.com/dashboard/kettle-jem) | [GitHub](https://github.com/kettle-dev/kettle-jem) | Appraisals & CI workflow templates | [![Total downloads for kettle-jem](https://img.shields.io/gem/dt/kettle-jem.svg?style=flat-square)](https://clickgems.clickhouse.com/dashboard/kettle-jem) |
65
+ | [kettle-soup-cover](https://clickgems.clickhouse.com/dashboard/kettle-soup-cover) | [GitHub](https://github.com/kettle-dev/kettle-soup-cover) | SimpleCov coverage policy and reporting | [![Total downloads for kettle-soup-cover](https://img.shields.io/gem/dt/kettle-soup-cover.svg?style=flat-square)](https://clickgems.clickhouse.com/dashboard/kettle-soup-cover) |
66
+ | [kettle-test](https://clickgems.clickhouse.com/dashboard/kettle-test) | [GitHub](https://github.com/kettle-dev/kettle-test) | standard test runner and coverage harness | [![Total downloads for kettle-test](https://img.shields.io/gem/dt/kettle-test.svg?style=flat-square)](https://clickgems.clickhouse.com/dashboard/kettle-test) |
67
+ | [rubocop-lts](https://clickgems.clickhouse.com/dashboard/rubocop-lts) | [GitHub](https://github.com/rubocop-lts/rubocop-lts) | Ruby-version-aware linting | [![Total downloads for rubocop-lts](https://img.shields.io/gem/dt/rubocop-lts.svg?style=flat-square)](https://clickgems.clickhouse.com/dashboard/rubocop-lts) |
68
+ | [turbo_tests2](https://clickgems.clickhouse.com/dashboard/turbo_tests2) | [GitHub](https://github.com/galtzo-floss/turbo_tests2) | parallel test execution | [![Total downloads for turbo_tests2](https://img.shields.io/gem/dt/turbo_tests2.svg?style=flat-square)](https://clickgems.clickhouse.com/dashboard/turbo_tests2) |
69
+
70
+ </details>
71
+
72
+ ### Federated DVCS
73
+
74
+ <details markdown="1">
75
+ <summary>Find this repo on federated forges (Coming soon!)</summary>
76
+
77
+ | Federated [DVCS][💎d-in-dvcs] Repository | Status | Issues | PRs | Wiki | CI |
78
+ |-------------------------------------------------|-------------------------------------------|-------------------|------------------|-----------------|----------------|
79
+ | 🧪 [galtzo-floss/activesupport-broadcast_logger on GitLab][📜src-gl] | The Truth | [💚][🤝gl-issues] | [💚][🤝gl-pulls] | [💚][📜gl-wiki] | 🐭 Tiny Matrix |
80
+ | 🧊 [galtzo-floss/activesupport-broadcast_logger on CodeBerg][📜src-cb] | An Ethical Mirror ([Donate][🤝cb-donate]) | [💚][🤝cb-issues] | [💚][🤝cb-pulls] | ➖ | ⭕️ No Matrix |
81
+ | 🐙 [galtzo-floss/activesupport-broadcast_logger on GitHub][📜src-gh] | Another Mirror | [💚][🤝gh-issues] | [💚][🤝gh-pulls] | [💚][📜gh-wiki] | 💯 Full Matrix |
82
+
83
+ </details>
84
+
85
+ ### Enterprise Support [![Tidelift](https://tidelift.com/badges/package/rubygems/activesupport-broadcast_logger)](https://tidelift.com/subscription/pkg/rubygems-activesupport-broadcast_logger?utm_source=rubygems-activesupport-broadcast_logger&utm_medium=referral&utm_campaign=readme)
86
+
87
+ Available as part of the Tidelift Subscription.
88
+
89
+ <details markdown="1">
90
+ <summary>Need enterprise-level guarantees?</summary>
91
+
92
+ 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.
93
+
94
+ [![Get help from me on Tidelift][🏙️entsup-tidelift-img]][🏙️entsup-tidelift]
95
+
96
+ - 💡Subscribe for support guarantees covering _all_ your FLOSS dependencies
97
+ - 💡Tidelift is part of [Sonar][🏙️entsup-tidelift-sonar]
98
+ - 💡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
99
+
100
+ Alternatively:
101
+
102
+ - [![Ruby Users Forum][✉️ruby-forum-img]][✉️ruby-forum]
103
+ - [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite]
104
+ - [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork]
105
+ - [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor]
106
+
107
+ </details>
108
+
109
+ ## ✨ Installation
101
110
 
102
111
  Install the gem and add to the application's Gemfile by executing:
103
112
 
104
- $ bundle add activesupport-broadcast_logger
113
+ ```console
114
+ bundle add activesupport-broadcast_logger
115
+ ```
105
116
 
106
117
  If bundler is not being used to manage dependencies, install the gem by executing:
107
118
 
108
- $ gem install activesupport-broadcast_logger
119
+ ```console
120
+ gem install activesupport-broadcast_logger
121
+ ```
122
+
123
+ ## ⚙️ Configuration
109
124
 
110
- ## Usage
125
+ The gem is configured by the logger targets passed to
126
+ `ActiveSupport::BroadcastLogger.new` and by the normal ActiveSupport/Rails
127
+ logger settings. It has no separate global configuration file. Load-order
128
+ guidance in Basic Usage is part of the configuration contract.
129
+
130
+ ## 🔧 Basic Usage
111
131
 
112
132
  NOTE: **Don't do this**. Instead, use [activesupport-tagged_logging][activesupport-tagged_logging]
113
133
  (not this gem, but which uses this gem as a dependency, and also configures this gem for you).
@@ -128,51 +148,98 @@ Load order matters.
128
148
 
129
149
  NOTE: The bits of logic that are unique to this gem are in the namespace `Activesupport` (sic).
130
150
 
131
- ## General Info
132
-
133
- | Primary Namespaces | `Activesupport::BroadcastLogger` && `ActiveSupport::BroadcastLogger` && `Activesupport::FixPr53105` |
134
- |--------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
135
- | documentation | [on Github.com][homepage], [Latest release on RubyDoc.info][documentation], [HEAD on RubyDoc.info][documentation-head] |
136
- | 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) |
137
- | `...` 💖 | [![Follow Me on LinkedIn][🖇linkedin-img]][🖇linkedin] [![Find Me on WellFound:][✌️wellfound-img]][✌️wellfound] [![Find Me on CrunchBase][💲crunchbase-img]][💲crunchbase] [![My LinkTree][🌳linktree-img]][🌳linktree] [![Follow Me on Ruby.Social][🐘ruby-mast-img]][🐘ruby-mast] [![Tweet @ Peter][🐦tweet-img]][🐦tweet] [💻][coderme] [🌏][aboutme] |
138
-
139
- <!-- 7️⃣ spread 💖 -->
140
- [🐦tweet-img]: https://img.shields.io/twitter/follow/galtzo.svg?style=social&label=Follow%20%40galtzo
141
- [🐦tweet]: http://twitter.com/galtzo
142
- [🚎blog]: http://www.railsbling.com/tags/activesupport-broadcast_logger/
143
- [🚎blog-img]: https://img.shields.io/badge/blog-railsbling-brightgreen.svg?style=flat
144
- [🖇linkedin]: http://www.linkedin.com/in/peterboling
145
- [🖇linkedin-img]: https://img.shields.io/badge/PeterBoling-blue?style=plastic&logo=linkedin
146
- [✌️wellfound]: https://angel.co/u/peter-boling
147
- [✌️wellfound-img]: https://img.shields.io/badge/peter--boling-orange?style=plastic&logo=wellfound
148
- [💲crunchbase]: https://www.crunchbase.com/person/peter-boling
149
- [💲crunchbase-img]: https://img.shields.io/badge/peter--boling-purple?style=plastic&logo=crunchbase
150
- [🐘ruby-mast]: https://ruby.social/@galtzo
151
- [🐘ruby-mast-img]: https://img.shields.io/mastodon/follow/109447111526622197?domain=https%3A%2F%2Fruby.social&style=plastic&logo=mastodon&label=Ruby%20%40galtzo
152
- [🌳linktree]: https://linktr.ee/galtzo
153
- [🌳linktree-img]: https://img.shields.io/badge/galtzo-purple?style=plastic&logo=linktree
154
-
155
- <!-- Maintainer Contact Links -->
156
- [aboutme]: https://about.me/peter.boling
157
- [coderme]: https://coderwall.com/Peter%20Boling
151
+ ## 🦷 FLOSS Funding
152
+
153
+ While galtzo-floss tools are free software and will always be, the project would benefit immensely from some funding.
154
+ Raising a monthly budget of... "dollars" would make the project more sustainable.
155
+
156
+ We welcome both individual and corporate sponsors! We also offer a
157
+ wide array of funding channels to account for your preferences.
158
+ Currently, [Open Collective][🖇osc] is our preferred funding platform.
159
+
160
+ **If you're working in a company that's making significant use of galtzo-floss tools we'd
161
+ appreciate it if you suggest to your company to become a galtzo-floss sponsor.**
162
+
163
+ You can support the development of galtzo-floss tools via
164
+ [GitHub Sponsors][🖇sponsor],
165
+ [Liberapay][⛳liberapay],
166
+ [PayPal][🖇paypal],
167
+ [Open Collective][🖇osc]
168
+ and [Tidelift][🏙️entsup-tidelift].
169
+
170
+ | 📍 NOTE |
171
+ |----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
172
+ | 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. |
173
+
174
+ ### Open Collective for Individuals
175
+
176
+ Support us with a monthly donation and help us continue our activities. [[Become a backer](https://opencollective.com/galtzo-floss#backer)]
177
+
178
+ NOTE: [kettle-readme-backers][kettle-readme-backers] updates this list every day, automatically.
179
+
180
+ <!-- OPENCOLLECTIVE-INDIVIDUALS:START -->
181
+ No backers yet. Be the first!
182
+ <!-- OPENCOLLECTIVE-INDIVIDUALS:END -->
183
+
184
+ ### Open Collective for Organizations
185
+
186
+ 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)]
187
+
188
+ NOTE: [kettle-readme-backers][kettle-readme-backers] updates this list every day, automatically.
189
+
190
+ <!-- OPENCOLLECTIVE-ORGANIZATIONS:START -->
191
+ No sponsors yet. Be the first!
192
+ <!-- OPENCOLLECTIVE-ORGANIZATIONS:END -->
193
+
194
+ [kettle-readme-backers]: https://github.com/galtzo-floss/activesupport-broadcast_logger/blob/main/bin/kettle-readme-backers
195
+
196
+ ### Another way to support open-source
197
+
198
+ 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).
199
+
200
+ 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`.
201
+
202
+ 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.
203
+
204
+ **[Floss-Funding.dev][🖇floss-funding.dev]: 👉️ No network calls. 👉️ No tracking. 👉️ No oversight. 👉️ Minimal crypto hashing. 💡 Easily disabled nags**
205
+
206
+ [![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]
207
+
208
+ ## 🔐 Security
209
+
210
+ See [SECURITY.md][🔐security].
158
211
 
159
212
  ## 🤝 Contributing
160
213
 
161
214
  If you need some ideas of where to help, you could work on adding more code coverage,
162
- or if it is already 💯 then check [issues][🤝issues], or [PRs][🤝pulls],
215
+ or if it is already 💯 (see [below](#code-coverage)) check [issues][🤝gh-issues] or [PRs][🤝gh-pulls],
163
216
  or use the gem and think about how it could be better.
164
217
 
165
- Also, see [CONTRIBUTING.md][🤝contributing].
218
+ We [![Keep A Changelog][📗keep-changelog-img]][📗keep-changelog] so if you make changes, remember to update it.
166
219
 
167
- [🤝issues]: https://github.com/pboling/activesupport-broadcast_logger/issues
168
- [🤝pulls]: https://github.com/pboling/activesupport-broadcast_logger/pulls
169
- [🤝contributing]: CONTRIBUTING.md
220
+ See [CONTRIBUTING.md][🤝contributing] for more detailed instructions.
221
+
222
+ ### 🚀 Release Instructions
223
+
224
+ See [CONTRIBUTING.md][🤝contributing].
170
225
 
171
226
  ### Code Coverage
172
227
 
173
- [![Coverage Graph][🔑codecov-g]][🔑codecov]
228
+ <details markdown="1">
229
+ <summary>Coverage service badges</summary>
230
+
231
+ [![Coverage Graph][🏀codecov-g]][🏀codecov]
174
232
 
175
- [🔑codecov-g]: https://codecov.io/gh/pboling/activesupport-broadcast_logger/graphs/tree.svg?token=cc6UdZCpAL
233
+ [![Coveralls Test Coverage][🏀coveralls-img]][🏀coveralls]
234
+
235
+ [![QLTY Test Coverage][🏀qlty-covi]][🏀qlty-cov]
236
+
237
+ </details>
238
+
239
+ ### 🪇 Code of Conduct
240
+
241
+ Everyone interacting with this project's codebases, issue trackers,
242
+ chat rooms and mailing lists agrees to follow the [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct].
176
243
 
177
244
  ## 🌈 Contributors
178
245
 
@@ -180,95 +247,291 @@ Also, see [CONTRIBUTING.md][🤝contributing].
180
247
 
181
248
  Made with [contributors-img][🖐contrib-rocks].
182
249
 
183
- [🖐contrib-rocks]: https://contrib.rocks
184
- [🖐contributors]: https://github.com/pboling/activesupport-broadcast_logger/graphs/contributors
185
- [🖐contributors-img]: https://contrib.rocks/image?repo=pboling/activesupport-broadcast_logger
250
+ Also see GitLab Contributors: [https://gitlab.com/galtzo-floss/activesupport-broadcast_logger/-/graphs/main][🚎contributors-gl]
186
251
 
187
- ## Star History
252
+ <details markdown="1">
253
+ <summary>⭐️ Star History</summary>
188
254
 
189
- <a href="https://star-history.com/#pboling/activesupport-broadcast_logger&Date">
255
+ <a href="https://star-history.com/galtzo-floss/activesupport-broadcast_logger&Date">
190
256
  <picture>
191
- <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=pboling/activesupport-broadcast_logger&type=Date&theme=dark" />
192
- <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=pboling/activesupport-broadcast_logger&type=Date" />
193
- <img alt="Star History Chart" src="https://api.star-history.com/svg?repos=pboling/activesupport-broadcast_logger&type=Date" />
257
+ <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=galtzo-floss/activesupport-broadcast_logger&type=Date&theme=dark" />
258
+ <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=galtzo-floss/activesupport-broadcast_logger&type=Date" />
259
+ <img alt="Star History Chart" src="https://api.star-history.com/svg?repos=galtzo-floss/activesupport-broadcast_logger&type=Date" />
194
260
  </picture>
195
261
  </a>
196
262
 
197
- ## 🪇 Code of Conduct
263
+ </details>
198
264
 
199
- Everyone interacting in this project's codebases, issue trackers,
200
- chat rooms and mailing lists is expected to follow the [code of conduct][🪇conduct].
265
+ ## 📌 Versioning
201
266
 
202
- [🪇conduct]: CODE_OF_CONDUCT.md
267
+ This library follows [![Semantic Versioning 2.0.0][📌semver-img]][📌semver] for its public API where practical.
268
+ For most applications, prefer the [Pessimistic Version Constraint][📌pvc] with two digits of precision.
203
269
 
204
- ## 📌 Versioning
270
+ For example:
271
+
272
+ ```ruby
273
+ spec.add_dependency("activesupport-broadcast_logger", "~> 3.0")
274
+ ```
205
275
 
206
- This Library adheres to [Semantic Versioning 2.0.0][📌semver].
207
- Violations of this scheme should be reported as bugs.
208
- Specifically, if a minor or patch version is released that breaks backward compatibility,
209
- a new version should be immediately released that restores compatibility.
210
- Breaking changes to the public API will only be introduced with new major versions.
276
+ <details markdown="1">
277
+ <summary>📌 Is "Platform Support" part of the public API? More details inside.</summary>
278
+
279
+ Dropping support for a platform can be a breaking change for affected users.
280
+ If a release changes supported platforms, it should be called out clearly in the changelog and versioned with that impact in mind.
211
281
 
212
282
  To get a better understanding of how SemVer is intended to work over a project's lifetime,
213
283
  read this article from the creator of SemVer:
214
284
 
215
285
  - ["Major Version Numbers are Not Sacred"][📌major-versions-not-sacred]
216
286
 
217
- As a result of this policy, you can (and should) specify a dependency on these libraries using
218
- the [Pessimistic Version Constraint][📌pvc] with two digits of precision.
287
+ </details>
219
288
 
220
- For example:
289
+ See [CHANGELOG.md][📌changelog] for a list of releases.
221
290
 
222
- ```ruby
223
- spec.add_dependency("activesupport-broadcast_logger", "~> 2.0")
224
- ```
291
+ ## 📄 License
225
292
 
226
- See [CHANGELOG.md][📌changelog] for list of releases.
293
+ The gem is available as open source under the terms of
294
+ the [MIT](https://github.com/galtzo-floss/activesupport-broadcast_logger/blob/main/MIT.md) [![License: MIT][📄license-img]][📄license-ref].
227
295
 
228
- <!--- ( 📌 VERSIONING LINKS ) -->
296
+ ### © Copyright
229
297
 
230
- [📌pvc]: http://guides.rubygems.org/patterns/#pessimistic-version-constraint
231
- [📌semver]: http://semver.org/
232
- [📌major-versions-not-sacred]: https://tom.preston-werner.com/2022/05/23/major-version-numbers-are-not-sacred.html
233
- [📌changelog]: CHANGELOG.md
298
+ See [LICENSE.md][📄license] for the official copyright notice.
234
299
 
235
- ## 📄 License
300
+ <details markdown="1">
301
+ <summary>Copyright holders</summary>
236
302
 
237
- The gem is available as open source under the terms of
238
- the [MIT License][📄license] [![License: MIT][📄license-img]][📄license-ref].
303
+ - Copyright (c) 2024-2026 Peter H. Boling
304
+ - Copyright (c) 2025 Aboling0
239
305
 
240
- See [LICENSE.txt][📄license] for the official [Copyright Notice][📄copyright-notice-explainer].
306
+ </details>
241
307
 
242
- <!--- ( 📄 LEGAL LINKS ) -->
308
+ ## 🤑 A request for help
243
309
 
244
- [📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
245
- [📄license]: LICENSE.txt
246
- [📄license-ref]: https://opensource.org/licenses/MIT
247
- [📄license-img]: https://img.shields.io/badge/License-MIT-green.svg
310
+ Maintainers have teeth and need to pay their dentists.
311
+ After getting laid off in an RIF in March, and encountering difficulty finding a new one,
312
+ I began spending most of my time building open source tools.
313
+ I'm hoping to be able to pay for my kids' health insurance this month,
314
+ so if you value the work I am doing, I need your support.
315
+ Please consider sponsoring me or the project.
248
316
 
249
- ### © Copyright
317
+ To join the community or get help, use the RubyForum or Discord.
318
+
319
+ [![Ruby Users Forum][✉️ruby-forum-img]][✉️ruby-forum]
320
+ [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite]
250
321
 
251
- * Copyright (c) David Heinemeier Hansson
252
- * Parts original to this extraction are:
253
- * Copyright (c) 2024 [Peter H. Boling][peterboling] of [Rails Bling][railsbling]
322
+ To say "thanks!" ☝️ Join the community or 👇️ send money.
254
323
 
255
- [railsbling]: http://www.railsbling.com
256
- [peterboling]: http://www.peterboling.com
257
- [bundle-group-pattern]: https://gist.github.com/pboling/4564780
258
- [documentation]: http://rubydoc.info/gems/activesupport-broadcast_logger
259
- [documentation-head]: https://rubydoc.info/github/pboling/activesupport-broadcast_logger/main
260
- [homepage]: https://github.com/pboling/activesupport-broadcast_logger
324
+ [![Sponsor galtzo-floss/activesupport-broadcast_logger 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]
261
325
 
262
- ## 🤑 One more thing
326
+ ### Please give the project a star ⭐ ♥.
263
327
 
264
- You made it to the bottom of the page,
265
- so perhaps you'll indulge me for another 20 seconds.
266
- I maintain many dozens of gems, including this one,
267
- because I want Ruby to be a great place for people to solve problems, big and small.
268
- Please consider supporting my efforts via the giant yellow link below,
269
- or one of the others at the head of this README.
328
+ 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.
270
329
 
271
- [![Buy me a latte][🖇buyme-img]][🖇buyme]
330
+ Thanks for RTFM. ☺️
272
331
 
332
+ [⛳liberapay-img]: https://img.shields.io/liberapay/goal/pboling.svg?logo=liberapay&color=a51611&style=flat
333
+ [⛳liberapay-bottom-img]: https://img.shields.io/liberapay/goal/pboling.svg?style=for-the-badge&logo=liberapay&color=a51611
334
+ [⛳liberapay]: https://liberapay.com/pboling/donate
335
+ [🖇osc-all-img]: https://img.shields.io/opencollective/all/galtzo-floss
336
+ [🖇osc-sponsors-img]: https://img.shields.io/opencollective/sponsors/galtzo-floss
337
+ [🖇osc-backers-img]: https://img.shields.io/opencollective/backers/galtzo-floss
338
+ [🖇osc-backers]: https://opencollective.com/galtzo-floss#backer
339
+ [🖇osc-backers-i]: https://opencollective.com/galtzo-floss/backers/badge.svg?style=flat
340
+ [🖇osc-sponsors]: https://opencollective.com/galtzo-floss#sponsor
341
+ [🖇osc-sponsors-i]: https://opencollective.com/galtzo-floss/sponsors/badge.svg?style=flat
342
+ [🖇osc-all-bottom-img]: https://img.shields.io/opencollective/all/galtzo-floss?style=for-the-badge
343
+ [🖇osc-sponsors-bottom-img]: https://img.shields.io/opencollective/sponsors/galtzo-floss?style=for-the-badge
344
+ [🖇osc-backers-bottom-img]: https://img.shields.io/opencollective/backers/galtzo-floss?style=for-the-badge
345
+ [🖇osc]: https://opencollective.com/galtzo-floss
346
+ [🖇sponsor-img]: https://img.shields.io/badge/Sponsor_Me!-pboling.svg?style=social&logo=github
347
+ [🖇sponsor-bottom-img]: https://img.shields.io/badge/Sponsor_Me!-pboling-blue?style=for-the-badge&logo=github
348
+ [🖇sponsor]: https://github.com/sponsors/pboling
349
+ [🖇kofi-img]: https://img.shields.io/badge/ko--fi-%E2%9C%93-a51611.svg?style=flat
350
+ [🖇kofi]: https://ko-fi.com/pboling
351
+ [🖇buyme-small-img]: https://img.shields.io/badge/buy_me_a_coffee-%E2%9C%93-a51611.svg?style=flat
273
352
  [🖇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
274
353
  [🖇buyme]: https://www.buymeacoffee.com/pboling
354
+ [🖇paypal-img]: https://img.shields.io/badge/donate-paypal-a51611.svg?style=flat&logo=paypal
355
+ [🖇paypal-bottom-img]: https://img.shields.io/badge/donate-paypal-a51611.svg?style=for-the-badge&logo=paypal&color=0A0A0A
356
+ [🖇paypal]: https://www.paypal.com/paypalme/peterboling
357
+ [🖇floss-funding.dev]: https://floss-funding.dev
358
+ [🖇floss-funding-gem]: https://github.com/galtzo-floss/floss_funding
359
+ [✉️discord-invite]: https://discord.gg/3qme4XHNKN
360
+ [✉️discord-invite-img-ftb]: https://img.shields.io/discord/1373797679469170758?style=for-the-badge&logo=discord
361
+ [✉️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
362
+ [✉️ruby-friends]: https://app.daily.dev/squads/rubyfriends
363
+ [✉️ruby-forum-top-img]: https://img.shields.io/discourse/topics?server=https%3A%2F%2Fwww.rubyforum.org&style=flat&logo=discourse&label=Ruby%20Users%20Forum
364
+ [✉️ruby-forum-img]: https://img.shields.io/discourse/topics?server=https%3A%2F%2Fwww.rubyforum.org&style=for-the-badge&logo=discourse&label=Ruby%20Users%20Forum
365
+ [✉️ruby-forum]: https://www.rubyforum.org/tag/galtzo-floss
366
+
367
+ [✇bundle-group-pattern]: https://gist.github.com/pboling/4564780
368
+ [⛳️gem-namespace]: https://github.com/galtzo-floss/activesupport-broadcast_logger
369
+ [activesupport-broadcast_logger]: https://github.com/galtzo-floss/activesupport-broadcast_logger
370
+ [activesupport-logger]: https://github.com/galtzo-floss/activesupport-logger
371
+ [activesupport-tagged_logging]: https://github.com/galtzo-floss/activesupport-tagged_logging
372
+ [⛳️namespace-img]: https://img.shields.io/badge/namespace-ActiveSupport::BroadcastLogger-3C2D2D.svg?style=square&logo=ruby&logoColor=white
373
+ [⛳️gem-name]: https://clickgems.clickhouse.com/dashboard/activesupport-broadcast_logger
374
+ [⛳️name-img]: https://img.shields.io/badge/name-activesupport--broadcast__logger-3C2D2D.svg?style=square&logo=rubygems&logoColor=red
375
+ [⛳️tag-img]: https://img.shields.io/github/tag/galtzo-floss/activesupport-broadcast_logger.svg
376
+ [⛳️tag]: https://github.com/galtzo-floss/activesupport-broadcast_logger/releases
377
+ [🚂maint-blog]: http://www.railsbling.com/tags/activesupport-broadcast_logger
378
+ [🚂maint-blog-img]: https://img.shields.io/badge/blog-railsbling-0093D0.svg?style=for-the-badge&logo=rubyonrails&logoColor=orange
379
+ [🚂maint-contact]: http://www.railsbling.com/contact
380
+ [🚂maint-contact-img]: https://img.shields.io/badge/Contact-Maintainer-0093D0.svg?style=flat&logo=rubyonrails&logoColor=red
381
+ [💖🖇linkedin]: http://www.linkedin.com/in/peterboling
382
+ [💖🖇linkedin-img]: https://img.shields.io/badge/LinkedIn-Profile-0B66C2?style=flat&logo=newjapanprowrestling
383
+ [💖✌️wellfound]: https://wellfound.com/u/peter-boling
384
+ [💖✌️wellfound-img]: https://img.shields.io/badge/peter--boling-orange?style=flat&logo=wellfound
385
+ [💖💲crunchbase]: https://www.crunchbase.com/person/peter-boling
386
+ [💖💲crunchbase-img]: https://img.shields.io/badge/peter--boling-purple?style=flat&logo=crunchbase
387
+ [💖🐘ruby-mast]: https://ruby.social/@galtzo
388
+ [💖🐘ruby-mast-img]: https://img.shields.io/mastodon/follow/109447111526622197?domain=https://ruby.social&style=flat&logo=mastodon&label=Ruby%20@galtzo
389
+ [💖🦋bluesky]: https://bsky.app/profile/galtzo.com
390
+ [💖🦋bluesky-img]: https://img.shields.io/badge/@galtzo.com-0285FF?style=flat&logo=bluesky&logoColor=white
391
+ [💖🌳linktree]: https://linktr.ee/galtzo
392
+ [💖🌳linktree-img]: https://img.shields.io/badge/galtzo-purple?style=flat&logo=linktree
393
+ [💖💁🏼‍♂️devto]: https://dev.to/galtzo
394
+ [💖💁🏼‍♂️devto-img]: https://img.shields.io/badge/dev.to-0A0A0A?style=flat&logo=devdotto&logoColor=white
395
+ [💖💁🏼‍♂️aboutme]: https://about.me/peter.boling
396
+ [💖💁🏼‍♂️aboutme-img]: https://img.shields.io/badge/about.me-0A0A0A?style=flat&logo=aboutme&logoColor=white
397
+ [💖🧊berg]: https://codeberg.org/pboling
398
+ [💖🐙hub]: https://github.org/pboling
399
+ [💖🛖hut]: https://sr.ht/~galtzo/
400
+ [💖🧪lab]: https://gitlab.com/pboling
401
+ [👨🏼‍🏫expsup-upwork]: https://www.upwork.com/freelancers/~014942e9b056abdf86?mp_source=share
402
+ [👨🏼‍🏫expsup-upwork-img]: https://img.shields.io/badge/UpWork-13544E?style=for-the-badge&logo=Upwork&logoColor=white
403
+ [👨🏼‍🏫expsup-codementor]: https://www.codementor.io/peterboling?utm_source=github&utm_medium=button&utm_term=peterboling&utm_campaign=github
404
+ [👨🏼‍🏫expsup-codementor-img]: https://img.shields.io/badge/CodeMentor-Get_Help-1abc9c?style=for-the-badge&logo=CodeMentor&logoColor=white
405
+ [🏙️entsup-tidelift]: https://tidelift.com/subscription/pkg/rubygems-activesupport-broadcast_logger?utm_source=rubygems-activesupport-broadcast_logger&utm_medium=referral&utm_campaign=readme
406
+ [🏙️entsup-tidelift-img]: https://img.shields.io/badge/Tidelift_and_Sonar-Enterprise_Support-FD3456?style=for-the-badge&logo=sonar&logoColor=white
407
+ [🏙️entsup-tidelift-sonar]: https://blog.tidelift.com/tidelift-joins-sonar
408
+ [💁🏼‍♂️peterboling]: http://www.peterboling.com
409
+ [🚂railsbling]: http://www.railsbling.com
410
+ [📜src-gl-img]: https://img.shields.io/badge/GitLab-FBA326?style=for-the-badge&logo=Gitlab&logoColor=orange
411
+ [📜src-gl]: https://gitlab.com/galtzo-floss/activesupport-broadcast_logger
412
+ [📜src-cb-img]: https://img.shields.io/badge/CodeBerg-4893CC?style=for-the-badge&logo=CodeBerg&logoColor=blue
413
+ [📜src-cb]: https://codeberg.org/galtzo-floss/activesupport-broadcast_logger
414
+ [📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=GitHub&logoColor=green
415
+ [📜src-gh]: https://github.com/galtzo-floss/activesupport-broadcast_logger
416
+ [📜docs-cr-rd-img]: https://img.shields.io/badge/RubyDoc-Current_Release-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white
417
+ [📜docs-head-rd-img]: https://img.shields.io/badge/YARD_on_Galtzo.com-HEAD-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white
418
+ [📜gl-wiki]: https://gitlab.com/galtzo-floss/activesupport-broadcast_logger/-/wikis/home
419
+ [📜gh-wiki]: https://github.com/galtzo-floss/activesupport-broadcast_logger/wiki
420
+ [📜gl-wiki-img]: https://img.shields.io/badge/wiki-gitlab-943CD2.svg?style=for-the-badge&logo=gitlab&logoColor=white
421
+ [📜gh-wiki-img]: https://img.shields.io/badge/wiki-github-943CD2.svg?style=for-the-badge&logo=github&logoColor=white
422
+ [👽dl-rank]: https://clickgems.clickhouse.com/dashboard/activesupport-broadcast_logger
423
+ [👽dl-ranki]: https://img.shields.io/gem/dt/activesupport-broadcast_logger.svg
424
+ [👽version]: https://clickgems.clickhouse.com/dashboard/activesupport-broadcast_logger
425
+ [👽versioni]: https://img.shields.io/gem/v/activesupport-broadcast_logger.svg
426
+ [🏀qlty-mnt]: https://qlty.sh/gh/galtzo-floss/projects/activesupport-broadcast_logger
427
+ [🏀qlty-mnti]: https://qlty.sh/gh/galtzo-floss/projects/activesupport-broadcast_logger/maintainability.svg
428
+ [🏀qlty-cov]: https://qlty.sh/gh/galtzo-floss/projects/activesupport-broadcast_logger/metrics/code?sort=coverageRating
429
+ [🏀qlty-covi]: https://qlty.sh/gh/galtzo-floss/projects/activesupport-broadcast_logger/coverage.svg
430
+ [🏀codecov]: https://codecov.io/gh/galtzo-floss/activesupport-broadcast_logger
431
+ [🏀codecovi]: https://codecov.io/gh/galtzo-floss/activesupport-broadcast_logger/graph/badge.svg
432
+ [🏀coveralls]: https://coveralls.io/github/galtzo-floss/activesupport-broadcast_logger?branch=main
433
+ [🏀coveralls-img]: https://coveralls.io/repos/github/galtzo-floss/activesupport-broadcast_logger/badge.svg?branch=main
434
+ [🚎ruby-3.1-wf]: https://github.com/galtzo-floss/activesupport-broadcast_logger/actions/workflows/ruby-3.1.yml
435
+ [🚎ruby-3.2-wf]: https://github.com/galtzo-floss/activesupport-broadcast_logger/actions/workflows/ruby-3.2.yml
436
+ [🚎ruby-3.3-wf]: https://github.com/galtzo-floss/activesupport-broadcast_logger/actions/workflows/ruby-3.3.yml
437
+ [🚎ruby-3.4-wf]: https://github.com/galtzo-floss/activesupport-broadcast_logger/actions/workflows/ruby-3.4.yml
438
+ [🚎jruby-9.4-wf]: https://github.com/galtzo-floss/activesupport-broadcast_logger/actions/workflows/jruby-9.4.yml
439
+ [🚎jruby-10.0-wf]: https://github.com/galtzo-floss/activesupport-broadcast_logger/actions/workflows/jruby-10.0.yml
440
+ [🚎truby-23.1-wf]: https://github.com/galtzo-floss/activesupport-broadcast_logger/actions/workflows/truffleruby-23.1.yml
441
+ [🚎truby-24.2-wf]: https://github.com/galtzo-floss/activesupport-broadcast_logger/actions/workflows/truffleruby-24.2.yml
442
+ [🚎truby-25.0-wf]: https://github.com/galtzo-floss/activesupport-broadcast_logger/actions/workflows/truffleruby-25.0.yml
443
+ [🚎truby-33.0-wf]: https://github.com/galtzo-floss/activesupport-broadcast_logger/actions/workflows/truffleruby-33.0.yml
444
+ [🚎2-cov-wf]: https://github.com/galtzo-floss/activesupport-broadcast_logger/actions/workflows/coverage.yml
445
+ [🚎2-cov-wfi]: https://github.com/galtzo-floss/activesupport-broadcast_logger/actions/workflows/coverage.yml/badge.svg
446
+ [🚎3-hd-wf]: https://github.com/galtzo-floss/activesupport-broadcast_logger/actions/workflows/heads.yml
447
+ [🚎3-hd-wfi]: https://github.com/galtzo-floss/activesupport-broadcast_logger/actions/workflows/heads.yml/badge.svg
448
+ [🚎5-st-wf]: https://github.com/galtzo-floss/activesupport-broadcast_logger/actions/workflows/style.yml
449
+ [🚎5-st-wfi]: https://github.com/galtzo-floss/activesupport-broadcast_logger/actions/workflows/style.yml/badge.svg
450
+ [🚎9-t-wf]: https://github.com/galtzo-floss/activesupport-broadcast_logger/actions/workflows/truffle.yml
451
+ [🚎9-t-wfi]: https://github.com/galtzo-floss/activesupport-broadcast_logger/actions/workflows/truffle.yml/badge.svg
452
+ [🚎10-j-wf]: https://github.com/galtzo-floss/activesupport-broadcast_logger/actions/workflows/jruby.yml
453
+ [🚎10-j-wfi]: https://github.com/galtzo-floss/activesupport-broadcast_logger/actions/workflows/jruby.yml/badge.svg
454
+ [🚎11-c-wf]: https://github.com/galtzo-floss/activesupport-broadcast_logger/actions/workflows/current.yml
455
+ [🚎11-c-wfi]: https://github.com/galtzo-floss/activesupport-broadcast_logger/actions/workflows/current.yml/badge.svg
456
+ [🚎12-crh-wf]: https://github.com/galtzo-floss/activesupport-broadcast_logger/actions/workflows/dep-heads.yml
457
+ [🚎12-crh-wfi]: https://github.com/galtzo-floss/activesupport-broadcast_logger/actions/workflows/dep-heads.yml/badge.svg
458
+ [🚎13-🔒️-wf]: https://github.com/galtzo-floss/activesupport-broadcast_logger/actions/workflows/locked_deps.yml
459
+ [🚎13-🔒️-wfi]: https://github.com/galtzo-floss/activesupport-broadcast_logger/actions/workflows/locked_deps.yml/badge.svg
460
+ [🚎14-🔓️-wf]: https://github.com/galtzo-floss/activesupport-broadcast_logger/actions/workflows/unlocked_deps.yml
461
+ [🚎14-🔓️-wfi]: https://github.com/galtzo-floss/activesupport-broadcast_logger/actions/workflows/unlocked_deps.yml/badge.svg
462
+ [🚎15-🪪-wf]: https://github.com/galtzo-floss/activesupport-broadcast_logger/actions/workflows/license-eye.yml
463
+ [🚎15-🪪-wfi]: https://github.com/galtzo-floss/activesupport-broadcast_logger/actions/workflows/license-eye.yml/badge.svg
464
+ [💎ruby-3.1i]: https://img.shields.io/badge/Ruby-3.1-CC342D?style=for-the-badge&logo=ruby&logoColor=white
465
+ [💎ruby-3.2i]: https://img.shields.io/badge/Ruby-3.2-CC342D?style=for-the-badge&logo=ruby&logoColor=white
466
+ [💎ruby-3.3i]: https://img.shields.io/badge/Ruby-3.3-CC342D?style=for-the-badge&logo=ruby&logoColor=white
467
+ [💎ruby-3.4i]: https://img.shields.io/badge/Ruby-3.4-CC342D?style=for-the-badge&logo=ruby&logoColor=white
468
+ [💎ruby-c-i]: https://img.shields.io/badge/Ruby-current-CC342D?style=for-the-badge&logo=ruby&logoColor=green
469
+ [💎ruby-headi]: https://img.shields.io/badge/Ruby-HEAD-CC342D?style=for-the-badge&logo=ruby&logoColor=blue
470
+ [💎truby-23.1i]: https://img.shields.io/badge/Truffle_Ruby-23.1-34BCB1?style=for-the-badge&logo=ruby&logoColor=pink
471
+ [💎truby-24.2i]: https://img.shields.io/badge/Truffle_Ruby-24.2-34BCB1?style=for-the-badge&logo=ruby&logoColor=pink
472
+ [💎truby-25.0i]: https://img.shields.io/badge/Truffle_Ruby-25.0-34BCB1?style=for-the-badge&logo=ruby&logoColor=pink
473
+ [💎truby-33.0i]: https://img.shields.io/badge/Truffle_Ruby-33.0-34BCB1?style=for-the-badge&logo=ruby&logoColor=pink
474
+ [💎truby-c-i]: https://img.shields.io/badge/Truffle_Ruby-current-34BCB1?style=for-the-badge&logo=ruby&logoColor=green
475
+ [💎truby-headi]: https://img.shields.io/badge/Truffle_Ruby-HEAD-34BCB1?style=for-the-badge&logo=ruby&logoColor=blue
476
+ [💎jruby-9.4i]: https://img.shields.io/badge/JRuby-9.4-FBE742?style=for-the-badge&logo=ruby&logoColor=red
477
+ [💎jruby-10.0i]: https://img.shields.io/badge/JRuby-10.0-FBE742?style=for-the-badge&logo=ruby&logoColor=red
478
+ [💎jruby-c-i]: https://img.shields.io/badge/JRuby-current-FBE742?style=for-the-badge&logo=ruby&logoColor=green
479
+ [💎jruby-headi]: https://img.shields.io/badge/JRuby-HEAD-FBE742?style=for-the-badge&logo=ruby&logoColor=blue
480
+ [🤝gh-issues]: https://github.com/galtzo-floss/activesupport-broadcast_logger/issues
481
+ [🤝gh-pulls]: https://github.com/galtzo-floss/activesupport-broadcast_logger/pulls
482
+ [🤝gl-issues]: https://gitlab.com/galtzo-floss/activesupport-broadcast_logger/-/issues
483
+ [🤝gl-pulls]: https://gitlab.com/galtzo-floss/activesupport-broadcast_logger/-/merge_requests
484
+ [🤝cb-issues]: https://codeberg.org/galtzo-floss/activesupport-broadcast_logger/issues
485
+ [🤝cb-pulls]: https://codeberg.org/galtzo-floss/activesupport-broadcast_logger/pulls
486
+ [🤝cb-donate]: https://donate.codeberg.org/
487
+ [🤝contributing]: https://github.com/galtzo-floss/activesupport-broadcast_logger/blob/main/CONTRIBUTING.md
488
+ [🏀codecov-g]: https://codecov.io/gh/galtzo-floss/activesupport-broadcast_logger/graph/badge.svg
489
+ [🖐contrib-rocks]: https://contrib.rocks
490
+ [🖐contributors]: https://github.com/galtzo-floss/activesupport-broadcast_logger/graphs/contributors
491
+ [🖐contributors-img]: https://contrib.rocks/image?repo=galtzo-floss/activesupport-broadcast_logger
492
+ [🚎contributors-gl]: https://gitlab.com/galtzo-floss/activesupport-broadcast_logger/-/graphs/main
493
+ [🪇conduct]: https://github.com/galtzo-floss/activesupport-broadcast_logger/blob/main/CODE_OF_CONDUCT.md
494
+ [🪇conduct-img]: https://img.shields.io/badge/Contributor_Covenant-2.1-259D6C.svg
495
+ [📌pvc]: http://guides.rubygems.org/patterns/#pessimistic-version-constraint
496
+ [📌semver]: https://semver.org/spec/v2.0.0.html
497
+ [📌semver-img]: https://img.shields.io/badge/semver-2.0.0-259D6C.svg?style=flat
498
+ [📌semver-breaking]: https://github.com/semver/semver/issues/716#issuecomment-869336139
499
+ [📌major-versions-not-sacred]: https://tom.preston-werner.com/2022/05/23/major-version-numbers-are-not-sacred.html
500
+ [📌changelog]: https://github.com/galtzo-floss/activesupport-broadcast_logger/blob/main/CHANGELOG.md
501
+ [📗keep-changelog]: https://keepachangelog.com/en/1.0.0/
502
+ [📗keep-changelog-img]: https://img.shields.io/badge/keep--a--changelog-1.0.0-34495e.svg?style=flat
503
+ [📌gitmoji]: https://gitmoji.dev
504
+ [📌gitmoji-img]: https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
505
+ [🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
506
+ [🧮kloc-img]: https://img.shields.io/badge/KLOC-0.065-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
507
+ [🔐security]: https://github.com/galtzo-floss/activesupport-broadcast_logger/blob/main/SECURITY.md
508
+ [🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
509
+ [📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
510
+ [📄license]: LICENSE.md
511
+ [📄license-ref]: https://github.com/galtzo-floss/activesupport-broadcast_logger/blob/main/MIT.md
512
+ [📄license-img]: https://img.shields.io/badge/License-MIT-259D6C.svg
513
+ [📄license-compat]: https://www.apache.org/legal/resolved.html#category-a
514
+ [📄license-compat-img]: https://img.shields.io/badge/Apache_Compatible:_Category_A-%E2%9C%93-259D6C.svg?style=flat&logo=Apache
515
+
516
+ [📄ilo-declaration]: https://www.ilo.org/declaration/lang--en/index.htm
517
+ [📄ilo-declaration-img]: https://img.shields.io/badge/ILO_Fundamental_Principles-✓-259D6C.svg?style=flat
518
+ [🚎yard-current]: http://rubydoc.info/gems/activesupport-broadcast_logger
519
+ [🚎yard-head]: https://activesupport-broadcast-logger.galtzo.com
520
+ [💎stone_checksums]: https://github.com/galtzo-floss/stone_checksums
521
+ [💎SHA_checksums]: https://gitlab.com/galtzo-floss/activesupport-broadcast_logger/-/tree/main/checksums
522
+ [💎rlts]: https://github.com/rubocop-lts/rubocop-lts
523
+ [💎rlts-img]: https://img.shields.io/badge/code_style_&_linting-rubocop--lts-34495e.svg?plastic&logo=ruby&logoColor=white
524
+ [💎appraisal2]: https://github.com/appraisal-rb/appraisal2
525
+ [💎appraisal2-img]: https://img.shields.io/badge/appraised_by-appraisal2-34495e.svg?plastic&logo=ruby&logoColor=white
526
+ [💎d-in-dvcs]: https://railsbling.com/posts/dvcs/put_the_d_in_dvcs/
527
+
528
+ <!-- kettle-jem:metadata:start -->
529
+ | Field | Value |
530
+ |---|---|
531
+ | Package | activesupport-broadcast_logger |
532
+ | Description | 💎 Rails v8 ActiveSupport::BroadcastLogger, fixed & backported to Rails v5.2+ & Ruby 2.7+ |
533
+ | Homepage | https://github.com/galtzo-floss/activesupport-broadcast_logger |
534
+ | Source | https://github.com/galtzo-floss/activesupport-broadcast_logger |
535
+ | License | `MIT` |
536
+ | 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/activesupport-broadcast_logger, https://www.buymeacoffee.com/pboling |
537
+ <!-- kettle-jem:metadata:end -->