sanitize_email 2.0.12 → 2.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9307cb56be3bde5294d38c2c1fb823458f458ea1db6e0868c55638b4b3126089
4
- data.tar.gz: 9d9d4aa8f7e9d95c0b972cae2fa82037af0ee1f0cf55b9240f65028069b2fa99
3
+ metadata.gz: e428d45c83d29ee8b27c9752d85bb8b53518bd3ea1ababeab6829719e6422c7a
4
+ data.tar.gz: 87522e8f3cb045b99c8a1d3ee16253182c76a673542d3de812f3650c609ca74a
5
5
  SHA512:
6
- metadata.gz: 0521e2513ab55d62be47c2957f88509a5ca299bdf11875f7d75b1cddfe52ccbef04e96becafa684c4bf41ad8ee94155eb99217a72178dbc1f9d6613295a6ce39
7
- data.tar.gz: b68b04b772ff25d83d095365ad357a809aa530832626a19d0296c38517834c7f3e4748c379ecd400683ad64b8fce6b42a3d6aff26674ebcbcd25283723dfe884
6
+ metadata.gz: 3af8f96025e00cbcdb2a6e76e661e0a312db260ee564d1312aad841e19c6ac26b61cbd29ca61fd42ad74fecc7dcf5f91191d03743d2e2f6ebadd0f8b6401b5c1
7
+ data.tar.gz: cdd89499132bb6ac8845678113eb857aac44db01214062207d8e18c921fef04091c05b0950fe0b0338390dfd759f4e4cd1692200894e1a161138a872acdfd81e
checksums.yaml.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -30,6 +30,27 @@ Please file a bug if you notice a violation of semantic versioning.
30
30
 
31
31
  ### Security
32
32
 
33
+ ## [2.0.13] - 2026-07-02
34
+
35
+ - TAG: [v2.0.13][2.0.13t]
36
+ - COVERAGE: 83.12% -- 320/385 lines in 13 files
37
+ - BRANCH COVERAGE: 76.07% -- 89/117 branches in 13 files
38
+ - 51.14% documented
39
+
40
+ ### Added
41
+
42
+ - Added support for JRuby 10.1 and TruffleRuby 34.0.
43
+
44
+ ### Changed
45
+
46
+ - Retemplated project metadata and CI/development automation with `kettle-jem` v7.0.0.
47
+
48
+ ### Fixed
49
+
50
+ - Root development bundle now includes the default Rails 7.2 test stack so
51
+ `bundle exec kettle-test` can load `rails_helper` and Combustion.
52
+ - Package configured license files in gem release file lists.
53
+
33
54
  ## [2.0.12] - 2026-06-14
34
55
 
35
56
  - TAG: [v2.0.12][2.0.12t]
@@ -461,7 +482,9 @@ Old version?
461
482
  * Fixed require paths
462
483
  * added about.yml and this CHANGELOG
463
484
 
464
- [Unreleased]: https://github.com/galtzo-floss/sanitize_email/compare/v2.0.12...HEAD
485
+ [Unreleased]: https://github.com/galtzo-floss/sanitize_email/compare/v2.0.13...HEAD
486
+ [2.0.13]: https://github.com/galtzo-floss/sanitize_email/compare/v2.0.12...v2.0.13
487
+ [2.0.13t]: https://github.com/galtzo-floss/sanitize_email/releases/tag/v2.0.13
465
488
  [2.0.12]: https://github.com/galtzo-floss/sanitize_email/compare/v2.0.11...v2.0.12
466
489
  [2.0.12t]: https://github.com/galtzo-floss/sanitize_email/releases/tag/v2.0.12
467
490
  [2.0.11]: https://github.com/galtzo-floss/sanitize_email/compare/v2.0.10...v2.0.11
data/CONTRIBUTING.md CHANGED
@@ -109,14 +109,14 @@ Git diff driver setup
109
109
  - Git hosting forges generally ignore external diff drivers, so pull request views may still show raw textual diffs even when local `git diff` uses semantic drivers.
110
110
 
111
111
  ```console
112
- K_JEM_TEMPLATING=true bundle exec kettle-jem install
112
+ K_JEM_TEMPLATING=true kettle-jem install
113
113
  ```
114
114
 
115
115
  Troubleshooting Git diffs
116
116
  - Use `git diff --no-ext-diff` to compare against Git's built-in diff output.
117
117
  - Use `git diff --no-textconv` when a textconv projection obscures the raw file bytes you need to inspect.
118
118
  - If Git reports a missing `smorg-*` executable, rerun `bundle install` and the setup command above, then check `git config --local --get-regexp '^diff\.smorg-'`.
