griddler 1.3.0 → 1.3.1

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: 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