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 +4 -4
- checksums.yaml.gz.sig +0 -0
- data/CHANGELOG.md +24 -1
- data/CONTRIBUTING.md +6 -3
- data/FUNDING.md +1 -5
- data/MIT.md +21 -0
- data/README.md +35 -19
- data/lib/sanitize_email/config.rb +2 -2
- data/lib/sanitize_email/mail_header_tools.rb +2 -2
- data/lib/sanitize_email/overridden_addresses.rb +7 -8
- data/lib/sanitize_email/version.rb +1 -1
- data/lib/sanitize_email.rb +3 -3
- data.tar.gz.sig +0 -0
- metadata +31 -21
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: e428d45c83d29ee8b27c9752d85bb8b53518bd3ea1ababeab6829719e6422c7a
|
|
4
|
+
data.tar.gz: 87522e8f3cb045b99c8a1d3ee16253182c76a673542d3de812f3650c609ca74a
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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.
|
|
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
|
|
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
|
|
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:
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
61
|
-
|
|
62
|
-
|
|
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 | [](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 | [](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 | [](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 | [](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 | [](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 | [](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 | [](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 | [](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/
|
|
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
|
|
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.
|
|
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
|
|
560
|
+
| Source | https://github.com/galtzo-floss/sanitize_email |
|
|
545
561
|
| License | `MIT` |
|
|
546
|
-
| Funding | https://github.com/sponsors/pboling, https://
|
|
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
|
-
|
|
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
|
|
146
|
+
when :good_list
|
|
148
147
|
has_address ? address : nil
|
|
149
|
-
when :bad_list
|
|
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
|
|
177
|
+
when :to
|
|
179
178
|
Array(sanitized_to)
|
|
180
|
-
when :cc
|
|
179
|
+
when :cc
|
|
181
180
|
Array(sanitized_cc)
|
|
182
|
-
when :bcc
|
|
181
|
+
when :bcc
|
|
183
182
|
Array(sanitized_bcc)
|
|
184
183
|
else
|
|
185
184
|
raise UnknownOverride, "unknown email override"
|
data/lib/sanitize_email.rb
CHANGED
|
@@ -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
|
-
# :
|
|
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
|
-
# :
|
|
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
|
|
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.
|
|
4
|
+
version: 2.0.13
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Peter Boling
|
|
8
8
|
- John Trupiano
|
|
9
|
-
-
|
|
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.
|
|
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.
|
|
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.
|
|
91
|
+
version: '2.3'
|
|
83
92
|
- - ">="
|
|
84
93
|
- !ruby/object:Gem::Version
|
|
85
|
-
version: 2.
|
|
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.
|
|
101
|
+
version: '2.3'
|
|
93
102
|
- - ">="
|
|
94
103
|
- !ruby/object:Gem::Version
|
|
95
|
-
version: 2.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
402
|
-
changelog_uri: https://github.com/galtzo-floss/sanitize_email/blob/v2.0.
|
|
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.
|
|
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
|