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 +4 -4
- data/README.md +1 -1
- data/lib/griddler/email.rb +11 -6
- data/lib/griddler/email_parser.rb +15 -11
- data/lib/griddler/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4c824e6077ccba05b1fafc0c5106df7ff87cb815
|
4
|
+
data.tar.gz: cf20b554c8a45a134f42036268522c6d5eb90367
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
data/lib/griddler/email.rb
CHANGED
@@ -49,7 +49,14 @@ module Griddler
|
|
49
49
|
end
|
50
50
|
|
51
51
|
def extract_headers
|
52
|
-
|
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
|
78
|
-
|
79
|
-
|
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 =~
|
35
|
-
line =~
|
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
|
-
|
43
|
+
if raw_headers.is_a?(Hash)
|
44
|
+
raw_headers
|
45
|
+
else
|
46
|
+
header_fields = Mail::Header.new(raw_headers).fields
|
44
47
|
|
45
|
-
|
46
|
-
|
47
|
-
|
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
|
-
|
78
|
-
|
79
|
-
|
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
|
-
|
82
|
-
|
85
|
+
/\*?From:.*$/i,
|
86
|
+
/^[[:space:]]*\d{4}\/\d{1,2}\/\d{1,2}[[:space:]].*[[:space:]]<.*>?$/i
|
83
87
|
]
|
84
88
|
end
|
85
89
|
|
data/lib/griddler/version.rb
CHANGED
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.
|
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-
|
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.
|
144
|
+
rubygems_version: 2.4.5
|
145
145
|
signing_key:
|
146
146
|
specification_version: 4
|
147
147
|
summary: SendGrid Parse API client Rails Engine
|