griddler 1.3.0 → 1.3.1

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: 6aa1ca112493637de599c4d500d4f7866bf6f9d2
4
- data.tar.gz: 7982ae7c23c1c5166afc18666804087feedebe7c
3
+ metadata.gz: 75f194d5d7ffebb9f599c4e67580b66759b894e7
4
+ data.tar.gz: 7b1fe0580a6ec472aa19a05193e064d8140761b4
5
5
  SHA512:
6
- metadata.gz: c542fe67d88aa3d1f717a44f595d08f7100df1accecf83c2ee31e9318f2731a5101567152309e06d9bd105e0ee310a586ee4904cd815ed2a54ce859e580c017f
7
- data.tar.gz: 1ece4686acf277a564605c23e8d8418430cf43f9e7400466020fccd466d099f2277cd1ba3249e7c99a9aedfc0454cd985edd6e7971685f6242575ae3fd8a4422
6
+ metadata.gz: 5d44196465d1efb54a6c86e1892b487bed74a88e454b6f55ad20330194aa5459758dbc8656cdd601a6aa76db140c69366a33729d2a7f68779e3489c37db84059
7
+ data.tar.gz: 5560e05ef5350e6285d92cbebe36415efa4d5e0999d9b175dbd5e934c815c27b9003750f6cf60701d249612696ec79a474b3eb56338198139bc9a5e2e5faaab4
data/README.md CHANGED
@@ -168,11 +168,13 @@ adapter gem in addition to `griddler`.
168
168
  | mandrill | [griddler-mandrill]
169
169
  | mailgun | [griddler-mailgun]
170
170
  | postmark | [griddler-postmark]
171
+ | sparkpost | [griddler-sparkpost]
171
172
 
172
173
  [griddler-sendgrid]: https://github.com/thoughtbot/griddler-sendgrid
173
174
  [griddler-mandrill]: https://github.com/wingrunr21/griddler-mandrill
174
175
  [griddler-mailgun]: https://github.com/bradpauly/griddler-mailgun
175
176
  [griddler-postmark]: https://github.com/r38y/griddler-postmark
177
+ [griddler-sparkpost]: https://github.com/PrestoDoctor/griddler-sparkpost
176
178
 
177
179
  Writing an Adapter
178
180
  ------------------
@@ -16,25 +16,22 @@ module Griddler
16
16
  end
17
17
 
18
18
  class Configuration
19
- attr_accessor :processor_class, :processor_method, :reply_delimiter
19
+ attr_accessor :processor_method, :reply_delimiter
20
20
 
21
21
  def processor_class
22
22
  @processor_class ||=
23
23
  begin
24
- if Kernel.const_defined?(:EmailProcessor)
25
- "EmailProcessor"
26
- else
27
- raise NameError.new(<<-ERROR.strip_heredoc, 'EmailProcessor')
28
- To use Griddler, you must either define `EmailProcessor` or configure a
29
- different processor. See https://github.com/thoughtbot/griddler#defaults for
30
- more information.
31
- ERROR
32
- end
24
+ EmailProcessor.to_s
25
+ rescue NameError
26
+ raise NameError.new(<<-ERROR.strip_heredoc, 'EmailProcessor')
27
+ To use Griddler, you must either define `EmailProcessor` or configure a
28
+ different processor. See https://github.com/thoughtbot/griddler#defaults for
29
+ more information.
30
+ ERROR
33
31
  end
34
-
35
32
  @processor_class.constantize
36
33
  end
37
-
34
+
38
35
  def processor_class=(klass)
39
36
  @processor_class = klass.to_s
40
37
  end
@@ -48,7 +45,9 @@ module Griddler
48
45
  end
49
46
 
50
47
  def email_service
51
- @email_service_adapter ||= Griddler.adapter_registry[:default]
48
+ @email_service_adapter ||=
49
+ Griddler.adapter_registry[:default] ||
50
+ raise(Griddler::Errors::EmailServiceAdapterNotFound)
52
51
  end
53
52
 
54
53
  def email_service=(new_email_service)
@@ -39,11 +39,12 @@ module Griddler
39
39
  def recipients(type)
40
40
  params[type].to_a.reject(&:empty?).map do |recipient|
41
41
  extract_address(recipient)
42
- end
42
+ end.compact
43
43
  end
44
44
 
45
45
  def extract_address(address)
46
- EmailParser.parse_address(clean_text(address))
46
+ clean_address = clean_text(address)
47
+ EmailParser.parse_address(clean_address) if clean_address =~ /@/
47
48
  end
48
49
 
49
50
  def extract_subject
@@ -57,6 +58,8 @@ module Griddler
57
58
  def extract_headers
58
59
  if params[:headers].is_a?(Hash)
59
60
  deep_clean_invalid_utf8_bytes(params[:headers])
61
+ elsif params[:headers].is_a?(Array)
62
+ deep_clean_invalid_utf8_bytes(params[:headers])
60
63
  else
61
64
  EmailParser.extract_headers(clean_invalid_utf8_bytes(params[:headers]))
62
65
  end
@@ -81,9 +81,10 @@ module Griddler::EmailParser
81
81
  /^[[:space:]]*[-]+[[:space:]]*Original Message[[:space:]]*[-]+[[:space:]]*$/i,
82
82
  /^[[:space:]]*--[[:space:]]*$/,
83
83
  /^[[:space:]]*\>?[[:space:]]*On.*\r?\n?.*wrote:\r?\n?$/,
84
+ /^On.*<\n?.*>.*\n?wrote:$/,
84
85
  /On.*wrote:/,
85
86
  /\*?From:.*$/i,
86
- /^[[:space:]]*\d{4}\/\d{1,2}\/\d{1,2}[[:space:]].*[[:space:]]<.*>?$/i
87
+ /^[[:space:]]*\d{4}[-\/]\d{1,2}[-\/]\d{1,2}[[:space:]].*[[:space:]]<.*>?$/i
87
88
  ]
88
89
  end
89
90
 
@@ -1,3 +1,3 @@
1
1
  module Griddler
2
- VERSION = '1.3.0'
2
+ VERSION = '1.3.1'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: griddler
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Caleb Thompson
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2016-02-13 00:00:00.000000000 Z
14
+ date: 2016-03-23 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: rails