astrotrain 0.7.1 → 0.7.2
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 +7 -0
- data/astrotrain.gemspec +1 -1
- data/lib/astrotrain.rb +1 -1
- data/lib/astrotrain/message.rb +8 -3
- data/test/message_test.rb +12 -6
- metadata +7 -24
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 4296a34990455bee98b4615fcb972dfbb65c3231
|
4
|
+
data.tar.gz: 841fe63bce0683a282c8b2406cf023f1b1f53eb0
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 2e4429961a4dd2dbf0aa02568a13ee5b0baadbfbc737c55f89025761ffeb5097f1f85d7c457c5267801d50b7cb8637986e8c6b1c6dbc920209cdc4b93b4a89a3
|
7
|
+
data.tar.gz: 3d81688e966ce59a8edf89d193ff45668851c9c84e86ed80969437ad85b61ec1e88b5c308798ce67a6fd85374f6d30d825544cefb01f02266ea0e03da5d96bec
|
data/astrotrain.gemspec
CHANGED
@@ -13,7 +13,7 @@ Gem::Specification.new do |s|
|
|
13
13
|
## If your rubyforge_project name is different, then edit it and comment out
|
14
14
|
## the sub! line in the Rakefile
|
15
15
|
s.name = 'astrotrain'
|
16
|
-
s.version = '0.7.
|
16
|
+
s.version = '0.7.2'
|
17
17
|
s.date = '2014-08-27'
|
18
18
|
s.rubyforge_project = 'astrotrain'
|
19
19
|
|
data/lib/astrotrain.rb
CHANGED
data/lib/astrotrain/message.rb
CHANGED
@@ -63,7 +63,8 @@ module Astrotrain
|
|
63
63
|
# Returns Array of possible recipients.
|
64
64
|
def recipients(order = nil)
|
65
65
|
if !@recipients.key?(order)
|
66
|
-
order =
|
66
|
+
order = Array(order)
|
67
|
+
order = self.class.recipient_header_order if order.empty?
|
67
68
|
recipients = []
|
68
69
|
|
69
70
|
emails = order.inject([]) do |memo, key|
|
@@ -309,7 +310,7 @@ module Astrotrain
|
|
309
310
|
# Returns converted String.
|
310
311
|
def convert_to_utf8(s)
|
311
312
|
# If this string is already valid UTF-8 just hand it back
|
312
|
-
if s.as_utf8.valid?
|
313
|
+
if (!@mail.charset || @mail.charset == 'UTF-8') && s.as_utf8.valid?
|
313
314
|
s.force_encoding("UTF-8") if s.respond_to?(:force_encoding)
|
314
315
|
return s
|
315
316
|
end
|
@@ -322,7 +323,11 @@ module Astrotrain
|
|
322
323
|
# if the encoding was already set or we just detected it AND it's not already
|
323
324
|
# set to UTF-8 - try to transcode the body into UTF-8
|
324
325
|
if @mail.charset && @mail.charset != 'UTF-8'
|
325
|
-
s
|
326
|
+
if s.size > 0
|
327
|
+
s = CharlockHolmes::Converter.convert s, @mail.charset, 'UTF-8'
|
328
|
+
else
|
329
|
+
s = ""
|
330
|
+
end
|
326
331
|
end
|
327
332
|
|
328
333
|
# By the time we get here, `s` is either UTF-8 or we need to force it to be
|
data/test/message_test.rb
CHANGED
@@ -5,7 +5,7 @@ class MessageParsingTest < Test::Unit::TestCase
|
|
5
5
|
test "bad content type header" do
|
6
6
|
msg = astrotrain :bad_content_type
|
7
7
|
|
8
|
-
expected_body = "This message is being generated automatically to notify you\nthat PowerMTA has crashed on mtasv.net.\n\nAs the information below is likely to be essential for debugging\nthe problem, please forward this message to <support@port25.com>.\nThank you.\nYo"
|
8
|
+
expected_body = "This message is being generated automatically to notify you\nthat PowerMTA has crashed on mtasv.net.\n\nAs the information below is likely to be essential for debugging\nthe problem, please forward this message to <support@port25.com>.\nThank you.\n\nYo"
|
9
9
|
expected_header = "multipart/mixed; boundary=\"====boundary====\""
|
10
10
|
|
11
11
|
assert_equal expected_body, msg.body
|
@@ -28,7 +28,7 @@ class MessageParsingTest < Test::Unit::TestCase
|
|
28
28
|
assert_equal %(Bob), msg.sender.first.display_name
|
29
29
|
assert_equal %(user@example.com), msg.sender.first.address
|
30
30
|
assert_equal 'Fwd: blah blah', msg.subject
|
31
|
-
assert_equal body,
|
31
|
+
assert_equal body + "\n", msg.body
|
32
32
|
end
|
33
33
|
|
34
34
|
test "iso 8859 1 encoded headers" do
|
@@ -76,7 +76,7 @@ class MessageParsingTest < Test::Unit::TestCase
|
|
76
76
|
assert_kind_of Mail::Message, msg.mail
|
77
77
|
|
78
78
|
assert_equal %w(foo@example.com), msg.recipients
|
79
|
-
assert_equal "Testing out rich emails with attachments!\nThis one has a name property on Content-Type.\n[state:hold responsible:rick]",
|
79
|
+
assert_equal "Testing out rich emails with attachments!\nThis one has a name property on Content-Type.\n[state:hold responsible:rick]\n",
|
80
80
|
msg.body
|
81
81
|
assert_equal 1, msg.attachments.size
|
82
82
|
assert_equal 'bandit.jpg', msg.attachments.first.filename
|
@@ -89,7 +89,7 @@ class MessageParsingTest < Test::Unit::TestCase
|
|
89
89
|
assert_kind_of Mail::Message, msg.mail
|
90
90
|
|
91
91
|
assert_equal %w(foo@example.com), msg.recipients
|
92
|
-
assert_equal "Testing out rich emails with attachments!\nThis one has NO name property on Content-Type.\n[state:hold responsible:rick]",
|
92
|
+
assert_equal "Testing out rich emails with attachments!\nThis one has NO name property on Content-Type.\n[state:hold responsible:rick]\n",
|
93
93
|
msg.body
|
94
94
|
assert_equal 1, msg.attachments.size
|
95
95
|
assert_equal 'bandit.jpg', msg.attachments.first.filename
|
@@ -102,7 +102,7 @@ class MessageParsingTest < Test::Unit::TestCase
|
|
102
102
|
assert_kind_of Mail::Message, msg.mail
|
103
103
|
|
104
104
|
assert_equal %w(foo@example.com), msg.recipients
|
105
|
-
assert_equal "Let's have a test here:\nYum\n\n\nOn Feb 10, 2009, at 3:37 PM, Tender Support wrote:\n\n> // Add your reply above here\n> ==================================================\n> From: Tyler Durden\n> Subject: Email attachments and file upload\n>\n> not at the moment ... let me test\n>\n> View this Discussion online: http://foobar.com\n>
|
105
|
+
assert_equal "Let's have a test here:\n\n\nYum\n\n\nOn Feb 10, 2009, at 3:37 PM, Tender Support wrote:\n\n> // Add your reply above here\n> ==================================================\n> From: Tyler Durden\n> Subject: Email attachments and file upload\n>\n> not at the moment ... let me test\n>\n> View this Discussion online: http://foobar.com\n> .\n\n\n\n",
|
106
106
|
msg.body
|
107
107
|
assert_equal 1, msg.attachments.size
|
108
108
|
assert_equal 'logo.gif', msg.attachments.first.filename
|
@@ -125,7 +125,7 @@ class MessageParsingTest < Test::Unit::TestCase
|
|
125
125
|
test "recipients in the body" do
|
126
126
|
msg = astrotrain(:multiple_with_body_recipients)
|
127
127
|
|
128
|
-
assert_equal %w(processor@astrotrain.com other@example.com processor+foobar@astrotrain.com processor+blah@astrotrain.com),
|
128
|
+
assert_equal %w(processor@astrotrain.com other@example.com processor+foobar@astrotrain.com processor+blah@astrotrain.com),
|
129
129
|
msg.recipients(Astrotrain::Message.recipient_header_order + %w(body))
|
130
130
|
end
|
131
131
|
|
@@ -208,4 +208,10 @@ class MessageParsingTest < Test::Unit::TestCase
|
|
208
208
|
end
|
209
209
|
end
|
210
210
|
end
|
211
|
+
|
212
|
+
test "iso 2022 jp encoded subject and body" do
|
213
|
+
msg = astrotrain "iso-2022-jp"
|
214
|
+
assert_mail_utf8 msg
|
215
|
+
assert_equal "投稿テスト\n--\nyamada@example.jp", msg.body
|
216
|
+
end
|
211
217
|
end
|
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: astrotrain
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
5
|
-
prerelease:
|
4
|
+
version: 0.7.2
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Rick Olson
|
@@ -14,7 +13,6 @@ dependencies:
|
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: utf8
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
17
|
- - ~>
|
20
18
|
- !ruby/object:Gem::Version
|
@@ -22,7 +20,6 @@ dependencies:
|
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
24
|
- - ~>
|
28
25
|
- !ruby/object:Gem::Version
|
@@ -30,7 +27,6 @@ dependencies:
|
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: mail
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
31
|
- - ~>
|
36
32
|
- !ruby/object:Gem::Version
|
@@ -38,7 +34,6 @@ dependencies:
|
|
38
34
|
type: :runtime
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
38
|
- - ~>
|
44
39
|
- !ruby/object:Gem::Version
|
@@ -46,7 +41,6 @@ dependencies:
|
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: i18n
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
45
|
- - ~>
|
52
46
|
- !ruby/object:Gem::Version
|
@@ -54,7 +48,6 @@ dependencies:
|
|
54
48
|
type: :runtime
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
52
|
- - ~>
|
60
53
|
- !ruby/object:Gem::Version
|
@@ -62,7 +55,6 @@ dependencies:
|
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: faraday
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
59
|
- - ~>
|
68
60
|
- !ruby/object:Gem::Version
|
@@ -70,7 +62,6 @@ dependencies:
|
|
70
62
|
type: :runtime
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
66
|
- - ~>
|
76
67
|
- !ruby/object:Gem::Version
|
@@ -78,7 +69,6 @@ dependencies:
|
|
78
69
|
- !ruby/object:Gem::Dependency
|
79
70
|
name: addressable
|
80
71
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
72
|
requirements:
|
83
73
|
- - ~>
|
84
74
|
- !ruby/object:Gem::Version
|
@@ -86,7 +76,6 @@ dependencies:
|
|
86
76
|
type: :runtime
|
87
77
|
prerelease: false
|
88
78
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
79
|
requirements:
|
91
80
|
- - ~>
|
92
81
|
- !ruby/object:Gem::Version
|
@@ -94,7 +83,6 @@ dependencies:
|
|
94
83
|
- !ruby/object:Gem::Dependency
|
95
84
|
name: charlock_holmes
|
96
85
|
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
86
|
requirements:
|
99
87
|
- - ~>
|
100
88
|
- !ruby/object:Gem::Version
|
@@ -102,7 +90,6 @@ dependencies:
|
|
102
90
|
type: :runtime
|
103
91
|
prerelease: false
|
104
92
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
93
|
requirements:
|
107
94
|
- - ~>
|
108
95
|
- !ruby/object:Gem::Version
|
@@ -110,17 +97,15 @@ dependencies:
|
|
110
97
|
- !ruby/object:Gem::Dependency
|
111
98
|
name: resque
|
112
99
|
requirement: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
100
|
requirements:
|
115
|
-
- -
|
101
|
+
- - '>='
|
116
102
|
- !ruby/object:Gem::Version
|
117
103
|
version: '0'
|
118
104
|
type: :development
|
119
105
|
prerelease: false
|
120
106
|
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
107
|
requirements:
|
123
|
-
- -
|
108
|
+
- - '>='
|
124
109
|
- !ruby/object:Gem::Version
|
125
110
|
version: '0'
|
126
111
|
description: email => http post
|
@@ -166,27 +151,25 @@ files:
|
|
166
151
|
- test/transport_test.rb
|
167
152
|
homepage: http://github.com/technoweenie/astrotrain
|
168
153
|
licenses: []
|
154
|
+
metadata: {}
|
169
155
|
post_install_message:
|
170
156
|
rdoc_options: []
|
171
157
|
require_paths:
|
172
158
|
- lib
|
173
159
|
required_ruby_version: !ruby/object:Gem::Requirement
|
174
|
-
none: false
|
175
160
|
requirements:
|
176
|
-
- -
|
161
|
+
- - '>='
|
177
162
|
- !ruby/object:Gem::Version
|
178
163
|
version: '0'
|
179
164
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
180
|
-
none: false
|
181
165
|
requirements:
|
182
|
-
- -
|
166
|
+
- - '>='
|
183
167
|
- !ruby/object:Gem::Version
|
184
168
|
version: '0'
|
185
169
|
requirements: []
|
186
170
|
rubyforge_project: astrotrain
|
187
|
-
rubygems_version:
|
171
|
+
rubygems_version: 2.0.14.1
|
188
172
|
signing_key:
|
189
173
|
specification_version: 2
|
190
174
|
summary: email => http post
|
191
175
|
test_files: []
|
192
|
-
has_rdoc:
|