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