mailsafe 0.2.1 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
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