mailsafe 0.2.1 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 67ad0adc4f46869bab060bd9c07f998e5515fc3b
4
- data.tar.gz: e99ad41b2eae6e0e9e3c248d740ca5e29db51993
3
+ metadata.gz: 520842cba6add4d0ab7d64e561144752118bae8f
4
+ data.tar.gz: 385e730e754a9f2ea4c9d9dc751a1d562248704b
5
5
  SHA512:
6
- metadata.gz: 75f2a2260bc81b28beee198fc22e36d9382065ac915892b1c901b9a715c8b21f2fb251cb4f9dceddaa7b765e96c9afefdeb0ebcc47a0d4a8cfa03526a9a170f8
7
- data.tar.gz: 49259b685320f13a7858aa35b44c7f6e4d32b4177028876624ed0537815352aa6a26367cc6c54c7e5bdb9a9f9d5f8404bd871ebc5357be69d8d99da820fc3375
6
+ metadata.gz: 22fecc860268b92693f3f2d628e86ff5947c315638f2aba7c9536c7a1eced41036d2bd0223190fd3eefe89c93b14a2b6a2c3ba15d598f02147cacdf8fd4b45a9
7
+ data.tar.gz: 68d3f3331c87a834859957add9d67bce5b32e3be12aa49c8443f0ec3d3f798848f5b57df52e090e45efddb2fb20a4186fbb1c61692678abd338ac50ebd431bde
@@ -37,16 +37,16 @@ module Mailsafe
37
37
  end
38
38
  end
39
39
 
40
+ module DeliverWithRecipientFilter
41
+ def deliver
42
+ Mailsafe::RecipientWhitelist.new(self).filter_recipient_domains
43
+ super unless self.to.blank? || self.to.empty?
44
+ end
45
+ end
40
46
  end
41
47
 
42
- # Unfortunately, monkeypatching Mail is the only way I found to actually prevent sending an email
43
48
  require 'mail'
44
49
 
45
50
  class Mail::Message
46
- def deliver_with_recipient_filter
47
- Mailsafe::RecipientWhitelist.new(self).filter_recipient_domains
48
- self.deliver_without_recipient_filter unless self.to.blank? || self.to.empty?
49
- end
50
-
51
- alias_method_chain :deliver, :recipient_filter
51
+ prepend Mailsafe::DeliverWithRecipientFilter
52
52
  end
@@ -1,3 +1,3 @@
1
1
  module Mailsafe
2
- VERSION = "0.2.1"
2
+ VERSION = "0.3.0"
3
3
  end
@@ -18,9 +18,9 @@ Gem::Specification.new do |spec|
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ["lib"]
20
20
 
21
- spec.add_development_dependency "bundler", "~> 1.3"
21
+ spec.add_development_dependency "bundler"
22
22
  spec.add_development_dependency "rake"
23
23
  spec.add_development_dependency "pry"
24
- spec.add_development_dependency "rspec", "~> 3.2.0"
25
- spec.add_development_dependency "rails", "~> 4.1.5"
24
+ spec.add_development_dependency "rspec"
25
+ spec.add_development_dependency "rails"
26
26
  end
@@ -2,7 +2,6 @@ require 'spec_helper'
2
2
 
3
3
  module Mailsafe
4
4
  describe RecipientWhitelist do
5
-
6
5
  describe ".filter_recipient_domain" do
7
6
  subject { Mail.new(to: to, cc: cc, bcc: bcc) }
8
7
  let(:to) { ["to@gmail.com", "to@yahoo.com"] }
@@ -101,4 +100,30 @@ module Mailsafe
101
100
  end
102
101
  end
103
102
  end
103
+
104
+ describe "integration test" do
105
+ before do
106
+ Mail.defaults { delivery_method :test }
107
+ Mailsafe.setup do |config|
108
+ config.allowed_domain = "whitelisted.com"
109
+ end
110
+ end
111
+
112
+ context "with whitelisted recipients" do
113
+ let(:recipients) { "john@whitelisted.com, joe@blacklisted.com" }
114
+ let(:mail) do
115
+ Mail.new.tap do |mail|
116
+ mail[:from] = "me@example.com"
117
+ mail[:to] = recipients
118
+ end
119
+ end
120
+
121
+ it "delivers only to whitelisted recipients" do
122
+ mail.deliver
123
+
124
+ expect(Mail::TestMailer.deliveries.count).to eq 1
125
+ expect(Mail::TestMailer.deliveries.first.to).to eq ["john@whitelisted.com"]
126
+ end
127
+ end
128
+ end
104
129
  end
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mailsafe
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Simon Stemplinger
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-02-16 00:00:00.000000000 Z
11
+ date: 2017-11-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '1.3'
19
+ version: '0'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '1.3'
26
+ version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -56,30 +56,30 @@ dependencies:
56
56
  name: rspec
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - "~>"
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
- version: 3.2.0
61
+ version: '0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - "~>"
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
- version: 3.2.0
68
+ version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rails
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - "~>"
73
+ - - ">="
74
74
  - !ruby/object:Gem::Version
75
- version: 4.1.5
75
+ version: '0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - "~>"
80
+ - - ">="
81
81
  - !ruby/object:Gem::Version
82
- version: 4.1.5
82
+ version: '0'
83
83
  description: Safe emailing for Rails
84
84
  email:
85
85
  - simon@simon-stemplinger.com
@@ -124,7 +124,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
124
124
  version: '0'
125
125
  requirements: []
126
126
  rubyforge_project:
127
- rubygems_version: 2.4.2
127
+ rubygems_version: 2.5.1
128
128
  signing_key:
129
129
  specification_version: 4
130
130
  summary: Safe emailing for Rails - do not send emails to real users from development