mailparser 0.5.4 → 0.5.5
Sign up to get free protection for your applications and to get access to all the features.
- 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:
|