119
- - To remove managed local entries, run `K_JEM_TEMPLATING=true bundle exec kettle-jem install --undo`; remove global command registrations with `git config --global --unset-all diff.smorg-ruby.command`.
119
+ - To remove managed local entries, run `K_JEM_TEMPLATING=true kettle-jem install --undo`; remove global command registrations with `git config --global --unset-all diff.smorg-ruby.command`.
120
120
 
121
121
  For a quick starting point, this repository’s `mise.toml` defines the shared defaults, and `.env.local` can override them locally. Copy `.env.local.example` to `.env.local`, use `KEY=value` lines, and either activate `mise` in your shell or run commands through `mise exec -C /path/to/project -- ...`.
122
122
 
@@ -131,9 +131,12 @@ toolchain, and it may be higher than the gemspec runtime floor.
131
131
  They are created and updated with the commands:
132
132
 
133
133
  ```console
134
- bin/rake appraisal:update
134
+ bin/rake appraisal:generate
135
135
  ```
136
136
 
137
+ Use `bin/rake appraisal:update` when you intentionally need to resolve fresh
138
+ appraisal locks.
139
+
137
140
  If you need to reset all gemfiles/*.gemfile.lock files:
138
141
 
139
142
  ```console
data/FUNDING.md CHANGED
@@ -6,7 +6,7 @@ Many paths lead to being a sponsor or a backer of this project. Are you on such
6
6
 
7
7
  [![OpenCollective Backers][🖇osc-backers-i]][🖇osc-backers] [![OpenCollective Sponsors][🖇osc-sponsors-i]][🖇osc-sponsors] [![Sponsor Me on Github][🖇sponsor-img]][🖇sponsor] [![Liberapay Goal Progress][⛳liberapay-img]][⛳liberapay] [![Donate on PayPal][🖇paypal-img]][🖇paypal]
8
8
 
9
- [![Buy me a coffee][🖇buyme-small-img]][🖇buyme] [![Donate on Polar][🖇polar-img]][🖇polar] [![Donate to my FLOSS efforts at ko-fi.com][🖇kofi-img]][🖇kofi] [![Donate to my FLOSS efforts using Patreon][🖇patreon-img]][🖇patreon]
9
+ [![Buy me a coffee][🖇buyme-small-img]][🖇buyme] [![Donate to my FLOSS efforts at ko-fi.com][🖇kofi-img]][🖇kofi]
10
10
 
11
11
  [⛳liberapay-img]: https://img.shields.io/liberapay/goal/pboling.svg?logo=liberapay&color=a51611&style=flat
12
12
  [⛳liberapay]: https://liberapay.com/pboling/donate
@@ -16,12 +16,8 @@ Many paths lead to being a sponsor or a backer of this project. Are you on such
16
16
  [🖇osc-sponsors-i]: https://opencollective.com/galtzo-floss/sponsors/badge.svg?style=flat
17
17
  [🖇sponsor-img]: https://img.shields.io/badge/Sponsor_Me!-pboling.svg?style=social&logo=github
18
18
  [🖇sponsor]: https://github.com/sponsors/pboling
19
- [🖇polar-img]: https://img.shields.io/badge/polar-donate-a51611.svg?style=flat
20
- [🖇polar]: https://polar.sh/pboling
21
19
  [🖇kofi-img]: https://img.shields.io/badge/ko--fi-%E2%9C%93-a51611.svg?style=flat
22
20
  [🖇kofi]: https://ko-fi.com/pboling
23
- [🖇patreon-img]: https://img.shields.io/badge/patreon-donate-a51611.svg?style=flat
24
- [🖇patreon]: https://patreon.com/galtzo
25
21
  [🖇buyme-small-img]: https://img.shields.io/badge/buy_me_a_coffee-%E2%9C%93-a51611.svg?style=flat
26
22
  [🖇buyme]: https://www.buymeacoffee.com/pboling
27
23
  [🖇paypal-img]: https://img.shields.io/badge/donate-paypal-a51611.svg?style=flat&logo=paypal
data/MIT.md ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ See [LICENSE.md](LICENSE.md) for the copyright notice.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
data/README.md CHANGED
@@ -10,9 +10,9 @@
10
10
 
11
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.
12
12
 
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]
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]
14
14
 
15
- <details>
15
+ <details markdown="1">
16
16
  <summary>👣 How will this project approach the September 2025 hostile takeover of RubyGems? 🚑️</summary>
17
17
 
18
18
  I've summarized my thoughts in [this blog post](https://dev.to/galtzo/hostile-takeover-of-rubygems-my-thoughts-5hlo).
@@ -36,9 +36,9 @@ It's particularly helpful when you want to prevent the delivery of email (e.g. i
36
36
 
37
37
  | Tokens to Remember | [![Gem name][⛳️name-img]][⛳️gem-name] [![Gem namespace][⛳️namespace-img]][⛳️gem-namespace] |
38
38
  |-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
39
- | Works with JRuby | [![JRuby 9.2 Compat][💎jruby-9.2i]][🚎jruby-9.2-wf] [![JRuby 9.3 Compat][💎jruby-9.3i]][🚎jruby-9.3-wf] <br/> [![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]|
40
- | Works with Truffle Ruby | [![Truffle Ruby 22.3 Compat][💎truby-22.3i]][🚎truby-22.3-wf] [![Truffle Ruby 23.0 Compat][💎truby-23.0i]][🚎truby-23.0-wf] [![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]|
41
- | 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]|
39
+ | Works with JRuby | [![JRuby 9.2 Compat][💎jruby-9.2i]][🚎jruby-9.2-wf] [![JRuby 9.3 Compat][💎jruby-9.3i]][🚎jruby-9.3-wf] <br/> [![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]|
40
+ | Works with Truffle Ruby | [![Truffle Ruby 22.3 Compat][💎truby-22.3i]][🚎truby-22.3-wf] [![Truffle Ruby 23.0 Compat][💎truby-23.0i]][🚎truby-23.0-wf] [![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]|
41
+ | Works with MRI Ruby 4 | [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf] [![Ruby HEAD Compat][💎ruby-headi]][🚎3-hd-wf]|
42
42
  | Works with MRI Ruby 3 | [![Ruby 3.0 Compat][💎ruby-3.0i]][🚎ruby-3.0-wf] [![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]|
43
43
  | Works with MRI Ruby 2 | ![Ruby 2.3 Compat][💎ruby-2.3i] <br/> [![Ruby 2.4 Compat][💎ruby-2.4i]][🚎ruby-2.4-wf] [![Ruby 2.5 Compat][💎ruby-2.5i]][🚎ruby-2.5-wf] [![Ruby 2.6 Compat][💎ruby-2.6i]][🚎ruby-2.6-wf] [![Ruby 2.7 Compat][💎ruby-2.7i]][🚎ruby-2.7-wf]|
44
44
  | 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] |
@@ -57,9 +57,25 @@ This test floor is configured by `ruby.test_minimum` in `.kettle-jem.yml` and
57
57
  may be higher than the gem's runtime compatibility floor when legacy Rubies are
58
58
  not practical for the current toolchain.
59
59
 
60
- | 🚚 _Amazing_ test matrix was brought to you by | 🔎 appraisal2 🔎 and the color 💚 green 💚 |
61
- |------------------------------------------------|--------------------------------------------------------|
62
- | 👟 Check it out! | [github.com/appraisal-rb/appraisal2][💎appraisal2] ✨ |
60
+ <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>
61
+
62
+ The _amazing_ test matrix is powered by the kettle-dev stack.
63
+
64
+ <details markdown="1">
65
+ <summary>How kettle-dev manages complexity in tests</summary>
66
+
67
+ | Gem | Source | Role | Daily download rank |
68
+ |-----|--------|------|---------------------|
69
+ | [appraisal2](https://bestgems.org/gems/appraisal2) | [GitHub](https://github.com/appraisal-rb/appraisal2) | multi-dependency Appraisal matrix generation | [![Daily download rank for appraisal2](https://img.shields.io/gem/rd/appraisal2.svg?style=flat-square)](https://bestgems.org/gems/appraisal2) |
70
+ | [appraisal2-rubocop](https://bestgems.org/gems/appraisal2-rubocop) | [GitHub](https://github.com/appraisal-rb/appraisal2-rubocop) | RuboCop Appraisal generator integration | [![Daily download rank for appraisal2-rubocop](https://img.shields.io/gem/rd/appraisal2-rubocop.svg?style=flat-square)](https://bestgems.org/gems/appraisal2-rubocop) |
71
+ | [kettle-dev](https://bestgems.org/gems/kettle-dev) | [GitHub](https://github.com/kettle-dev/kettle-dev) | development, release, and CI workflow tooling | [![Daily download rank for kettle-dev](https://img.shields.io/gem/rd/kettle-dev.svg?style=flat-square)](https://bestgems.org/gems/kettle-dev) |
72
+ | [kettle-jem](https://bestgems.org/gems/kettle-jem) | [GitHub](https://github.com/kettle-dev/kettle-jem) | Appraisals & CI workflow templates | [![Daily download rank for kettle-jem](https://img.shields.io/gem/rd/kettle-jem.svg?style=flat-square)](https://bestgems.org/gems/kettle-jem) |
73
+ | [kettle-soup-cover](https://bestgems.org/gems/kettle-soup-cover) | [GitHub](https://github.com/kettle-dev/kettle-soup-cover) | SimpleCov coverage policy and reporting | [![Daily download rank for kettle-soup-cover](https://img.shields.io/gem/rd/kettle-soup-cover.svg?style=flat-square)](https://bestgems.org/gems/kettle-soup-cover) |
74
+ | [kettle-test](https://bestgems.org/gems/kettle-test) | [GitHub](https://github.com/kettle-dev/kettle-test) | standard test runner and coverage harness | [![Daily download rank for kettle-test](https://img.shields.io/gem/rd/kettle-test.svg?style=flat-square)](https://bestgems.org/gems/kettle-test) |
75
+ | [rubocop-lts](https://bestgems.org/gems/rubocop-lts) | [GitHub](https://github.com/rubocop-lts/rubocop-lts) | Ruby-version-aware linting | [![Daily download rank for rubocop-lts](https://img.shields.io/gem/rd/rubocop-lts.svg?style=flat-square)](https://bestgems.org/gems/rubocop-lts) |
76
+ | [turbo_tests2](https://bestgems.org/gems/turbo_tests2) | [GitHub](https://github.com/galtzo-floss/turbo_tests2) | parallel test execution | [![Daily download rank for turbo_tests2](https://img.shields.io/gem/rd/turbo_tests2.svg?style=flat-square)](https://bestgems.org/gems/turbo_tests2) |
77
+
78
+ </details>
63
79
 
64
80
  ### Federated DVCS
65
81
 
@@ -178,7 +194,7 @@ NOTE: [kettle-readme-backers][kettle-readme-backers] updates this list every day
178
194
  No sponsors yet. Be the first!
179
195
  <!-- OPENCOLLECTIVE-ORGANIZATIONS:END -->
180
196
 
181
- [kettle-readme-backers]: https://github.com/galtzo-floss/sanitize_email/blob/main/exe/kettle-readme-backers
197
+ [kettle-readme-backers]: https://github.com/galtzo-floss/sanitize_email/blob/main/bin/kettle-readme-backers
182
198
 
183
199
  ### Another way to support open-source
184
200
 
@@ -190,7 +206,7 @@ I’m developing a new library, [floss_funding][🖇floss-funding-gem], designed
190
206
 
191
207
  **[Floss-Funding.dev][🖇floss-funding.dev]: 👉️ No network calls. 👉️ No tracking. 👉️ No oversight. 👉️ Minimal crypto hashing. 💡 Easily disabled nags**
192
208
 
193
- [![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]
209
+ [![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]
194
210
 
195
211
  ## 🔐 Security
196
212
 
@@ -236,7 +252,7 @@ Made with [contributors-img][🖐contrib-rocks].
236
252
 
237
253
  Also see GitLab Contributors: [https://gitlab.com/galtzo-floss/sanitize_email/-/graphs/main][🚎contributors-gl]
238
254
 
239
- <details>
255
+ <details markdown="1">
240
256
  <summary>⭐️ Star History</summary>
241
257
 
242
258
  <a href="https://star-history.com/galtzo-floss/sanitize_email&Date">
@@ -343,12 +359,8 @@ Thanks for RTFM. ☺️
343
359
  [🖇sponsor-img]: https://img.shields.io/badge/Sponsor_Me!-pboling.svg?style=social&logo=github
344
360
  [🖇sponsor-bottom-img]: https://img.shields.io/badge/Sponsor_Me!-pboling-blue?style=for-the-badge&logo=github
345
361
  [🖇sponsor]: https://github.com/sponsors/pboling
346
- [🖇polar-img]: https://img.shields.io/badge/polar-donate-a51611.svg?style=flat
347
- [🖇polar]: https://polar.sh/pboling
348
362
  [🖇kofi-img]: https://img.shields.io/badge/ko--fi-%E2%9C%93-a51611.svg?style=flat
349
363
  [🖇kofi]: https://ko-fi.com/pboling
350
- [🖇patreon-img]: https://img.shields.io/badge/patreon-donate-a51611.svg?style=flat
351
- [🖇patreon]: https://patreon.com/galtzo
352
364
  [🖇buyme-small-img]: https://img.shields.io/badge/buy_me_a_coffee-%E2%9C%93-a51611.svg?style=flat
353
365
  [🖇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
354
366
  [🖇buyme]: https://www.buymeacoffee.com/pboling
@@ -438,11 +450,13 @@ Thanks for RTFM. ☺️
438
450
  [🚎jruby-9.2-wf]: https://github.com/galtzo-floss/sanitize_email/actions/workflows/jruby-9.2.yml
439
451
  [🚎jruby-9.3-wf]: https://github.com/galtzo-floss/sanitize_email/actions/workflows/jruby-9.3.yml
440
452
  [🚎jruby-9.4-wf]: https://github.com/galtzo-floss/sanitize_email/actions/workflows/jruby-9.4.yml
453
+ [🚎jruby-10.0-wf]: https://github.com/galtzo-floss/sanitize_email/actions/workflows/jruby-10.0.yml
441
454
  [🚎truby-22.3-wf]: https://github.com/galtzo-floss/sanitize_email/actions/workflows/truffleruby-22.3.yml
442
455
  [🚎truby-23.0-wf]: https://github.com/galtzo-floss/sanitize_email/actions/workflows/truffleruby-23.0.yml
443
456
  [🚎truby-23.1-wf]: https://github.com/galtzo-floss/sanitize_email/actions/workflows/truffleruby-23.1.yml
444
457
  [🚎truby-24.2-wf]: https://github.com/galtzo-floss/sanitize_email/actions/workflows/truffleruby-24.2.yml
445
458
  [🚎truby-25.0-wf]: https://github.com/galtzo-floss/sanitize_email/actions/workflows/truffleruby-25.0.yml
459
+ [🚎truby-33.0-wf]: https://github.com/galtzo-floss/sanitize_email/actions/workflows/truffleruby-33.0.yml
446
460
  [🚎2-cov-wf]: https://github.com/galtzo-floss/sanitize_email/actions/workflows/coverage.yml
447
461
  [🚎2-cov-wfi]: https://github.com/galtzo-floss/sanitize_email/actions/workflows/coverage.yml/badge.svg
448
462
  [🚎3-hd-wf]: https://github.com/galtzo-floss/sanitize_email/actions/workflows/heads.yml
@@ -473,7 +487,6 @@ Thanks for RTFM. ☺️
473
487
  [💎ruby-3.2i]: https://img.shields.io/badge/Ruby-3.2-CC342D?style=for-the-badge&logo=ruby&logoColor=white
474
488
  [💎ruby-3.3i]: https://img.shields.io/badge/Ruby-3.3-CC342D?style=for-the-badge&logo=ruby&logoColor=white
475
489
  [💎ruby-3.4i]: https://img.shields.io/badge/Ruby-3.4-CC342D?style=for-the-badge&logo=ruby&logoColor=white
476
- [💎ruby-4.0i]: https://img.shields.io/badge/Ruby-4.0-CC342D?style=for-the-badge&logo=ruby&logoColor=white
477
490
  [💎ruby-c-i]: https://img.shields.io/badge/Ruby-current-CC342D?style=for-the-badge&logo=ruby&logoColor=green
478
491
  [💎ruby-headi]: https://img.shields.io/badge/Ruby-HEAD-CC342D?style=for-the-badge&logo=ruby&logoColor=blue
479
492
  [💎truby-22.3i]: https://img.shields.io/badge/Truffle_Ruby-22.3-34BCB1?style=for-the-badge&logo=ruby&logoColor=pink
@@ -481,10 +494,13 @@ Thanks for RTFM. ☺️
481
494
  [💎truby-23.1i]: https://img.shields.io/badge/Truffle_Ruby-23.1-34BCB1?style=for-the-badge&logo=ruby&logoColor=pink
482
495
  [💎truby-24.2i]: https://img.shields.io/badge/Truffle_Ruby-24.2-34BCB1?style=for-the-badge&logo=ruby&logoColor=pink
483
496
  [💎truby-25.0i]: https://img.shields.io/badge/Truffle_Ruby-25.0-34BCB1?style=for-the-badge&logo=ruby&logoColor=pink
497
+ [💎truby-33.0i]: https://img.shields.io/badge/Truffle_Ruby-33.0-34BCB1?style=for-the-badge&logo=ruby&logoColor=pink
484
498
  [💎truby-c-i]: https://img.shields.io/badge/Truffle_Ruby-current-34BCB1?style=for-the-badge&logo=ruby&logoColor=green
499
+ [💎truby-headi]: https://img.shields.io/badge/Truffle_Ruby-HEAD-34BCB1?style=for-the-badge&logo=ruby&logoColor=blue
485
500
  [💎jruby-9.2i]: https://img.shields.io/badge/JRuby-9.2-FBE742?style=for-the-badge&logo=ruby&logoColor=red
486
501
  [💎jruby-9.3i]: https://img.shields.io/badge/JRuby-9.3-FBE742?style=for-the-badge&logo=ruby&logoColor=red
487
502
  [💎jruby-9.4i]: https://img.shields.io/badge/JRuby-9.4-FBE742?style=for-the-badge&logo=ruby&logoColor=red
503
+ [💎jruby-10.0i]: https://img.shields.io/badge/JRuby-10.0-FBE742?style=for-the-badge&logo=ruby&logoColor=red
488
504
  [💎jruby-c-i]: https://img.shields.io/badge/JRuby-current-FBE742?style=for-the-badge&logo=ruby&logoColor=green
489
505
  [💎jruby-headi]: https://img.shields.io/badge/JRuby-HEAD-FBE742?style=for-the-badge&logo=ruby&logoColor=blue
490
506
  [🤝gh-issues]: https://github.com/galtzo-floss/sanitize_email/issues
@@ -513,7 +529,7 @@ Thanks for RTFM. ☺️
513
529
  [📌gitmoji]: https://gitmoji.dev
514
530
  [📌gitmoji-img]: https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
515
531
  [🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
516
- [🧮kloc-img]: https://img.shields.io/badge/KLOC-0.273-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
532
+ [🧮kloc-img]: https://img.shields.io/badge/KLOC-0.385-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
517
533
  [🔐security]: https://github.com/galtzo-floss/sanitize_email/blob/main/SECURITY.md
518
534
  [🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
519
535
  [📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
@@ -541,7 +557,7 @@ Thanks for RTFM. ☺️
541
557
  | Package | sanitize_email |
542
558
  | Description | Email Condom for your Ruby Server.<br>In Rails, Sinatra, et al, or simply the mail gem: Aids in development, testing, qa, and production troubleshooting of email issues without worrying that emails will get sent to actual live addresses. |
543
559
  | Homepage | https://github.com/galtzo-floss/sanitize_email |
544
- | Source | https://github.com/galtzo-floss/sanitize_email/tree/v2.0.11 |
560
+ | Source | https://github.com/galtzo-floss/sanitize_email |
545
561
  | License | `MIT` |
546
- | 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/gh/pboling, https://tidelift.com/funding/github/rubygems/sanitize_email, https://www.buymeacoffee.com/pboling |
562
+ | Funding | https://github.com/sponsors/pboling, https://ko-fi.com/pboling, https://liberapay.com/pboling/donate, https://opencollective.com/galtzo-floss, https://thanks.dev/gh/pboling, https://tidelift.com/funding/github/rubygems/sanitize_email, https://www.buymeacoffee.com/pboling |
547
563
  <!-- kettle-jem:metadata:end -->
@@ -55,7 +55,7 @@ module SanitizeEmail
55
55
  # while nil ignores this setting and checks activation_proc
56
56
  engage: nil,
57
57
 
58
- activation_proc: proc { false },
58
+ activation_proc: proc { false }
59
59
  }.freeze
60
60
 
61
61
  INIT_KEYS = [:sanitized_to, :sanitized_cc, :sanitized_bcc, :good_list, :bad_list].freeze
@@ -100,7 +100,7 @@ module SanitizeEmail
100
100
  return if force_sanitize.nil?
101
101
 
102
102
  deprecation_warning_message(
103
- <<-DEPRECATION,
103
+ <<-DEPRECATION
104
104
  SanitizeEmail::Config.config[:force_sanitize] is deprecated.
105
105
  Please use SanitizeEmail.force_sanitize or SanitizeEmail.sanitary instead.
106
106
  Refer to https://github.com/galtzo-floss/sanitize_email/wiki for examples.
@@ -50,7 +50,7 @@ module SanitizeEmail
50
50
  {
51
51
  # can be an arrays, so casting it as arrays
52
52
  "X-Sanitize-Email-To" => to_decoded,
53
- "X-Sanitize-Email-Cc" => cc_decoded,
53
+ "X-Sanitize-Email-Cc" => cc_decoded
54
54
  # Don't write out the BCC, as those addresses should not be visible
55
55
  # in message headers for obvious reasons
56
56
  }.each do |header_key, header_value|
@@ -58,7 +58,7 @@ module SanitizeEmail
58
58
  SanitizeEmail::MailHeaderTools.update_header(
59
59
  header_key,
60
60
  header_value,
61
- message,
61
+ message
62
62
  )
63
63
  end
64
64
  end
@@ -99,7 +99,7 @@ module SanitizeEmail
99
99
  end,
100
100
  bcc: actual_personalization[:bcc]&.map do |bcc|
101
101
  bcc.merge(email: override_email(:bcc, bcc[:email]).join(","))
102
- end,
102
+ end
103
103
  )
104
104
  end
105
105
  end
@@ -133,20 +133,19 @@ module SanitizeEmail
133
133
  # then just return the default sanitized recipients
134
134
  return sanitized_addresses unless SanitizeEmail.use_actual_email_as_sanitized_user_name
135
135
 
136
- with_user_names = inject_user_names(real_addresses, sanitized_addresses)
136
+ inject_user_names(real_addresses, sanitized_addresses)
137
137
  # puts "real_addresses 2: #{real_addresses}"
138
138
  # puts "override_email 6: #{type} - #{with_user_names}"
139
139
  # Otherwise inject the email as the "user name"
140
- with_user_names
141
140
  end
142
141
 
143
142
  def address_list_filter(list_type, address)
144
143
  # TODO: How does this handle email addresses with user names like "Foo Example <foo@example.org>"
145
144
  has_address = send(list_type).include?(address)
146
145
  case list_type
147
- when :good_list then
146
+ when :good_list
148
147
  has_address ? address : nil
149
- when :bad_list then
148
+ when :bad_list
150
149
  has_address ? nil : address
151
150
  else
152
151
  raise ArgumentError, "address_list_filter got unknown list_type: #{list_type}"
@@ -175,11 +174,11 @@ module SanitizeEmail
175
174
 
176
175
  def sanitize_addresses(type)
177
176
  case type
178
- when :to then
177
+ when :to
179
178
  Array(sanitized_to)
180
- when :cc then
179
+ when :cc
181
180
  Array(sanitized_cc)
182
- when :bcc then
181
+ when :bcc
183
182
  Array(sanitized_bcc)
184
183
  else
185
184
  raise UnknownOverride, "unknown email override"
@@ -2,7 +2,7 @@
2
2
 
3
3
  module SanitizeEmail
4
4
  module Version
5
- VERSION = "2.0.12"
5
+ VERSION = "2.0.13"
6
6
  end
7
7
  VERSION = Version::VERSION # Traditional Constant Location
8
8
  end
@@ -24,7 +24,7 @@ module SanitizeEmail
24
24
  # This gem must be loaded **after** Rails in order for the Engine/Railtie to register itself automatically.
25
25
  # Otherwise, you'd have to manually require what you need from below.
26
26
  # Allow non-rails implementations to use this gem
27
- # :nocov:
27
+ # simplecov:disable
28
28
  if defined?(::Rails::VERSION)
29
29
  if defined?(::Rails::Engine)
30
30
  if ::Rails::VERSION::MAJOR >= 6
@@ -53,7 +53,7 @@ module SanitizeEmail
53
53
  warn "SanitizeEmail was unable to detect a compatible Mail class to register an interceptor on."
54
54
  end
55
55
  end
56
- # :nocov:
56
+ # simplecov:enable
57
57
 
58
58
  class << self
59
59
  extend SanitizeEmail::Deprecation
@@ -80,7 +80,7 @@ module SanitizeEmail
80
80
  end
81
81
 
82
82
  def respond_to_missing?(method_name, include_private = false)
83
- method_name ? method_name : super
83
+ method_name || super
84
84
  end
85
85
 
86
86
  # NOTE: Deprecated method
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,12 +1,21 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sanitize_email
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.12
4
+ version: 2.0.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter Boling
8
8
  - John Trupiano
9
- - George Anderson
9
+ - pboling
10
+ - Peter H. Boling
11
+ - David Morton
12
+ - Harry Lascelles
13
+ - Adrien Siami
14
+ - Chris Altman
15
+ - Scott Rocher
16
+ - Marcus Ilgner
17
+ - Bernardo Galindo
18
+ - joeyparis
10
19
  bindir: exe
11
20
  cert_chain:
12
21
  - |
@@ -62,7 +71,7 @@ dependencies:
62
71
  version: '1.1'
63
72
  - - ">="
64
73
  - !ruby/object:Gem::Version
65
- version: 1.1.11
74
+ version: 1.1.13
66
75
  type: :runtime
67
76
  prerelease: false
68
77
  version_requirements: !ruby/object:Gem::Requirement
@@ -72,27 +81,27 @@ dependencies:
72
81
  version: '1.1'
73
82
  - - ">="
74
83
  - !ruby/object:Gem::Version
75
- version: 1.1.11
84
+ version: 1.1.13
76
85
  - !ruby/object:Gem::Dependency
77
86
  name: kettle-dev
78
87
  requirement: !ruby/object:Gem::Requirement
79
88
  requirements:
80
89
  - - "~>"
81
90
  - !ruby/object:Gem::Version
82
- version: '2.2'
91
+ version: '2.3'
83
92
  - - ">="
84
93
  - !ruby/object:Gem::Version
85
- version: 2.2.9
94
+ version: 2.3.0
86
95
  type: :development
87
96
  prerelease: false
88
97
  version_requirements: !ruby/object:Gem::Requirement
89
98
  requirements:
90
99
  - - "~>"
91
100
  - !ruby/object:Gem::Version
92
- version: '2.2'
101
+ version: '2.3'
93
102
  - - ">="
94
103
  - !ruby/object:Gem::Version
95
- version: 2.2.9
104
+ version: 2.3.0
96
105
  - !ruby/object:Gem::Dependency
97
106
  name: bundler-audit
98
107
  requirement: !ruby/object:Gem::Requirement
@@ -150,7 +159,7 @@ dependencies:
150
159
  version: '3.1'
151
160
  - - ">="
152
161
  - !ruby/object:Gem::Version
153
- version: 3.1.2
162
+ version: 3.1.4
154
163
  type: :development
155
164
  prerelease: false
156
165
  version_requirements: !ruby/object:Gem::Requirement
@@ -160,7 +169,7 @@ dependencies:
160
169
  version: '3.1'
161
170
  - - ">="
162
171
  - !ruby/object:Gem::Version
163
- version: 3.1.2
172
+ version: 3.1.4
164
173
  - !ruby/object:Gem::Dependency
165
174
  name: kettle-test
166
175
  requirement: !ruby/object:Gem::Requirement
@@ -170,7 +179,7 @@ dependencies:
170
179
  version: '2.0'
171
180
  - - ">="
172
181
  - !ruby/object:Gem::Version
173
- version: 2.0.5
182
+ version: 2.0.9
174
183
  type: :development
175
184
  prerelease: false
176
185
  version_requirements: !ruby/object:Gem::Requirement
@@ -180,7 +189,7 @@ dependencies:
180
189
  version: '2.0'
181
190
  - - ">="
182
191
  - !ruby/object:Gem::Version
183
- version: 2.0.5
192
+ version: 2.0.9
184
193
  - !ruby/object:Gem::Dependency
185
194
  name: turbo_tests2
186
195
  requirement: !ruby/object:Gem::Requirement
@@ -190,7 +199,7 @@ dependencies:
190
199
  version: '3.1'
191
200
  - - ">="
192
201
  - !ruby/object:Gem::Version
193
- version: 3.1.3
202
+ version: 3.1.6
194
203
  type: :development
195
204
  prerelease: false
196
205
  version_requirements: !ruby/object:Gem::Requirement
@@ -200,7 +209,7 @@ dependencies:
200
209
  version: '3.1'
201
210
  - - ">="
202
211
  - !ruby/object:Gem::Version
203
- version: 3.1.3
212
+ version: 3.1.6
204
213
  - !ruby/object:Gem::Dependency
205
214
  name: ruby-progressbar
206
215
  requirement: !ruby/object:Gem::Requirement
@@ -224,7 +233,7 @@ dependencies:
224
233
  version: '1.0'
225
234
  - - ">="
226
235
  - !ruby/object:Gem::Version
227
- version: 1.0.3
236
+ version: 1.0.4
228
237
  type: :development
229
238
  prerelease: false
230
239
  version_requirements: !ruby/object:Gem::Requirement
@@ -234,7 +243,7 @@ dependencies:
234
243
  version: '1.0'
235
244
  - - ">="
236
245
  - !ruby/object:Gem::Version
237
- version: 1.0.3
246
+ version: 1.0.4
238
247
  - !ruby/object:Gem::Dependency
239
248
  name: gitmoji-regex
240
249
  requirement: !ruby/object:Gem::Requirement
@@ -244,7 +253,7 @@ dependencies:
244
253
  version: '2.0'
245
254
  - - ">="
246
255
  - !ruby/object:Gem::Version
247
- version: 2.0.2
256
+ version: 2.0.4
248
257
  type: :development
249
258
  prerelease: false
250
259
  version_requirements: !ruby/object:Gem::Requirement
@@ -254,7 +263,7 @@ dependencies:
254
263
  version: '2.0'
255
264
  - - ">="
256
265
  - !ruby/object:Gem::Version
257
- version: 2.0.2
266
+ version: 2.0.4
258
267
  - !ruby/object:Gem::Dependency
259
268
  name: appraisal
260
269
  requirement: !ruby/object:Gem::Requirement
@@ -375,6 +384,7 @@ files:
375
384
  - CONTRIBUTING.md
376
385
  - FUNDING.md
377
386
  - LICENSE.md
387
+ - MIT.md
378
388
  - README.md
379
389
  - RUBOCOP.md
380
390
  - SECURITY.md
@@ -398,10 +408,10 @@ licenses:
398
408
  - MIT
399
409
  metadata:
400
410
  homepage_uri: https://sanitize-email.galtzo.com
401
- source_code_uri: https://github.com/galtzo-floss/sanitize_email/tree/v2.0.12
402
- changelog_uri: https://github.com/galtzo-floss/sanitize_email/blob/v2.0.12/CHANGELOG.md
411
+ source_code_uri: https://github.com/galtzo-floss/sanitize_email/tree/v2.0.13
412
+ changelog_uri: https://github.com/galtzo-floss/sanitize_email/blob/v2.0.13/CHANGELOG.md
403
413
  bug_tracker_uri: https://github.com/galtzo-floss/sanitize_email/issues
404
- documentation_uri: https://www.rubydoc.info/gems/sanitize_email/2.0.12
414
+ documentation_uri: https://www.rubydoc.info/gems/sanitize_email/2.0.13
405
415
  funding_uri: https://github.com/sponsors/pboling
406
416
  wiki_uri: https://github.com/galtzo-floss/sanitize_email/wiki
407
417
  news_uri: https://www.railsbling.com/tags/sanitize_email
metadata.gz.sig CHANGED
Binary file