griddler 1.1.1 → 1.2.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: e7fb296b5effeac25db3cb6002e6f19cbfe2d50f
4
- data.tar.gz: 1264bafeb3155a1b2225c0c4f12984c4f1585664
3
+ metadata.gz: 4c824e6077ccba05b1fafc0c5106df7ff87cb815
4
+ data.tar.gz: cf20b554c8a45a134f42036268522c6d5eb90367
5
5
  SHA512:
6
- metadata.gz: e6accc72dc651295925009e576edcf1674ab3aa43b00e341d55b91b8daad5db06b96c458b538efab2ec2795cb1701ad6c5570741d239bae871ce4fc38a1b29a0
7
- data.tar.gz: 9820e905ce61d4499ba01b2d013610c666240de18e98aad857c04d1110e95048ec20732305ae59fd6de90bcee248066be70cb4c7776f8f856831522d3c033191
6
+ metadata.gz: 50c91b14d01bd7b14818963cd53d43837a76720accaa3602154968147b6ec7e9a0b0f33b3d6bef1296528391f31c30d0471d13aca86f1139091aa6658b377287
7
+ data.tar.gz: cc3997a7bb374fd534aca9953a02862981267304ce4fb220945c66e2c080537fc434308a30c8809de4d5437b5bf79effed933130929cb8e31f895a35fc6553c2
data/README.md CHANGED
@@ -105,7 +105,7 @@ Griddler::Email attributes
105
105
  | `#raw_html` | The raw html part of the body.
106
106
  | `#raw_body` | The raw body information provided by the email service.
107
107
  | `#attachments` | An array of `File` objects containing any attachments.
108
- | `#headers` | A hash of headers parsed by `Mail::Header`.
108
+ | `#headers` | A hash of headers parsed by `Mail::Header`, unless they are already formatted as a hash when received from the adapter in which case the original hash is returned.
109
109
  | `#raw_headers` | The raw headers included in the message.
110
110
 
111
111
  ### Email Addresses
@@ -49,7 +49,14 @@ module Griddler
49
49
  end
50
50
 
51
51
  def extract_headers
52
- EmailParser.extract_headers(clean_invalid_utf8_bytes(params[:headers]))
52
+ if params[:headers].is_a?(Hash)
53
+ params[:headers].inject({}) do |header_hash, (header_name, header_value)|
54
+ header_hash[header_name] = clean_invalid_utf8_bytes(header_value)
55
+ header_hash
56
+ end
57
+ else
58
+ EmailParser.extract_headers(clean_invalid_utf8_bytes(params[:headers]))
59
+ end
53
60
  end
54
61
 
55
62
  def extract_cc_from_headers(headers)
@@ -74,12 +81,10 @@ module Griddler
74
81
 
75
82
  def clean_invalid_utf8_bytes(text)
76
83
  if text && !text.valid_encoding?
77
- text = text
78
- .force_encoding('ISO-8859-1')
79
- .encode('UTF-8')
84
+ text.force_encoding('ISO-8859-1').encode('UTF-8')
85
+ else
86
+ text
80
87
  end
81
-
82
- text
83
88
  end
84
89
  end
85
90
  end
@@ -31,8 +31,8 @@ module Griddler::EmailParser
31
31
  remove_reply_portion(body)
32
32
  .split(/[\r]*\n/)
33
33
  .reject do |line|
34
- line =~ /^\s+>/ ||
35
- line =~ /^\s*Sent from my /
34
+ line =~ /^[[:space:]]+>/ ||
35
+ line =~ /^[[:space:]]*Sent from my /
36
36
  end.
37
37
  join("\n").
38
38
  strip
@@ -40,11 +40,15 @@ module Griddler::EmailParser
40
40
  end
41
41
 
42
42
  def self.extract_headers(raw_headers)
43
- header_fields = Mail::Header.new(raw_headers).fields
43
+ if raw_headers.is_a?(Hash)
44
+ raw_headers
45
+ else
46
+ header_fields = Mail::Header.new(raw_headers).fields
44
47
 
45
- header_fields.inject({}) do |header_hash, header_field|
46
- header_hash[header_field.name.to_s] = header_field.value.to_s
47
- header_hash
48
+ header_fields.inject({}) do |header_hash, header_field|
49
+ header_hash[header_field.name.to_s] = header_field.value.to_s
50
+ header_hash
51
+ end
48
52
  end
49
53
  end
50
54
 
@@ -74,12 +78,12 @@ module Griddler::EmailParser
74
78
  def self.regex_split_points
75
79
  [
76
80
  reply_delimeter_regex,
77
- /^\s*[-]+\s*Original Message\s*[-]+\s*$/i,
78
- /^\s*--\s*$/,
79
- /^\s*\>?\s*On.*\r?\n?.*wrote:\r?\n?$/,
81
+ /^[[:space:]]*[-]+[[:space:]]*Original Message[[:space:]]*[-]+[[:space:]]*$/i,
82
+ /^[[:space:]]*--[[:space:]]*$/,
83
+ /^[[:space:]]*\>?[[:space:]]*On.*\r?\n?.*wrote:\r?\n?$/,
80
84
  /On.*wrote:/,
81
- /From:.*$/i,
82
- /^\s*\d{4}\/\d{1,2}\/\d{1,2}\s.*\s<.*>?$/i
85
+ /\*?From:.*$/i,
86
+ /^[[:space:]]*\d{4}\/\d{1,2}\/\d{1,2}[[:space:]].*[[:space:]]<.*>?$/i
83
87
  ]
84
88
  end
85
89
 
@@ -1,3 +1,3 @@
1
1
  module Griddler
2
- VERSION = "1.1.1"
2
+ VERSION = "1.2.0"
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.1.1
4
+ version: 1.2.0
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: 2015-05-08 00:00:00.000000000 Z
14
+ date: 2015-06-06 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: rails
@@ -141,7 +141,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
141
141
  version: '0'
142
142
  requirements: []
143
143
  rubyforge_project:
144
- rubygems_version: 2.2.2
144
+ rubygems_version: 2.4.5
145
145
  signing_key:
146
146
  specification_version: 4
147
147
  summary: SendGrid Parse API client Rails Engine