sanitize_email 2.0.4 → 2.0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/CHANGELOG.md +15 -0
- data/README.md +45 -2
- data/lib/sanitize_email/bleach.rb +70 -68
- data/lib/sanitize_email/config.rb +2 -2
- data/lib/sanitize_email/{engine.rb → engine_v5.rb} +3 -2
- data/lib/sanitize_email/engine_v6.rb +15 -0
- data/lib/sanitize_email/mail_header_tools.rb +5 -1
- data/lib/sanitize_email/overridden_addresses.rb +12 -8
- data/lib/sanitize_email/rspec_matchers.rb +11 -0
- data/lib/sanitize_email/version.rb +1 -1
- data/lib/sanitize_email.rb +8 -2
- data.tar.gz.sig +0 -0
- metadata +45 -10
- 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: 1d655a119fcfed21733da3b6d086904bed64ee290930b63cd2ef36c7f918e882
|
4
|
+
data.tar.gz: '08de77ba87e5f93b0096b3646aa7512dee49ada51b4972b68dc3ca37c700109a'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8304c15db70e464ad886a752b91d3b60444e36b8865f62442fe642eb687afea0ea00741e685537b1d3bd87cd50f70501a5890de0b946dbae2e50ce5c9dcc7b94
|
7
|
+
data.tar.gz: 1c693f4d770f5517e4b904e73edcd814a71b2ab6e4fa96fc1eff734d9d0db0246a64282257cf16eeb69d68b46980cb149cce9e27fae5635e60ab0cb8a51e856e
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/CHANGELOG.md
CHANGED
@@ -10,8 +10,23 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
10
10
|
### Fixed
|
11
11
|
### Removed
|
12
12
|
|
13
|
+
## [2.0.5] - 2024-04-18 ([tag][2.0.5t])
|
14
|
+
### Added
|
15
|
+
* New RSpec matcher (@pboling)
|
16
|
+
* `have_bcc_username`
|
17
|
+
* Feature #21 - environment configuration option can now be set to proc / lambda / #call (@pboling)
|
18
|
+
* Documentation of all configuration options in README.md (@pboling)
|
19
|
+
* Many more tests
|
20
|
+
* Confirmed compatibility with [`sendgrid-actionmailer`](https://github.com/eddiezane/sendgrid-actionmailer)
|
21
|
+
* Code coverage up to 90%
|
22
|
+
### Changed
|
23
|
+
* Averted deprecation warnings when using Rails 6 (@pboling)
|
24
|
+
## Fixed
|
25
|
+
* Bug #37 - Unable to send email when only CC or BCC present
|
26
|
+
|
13
27
|
## [2.0.4] - 2024-03-22 ([tag][2.0.4t])
|
14
28
|
### Added
|
29
|
+
* [#74](https://github.com/pboling/sanitize_email/pull/74) Support sanitizing SendGrid personalization fields (@joeyparis)
|
15
30
|
* mail gem dependency (@pboling)
|
16
31
|
* version_gem dependency (@pboling)
|
17
32
|
* new RSpec Matchers (@pboling)
|
data/README.md
CHANGED
@@ -61,6 +61,15 @@ testing your email in the aforementioned `mailcatcher` may not be enough.
|
|
61
61
|
If you want to test all the way through Paubox's system, but have the email go to a safe testing account address,
|
62
62
|
then this is the gem for you.
|
63
63
|
|
64
|
+
## Compatibility
|
65
|
+
|
66
|
+
⚙️ Compatible with all versions of Ruby >= 2.3.
|
67
|
+
⚙️ Compatible with all Ruby web Frameworks (Hanami, Roda, Sinatra, Rails).
|
68
|
+
⚙️ Compatible with all versions of Rails from 3.0 - 7.1+.
|
69
|
+
⚙️ Compatible with scripted usage of Mail gem outside a web framework.
|
70
|
+
⚙️ Compatible with [`sendgrid-actionmailer`](https://github.com/eddiezane/sendgrid-actionmailer)'s support for personalizations, and will override email addresses there according to the configuration.
|
71
|
+
⚙️ If this gem is not compatible with your use case, and you'd like it to be, I'd like to hear about it!
|
72
|
+
|
64
73
|
## 🛞 DVCS
|
65
74
|
|
66
75
|
This project does not trust any one version control system,
|
@@ -116,7 +125,7 @@ appended indicators:
|
|
116
125
|
| 4️⃣ | testing | [![Supported][🏘sup-wf-img]][🏘sup-wf] [![Heads][🚎heads-wf-img]][🚎heads-wf] |
|
117
126
|
| 5️⃣ | coverage & security | [![CodeClimate][🔑cc-covi]][🔑cc-cov] [![CodeCov][🖇codecov-img♻️]][🖇codecov] [![Coveralls][🏘coveralls-img]][🏘coveralls] [![Security Policy][🚎sec-pol-img]][🚎sec-pol] [![CodeQL][🖐codeQL-img]][🖐codeQL] [![Code Coverage][🧮cov-wf-img]][🧮cov-wf] |
|
118
127
|
| 6️⃣ | resources | [![Get help on Codementor][🖇codementor-img]][🖇codementor] [![Chat][🏘chat-img]][🏘chat] [![Blog][🚎blog-img]][🚎blog] [![Wiki][🖐wiki-img]][🖐wiki] |
|
119
|
-
| 7️⃣ |
|
128
|
+
| 7️⃣ | `...` 💖 | [![Liberapay Patrons][⛳liberapay-img]][⛳liberapay] [![Sponsor Me][🖇sponsor-img]][🖇sponsor] [![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] [![Follow Me on FLOSS.Social][🐘floss-mast-img]][🐘floss-mast] [![Follow Me on Mastodon.Social][🐘mast-img]][🐘mast] [![Tweet @ Peter][🐦tweet-img]][🐦tweet] [💻][coderme] [🌏][aboutme] |
|
120
129
|
|
121
130
|
<!--
|
122
131
|
The link tokens in the following sections should be kept ordered by the row and badge numbering scheme
|
@@ -354,6 +363,8 @@ end
|
|
354
363
|
|
355
364
|
Keep in mind, this is ruby (and possibly rails), so you can add conditionals or utilize different environment.rb files to customize these settings on a per-environment basis.
|
356
365
|
|
366
|
+
## Override the override
|
367
|
+
|
357
368
|
But wait there's more:
|
358
369
|
|
359
370
|
Let's say you have a method in your model that you can call to test the signup email. You want to be able to test sending it to any user at any time... but you don't want the user to ACTUALLY get the email, even in production. A dilemma, yes? Not anymore!
|
@@ -364,7 +375,9 @@ To override the environment based switch use `force_sanitize`, which is normally
|
|
364
375
|
SanitizeEmail.force_sanitize = true
|
365
376
|
```
|
366
377
|
|
367
|
-
|
378
|
+
When testing your email in a console, you can manipulate how email will be handled in this way.
|
379
|
+
|
380
|
+
There are also two methods that take a block and turn SanitizeEmail on or off (see section on Thread Safety below):
|
368
381
|
|
369
382
|
Regardless of the Config settings of SanitizeEmail you can do a local override to force unsanitary email in any environment.
|
370
383
|
|
@@ -394,6 +407,36 @@ You have access to all the same configuration options in the parameter hash as y
|
|
394
407
|
end
|
395
408
|
```
|
396
409
|
|
410
|
+
## Configuration Options
|
411
|
+
|
412
|
+
As used in the "Description" column below, `engaged` means: `SanitizeEmail.activate?(message) # => true`.
|
413
|
+
This happens in a few different ways, and two of them are in the config below (`engage` and `activation_proc`).
|
414
|
+
|
415
|
+
| Option | Type (Yard format) | Description |
|
416
|
+
|---------------------------------------------|--------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------|
|
417
|
+
| sanitized_to | [String, Array[String]] | (when engaged) Override CC field with these addresses |
|
418
|
+
| sanitized_cc | [String, Array[String]] | (when engaged) Override CC field with these addresses |
|
419
|
+
| sanitized_bcc | [String, Array[String]] | (when engaged) Override BCC field with these addresses |
|
420
|
+
| good_list | [Array[String]] | (when engaged) Email addresses to allow to pass-through without overriding |
|
421
|
+
| bad_list | [Array[String]] | (when engaged) Email addresses to be removed from message's TO, CC, & BCC |
|
422
|
+
| environment | [String, #to_s, Proc, Lambda, #call] | (when engaged) The environment value to use wherever it is added to message (e.g. in the subject line) |
|
423
|
+
| use_actual_email_as_sanitized_user_name | [Boolean] | (when engaged) Use "real" email address as username for sanitized email address (e.g. "real at example.com <sanitized@example.com>") |
|
424
|
+
| use_actual_email_prepended_to_subject | [Boolean] | (when engaged) Use "real" email address prepended to subject (e.g. "real at example.com Original Subject") |
|
425
|
+
| use_actual_environment_prepended_to_subject | [Boolean] | (when engaged) Use `environment` prepended to subject (e.g. "{{ STAGING }} Original Subject") |
|
426
|
+
| engage | [Boolean, nil] | Boolean will turn engage or disengage this gem, while `nil` ignores this setting and instead checks `activation_proc` |
|
427
|
+
| activation_proc | [Proc, Lambda, #call] | When checked, due to `engage: nil`, the result will either engage or disengage this gem |
|
428
|
+
|
429
|
+
## Thread Safety
|
430
|
+
|
431
|
+
So long as you don't change the config after initializing it at runtime, you'll be fine.
|
432
|
+
Like many Ruby tools' config objects, it is a single config object, shared by all threads.
|
433
|
+
The helpers like `sanitary`, `unsanitary`, `janitor`, and `force_sanitize`
|
434
|
+
are intended to be used in single threaded environments,
|
435
|
+
like a test suite, or a console session.
|
436
|
+
|
437
|
+
I doubt I'll ever have a need for runtime reconfiguration of the config,
|
438
|
+
so I doubt I'll ever have a reason to make it "more" thread safe than it is now, but PRs are welcome!
|
439
|
+
|
397
440
|
## Use sanitize_email in your test suite!
|
398
441
|
|
399
442
|
### rspec
|
@@ -10,84 +10,86 @@ module SanitizeEmail
|
|
10
10
|
extend SanitizeEmail::Deprecation
|
11
11
|
attr_accessor :overridden_addresses # TODO: Just a stub, not implemented
|
12
12
|
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
class << self
|
14
|
+
# If all recipient addresses are allow-listed the field is left alone.
|
15
|
+
def delivering_email(message)
|
16
|
+
return unless sanitize_engaged?(message)
|
16
17
|
|
17
|
-
|
18
|
-
|
19
|
-
|
18
|
+
SanitizeEmail::MailHeaderTools
|
19
|
+
.add_original_addresses_as_headers(message)
|
20
|
+
SanitizeEmail::MailHeaderTools
|
21
|
+
.prepend_custom_subject(message)
|
20
22
|
|
21
|
-
|
22
|
-
.add_original_addresses_as_headers(message)
|
23
|
-
SanitizeEmail::MailHeaderTools
|
24
|
-
.prepend_custom_subject(message)
|
23
|
+
overridden = SanitizeEmail::OverriddenAddresses.new(message)
|
25
24
|
|
26
|
-
|
25
|
+
message.to = overridden.overridden_to
|
26
|
+
message.cc = overridden.overridden_cc
|
27
|
+
message.bcc = overridden.overridden_bcc
|
27
28
|
|
28
|
-
|
29
|
-
message.cc = overridden.overridden_cc
|
30
|
-
message.bcc = overridden.overridden_bcc
|
29
|
+
return if message["personalizations"].nil?
|
31
30
|
|
32
|
-
|
31
|
+
message["personalizations"].value = overridden.overridden_personalizations
|
32
|
+
end
|
33
33
|
|
34
|
-
|
35
|
-
|
34
|
+
# Will be called by the Hook to determine if an override should occur
|
35
|
+
# There are three ways SanitizeEmail can be turned on;
|
36
|
+
# in order of precedence they are:
|
37
|
+
#
|
38
|
+
# 1. SanitizeEmail.force_sanitize = true # by default it is nil
|
39
|
+
# Only useful for local context.
|
40
|
+
# Inside a method where you will be sending an email, set
|
41
|
+
#
|
42
|
+
# SanitizeEmail.force_sanitize = true
|
43
|
+
#
|
44
|
+
# just prior to delivering it. Also useful in the console.
|
45
|
+
#
|
46
|
+
# 2. If SanitizeEmail seems to not be sanitizing,
|
47
|
+
# you have probably not registered the interceptor.
|
48
|
+
# SanitizeEmail tries to do this for you.
|
49
|
+
# *Note*: If you are working in an environment that has
|
50
|
+
# a Mail or Mailer class that uses the register_interceptor API,
|
51
|
+
# the interceptor will already have been registered.
|
52
|
+
# The gem will probably have already done this for you,
|
53
|
+
# but some really old versions of Rails may need you to do this manually:
|
54
|
+
#
|
55
|
+
# Mail.register_interceptor(SanitizeEmail::Bleach)
|
56
|
+
#
|
57
|
+
# Once registered, SanitizeEmail needs to be engaged:
|
58
|
+
#
|
59
|
+
# # in config/initializers/sanitize_email.rb
|
60
|
+
# SanitizeEmail::Config.configure {|config| config[:engage] = true }
|
61
|
+
#
|
62
|
+
# 3. SanitizeEmail::Config.configure do |config|
|
63
|
+
# config[:activation_proc] = Proc.new { true }
|
64
|
+
# end
|
65
|
+
#
|
66
|
+
# If you don't need to compute anything,
|
67
|
+
# then don't use the Proc, go with the previous option.
|
68
|
+
#
|
69
|
+
# Note: Number 1 is the method used by the SanitizeEmail.sanitary block
|
70
|
+
# Note: Number 2 You may need to setup your own register_interceptor
|
71
|
+
#
|
72
|
+
# If installed but not configured, sanitize_email DOES NOTHING.
|
73
|
+
# Until configured the defaults leave it turned off.
|
74
|
+
def sanitize_engaged?(message)
|
75
|
+
# Don't sanitize the message if it will not be delivered
|
76
|
+
return false unless message.perform_deliveries
|
36
77
|
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
#
|
41
|
-
# 1. SanitizeEmail.force_sanitize = true # by default it is nil
|
42
|
-
# Only useful for local context.
|
43
|
-
# Inside a method where you will be sending an email, set
|
44
|
-
#
|
45
|
-
# SanitizeEmail.force_sanitize = true
|
46
|
-
#
|
47
|
-
# just prior to delivering it. Also useful in the console.
|
48
|
-
#
|
49
|
-
# 2. If SanitizeEmail seems to not be sanitizing,
|
50
|
-
# you have probably not registered the interceptor.
|
51
|
-
# SanitizeEmail tries to do this for you.
|
52
|
-
# *Note*: If you are working in an environment that has
|
53
|
-
# a Mail or Mailer class that uses the register_interceptor API,
|
54
|
-
# the interceptor will already have been registered.
|
55
|
-
# The gem will probably have already done this for you,
|
56
|
-
# but some really old versions of Rails may need you to do this manually:
|
57
|
-
#
|
58
|
-
# Mail.register_interceptor(SanitizeEmail::Bleach)
|
59
|
-
#
|
60
|
-
# Once registered, SanitizeEmail needs to be engaged:
|
61
|
-
#
|
62
|
-
# # in config/initializers/sanitize_email.rb
|
63
|
-
# SanitizeEmail::Config.configure {|config| config[:engage] = true }
|
64
|
-
#
|
65
|
-
# 3. SanitizeEmail::Config.configure do |config|
|
66
|
-
# config[:activation_proc] = Proc.new { true }
|
67
|
-
# end
|
68
|
-
#
|
69
|
-
# If you don't need to compute anything,
|
70
|
-
# then don't use the Proc, go with the previous option.
|
71
|
-
#
|
72
|
-
# Note: Number 1 is the method used by the SanitizeEmail.sanitary block
|
73
|
-
# Note: Number 2 You may need to setup your own register_interceptor
|
74
|
-
#
|
75
|
-
# If installed but not configured, sanitize_email DOES NOTHING.
|
76
|
-
# Until configured the defaults leave it turned off.
|
77
|
-
def self.sanitize_engaged?(message)
|
78
|
-
# Don't sanitize the message if it will not be delivered
|
79
|
-
return false unless message.perform_deliveries
|
78
|
+
# Has it been forced via the force_sanitize mattr?
|
79
|
+
forced = SanitizeEmail.force_sanitize
|
80
|
+
return forced unless forced.nil?
|
80
81
|
|
81
|
-
|
82
|
-
|
83
|
-
|
82
|
+
# Is this particular instance of Bleach engaged
|
83
|
+
engaged = SanitizeEmail::Config.config[:engage]
|
84
|
+
return engaged unless engaged.nil?
|
84
85
|
|
85
|
-
|
86
|
-
|
87
|
-
|
86
|
+
# Should we sanitize due to the activation_proc?
|
87
|
+
SanitizeEmail.activate?(message)
|
88
|
+
end
|
89
|
+
end
|
88
90
|
|
89
|
-
|
90
|
-
|
91
|
+
def initialize(*args)
|
92
|
+
deprecation_message unless args.empty?
|
91
93
|
end
|
92
94
|
|
93
95
|
private
|
@@ -42,11 +42,11 @@ module SanitizeEmail
|
|
42
42
|
|
43
43
|
# Use the "real" email address as the username
|
44
44
|
# for the sanitized email address
|
45
|
-
# e.g. "real
|
45
|
+
# e.g. "real at example.com <sanitized@example.com>"
|
46
46
|
use_actual_email_as_sanitized_user_name: false,
|
47
47
|
|
48
48
|
# Prepend the "real" email address onto the Subject line of the message
|
49
|
-
# e.g. "real
|
49
|
+
# e.g. "real at example.com rest of subject"
|
50
50
|
use_actual_email_prepended_to_subject: false,
|
51
51
|
|
52
52
|
# Prepend the Rails environment onto the Subject line of the message
|
@@ -4,8 +4,9 @@
|
|
4
4
|
# Released under the MIT license
|
5
5
|
|
6
6
|
module SanitizeEmail
|
7
|
-
# For Rails >= 3.1
|
8
|
-
|
7
|
+
# For Rails >= 3.1, < 6.0
|
8
|
+
# TODO: Remove when support for Rails < 6 is dropped
|
9
|
+
class EngineV5 < ::Rails::Engine
|
9
10
|
config.to_prepare do
|
10
11
|
ActionMailer::Base.register_interceptor(SanitizeEmail::Bleach)
|
11
12
|
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Copyright (c) 2008 - 2018, 2020, 2022, 2024 Peter H. Boling of RailsBling.com
|
4
|
+
# Released under the MIT license
|
5
|
+
|
6
|
+
module SanitizeEmail
|
7
|
+
# For Rails >= 6.0
|
8
|
+
class EngineV5 < ::Rails::Engine
|
9
|
+
config.to_prepare do
|
10
|
+
# For the reasoning behind the difference between v5 and v6 engines,
|
11
|
+
# - see: https://github.com/rails/rails/issues/36546#issuecomment-850888284
|
12
|
+
config.action_mailer.register_interceptor(SanitizeEmail::Bleach)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -26,7 +26,11 @@ module SanitizeEmail
|
|
26
26
|
end
|
27
27
|
|
28
28
|
def self.prepend_environment_to_subject
|
29
|
-
SanitizeEmail::Config.config[:environment]
|
29
|
+
if SanitizeEmail::Config.config[:environment].respond_to?(:call)
|
30
|
+
SanitizeEmail::Config.config[:environment].call.to_s
|
31
|
+
else
|
32
|
+
SanitizeEmail::Config.config[:environment].to_s
|
33
|
+
end
|
30
34
|
end
|
31
35
|
|
32
36
|
def self.prepend_email_to_subject(actual_addresses)
|
@@ -9,8 +9,11 @@ require "mail"
|
|
9
9
|
module SanitizeEmail
|
10
10
|
# Tools for overriding addresses
|
11
11
|
class OverriddenAddresses
|
12
|
-
# Raised when
|
13
|
-
class
|
12
|
+
# Raised when there are no recipients after sanitization
|
13
|
+
class MissingRecipients < StandardError; end
|
14
|
+
|
15
|
+
# MissingTo is Deprecated
|
16
|
+
class MissingTo < MissingRecipients; end
|
14
17
|
|
15
18
|
# Raised if there is a recipient type that sanitize_email doesn't recognize.
|
16
19
|
# If you get this error please report it.
|
@@ -45,16 +48,18 @@ module SanitizeEmail
|
|
45
48
|
tempmail.cc = cc_override(message.cc)
|
46
49
|
tempmail.bcc = bcc_override(message.bcc)
|
47
50
|
|
51
|
+
# remove addresses from :cc / :bcc that are also in :to
|
48
52
|
remove_duplicates
|
49
53
|
|
50
54
|
@overridden_to = tempmail[:to].decoded
|
51
55
|
@overridden_cc = tempmail[:cc].decoded
|
52
56
|
@overridden_bcc = tempmail[:bcc].decoded
|
53
57
|
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
+
if message["personalizations"].nil?
|
59
|
+
raise MissingRecipients, "No recipients left post-sanitization" if (tempmail.to + tempmail.cc + tempmail.bcc).empty?
|
60
|
+
else
|
61
|
+
@overridden_personalizations = personalizations_override(message["personalizations"])
|
62
|
+
end
|
58
63
|
end
|
59
64
|
|
60
65
|
# Allow good listed email addresses, and then remove the bad listed addresses
|
@@ -66,8 +71,6 @@ module SanitizeEmail
|
|
66
71
|
|
67
72
|
def to_override(actual_addresses)
|
68
73
|
to = override_email(:to, actual_addresses)
|
69
|
-
raise MissingTo, "after overriding :to (#{actual_addresses}) there are no addresses to send in To: header." if to.empty?
|
70
|
-
|
71
74
|
to.join(",")
|
72
75
|
end
|
73
76
|
|
@@ -79,6 +82,7 @@ module SanitizeEmail
|
|
79
82
|
override_email(:bcc, actual_addresses).join(",")
|
80
83
|
end
|
81
84
|
|
85
|
+
# Intended to result in compatibility with https://github.com/eddiezane/sendgrid-actionmailer
|
82
86
|
def personalizations_override(actual_personalizations)
|
83
87
|
actual_personalizations.unparsed_value.map do |actual_personalization|
|
84
88
|
actual_personalization.merge(
|
@@ -89,6 +89,17 @@ module SanitizeEmail
|
|
89
89
|
end
|
90
90
|
end
|
91
91
|
|
92
|
+
RSpec::Matchers.define("have_bcc_username") do |matcher|
|
93
|
+
def get_bcc_usernames(email_message)
|
94
|
+
to_addrs = email_message[:bcc].addrs
|
95
|
+
to_addrs.map(&:name)
|
96
|
+
end
|
97
|
+
match do |actual|
|
98
|
+
@actual = get_bcc_usernames(actual)
|
99
|
+
expect(@actual).to(include(match(matcher)))
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
92
103
|
# Cribbed from email_spec gem
|
93
104
|
RSpec::Matchers.define("have_body_text") do |matcher|
|
94
105
|
def get_fuzzy_body(email_message)
|
data/lib/sanitize_email.rb
CHANGED
@@ -21,7 +21,13 @@ module SanitizeEmail
|
|
21
21
|
# Allow non-rails implementations to use this gem
|
22
22
|
if defined?(::Rails) && defined?(::Rails::VERSION)
|
23
23
|
if defined?(::Rails::Engine)
|
24
|
-
|
24
|
+
if ::Rails::VERSION::MAJOR >= 6
|
25
|
+
# Rails 6.0+
|
26
|
+
require "sanitize_email/engine_v6"
|
27
|
+
else
|
28
|
+
# Rails 3.1 to 5.2
|
29
|
+
require "sanitize_email/engine_v5"
|
30
|
+
end
|
25
31
|
elsif ::Rails::VERSION::MAJOR == 3 && ::Rails::VERSION::MINOR.zero?
|
26
32
|
require "sanitize_email/railtie"
|
27
33
|
else
|
@@ -54,7 +60,7 @@ module SanitizeEmail
|
|
54
60
|
# NOTE: Deprecated method
|
55
61
|
# We have to actually define because we can't deprecate methods that are hooked up via method_missing
|
56
62
|
def self.sanitized_recipients
|
57
|
-
|
63
|
+
# NOOP - This method is never actually executed, because the deprecations redirects the call to sanitized_to
|
58
64
|
end
|
59
65
|
|
60
66
|
# NOTE: Deprecated method
|
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
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.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Peter Boling
|
@@ -38,26 +38,29 @@ cert_chain:
|
|
38
38
|
KuxrfYrN+9HvMdm+nZ6TypmKftHY3Gj+/uu+g8Icm/zrvTWAEE0mcJOkfrIoNPJb
|
39
39
|
pF8dMA==
|
40
40
|
-----END CERTIFICATE-----
|
41
|
-
date: 2024-
|
41
|
+
date: 2024-04-18 00:00:00.000000000 Z
|
42
42
|
dependencies:
|
43
43
|
- !ruby/object:Gem::Dependency
|
44
44
|
name: mail
|
45
45
|
requirement: !ruby/object:Gem::Requirement
|
46
46
|
requirements:
|
47
|
-
- - "
|
47
|
+
- - "~>"
|
48
48
|
- !ruby/object:Gem::Version
|
49
|
-
version: '0'
|
49
|
+
version: '2.0'
|
50
50
|
type: :runtime
|
51
51
|
prerelease: false
|
52
52
|
version_requirements: !ruby/object:Gem::Requirement
|
53
53
|
requirements:
|
54
|
-
- - "
|
54
|
+
- - "~>"
|
55
55
|
- !ruby/object:Gem::Version
|
56
|
-
version: '0'
|
56
|
+
version: '2.0'
|
57
57
|
- !ruby/object:Gem::Dependency
|
58
58
|
name: version_gem
|
59
59
|
requirement: !ruby/object:Gem::Requirement
|
60
60
|
requirements:
|
61
|
+
- - "~>"
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: '1.1'
|
61
64
|
- - ">="
|
62
65
|
- !ruby/object:Gem::Version
|
63
66
|
version: 1.1.4
|
@@ -65,6 +68,9 @@ dependencies:
|
|
65
68
|
prerelease: false
|
66
69
|
version_requirements: !ruby/object:Gem::Requirement
|
67
70
|
requirements:
|
71
|
+
- - "~>"
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
version: '1.1'
|
68
74
|
- - ">="
|
69
75
|
- !ruby/object:Gem::Version
|
70
76
|
version: 1.1.4
|
@@ -178,6 +184,26 @@ dependencies:
|
|
178
184
|
- - ">="
|
179
185
|
- !ruby/object:Gem::Version
|
180
186
|
version: 1.0.5
|
187
|
+
- !ruby/object:Gem::Dependency
|
188
|
+
name: rspec-pending_for
|
189
|
+
requirement: !ruby/object:Gem::Requirement
|
190
|
+
requirements:
|
191
|
+
- - "~>"
|
192
|
+
- !ruby/object:Gem::Version
|
193
|
+
version: '0.1'
|
194
|
+
- - ">="
|
195
|
+
- !ruby/object:Gem::Version
|
196
|
+
version: 0.1.16
|
197
|
+
type: :development
|
198
|
+
prerelease: false
|
199
|
+
version_requirements: !ruby/object:Gem::Requirement
|
200
|
+
requirements:
|
201
|
+
- - "~>"
|
202
|
+
- !ruby/object:Gem::Version
|
203
|
+
version: '0.1'
|
204
|
+
- - ">="
|
205
|
+
- !ruby/object:Gem::Version
|
206
|
+
version: 0.1.16
|
181
207
|
description: |2
|
182
208
|
Email Condom for your Ruby Server.
|
183
209
|
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.
|
@@ -197,7 +223,8 @@ files:
|
|
197
223
|
- lib/sanitize_email/bleach.rb
|
198
224
|
- lib/sanitize_email/config.rb
|
199
225
|
- lib/sanitize_email/deprecation.rb
|
200
|
-
- lib/sanitize_email/
|
226
|
+
- lib/sanitize_email/engine_v5.rb
|
227
|
+
- lib/sanitize_email/engine_v6.rb
|
201
228
|
- lib/sanitize_email/mail_ext.rb
|
202
229
|
- lib/sanitize_email/mail_header_tools.rb
|
203
230
|
- lib/sanitize_email/overridden_addresses.rb
|
@@ -205,10 +232,18 @@ files:
|
|
205
232
|
- lib/sanitize_email/rspec_matchers.rb
|
206
233
|
- lib/sanitize_email/test_helpers.rb
|
207
234
|
- lib/sanitize_email/version.rb
|
208
|
-
homepage:
|
235
|
+
homepage: https://github.com/pboling/sanitize_email
|
209
236
|
licenses:
|
210
237
|
- MIT
|
211
|
-
metadata:
|
238
|
+
metadata:
|
239
|
+
homepage_uri: https://github.com/pboling/sanitize_email
|
240
|
+
source_code_uri: https://github.com/pboling/sanitize_email/tree/v2.0.5
|
241
|
+
changelog_uri: https://github.com/pboling/sanitize_email/blob/v2.0.5/CHANGELOG.md
|
242
|
+
bug_tracker_uri: https://github.com/pboling/sanitize_email/issues
|
243
|
+
documentation_uri: https://www.rubydoc.info/gems/sanitize_email/2.0.5
|
244
|
+
wiki_uri: https://github.com/pboling/sanitize_email/wiki
|
245
|
+
funding_uri: https://liberapay.com/pboling
|
246
|
+
rubygems_mfa_required: 'true'
|
212
247
|
post_install_message:
|
213
248
|
rdoc_options: []
|
214
249
|
require_paths:
|
@@ -224,7 +259,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
224
259
|
- !ruby/object:Gem::Version
|
225
260
|
version: '0'
|
226
261
|
requirements: []
|
227
|
-
rubygems_version: 3.5.
|
262
|
+
rubygems_version: 3.5.9
|
228
263
|
signing_key:
|
229
264
|
specification_version: 4
|
230
265
|
summary: Email Condom for your Ruby Server
|
metadata.gz.sig
CHANGED
Binary file
|