email-verification 0.1.3 → 0.1.4

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
  SHA256:
3
- metadata.gz: 702f0833319b309cd3965f937dc4fc227c49a4d8be80f74189fd8b5c9bab8d3e
4
- data.tar.gz: 6993c38b5add429ad7414fb45c8b25fc50da26ccb341578c0723a08091279caa
3
+ metadata.gz: 7f255eb6d2773f206b9c43a2df45012c5c342a755483f39862d519e191bdc1f8
4
+ data.tar.gz: c43048bd9c00b2410624d4fb75aebddf73d42542f4ab47e99159a9c0bab86458
5
5
  SHA512:
6
- metadata.gz: 07f70cc1ed87d500a6b24780833bee31a4b71ce60ee34cc040650835316e6e6548c7cd80f32f692195a0d40ae1234892fd0c9587c93a01135366c5d5e2522ba6
7
- data.tar.gz: 9f91d48d9339116f82cbad905b0233f515f4dc4b223b391e1c515a3f78c7d973c0ac0997f86ccfcfda9be51beb971b95b757853ad2a4aa5a9d7149650236b9d3
6
+ metadata.gz: 1f5d037971474115d513de1b47337bb6c7fdd0b03ed4745eb06e58f55155f6704342dc3894bf53879ec05ca32061141db71ef82a67ab6aa0c68235389f2988fd
7
+ data.tar.gz: ad29ae280885a522eb3f4d915c10bb917b1291a6fe14363dd32f69cc7e6c6100c73a23f61f764e3e8cdb22d71595e0c371bd64aaf77628f8b3f98d37afe3d63c
@@ -27,11 +27,9 @@ module Email
27
27
  if settings_provided?(settings)
28
28
  matching_subject = settings[:subject].nil? || (!settings[:subject].nil? && email.subject =~ settings[:subject])
29
29
 
30
- if email.from&.first&.strip == settings[:address] && matching_subject
31
- emails << (email.html_part || email.text_part || email).body.decoded
32
- end
30
+ emails << email_body(email) if email.from&.first&.strip == settings[:address] && matching_subject
33
31
  else
34
- emails << (email.html_part || email.text_part || email).body.decoded
32
+ emails << email_body(email)
35
33
  end
36
34
  end
37
35
  end
@@ -54,6 +52,15 @@ module Email
54
52
  settings && !settings.empty?
55
53
  end
56
54
 
55
+ def email_body(email)
56
+ body = (email.html_part || email.text_part || email)&.body&.decoded
57
+ force_utf8(body)
58
+ end
59
+
60
+ def force_utf8(string)
61
+ string&.encode("UTF-8", invalid: :replace, undef: :replace, replace: '')&.force_encoding('UTF-8')
62
+ end
63
+
57
64
  def log(message)
58
65
  puts "[Email::Verification] - #{Time.now.to_s}: #{message}" if self.configuration.verbose
59
66
  end
@@ -17,14 +17,12 @@ module Email
17
17
  matching_name = settings[:from].to_s.empty? || (!settings[:from].to_s.empty? && email.from.first.name == settings[:from])
18
18
  matching_subject = settings[:subject].nil? || (!settings[:subject].nil? && email.subject =~ settings[:subject])
19
19
 
20
- if matching_name && matching_subject
21
- emails << (email.html_part || email.text_part || email).body.decoded
22
- email.read! if mark_as_read
23
- end
20
+ emails << email_body(email) if matching_name && matching_subject
24
21
  else
25
- emails << (email.html_part || email.text_part || email).body.decoded
26
- email.read! if mark_as_read
22
+ emails << email_body(email)
27
23
  end
24
+
25
+ email.read! if mark_as_read
28
26
  end
29
27
  end
30
28
 
@@ -1,5 +1,5 @@
1
1
  module Email
2
2
  module Verification
3
- VERSION = "0.1.3"
3
+ VERSION = "0.1.4"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: email-verification
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sebastian Johnsson