mailparser 0.5.4 → 0.5.5
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/lib/mailparser/loose.rb +1 -1
- data/lib/mailparser/rfc2822.rb +13 -8
- data/test/test_loose.rb +40 -8
- metadata +22 -21
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 396b7e55f0c34b0ad0716023d3393cff1f05acd8
|
|
4
|
+
data.tar.gz: 9877bd098b6ac1988726c3ed9a67273bb945aa15
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a42ba94877924f0d4587514dea66929beafc101cc7727b30b4df48f9b308633efdeb3dd5f6d5af8023451f11f985c90588d0b99f498b5e090dba543336033478
|
|
7
|
+
data.tar.gz: 4d5d248a63bd18f40971b9e47d72e0afb234e8bf6cb9aa20f036f0cc2962964a782151263c35369606f293df177a792ae66a59d500685eb9b6aac370fd1bb296
|
data/lib/mailparser/loose.rb
CHANGED
|
@@ -68,7 +68,7 @@ module MailParser
|
|
|
68
68
|
t = Time.now
|
|
69
69
|
end
|
|
70
70
|
year = t.year > 9999 ? 9999 : t.year
|
|
71
|
-
return RFC2822::DateTime.new(year, t.month, t.day, t.hour, t.min, t.sec, t.
|
|
71
|
+
return RFC2822::DateTime.new(year, t.month, t.day, t.hour, t.min, t.sec, t.utc_offset)
|
|
72
72
|
end
|
|
73
73
|
|
|
74
74
|
# parse From, To,Cc field
|
data/lib/mailparser/rfc2822.rb
CHANGED
|
@@ -30,16 +30,13 @@ module MailParser::RFC2822
|
|
|
30
30
|
"return-path" => :RETURN_PATH,
|
|
31
31
|
"received" => :RECEIVED,
|
|
32
32
|
}
|
|
33
|
-
|
|
33
|
+
|
|
34
34
|
ZONE = {
|
|
35
35
|
"UT" => "+0000",
|
|
36
36
|
"GMT" => "+0000",
|
|
37
37
|
"EDT" => "-0400",
|
|
38
38
|
"EST" => "-0500",
|
|
39
39
|
"CDT" => "-0500",
|
|
40
|
-
"EDT" => "-0400",
|
|
41
|
-
"EST" => "-0500",
|
|
42
|
-
"CDT" => "-0500",
|
|
43
40
|
"CST" => "-0600",
|
|
44
41
|
"MDT" => "-0600",
|
|
45
42
|
"MST" => "-0700",
|
|
@@ -156,10 +153,10 @@ module MailParser::RFC2822
|
|
|
156
153
|
class DateTime
|
|
157
154
|
def self.now
|
|
158
155
|
t = Time.now
|
|
159
|
-
self.new(t.year, t.month, t.day, t.hour, t.min, t.sec, t.
|
|
156
|
+
self.new(t.year, t.month, t.day, t.hour, t.min, t.sec, t.utc_offset)
|
|
160
157
|
end
|
|
161
158
|
|
|
162
|
-
def initialize(year, month, day, hour, min, sec,
|
|
159
|
+
def initialize(year, month, day, hour, min, sec, zone_or_offset)
|
|
163
160
|
y, m, d, h, mi, s = year.to_i, month.to_i, day.to_i, hour.to_i, min.to_i, sec.to_i
|
|
164
161
|
raise ArgumentError, "invalid year" if y < 0 or 9999 < y
|
|
165
162
|
raise ArgumentError, "invalid month" if m < 1 or 12 < m
|
|
@@ -178,13 +175,21 @@ module MailParser::RFC2822
|
|
|
178
175
|
raise ArgumentError, "invalid hour" if h > 23
|
|
179
176
|
raise ArgumentError, "invalid minute" if mi > 59
|
|
180
177
|
raise ArgumentError, "invalid second" if s > 60
|
|
178
|
+
@year, @month, @day, @hour, @min, @sec = y, m, d, h, mi, s
|
|
179
|
+
if zone_or_offset.is_a? Integer
|
|
180
|
+
offset = zone_or_offset
|
|
181
|
+
@zone_sec = offset
|
|
182
|
+
@zone = format("%03d%02d", offset/3600, offset%3600).sub(/^0/, '+')
|
|
183
|
+
return
|
|
184
|
+
end
|
|
185
|
+
zone = zone_or_offset
|
|
181
186
|
if zone =~ /^[+-]\d\d(\d\d)$/ then
|
|
182
187
|
raise ArgumentError, "invalid zone" if $1.to_i > 59
|
|
183
188
|
else
|
|
184
|
-
zone = ZONE[zone.upcase] || "-0000"
|
|
189
|
+
zone = (zone && ZONE[zone.upcase]) || "-0000"
|
|
185
190
|
end
|
|
186
|
-
@year, @month, @day, @hour, @min, @sec, @zone = y, m, d, h, mi, s, zone
|
|
187
191
|
z = zone[1,4].to_i
|
|
192
|
+
@zone = zone
|
|
188
193
|
@zone_sec = z/100*3600 + z%100*60
|
|
189
194
|
@zone_sec = -@zone_sec if zone[0] == ?-
|
|
190
195
|
end
|
data/test/test_loose.rb
CHANGED
|
@@ -22,10 +22,18 @@ class TC_Loose < Test::Unit::TestCase
|
|
|
22
22
|
assert_equal(2007, d.year)
|
|
23
23
|
assert_equal(1, d.month)
|
|
24
24
|
assert_equal(10, d.day)
|
|
25
|
-
|
|
25
|
+
if RUBY_VERSION >= '2.2'
|
|
26
|
+
assert_equal(12, d.hour)
|
|
27
|
+
else
|
|
28
|
+
assert_equal(3, d.hour)
|
|
29
|
+
end
|
|
26
30
|
assert_equal(53, d.min)
|
|
27
31
|
assert_equal(55, d.sec)
|
|
28
|
-
|
|
32
|
+
if RUBY_VERSION >= '2.2'
|
|
33
|
+
assert_equal("+0900", d.zone)
|
|
34
|
+
else
|
|
35
|
+
assert_equal("+0000", d.zone)
|
|
36
|
+
end
|
|
29
37
|
ensure
|
|
30
38
|
ENV["TZ"] = tzbak
|
|
31
39
|
end
|
|
@@ -39,10 +47,18 @@ class TC_Loose < Test::Unit::TestCase
|
|
|
39
47
|
assert_equal(9999, d.year)
|
|
40
48
|
assert_equal(1, d.month)
|
|
41
49
|
assert_equal(10, d.day)
|
|
42
|
-
|
|
50
|
+
if RUBY_VERSION >= '2.2'
|
|
51
|
+
assert_equal(12, d.hour)
|
|
52
|
+
else
|
|
53
|
+
assert_equal(3, d.hour)
|
|
54
|
+
end
|
|
43
55
|
assert_equal(53, d.min)
|
|
44
56
|
assert_equal(55, d.sec)
|
|
45
|
-
|
|
57
|
+
if RUBY_VERSION >= '2.2'
|
|
58
|
+
assert_equal("+0900", d.zone)
|
|
59
|
+
else
|
|
60
|
+
assert_equal("+0000", d.zone)
|
|
61
|
+
end
|
|
46
62
|
ensure
|
|
47
63
|
ENV["TZ"] = tzbak
|
|
48
64
|
end
|
|
@@ -86,10 +102,18 @@ class TC_Loose < Test::Unit::TestCase
|
|
|
86
102
|
assert_equal(2007, r.date_time.year)
|
|
87
103
|
assert_equal(1, r.date_time.month)
|
|
88
104
|
assert_equal(10, r.date_time.day)
|
|
89
|
-
|
|
105
|
+
if RUBY_VERSION >= '2.2'
|
|
106
|
+
assert_equal(12, r.date_time.hour)
|
|
107
|
+
else
|
|
108
|
+
assert_equal(3, r.date_time.hour)
|
|
109
|
+
end
|
|
90
110
|
assert_equal(9, r.date_time.min)
|
|
91
111
|
assert_equal(55, r.date_time.sec)
|
|
92
|
-
|
|
112
|
+
if RUBY_VERSION >= '2.2'
|
|
113
|
+
assert_equal("+0900", r.date_time.zone)
|
|
114
|
+
else
|
|
115
|
+
assert_equal("+0000", r.date_time.zone)
|
|
116
|
+
end
|
|
93
117
|
assert_equal("host.example.com", r.name_val["from"])
|
|
94
118
|
assert_equal("my.server", r.name_val["by"])
|
|
95
119
|
assert_equal("<user@domain.name>", r.name_val["for"])
|
|
@@ -185,10 +209,18 @@ class TC_Loose < Test::Unit::TestCase
|
|
|
185
209
|
assert_equal(2007, r.date_time.year)
|
|
186
210
|
assert_equal(1, r.date_time.month)
|
|
187
211
|
assert_equal(10, r.date_time.day)
|
|
188
|
-
|
|
212
|
+
if RUBY_VERSION >= '2.2'
|
|
213
|
+
assert_equal("+0900", r.date_time.zone)
|
|
214
|
+
else
|
|
215
|
+
assert_equal("+0000", r.date_time.zone)
|
|
216
|
+
end
|
|
189
217
|
assert_equal(9, r.date_time.min)
|
|
190
218
|
assert_equal(55, r.date_time.sec)
|
|
191
|
-
|
|
219
|
+
if RUBY_VERSION >= '2.2'
|
|
220
|
+
assert_equal("+0900", r.date_time.zone)
|
|
221
|
+
else
|
|
222
|
+
assert_equal("+0000", r.date_time.zone)
|
|
223
|
+
end
|
|
192
224
|
assert_equal("ほげ".force_encoding("utf-8"), r.name_val["from"])
|
|
193
225
|
assert_equal("ふが".force_encoding("utf-8"), r.name_val["by"])
|
|
194
226
|
assert_equal("ぴよ".force_encoding("utf-8"), r.name_val["for"])
|
metadata
CHANGED
|
@@ -1,29 +1,29 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: mailparser
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.5.
|
|
4
|
+
version: 0.5.5
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- TOMITA Masahiro
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2015-07-26 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: mmapscanner
|
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
|
16
16
|
requirements:
|
|
17
|
-
- -
|
|
17
|
+
- - "~>"
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: '0'
|
|
19
|
+
version: '0.3'
|
|
20
20
|
type: :runtime
|
|
21
21
|
prerelease: false
|
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
23
|
requirements:
|
|
24
|
-
- -
|
|
24
|
+
- - "~>"
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
|
-
version: '0'
|
|
26
|
+
version: '0.3'
|
|
27
27
|
description: MailParser is a parser for mail message
|
|
28
28
|
email: tommy@tmtm.org
|
|
29
29
|
executables: []
|
|
@@ -32,28 +32,28 @@ extra_rdoc_files: []
|
|
|
32
32
|
files:
|
|
33
33
|
- README.md
|
|
34
34
|
- lib/mailparser.rb
|
|
35
|
-
- lib/mailparser/
|
|
36
|
-
- lib/mailparser/rfc2183/parser.rb
|
|
35
|
+
- lib/mailparser/conv_charset.rb
|
|
37
36
|
- lib/mailparser/error.rb
|
|
38
|
-
- lib/mailparser/
|
|
37
|
+
- lib/mailparser/loose.rb
|
|
38
|
+
- lib/mailparser/rfc2045.rb
|
|
39
39
|
- lib/mailparser/rfc2045/parser.rb
|
|
40
|
+
- lib/mailparser/rfc2045/scanner.rb
|
|
40
41
|
- lib/mailparser/rfc2047.rb
|
|
41
|
-
- lib/mailparser/conv_charset.rb
|
|
42
|
-
- lib/mailparser/loose.rb
|
|
43
42
|
- lib/mailparser/rfc2183.rb
|
|
44
|
-
- lib/mailparser/
|
|
43
|
+
- lib/mailparser/rfc2183/parser.rb
|
|
44
|
+
- lib/mailparser/rfc2183/scanner.rb
|
|
45
|
+
- lib/mailparser/rfc2231.rb
|
|
45
46
|
- lib/mailparser/rfc2822.rb
|
|
46
|
-
- lib/mailparser/rfc2822/scanner.rb
|
|
47
47
|
- lib/mailparser/rfc2822/parser.rb
|
|
48
|
-
- lib/mailparser/
|
|
48
|
+
- lib/mailparser/rfc2822/scanner.rb
|
|
49
49
|
- test.rb
|
|
50
50
|
- test/test_loose.rb
|
|
51
|
-
- test/test_rfc2231.rb
|
|
52
|
-
- test/test_rfc2183.rb
|
|
53
|
-
- test/test_rfc2047.rb
|
|
54
|
-
- test/test_rfc2822.rb
|
|
55
51
|
- test/test_mailparser.rb
|
|
56
52
|
- test/test_rfc2045.rb
|
|
53
|
+
- test/test_rfc2047.rb
|
|
54
|
+
- test/test_rfc2183.rb
|
|
55
|
+
- test/test_rfc2231.rb
|
|
56
|
+
- test/test_rfc2822.rb
|
|
57
57
|
homepage: http://github.com/tmtm/mailparser
|
|
58
58
|
licenses:
|
|
59
59
|
- Ruby's
|
|
@@ -64,17 +64,17 @@ require_paths:
|
|
|
64
64
|
- lib
|
|
65
65
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
66
66
|
requirements:
|
|
67
|
-
- -
|
|
67
|
+
- - ">="
|
|
68
68
|
- !ruby/object:Gem::Version
|
|
69
69
|
version: '0'
|
|
70
70
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
71
71
|
requirements:
|
|
72
|
-
- -
|
|
72
|
+
- - ">="
|
|
73
73
|
- !ruby/object:Gem::Version
|
|
74
74
|
version: '0'
|
|
75
75
|
requirements: []
|
|
76
76
|
rubyforge_project:
|
|
77
|
-
rubygems_version: 2.
|
|
77
|
+
rubygems_version: 2.4.5
|
|
78
78
|
signing_key:
|
|
79
79
|
specification_version: 4
|
|
80
80
|
summary: Mail Parser
|
|
@@ -87,3 +87,4 @@ test_files:
|
|
|
87
87
|
- test/test_rfc2822.rb
|
|
88
88
|
- test/test_mailparser.rb
|
|
89
89
|
- test/test_rfc2045.rb
|
|
90
|
+
has_rdoc:
|