sanitize_email 2.0.5 → 2.0.6
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 +21 -1
 - data/CONTRIBUTING.md +8 -0
 - data/README.md +10 -5
 - data/lib/sanitize_email/engine_v5.rb +1 -0
 - data/lib/sanitize_email/engine_v6.rb +3 -2
 - data/lib/sanitize_email/mail_ext.rb +2 -0
 - data/lib/sanitize_email/overridden_addresses.rb +7 -2
 - data/lib/sanitize_email/railtie.rb +1 -0
 - data/lib/sanitize_email/version.rb +1 -1
 - data/lib/sanitize_email.rb +84 -75
 - data.tar.gz.sig +0 -0
 - metadata +14 -34
 - 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: ab280a496e5f7c676c9f34a0d9c947e79015cc1001fb64dd9c9d7240d140eeea
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 455e2718f6bc3cf995b444768c2fcb855ff15685077d234c4887c829cb3b36ca
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 847a73eb85a827ff002f26e0108f3bd5ad4f9750d3de08e8461363e6effe31058fe92dee7ea7b1d3fa0260ad4f00b0f52d6df285ab0dc9fc029faac34ccca380
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 1e53fb956e7bb1223192164e151509c45c6f2c7e653c5b9d194925164e1141ae969a8364209e3fd5a7db4c5d833146016a9fbdfe2c7b8f38a17be1b4c6d04004
         
     | 
    
        checksums.yaml.gz.sig
    CHANGED
    
    | 
         Binary file 
     | 
    
        data/CHANGELOG.md
    CHANGED
    
    | 
         @@ -10,6 +10,22 @@ 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.6] - 2024-04-25 ([tag][2.0.6t])
         
     | 
| 
      
 14 
     | 
    
         
            +
            ### Added
         
     | 
| 
      
 15 
     | 
    
         
            +
            * Appraisals & Combustion for comprehensive testing across versions of Rails (@pboling)
         
     | 
| 
      
 16 
     | 
    
         
            +
            * Rails 3.0 to Test Matrix (@pboling)
         
     | 
| 
      
 17 
     | 
    
         
            +
            * Rails 3.1 to Test Matrix (@pboling)
         
     | 
| 
      
 18 
     | 
    
         
            +
            * Rails 3.2 to Test Matrix (@pboling)
         
     | 
| 
      
 19 
     | 
    
         
            +
            * Rails 4.0 to Test Matrix (@pboling)
         
     | 
| 
      
 20 
     | 
    
         
            +
            * Rails 4.1 to Test Matrix (@pboling)
         
     | 
| 
      
 21 
     | 
    
         
            +
            * Rails 4.2 to Test Matrix (@pboling)
         
     | 
| 
      
 22 
     | 
    
         
            +
            * Rails 5.0 to Test Matrix (@pboling)
         
     | 
| 
      
 23 
     | 
    
         
            +
            * Rails 5.1 to Test Matrix (@pboling)
         
     | 
| 
      
 24 
     | 
    
         
            +
            * More Documentation (@pboling)
         
     | 
| 
      
 25 
     | 
    
         
            +
            ### Fixed
         
     | 
| 
      
 26 
     | 
    
         
            +
            * Compatibility with Rails 3.0, 3.1, 3.2 (@pboling)
         
     | 
| 
      
 27 
     | 
    
         
            +
            * Compatibility with Rails 6.0, 6.1, 7.0, 7.1 (@pboling)
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
       13 
29 
     | 
    
         
             
            ## [2.0.5] - 2024-04-18 ([tag][2.0.5t])
         
     | 
| 
       14 
30 
     | 
    
         
             
            ### Added
         
     | 
| 
       15 
31 
     | 
    
         
             
            * New RSpec matcher (@pboling)
         
     | 
| 
         @@ -275,7 +291,11 @@ Old version? 
     | 
|
| 
       275 
291 
     | 
    
         
             
            * Fixed require paths
         
     | 
| 
       276 
292 
     | 
    
         
             
            * added about.yml and this CHANGELOG
         
     | 
| 
       277 
293 
     | 
    
         | 
| 
       278 
     | 
    
         
            -
            [Unreleased]: https://github.com/pboling/sanitize_email/compare/v2.0. 
     | 
| 
      
 294 
     | 
    
         
            +
            [Unreleased]: https://github.com/pboling/sanitize_email/compare/v2.0.6...HEAD
         
     | 
| 
      
 295 
     | 
    
         
            +
            [2.0.6]: https://github.com/pboling/sanitize_email/compare/v2.0.5...v2.0.6
         
     | 
| 
      
 296 
     | 
    
         
            +
            [2.0.6t]: https://github.com/pboling/sanitize_email/tags/v2.0.6
         
     | 
| 
      
 297 
     | 
    
         
            +
            [2.0.5]: https://github.com/pboling/sanitize_email/compare/v2.0.4...v2.0.5
         
     | 
| 
      
 298 
     | 
    
         
            +
            [2.0.5t]: https://github.com/pboling/sanitize_email/tags/v2.0.5
         
     | 
