mailparser 0.5.0 → 0.5.0.1

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.
data/README.md CHANGED
@@ -6,7 +6,7 @@ MailParser is a parser for mail message.
6
6
  Installation
7
7
  ------------
8
8
 
9
- % gem install --pre mailparser
9
+ % gem install mailparser
10
10
 
11
11
  Usage
12
12
  -----
@@ -23,8 +23,8 @@ module MailParser::RFC2047
23
23
  last_charset = nil
24
24
  words = []
25
25
  mime_word = false
26
- str.split(/(\s+)/).each do |s|
27
- s, cs, raw = decode_word(s)
26
+ str.gsub(/\r?\n/, '').split(/(\s+)/).each do |s|
27
+ s, cs, raw, pre, post = decode_word(s)
28
28
  if charset
29
29
  begin
30
30
  s = charset_converter.call(cs || charset, charset, s)
@@ -39,7 +39,9 @@ module MailParser::RFC2047
39
39
  elsif s !~ /\A\s*\z/
40
40
  mime_word = false
41
41
  end
42
+ words.push pre if pre
42
43
  words.push s
44
+ words.push post if post
43
45
  end
44
46
  begin
45
47
  ret = words.join
@@ -52,6 +54,7 @@ module MailParser::RFC2047
52
54
  def decode_word(str)
53
55
  charset = nil
54
56
  if str =~ /\=\?([^\(\)\<\>\@\,\;\:\"\/\[\]\?\.\=]+)\?([QB])\?([^\? ]+)\?\=/i
57
+ pre, post = $`, $'
55
58
  charset, encoding, enc_text = $1.downcase, $2.downcase, $3
56
59
  raw = str
57
60
  str = encoding == "q" ? q_decode(enc_text) : b_decode(enc_text)
@@ -63,7 +66,7 @@ module MailParser::RFC2047
63
66
  end
64
67
  end
65
68
  end
66
- [str, charset, raw]
69
+ [str, charset, raw, pre, post]
67
70
  end
68
71
 
69
72
  def q_decode(str)
@@ -144,4 +144,14 @@ class TC_RFC2047 < Test::Unit::TestCase
144
144
  assert_equal("hXge", s)
145
145
  end
146
146
 
147
+ def test_decode_with_crlf
148
+ s = MailParser::RFC2047.decode("abc\r\n def\r\n")
149
+ assert_equal "abc def", s
150
+ end
151
+
152
+ def test_decode_with_invalid_encoded
153
+ s = MailParser::RFC2047.decode("abc def=?us-ascii?q?ghi?=jkl mno")
154
+ assert_equal "abc defghijkl mno", s
155
+ end
156
+
147
157
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mailparser
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.5.0.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-09-30 00:00:00.000000000 Z
12
+ date: 2012-10-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: mmapscanner