griddler 1.1.1 → 1.2.0

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