| 
       279 
299 
     | 
    
         
             
            [2.0.4]: https://github.com/pboling/sanitize_email/compare/v2.0.3...v2.0.4
         
     | 
| 
       280 
300 
     | 
    
         
             
            [2.0.4t]: https://github.com/pboling/sanitize_email/tags/v2.0.4
         
     | 
| 
       281 
301 
     | 
    
         
             
            [2.0.3]: https://github.com/pboling/sanitize_email/compare/v2.0.2...v2.0.3
         
     | 
    
        data/CONTRIBUTING.md
    CHANGED
    
    | 
         @@ -7,6 +7,14 @@ the [code of conduct][🤝conduct]. 
     | 
|
| 
       7 
7 
     | 
    
         
             
            To submit a patch, please fork the project and create a patch with tests. Once you're happy with it send a pull request
         
     | 
| 
       8 
8 
     | 
    
         
             
            and post a message to the [gitter chat][🏘chat].
         
     | 
| 
       9 
9 
     | 
    
         | 
| 
      
 10 
     | 
    
         
            +
            ## Appraisal & Combustion
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
            ### Generate a new set of Appraisal gemfiles:
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
            ```sh
         
     | 
| 
      
 15 
     | 
    
         
            +
            BUNDLE_GEMFILE=gemfiles/vanilla.gemfile appraisal generate
         
     | 
| 
      
 16 
     | 
    
         
            +
            ```
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
       10 
18 
     | 
    
         
             
            ## Release
         
     | 
| 
       11 
19 
     | 
    
         | 
| 
       12 
20 
     | 
    
         
             
            To release a new version:
         
     | 
    
        data/README.md
    CHANGED
    
    | 
         @@ -63,13 +63,15 @@ then this is the gem for you. 
     | 
|
| 
       63 
63 
     | 
    
         | 
| 
       64 
64 
     | 
    
         
             
            ## Compatibility
         
     | 
| 
       65 
65 
     | 
    
         | 
| 
       66 
     | 
    
         
            -
            ⚙️ Compatible with all versions of Ruby >= 2.3.
         
     | 
| 
      
 66 
     | 
    
         
            +
            ⚙️ Compatible with all versions of Ruby >= 2.3, plus JRuby and Truffleruby.
         
     | 
| 
       67 
67 
     | 
    
         
             
            ⚙️ Compatible with all Ruby web Frameworks (Hanami, Roda, Sinatra, Rails).
         
     | 
| 
       68 
68 
     | 
    
         
             
            ⚙️ Compatible with all versions of Rails from 3.0 - 7.1+.
         
     | 
| 
       69 
69 
     | 
    
         
             
            ⚙️ Compatible with scripted usage of Mail gem outside a web framework.
         
     | 
| 
       70 
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 
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 
72 
     | 
    
         | 
| 
      
 73 
     | 
    
         
            +
            It was a slog getting (very nearly) the entire compatibility matrix working with Github Actions, [`appraisal`](https://github.com/thoughtbot/appraisal), and [`combustion`](https://github.com/pat/combustion), and I'm very interested in hearing about ways to improve it!
         
     | 
| 
      
 74 
     | 
    
         
            +
             
     | 
| 
       73 
75 
     | 
    
         
             
            ## 🛞 DVCS
         
     | 
| 
       74 
76 
     | 
    
         | 
| 
       75 
77 
     | 
    
         
             
            This project does not trust any one version control system,
         
     | 
| 
         @@ -228,7 +230,7 @@ The link tokens in the following sections should be kept ordered by the row and 
     | 
|
| 
       228 
230 
     | 
    
         
             
            It's particularly helpful when you want to prevent the delivery of email (e.g. in development/test environments) or alter the to/cc/bcc (e.g. in staging or demo environments) of all email generated from your application.
         
     | 
| 
       229 
231 
     | 
    
         | 
| 
       230 
232 
     | 
    
         
             
            * compatible without Rails!  Can work with just the `mail` gem.
         
     | 
| 
       231 
     | 
    
         
            -
            * compatible with Rails >=  
     | 
| 
      
 233 
     | 
    
         
            +
            * compatible with Rails >= 3.0.  See gem versions 1.x for older versions of Rails.
         
     | 
| 
       232 
234 
     | 
    
         
             
            * compatible with Ruby >= 2.3.  See gem versions 1.x for older versions of Ruby.
         
     | 
| 
       233 
235 
     | 
    
         
             
            * compatible with any Ruby app with a mail handler that uses the `register_interceptor` API (a la ActionMailer and `mail` gems)
         
     | 
| 
       234 
236 
     | 
    
         
             
            * configure it and forget it
         
     | 
| 
         @@ -674,15 +676,18 @@ Learn more about, or become one of, our 🎖 contributors on: 
     | 
|
| 
       674 
676 
     | 
    
         
             
            ## Running Specs
         
     | 
| 
       675 
677 
     | 
    
         | 
| 
       676 
678 
     | 
    
         
             
            The basic compatibility matrix:
         
     | 
| 
       677 
     | 
    
         
            -
            ```
         
     | 
| 
      
 679 
     | 
    
         
            +
            ```sh
         
     | 
| 
       678 
680 
     | 
    
         
             
            appraisal install
         
     | 
| 
       679 
681 
     | 
    
         
             
            appraisal rake test
         
     | 
| 
       680 
682 
     | 
    
         
             
            ```
         
     | 
| 
       681 
683 
     | 
    
         | 
| 
       682 
684 
     | 
    
         
             
            Sometimes also:
         
     | 
| 
      
 685 
     | 
    
         
            +
            ```sh
         
     | 
| 
      
 686 
     | 
    
         
            +
            BUNDLE_GEMFILE=gemfiles/vanilla.gemfile appraisal update
         
     | 
| 
       683 
687 
     | 
    
         
             
            ```
         
     | 
| 
       684 
     | 
    
         
            -
             
     | 
| 
       685 
     | 
    
         
            -
             
     | 
| 
      
 688 
     | 
    
         
            +
             
     | 
| 
      
 689 
     | 
    
         
            +
            Except, is unlikely to be possible to install all of the supported Rubies & Railsies in a single container...
         
     | 
| 
      
 690 
     | 
    
         
            +
            See the various github action workflows for more inspiration on running certain oldies.
         
     | 
| 
       686 
691 
     | 
    
         | 
| 
       687 
692 
     | 
    
         
             
            ### Code Coverage
         
     | 
| 
       688 
693 
     | 
    
         | 
| 
         @@ -2,14 +2,15 @@ 
     | 
|
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            # Copyright (c) 2008 - 2018, 2020, 2022, 2024 Peter H. Boling of RailsBling.com
         
     | 
| 
       4 
4 
     | 
    
         
             
            # Released under the MIT license
         
     | 
| 
      
 5 
     | 
    
         
            +
            require "rails/engine"
         
     | 
| 
       5 
6 
     | 
    
         | 
| 
       6 
7 
     | 
    
         
             
            module SanitizeEmail
         
     | 
| 
       7 
8 
     | 
    
         
             
              # For Rails >= 6.0
         
     | 
| 
       8 
     | 
    
         
            -
              class  
     | 
| 
      
 9 
     | 
    
         
            +
              class EngineV6 < ::Rails::Engine
         
     | 
| 
       9 
10 
     | 
    
         
             
                config.to_prepare do
         
     | 
| 
       10 
11 
     | 
    
         
             
                  # For the reasoning behind the difference between v5 and v6 engines,
         
     | 
| 
       11 
12 
     | 
    
         
             
                  #   - see: https://github.com/rails/rails/issues/36546#issuecomment-850888284
         
     | 
| 
       12 
     | 
    
         
            -
                  config.action_mailer.register_interceptor(SanitizeEmail::Bleach)
         
     | 
| 
      
 13 
     | 
    
         
            +
                  Rails.application.config.action_mailer.register_interceptor(SanitizeEmail::Bleach)
         
     | 
| 
       13 
14 
     | 
    
         
             
                end
         
     | 
| 
       14 
15 
     | 
    
         
             
              end
         
     | 
| 
       15 
16 
     | 
    
         
             
            end
         
     | 
| 
         @@ -55,10 +55,15 @@ module SanitizeEmail 
     | 
|
| 
       55 
55 
     | 
    
         
             
                  @overridden_cc = tempmail[:cc].decoded
         
     | 
| 
       56 
56 
     | 
    
         
             
                  @overridden_bcc = tempmail[:bcc].decoded
         
     | 
| 
       57 
57 
     | 
    
         | 
| 
       58 
     | 
    
         
            -
                   
     | 
| 
      
 58 
     | 
    
         
            +
                  actual_personalizations = message["personalizations"]
         
     | 
| 
      
 59 
     | 
    
         
            +
                  if actual_personalizations.nil?
         
     | 
| 
       59 
60 
     | 
    
         
             
                    raise MissingRecipients, "No recipients left post-sanitization" if (tempmail.to + tempmail.cc + tempmail.bcc).empty?
         
     | 
| 
      
 61 
     | 
    
         
            +
                  elsif actual_personalizations.respond_to?(:unparsed_value)
         
     | 
| 
      
 62 
     | 
    
         
            +
                    @overridden_personalizations = personalizations_override(actual_personalizations)
         
     | 
| 
       60 
63 
     | 
    
         
             
                  else
         
     | 
| 
       61 
     | 
    
         
            -
                     
     | 
| 
      
 64 
     | 
    
         
            +
                    # TODO: Remove check when dropping Rails 3.x
         
     | 
| 
      
 65 
     | 
    
         
            +
                    #       undefined method `unparsed_value' for #<Mail::OptionalField>
         
     | 
| 
      
 66 
     | 
    
         
            +
                    raise MissingRecipients, "Mail version is too old to use personalizations"
         
     | 
| 
       62 
67 
     | 
    
         
             
                  end
         
     | 
| 
       63 
68 
     | 
    
         
             
                end
         
     | 
| 
       64 
69 
     | 
    
         | 
    
        data/lib/sanitize_email.rb
    CHANGED
    
    | 
         @@ -18,6 +18,9 @@ module SanitizeEmail 
     | 
|
| 
       18 
18 
     | 
    
         
             
              # Error is raised when a block parameter is required and not provided to a method
         
     | 
| 
       19 
19 
     | 
    
         
             
              class MissingBlockParameter < StandardError; end
         
     | 
| 
       20 
20 
     | 
    
         | 
| 
      
 21 
     | 
    
         
            +
              # Load order matters here!
         
     | 
| 
      
 22 
     | 
    
         
            +
              # This gem must be loaded **after** Rails in order for the Engine/Railtie to register itself automatically.
         
     | 
| 
      
 23 
     | 
    
         
            +
              # Otherwise, you'd have to manually require what you need from below.
         
     | 
| 
       21 
24 
     | 
    
         
             
              # Allow non-rails implementations to use this gem
         
     | 
| 
       22 
25 
     | 
    
         
             
              if defined?(::Rails) && defined?(::Rails::VERSION)
         
     | 
| 
       23 
26 
     | 
    
         
             
                if defined?(::Rails::Engine)
         
     | 
| 
         @@ -48,95 +51,101 @@ module SanitizeEmail 
     | 
|
| 
       48 
51 
     | 
    
         
             
                end
         
     | 
| 
       49 
52 
     | 
    
         
             
              end
         
     | 
| 
       50 
53 
     | 
    
         | 
| 
       51 
     | 
    
         
            -
               
     | 
| 
       52 
     | 
    
         
            -
                 
     | 
| 
       53 
     | 
    
         
            -
                SanitizeEmail::Config.config[key.to_sym]
         
     | 
| 
       54 
     | 
    
         
            -
              end
         
     | 
| 
      
 54 
     | 
    
         
            +
              class << self
         
     | 
| 
      
 55 
     | 
    
         
            +
                extend SanitizeEmail::Deprecation
         
     | 
| 
       55 
56 
     | 
    
         | 
| 
       56 
     | 
    
         
            -
             
     | 
| 
       57 
     | 
    
         
            -
                SanitizeEmail[name]
         
     | 
| 
       58 
     | 
    
         
            -
              end
         
     | 
| 
      
 57 
     | 
    
         
            +
                attr_accessor :force_sanitize
         
     | 
| 
       59 
58 
     | 
    
         | 
| 
       60 
     | 
    
         
            -
             
     | 
| 
       61 
     | 
    
         
            -
             
     | 
| 
       62 
     | 
    
         
            -
             
     | 
| 
       63 
     | 
    
         
            -
                 
     | 
| 
       64 
     | 
    
         
            -
              end
         
     | 
| 
      
 59 
     | 
    
         
            +
                def [](key)
         
     | 
| 
      
 60 
     | 
    
         
            +
                  return unless key.respond_to?(:to_sym)
         
     | 
| 
      
 61 
     | 
    
         
            +
                  SanitizeEmail::Config.config[key.to_sym]
         
     | 
| 
      
 62 
     | 
    
         
            +
                end
         
     | 
| 
       65 
63 
     | 
    
         | 
| 
       66 
     | 
    
         
            -
             
     | 
| 
       67 
     | 
    
         
            -
             
     | 
| 
       68 
     | 
    
         
            -
             
     | 
| 
       69 
     | 
    
         
            -
             
     | 
| 
       70 
     | 
    
         
            -
             
     | 
| 
      
 64 
     | 
    
         
            +
                def method_missing(name, *_args)
         
     | 
| 
      
 65 
     | 
    
         
            +
                  if name
         
     | 
| 
      
 66 
     | 
    
         
            +
                    SanitizeEmail[name]
         
     | 
| 
      
 67 
     | 
    
         
            +
                  else
         
     | 
| 
      
 68 
     | 
    
         
            +
                    super
         
     | 
| 
      
 69 
     | 
    
         
            +
                  end
         
     | 
| 
      
 70 
     | 
    
         
            +
                end
         
     | 
| 
       71 
71 
     | 
    
         | 
| 
       72 
     | 
    
         
            -
             
     | 
| 
       73 
     | 
    
         
            -
             
     | 
| 
       74 
     | 
    
         
            -
                 
     | 
| 
       75 
     | 
    
         
            -
              end
         
     | 
| 
      
 72 
     | 
    
         
            +
                def respond_to_missing?(method_name, include_private = false)
         
     | 
| 
      
 73 
     | 
    
         
            +
                  method_name ? method_name : super
         
     | 
| 
      
 74 
     | 
    
         
            +
                end
         
     | 
| 
       76 
75 
     | 
    
         | 
| 
       77 
     | 
    
         
            -
             
     | 
| 
       78 
     | 
    
         
            -
                 
     | 
| 
       79 
     | 
    
         
            -
             
     | 
| 
       80 
     | 
    
         
            -
             
     | 
| 
      
 76 
     | 
    
         
            +
                # NOTE: Deprecated method
         
     | 
| 
      
 77 
     | 
    
         
            +
                # We have to actually define because we can't deprecate methods that are hooked up via method_missing
         
     | 
| 
      
 78 
     | 
    
         
            +
                def sanitized_recipients
         
     | 
| 
      
 79 
     | 
    
         
            +
                  # NOOP - This method is never actually executed, because the deprecations redirects the call to sanitized_to
         
     | 
| 
      
 80 
     | 
    
         
            +
                end
         
     | 
| 
       81 
81 
     | 
    
         | 
| 
       82 
     | 
    
         
            -
             
     | 
| 
       83 
     | 
    
         
            -
             
     | 
| 
       84 
     | 
    
         
            -
             
     | 
| 
       85 
     | 
    
         
            -
             
     | 
| 
       86 
     | 
    
         
            -
              #
         
     | 
| 
       87 
     | 
    
         
            -
              # SanitizeEmail.sanitary({:sanitized_to => "boo@example.com"}) do
         
     | 
| 
       88 
     | 
    
         
            -
              #   Mail.deliver do
         
     | 
| 
       89 
     | 
    
         
            -
              #     from      "from@example.org"
         
     | 
| 
       90 
     | 
    
         
            -
              #     # Will actually be sent to the override addresses, not this one:
         
     | 
| 
       91 
     | 
    
         
            -
              #     to        "to@example.org"
         
     | 
| 
       92 
     | 
    
         
            -
              #     reply_to  "reply_to@example.org"
         
     | 
| 
       93 
     | 
    
         
            -
              #     subject   "subject"
         
     | 
| 
       94 
     | 
    
         
            -
              #   end
         
     | 
| 
       95 
     | 
    
         
            -
              # end
         
     | 
| 
       96 
     | 
    
         
            -
              #
         
     | 
| 
       97 
     | 
    
         
            -
              def self.sanitary(config_options = {})
         
     | 
| 
       98 
     | 
    
         
            -
                raise MissingBlockParameter, "SanitizeEmail.sanitary must be called with a block" unless block_given?
         
     | 
| 
       99 
     | 
    
         
            -
                janitor(forcing: true) do
         
     | 
| 
       100 
     | 
    
         
            -
                  original = SanitizeEmail::Config.config.dup
         
     | 
| 
       101 
     | 
    
         
            -
                  SanitizeEmail::Config.config.merge!(config_options)
         
     | 
| 
       102 
     | 
    
         
            -
                  yield
         
     | 
| 
       103 
     | 
    
         
            -
                  SanitizeEmail::Config.config = original
         
     | 
| 
      
 82 
     | 
    
         
            +
                # NOTE: Deprecated method
         
     | 
| 
      
 83 
     | 
    
         
            +
                # We have to actually define because we can't deprecate methods that are hooked up via method_missing
         
     | 
| 
      
 84 
     | 
    
         
            +
                def local_environments
         
     | 
| 
      
 85 
     | 
    
         
            +
                  SanitizeEmail::Config.config[:local_environments]
         
     | 
| 
       104 
86 
     | 
    
         
             
                end
         
     | 
| 
       105 
     | 
    
         
            -
              end
         
     | 
| 
       106 
87 
     | 
    
         | 
| 
       107 
     | 
    
         
            -
             
     | 
| 
       108 
     | 
    
         
            -
             
     | 
| 
       109 
     | 
    
         
            -
             
     | 
| 
       110 
     | 
    
         
            -
              # SanitizeEmail.unsanitary do
         
     | 
| 
       111 
     | 
    
         
            -
              #   Mail.deliver do
         
     | 
| 
       112 
     | 
    
         
            -
              #     from      "from@example.org"
         
     | 
| 
       113 
     | 
    
         
            -
              #     to        "to@example.org"
         
     | 
| 
       114 
     | 
    
         
            -
              #     reply_to  "reply_to@example.org"
         
     | 
| 
       115 
     | 
    
         
            -
              #     subject   "subject"
         
     | 
| 
       116 
     | 
    
         
            -
              #   end
         
     | 
| 
       117 
     | 
    
         
            -
              # end
         
     | 
| 
       118 
     | 
    
         
            -
              #
         
     | 
| 
       119 
     | 
    
         
            -
              def self.unsanitary
         
     | 
| 
       120 
     | 
    
         
            -
                raise MissingBlockParameter, "SanitizeEmail.unsanitary must be called with a block" unless block_given?
         
     | 
| 
       121 
     | 
    
         
            -
                janitor(forcing: false) do
         
     | 
| 
       122 
     | 
    
         
            -
                  yield
         
     | 
| 
      
 88 
     | 
    
         
            +
                def activate?(message)
         
     | 
| 
      
 89 
     | 
    
         
            +
                  proc = SanitizeEmail::Config.config[:activation_proc]
         
     | 
| 
      
 90 
     | 
    
         
            +
                  proc.call(message) if proc.respond_to?(:call)
         
     | 
| 
       123 
91 
     | 
    
         
             
                end
         
     | 
| 
       124 
     | 
    
         
            -
              end
         
     | 
| 
       125 
92 
     | 
    
         | 
| 
       126 
     | 
    
         
            -
             
     | 
| 
       127 
     | 
    
         
            -
                 
     | 
| 
       128 
     | 
    
         
            -
                 
     | 
| 
       129 
     | 
    
         
            -
                SanitizeEmail. 
     | 
| 
       130 
     | 
    
         
            -
                 
     | 
| 
       131 
     | 
    
         
            -
                SanitizeEmail. 
     | 
| 
       132 
     | 
    
         
            -
             
     | 
| 
      
 93 
     | 
    
         
            +
                # Regardless of the Config settings of SanitizeEmail you can do a local
         
     | 
| 
      
 94 
     | 
    
         
            +
                # override to send sanitary email in any environment.
         
     | 
| 
      
 95 
     | 
    
         
            +
                # You have access to all the same configuration options in the parameter hash
         
     | 
| 
      
 96 
     | 
    
         
            +
                # as you can set in the actual SanitizeEmail.configure block.
         
     | 
| 
      
 97 
     | 
    
         
            +
                #
         
     | 
| 
      
 98 
     | 
    
         
            +
                # SanitizeEmail.sanitary({:sanitized_to => "boo@example.com"}) do
         
     | 
| 
      
 99 
     | 
    
         
            +
                #   Mail.deliver do
         
     | 
| 
      
 100 
     | 
    
         
            +
                #     from      "from@example.org"
         
     | 
| 
      
 101 
     | 
    
         
            +
                #     # Will actually be sent to the override addresses, not this one:
         
     | 
| 
      
 102 
     | 
    
         
            +
                #     to        "to@example.org"
         
     | 
| 
      
 103 
     | 
    
         
            +
                #     reply_to  "reply_to@example.org"
         
     | 
| 
      
 104 
     | 
    
         
            +
                #     subject   "subject"
         
     | 
| 
      
 105 
     | 
    
         
            +
                #   end
         
     | 
| 
      
 106 
     | 
    
         
            +
                # end
         
     | 
| 
      
 107 
     | 
    
         
            +
                #
         
     | 
| 
      
 108 
     | 
    
         
            +
                def sanitary(config_options = {})
         
     | 
| 
      
 109 
     | 
    
         
            +
                  raise MissingBlockParameter, "SanitizeEmail.sanitary must be called with a block" unless block_given?
         
     | 
| 
      
 110 
     | 
    
         
            +
                  janitor(forcing: true) do
         
     | 
| 
      
 111 
     | 
    
         
            +
                    original = SanitizeEmail::Config.config.dup
         
     | 
| 
      
 112 
     | 
    
         
            +
                    SanitizeEmail::Config.config.merge!(config_options)
         
     | 
| 
      
 113 
     | 
    
         
            +
                    yield
         
     | 
| 
      
 114 
     | 
    
         
            +
                    SanitizeEmail::Config.config = original
         
     | 
| 
      
 115 
     | 
    
         
            +
                  end
         
     | 
| 
      
 116 
     | 
    
         
            +
                end
         
     | 
| 
      
 117 
     | 
    
         
            +
             
     | 
| 
      
 118 
     | 
    
         
            +
                # Regardless of the Config settings of SanitizeEmail you can do a local
         
     | 
| 
      
 119 
     | 
    
         
            +
                # override to force unsanitary email in any environment.
         
     | 
| 
      
 120 
     | 
    
         
            +
                #
         
     | 
| 
      
 121 
     | 
    
         
            +
                # SanitizeEmail.unsanitary do
         
     | 
| 
      
 122 
     | 
    
         
            +
                #   Mail.deliver do
         
     | 
| 
      
 123 
     | 
    
         
            +
                #     from      "from@example.org"
         
     | 
| 
      
 124 
     | 
    
         
            +
                #     to        "to@example.org"
         
     | 
| 
      
 125 
     | 
    
         
            +
                #     reply_to  "reply_to@example.org"
         
     | 
| 
      
 126 
     | 
    
         
            +
                #     subject   "subject"
         
     | 
| 
      
 127 
     | 
    
         
            +
                #   end
         
     | 
| 
      
 128 
     | 
    
         
            +
                # end
         
     | 
| 
      
 129 
     | 
    
         
            +
                #
         
     | 
| 
      
 130 
     | 
    
         
            +
                def unsanitary
         
     | 
| 
      
 131 
     | 
    
         
            +
                  raise MissingBlockParameter, "SanitizeEmail.unsanitary must be called with a block" unless block_given?
         
     | 
| 
      
 132 
     | 
    
         
            +
                  janitor(forcing: false) do
         
     | 
| 
      
 133 
     | 
    
         
            +
                    yield
         
     | 
| 
      
 134 
     | 
    
         
            +
                  end
         
     | 
| 
      
 135 
     | 
    
         
            +
                end
         
     | 
| 
      
 136 
     | 
    
         
            +
             
     | 
| 
      
 137 
     | 
    
         
            +
                def janitor(options)
         
     | 
| 
      
 138 
     | 
    
         
            +
                  raise MissingBlockParameter, "SanitizeEmail.janitor must be called with a block" unless block_given?
         
     | 
| 
      
 139 
     | 
    
         
            +
                  original = SanitizeEmail.force_sanitize
         
     | 
| 
      
 140 
     | 
    
         
            +
                  SanitizeEmail.force_sanitize = options[:forcing]
         
     | 
| 
      
 141 
     | 
    
         
            +
                  yield
         
     | 
| 
      
 142 
     | 
    
         
            +
                  SanitizeEmail.force_sanitize = original
         
     | 
| 
      
 143 
     | 
    
         
            +
                end
         
     | 
| 
       133 
144 
     | 
    
         | 
| 
       134 
     | 
    
         
            -
              # Setup Deprecations!
         
     | 
| 
       135 
     | 
    
         
            -
              class << self
         
     | 
| 
       136 
     | 
    
         
            -
                extend SanitizeEmail::Deprecation
         
     | 
| 
       137 
145 
     | 
    
         
             
                deprecated_alias :sanitized_recipients, :sanitized_to
         
     | 
| 
       138 
146 
     | 
    
         
             
                deprecated :local_environments, :activation_proc
         
     | 
| 
       139 
147 
     | 
    
         
             
              end
         
     | 
| 
      
 148 
     | 
    
         
            +
              @force_sanitize = nil
         
     | 
| 
       140 
149 
     | 
    
         
             
            end
         
     | 
| 
       141 
150 
     | 
    
         | 
| 
       142 
151 
     | 
    
         
             
            SanitizeEmail::Version.class_eval do
         
     | 
    
        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.6
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Peter Boling
         
     | 
| 
         @@ -38,7 +38,7 @@ cert_chain: 
     | 
|
| 
       38 
38 
     | 
    
         
             
              KuxrfYrN+9HvMdm+nZ6TypmKftHY3Gj+/uu+g8Icm/zrvTWAEE0mcJOkfrIoNPJb
         
     | 
| 
       39 
39 
     | 
    
         
             
              pF8dMA==
         
     | 
| 
       40 
40 
     | 
    
         
             
              -----END CERTIFICATE-----
         
     | 
| 
       41 
     | 
    
         
            -
            date: 2024-04- 
     | 
| 
      
 41 
     | 
    
         
            +
            date: 2024-04-25 00:00:00.000000000 Z
         
     | 
| 
       42 
42 
     | 
    
         
             
            dependencies:
         
     | 
| 
       43 
43 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       44 
44 
     | 
    
         
             
              name: mail
         
     | 
| 
         @@ -74,82 +74,62 @@ dependencies: 
     | 
|
| 
       74 
74 
     | 
    
         
             
                - - ">="
         
     | 
| 
       75 
75 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       76 
76 
     | 
    
         
             
                    version: 1.1.4
         
     | 
| 
       77 
     | 
    
         
            -
            - !ruby/object:Gem::Dependency
         
     | 
| 
       78 
     | 
    
         
            -
              name: actionmailer
         
     | 
| 
       79 
     | 
    
         
            -
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       80 
     | 
    
         
            -
                requirements:
         
     | 
| 
       81 
     | 
    
         
            -
                - - ">="
         
     | 
| 
       82 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       83 
     | 
    
         
            -
                    version: '3'
         
     | 
| 
       84 
     | 
    
         
            -
              type: :development
         
     | 
| 
       85 
     | 
    
         
            -
              prerelease: false
         
     | 
| 
       86 
     | 
    
         
            -
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       87 
     | 
    
         
            -
                requirements:
         
     | 
| 
       88 
     | 
    
         
            -
                - - ">="
         
     | 
| 
       89 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       90 
     | 
    
         
            -
                    version: '3'
         
     | 
| 
       91 
77 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       92 
78 
     | 
    
         
             
              name: appraisal
         
     | 
| 
       93 
79 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       94 
80 
     | 
    
         
             
                requirements:
         
     | 
| 
       95 
81 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       96 
82 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       97 
     | 
    
         
            -
                    version: '2'
         
     | 
| 
      
 83 
     | 
    
         
            +
                    version: '2.5'
         
     | 
| 
       98 
84 
     | 
    
         
             
              type: :development
         
     | 
| 
       99 
85 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       100 
86 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       101 
87 
     | 
    
         
             
                requirements:
         
     | 
| 
       102 
88 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       103 
89 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       104 
     | 
    
         
            -
                    version: '2'
         
     | 
| 
      
 90 
     | 
    
         
            +
                    version: '2.5'
         
     | 
| 
       105 
91 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       106 
     | 
    
         
            -
              name:  
     | 
| 
      
 92 
     | 
    
         
            +
              name: json
         
     | 
| 
       107 
93 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       108 
94 
     | 
    
         
             
                requirements:
         
     | 
| 
       109 
95 
     | 
    
         
             
                - - ">="
         
     | 
| 
       110 
96 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       111 
     | 
    
         
            -
                    version:  
     | 
| 
       112 
     | 
    
         
            -
                - - "<="
         
     | 
| 
       113 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       114 
     | 
    
         
            -
                    version: '8'
         
     | 
| 
      
 97 
     | 
    
         
            +
                    version: 1.7.7
         
     | 
| 
       115 
98 
     | 
    
         
             
              type: :development
         
     | 
| 
       116 
99 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       117 
100 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       118 
101 
     | 
    
         
             
                requirements:
         
     | 
| 
       119 
102 
     | 
    
         
             
                - - ">="
         
     | 
| 
       120 
103 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       121 
     | 
    
         
            -
                    version:  
     | 
| 
       122 
     | 
    
         
            -
                - - "<="
         
     | 
| 
       123 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       124 
     | 
    
         
            -
                    version: '8'
         
     | 
| 
      
 104 
     | 
    
         
            +
                    version: 1.7.7
         
     | 
| 
       125 
105 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       126 
106 
     | 
    
         
             
              name: rake
         
     | 
| 
       127 
107 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       128 
108 
     | 
    
         
             
                requirements:
         
     | 
| 
       129 
109 
     | 
    
         
             
                - - ">="
         
     | 
| 
       130 
110 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       131 
     | 
    
         
            -
                    version:  
     | 
| 
      
 111 
     | 
    
         
            +
                    version: 0.8.7
         
     | 
| 
       132 
112 
     | 
    
         
             
              type: :development
         
     | 
| 
       133 
113 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       134 
114 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       135 
115 
     | 
    
         
             
                requirements:
         
     | 
| 
       136 
116 
     | 
    
         
             
                - - ">="
         
     | 
| 
       137 
117 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       138 
     | 
    
         
            -
                    version:  
     | 
| 
      
 118 
     | 
    
         
            +
                    version: 0.8.7
         
     | 
| 
       139 
119 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       140 
120 
     | 
    
         
             
              name: rdoc
         
     | 
| 
       141 
121 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       142 
122 
     | 
    
         
             
                requirements:
         
     | 
| 
       143 
123 
     | 
    
         
             
                - - ">="
         
     | 
| 
       144 
124 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       145 
     | 
    
         
            -
                    version: '3 
     | 
| 
      
 125 
     | 
    
         
            +
                    version: '3'
         
     | 
| 
       146 
126 
     | 
    
         
             
              type: :development
         
     | 
| 
       147 
127 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       148 
128 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       149 
129 
     | 
    
         
             
                requirements:
         
     | 
| 
       150 
130 
     | 
    
         
             
                - - ">="
         
     | 
| 
       151 
131 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       152 
     | 
    
         
            -
                    version: '3 
     | 
| 
      
 132 
     | 
    
         
            +
                    version: '3'
         
     | 
| 
       153 
133 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       154 
134 
     | 
    
         
             
              name: rspec
         
     | 
| 
       155 
135 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
         @@ -237,10 +217,10 @@ licenses: 
     | 
|
| 
       237 
217 
     | 
    
         
             
            - MIT
         
     | 
| 
       238 
218 
     | 
    
         
             
            metadata:
         
     | 
| 
       239 
219 
     | 
    
         
             
              homepage_uri: https://github.com/pboling/sanitize_email
         
     | 
| 
       240 
     | 
    
         
            -
              source_code_uri: https://github.com/pboling/sanitize_email/tree/v2.0. 
     | 
| 
       241 
     | 
    
         
            -
              changelog_uri: https://github.com/pboling/sanitize_email/blob/v2.0. 
     | 
| 
      
 220 
     | 
    
         
            +
              source_code_uri: https://github.com/pboling/sanitize_email/tree/v2.0.6
         
     | 
| 
      
 221 
     | 
    
         
            +
              changelog_uri: https://github.com/pboling/sanitize_email/blob/v2.0.6/CHANGELOG.md
         
     | 
| 
       242 
222 
     | 
    
         
             
              bug_tracker_uri: https://github.com/pboling/sanitize_email/issues
         
     | 
| 
       243 
     | 
    
         
            -
              documentation_uri: https://www.rubydoc.info/gems/sanitize_email/2.0. 
     | 
| 
      
 223 
     | 
    
         
            +
              documentation_uri: https://www.rubydoc.info/gems/sanitize_email/2.0.6
         
     | 
| 
       244 
224 
     | 
    
         
             
              wiki_uri: https://github.com/pboling/sanitize_email/wiki
         
     | 
| 
       245 
225 
     | 
    
         
             
              funding_uri: https://liberapay.com/pboling
         
     | 
| 
       246 
226 
     | 
    
         
             
              rubygems_mfa_required: 'true'
         
     | 
    
        metadata.gz.sig
    CHANGED
    
    | 
         Binary file 
     |