rmail 1.0.0 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/{NEWS → ChangeLog} +14 -0
- data/Rakefile +52 -67
- data/lib/rmail/address.rb +16 -4
- data/lib/rmail/header.rb +2 -2
- data/lib/rmail/parser.rb +4 -2
- data/lib/rmail/version.rb +3 -0
- data/test/testaddress.rb +20 -8
- data/test/testbase.rb +1 -1
- data/test/testheader.rb +6 -1
- data/test/testmessage.rb +1 -1
- metadata +62 -74
- data/install.rb +0 -1023
- data/version +0 -1
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 6b4a29f4260f329ca644299cc81203d2db1f7785
|
4
|
+
data.tar.gz: caa1c6f095e88be1d91c9c694b0a0debde71edb8
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 432fb864d8aad5282d9e987870fa0996cf2e6d2f4e96c7a5cf865bc048900dcb0d77439c55c00e77694caaa64943ad486dcdf7fba97b6c2406e20f05de5b9360
|
7
|
+
data.tar.gz: 79f14439893e809897523cfa6cf7b39519b72ad67b0a885041d49ca3b4e7bc6d7f87b7bac84c72835d948cf956f01b590dbb6a0ba4f21ca15ae3ca570dc81cd3
|
data/{NEWS → ChangeLog}
RENAMED
@@ -1,3 +1,17 @@
|
|
1
|
+
= Changes in RubyMail 1.1.0 (released 2015-02-10)
|
2
|
+
|
3
|
+
- This version contains fixes for running on Ruby 2.0+ that were contributed by
|
4
|
+
Josef Stribny, plus 7 patches that have accumulated in the Debian package of
|
5
|
+
rmail over the years by Adeodato Simó, Per Andersson, and Antonio Terceiro.
|
6
|
+
There are also a few fixes by the original author Matt Armstrong that never
|
7
|
+
made it into a release.
|
8
|
+
- This version is mostly compatible with 1.0.0, but since it wasn't explicitly
|
9
|
+
tested on older RUby releases we bumping the minor version as a warning to
|
10
|
+
users.
|
11
|
+
- Rakefile was updated to actually run on modern Ruby versions
|
12
|
+
- The tests were fixed for Ruby 2.0+ compatibility
|
13
|
+
- The version number was moved to lib/rmail/version.rb
|
14
|
+
|
1
15
|
= Changes in RubyMail 1.0.0 (released 2008-01-05)
|
2
16
|
|
3
17
|
- This version differs *only* in the changes required for Ruby 1.9
|
data/Rakefile
CHANGED
@@ -4,12 +4,8 @@
|
|
4
4
|
# This is a Ruby file, used by the "rake" make-like program.
|
5
5
|
#
|
6
6
|
|
7
|
-
|
8
|
-
|
9
|
-
require 'rubygems'
|
10
|
-
require 'rake/gempackagetask'
|
11
|
-
end
|
12
|
-
require 'rake/rdoctask'
|
7
|
+
require 'rubygems/package_task'
|
8
|
+
require 'rdoc/task'
|
13
9
|
require 'rake/testtask'
|
14
10
|
require 'shellwords'
|
15
11
|
|
@@ -23,7 +19,7 @@ task :default => :test
|
|
23
19
|
# Test tasks
|
24
20
|
#
|
25
21
|
Rake::TestTask.new do |t|
|
26
|
-
t.libs << '
|
22
|
+
t.libs << '.'
|
27
23
|
t.pattern = 'test/test*.rb'
|
28
24
|
t.verbose = true
|
29
25
|
end
|
@@ -38,7 +34,7 @@ def can_release_package
|
|
38
34
|
reasons = []
|
39
35
|
|
40
36
|
unless news_is_current
|
41
|
-
reasons << 'the
|
37
|
+
reasons << 'the ChangeLog file is not current'
|
42
38
|
end
|
43
39
|
|
44
40
|
unless defined?(Gem)
|
@@ -67,11 +63,11 @@ def can_release_package
|
|
67
63
|
can_release_package
|
68
64
|
end
|
69
65
|
|
70
|
-
# Is
|
66
|
+
# Is ChangeLog current?
|
71
67
|
def news_is_current
|
72
68
|
today = Time.now.strftime('%Y-%m-%d')
|
73
69
|
version = Regexp.new(Regexp.quote(PKG_VERSION))
|
74
|
-
if IO.readlines('
|
70
|
+
if IO.readlines('ChangeLog').first =~
|
75
71
|
/= Changes in RubyMail #{PKG_VERSION} \(released #{today}\)$/
|
76
72
|
true
|
77
73
|
else
|
@@ -83,34 +79,25 @@ end
|
|
83
79
|
#
|
84
80
|
# These PKG_ variables are used by Rake's package rule.
|
85
81
|
#
|
86
|
-
|
87
|
-
|
88
|
-
if version =~ /^\d+\.\d+\.\d+$/
|
89
|
-
version.untaint
|
90
|
-
else
|
91
|
-
fail "package version is bogus"
|
92
|
-
end
|
93
|
-
version
|
94
|
-
end
|
82
|
+
require './lib/rmail/version.rb'
|
83
|
+
PKG_VERSION = RMail::VERSION
|
95
84
|
|
96
85
|
PKG_FILES = FileList.new('test/**/*',
|
97
86
|
'guide/**/*',
|
98
87
|
'lib/**/*',
|
99
|
-
'
|
100
|
-
'NEWS',
|
88
|
+
'ChangeLog',
|
101
89
|
'NOTES',
|
102
90
|
'README',
|
103
91
|
'THANKS',
|
104
92
|
'TODO',
|
105
|
-
'Rakefile'
|
106
|
-
'version')
|
93
|
+
'Rakefile')
|
107
94
|
|
108
95
|
#
|
109
96
|
# Teach Rake how to build the RDoc documentation for this package.
|
110
97
|
#
|
111
98
|
rdoc = Rake::RDocTask.new do |rdoc|
|
112
99
|
rdoc.main = 'README'
|
113
|
-
rdoc.rdoc_files.include("README", "
|
100
|
+
rdoc.rdoc_files.include("README", "ChangeLog", "THANKS",
|
114
101
|
"TODO", "guide/*.txt", "lib/**/*.rb")
|
115
102
|
rdoc.rdoc_files.exclude(/\bSCCS\b/,
|
116
103
|
"lib/rubymail/parser/*")
|
@@ -136,51 +123,49 @@ end
|
|
136
123
|
#
|
137
124
|
# Create a Gem::Specification right in the Rakefile, using some of the
|
138
125
|
# variables we have set up above.
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
s.homepage = "http://www.rfc20.org/rubymail"
|
169
|
-
|
170
|
-
s.rubyforge_project = "rubymail"
|
171
|
-
end
|
126
|
+
spec = Gem::Specification.new do |s|
|
127
|
+
s.name = 'rmail'
|
128
|
+
s.version = PKG_VERSION + if can_release_package
|
129
|
+
''
|
130
|
+
else
|
131
|
+
'.666'
|
132
|
+
end
|
133
|
+
s.summary = 'A MIME mail parsing and generation library.'
|
134
|
+
s.description = <<-EOF
|
135
|
+
RMail is a lightweight mail library containing various utility classes and
|
136
|
+
modules that allow ruby scripts to parse, modify, and generate MIME mail
|
137
|
+
messages.
|
138
|
+
EOF
|
139
|
+
|
140
|
+
s.files = PKG_FILES.to_a
|
141
|
+
|
142
|
+
s.required_ruby_version = Gem::Version::Requirement.new(">= 1.8.1")
|
143
|
+
|
144
|
+
s.has_rdoc = true
|
145
|
+
s.extra_rdoc_files = rdoc.rdoc_files.reject { |fn| fn =~ /\.rb$/ }.to_a
|
146
|
+
s.rdoc_options.concat([ '--title', rdoc.title, '--main', rdoc.main,
|
147
|
+
rdoc.options ].flatten)
|
148
|
+
|
149
|
+
s.test_files = FileList['test/tc_*.rb'].to_a
|
150
|
+
|
151
|
+
s.author = ["Matt Armstrong", "Antonio Terceiro"]
|
152
|
+
s.email = "terceiro@softwarelivre.org"
|
153
|
+
s.homepage = "https://github.com/terceiro/rmail"
|
154
|
+
end
|
172
155
|
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
end
|
156
|
+
#
|
157
|
+
# Use our Gem::Specification to make some package tasks.
|
158
|
+
#
|
159
|
+
Gem::PackageTask.new(spec) do |pkg|
|
160
|
+
pkg.need_zip = true
|
161
|
+
pkg.need_tar = true
|
180
162
|
end
|
181
163
|
|
182
|
-
desc
|
183
|
-
task :
|
184
|
-
|
164
|
+
desc 'Makes a release'
|
165
|
+
task :release => [:test, :package] do
|
166
|
+
sh 'git', 'tag', '-s', "v#{PKG_VERSION}"
|
167
|
+
sh 'git', 'push'
|
168
|
+
sh 'git', 'push', '--tags'
|
169
|
+
sh 'gem' 'push', 'pkg/#{rmail}-#{PKG_VERSION}.gem'
|
185
170
|
end
|
186
171
|
|
data/lib/rmail/address.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#--
|
2
|
-
# Copyright (C) 2001, 2002, 2003 Matt Armstrong. All rights
|
2
|
+
# Copyright (C) 2001, 2002, 2003, 2008 Matt Armstrong. All rights
|
3
3
|
# reserved.
|
4
4
|
#
|
5
5
|
# Redistribution and use in source and binary forms, with or without
|
@@ -50,7 +50,6 @@ module RMail
|
|
50
50
|
# is parsed for mail addresses and if one is found, it is used to
|
51
51
|
# initialize this object.
|
52
52
|
def initialize(string = nil)
|
53
|
-
|
54
53
|
@local = @domain = @comments = @display_name = nil
|
55
54
|
|
56
55
|
if string.kind_of?(String)
|
@@ -421,7 +420,6 @@ module RMail
|
|
421
420
|
# local-part ':' -> it is a display-name of a group
|
422
421
|
# display-name '<' -> it is a mailbox display name
|
423
422
|
# display-name ':' -> it is a group display name
|
424
|
-
#
|
425
423
|
|
426
424
|
# set lookahead to '@' '<' or ':' (or another value for
|
427
425
|
# invalid input)
|
@@ -472,6 +470,20 @@ module RMail
|
|
472
470
|
@addresses.last.local = get_text
|
473
471
|
expect(SYM_AT_SIGN)
|
474
472
|
domain
|
473
|
+
|
474
|
+
if @sym == SYM_LESS_THAN
|
475
|
+
# Workaround for invalid input. Treat 'foo@bar <foo@bar>' as if it
|
476
|
+
# were '"foo@bar" <foo@bar>'. The domain parser will eat
|
477
|
+
# 'bar' but stop at '<'. At this point, we've been
|
478
|
+
# parsing the display name as if it were an address, so we
|
479
|
+
# throw the address into display_name and parse an
|
480
|
+
# angle_addr.
|
481
|
+
@addresses.last.display_name =
|
482
|
+
format("%s@%s", @addresses.last.local, @addresses.last.domain)
|
483
|
+
@addresses.last.local = nil
|
484
|
+
@addresses.last.domain = nil
|
485
|
+
angle_addr
|
486
|
+
end
|
475
487
|
end
|
476
488
|
end
|
477
489
|
|
@@ -691,7 +703,7 @@ module RMail
|
|
691
703
|
@sym = SYM_DOMAIN_LITERAL
|
692
704
|
@lexeme = $1.gsub(/(^|[^\\])[\r\n\t ]+/, '\1').gsub(/\\(.)/, '\1')
|
693
705
|
break
|
694
|
-
when /\A[\200-\377\w!$%&\'*+\/=?^_\`{\}|~#-]+/
|
706
|
+
when /\A[\200-\377\w!$%&\'*+\/=?^_\`{\}|~#-]+/nm
|
695
707
|
# This is just like SYM_ATOM, but includes all characters
|
696
708
|
# with high bits. This is so we can allow such tokens in
|
697
709
|
# the display name portion of an address even though it
|
data/lib/rmail/header.rb
CHANGED
@@ -73,7 +73,7 @@ module RMail
|
|
73
73
|
|
74
74
|
class Field # :nodoc:
|
75
75
|
# fixme, document methadology for this (RFC2822)
|
76
|
-
EXTRACT_FIELD_NAME_RE = /\A([^\x00-\x1f\x7f-\xff :]+):\s*/
|
76
|
+
EXTRACT_FIELD_NAME_RE = /\A([^\x00-\x1f\x7f-\xff :]+):\s*/no
|
77
77
|
|
78
78
|
class << self
|
79
79
|
def parse(field)
|
@@ -630,7 +630,7 @@ module RMail
|
|
630
630
|
# Set the boundary parameter of this message's Content-Type:
|
631
631
|
# field.
|
632
632
|
def set_boundary(boundary)
|
633
|
-
params =
|
633
|
+
params = params('content-type')
|
634
634
|
params ||= {}
|
635
635
|
params['boundary'] = boundary
|
636
636
|
content_type = content_type()
|
data/lib/rmail/parser.rb
CHANGED
@@ -213,15 +213,17 @@ module RMail
|
|
213
213
|
# headers. The body part starts directly after this
|
214
214
|
# newline.
|
215
215
|
rest = data[1..-1]
|
216
|
+
elsif data[0] == ?\r && data[1] == ?\n
|
217
|
+
rest = data[2..-1]
|
216
218
|
else
|
217
|
-
header, rest = data.split(/\n\n/, 2)
|
219
|
+
header, rest = data.split(/\r?\n\r?\n/, 2)
|
218
220
|
end
|
219
221
|
break if rest
|
220
222
|
end
|
221
223
|
input.pushback(rest)
|
222
224
|
if header
|
223
225
|
mime = false
|
224
|
-
fields = header.split(/\n(?!\s)/)
|
226
|
+
fields = header.split(/\r?\n(?!\s)/)
|
225
227
|
if fields.first =~ /^From /
|
226
228
|
@handler.mbox_from(fields.first)
|
227
229
|
fields.shift
|
data/test/testaddress.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
#--
|
3
|
-
# Copyright (C) 2001, 2002, 2003, 2007 Matt Armstrong. All rights reserved.
|
3
|
+
# Copyright (C) 2001, 2002, 2003, 2007, 2008 Matt Armstrong. All rights reserved.
|
4
4
|
#
|
5
5
|
# Redistribution and use in source and binary forms, with or without
|
6
6
|
# modification, are permitted provided that the following conditions are met:
|
@@ -419,7 +419,7 @@ class TestRMailAddress < TestBase
|
|
419
419
|
:format => '"Jason @ Tibbitts" <tibbs@uh.edu>' } ] ]
|
420
420
|
|
421
421
|
# Majordomo II parses all of these with an error. We have deleted
|
422
|
-
# some of the tests
|
422
|
+
# some of the tests when they are actually legal.
|
423
423
|
validate_case ['tibbs@uh.edu Jason Tibbitts', [] ]
|
424
424
|
validate_case ['@uh.edu', [] ] # Can't start with @
|
425
425
|
validate_case ['J <tibbs>', [] ] # Not FQDN
|
@@ -644,7 +644,6 @@ class TestRMailAddress < TestBase
|
|
644
644
|
end
|
645
645
|
|
646
646
|
def test_rfc_822
|
647
|
-
|
648
647
|
validate_case\
|
649
648
|
['":sysmail"@ Some-Group. Some-Org, Muhammed.(I am the greatest) Ali @(the)Vegas.WBA',
|
650
649
|
[ { :name => nil,
|
@@ -664,7 +663,6 @@ class TestRMailAddress < TestBase
|
|
664
663
|
end
|
665
664
|
|
666
665
|
def test_misc_addresses()
|
667
|
-
|
668
666
|
# Make sure that parsing empty stuff works
|
669
667
|
assert_equal([], RMail::Address.parse(nil))
|
670
668
|
assert_equal([], RMail::Address.parse(""))
|
@@ -794,17 +792,31 @@ class TestRMailAddress < TestBase
|
|
794
792
|
} ] ]
|
795
793
|
end
|
796
794
|
|
795
|
+
def test_bug_23043
|
796
|
+
# http://rubyforge.org/tracker/?func=detail&atid=1754&aid=23043&group_id=446
|
797
|
+
validate_case\
|
798
|
+
['=?iso-8859-1?Q?acme@example.com?= <acme@example.com>',
|
799
|
+
[ { :name => '=?iso-8859-1?Q?acme@example.com?=',
|
800
|
+
:display_name => '=?iso-8859-1?Q?acme@example.com?=',
|
801
|
+
:address => 'acme@example.com',
|
802
|
+
:comments => nil,
|
803
|
+
:domain => 'example.com',
|
804
|
+
:local => 'acme',
|
805
|
+
:format => '"=?iso-8859-1?Q?acme@example.com?=" <acme@example.com>',
|
806
|
+
} ] ]
|
807
|
+
end
|
808
|
+
|
797
809
|
def test_invalid_addresses()
|
798
810
|
# The display name isn't encoded -- bad, but we parse it.
|
799
811
|
validate_case\
|
800
|
-
["\322\315\322 \312\353\363\341 <bar@foo.invalid>",
|
801
|
-
[ { :name => "\322\315\322 \312\353\363\341",
|
802
|
-
:display_name => "\322\315\322 \312\353\363\341",
|
812
|
+
["\322\315\322 \312\353\363\341 <bar@foo.invalid>".force_encoding('ASCII-8BIT'),
|
813
|
+
[ { :name => "\322\315\322 \312\353\363\341".force_encoding("ASCII-8BIT"),
|
814
|
+
:display_name => "\322\315\322 \312\353\363\341".force_encoding("ASCII-8BIT"),
|
803
815
|
:address => 'bar@foo.invalid',
|
804
816
|
:comments => nil,
|
805
817
|
:domain => 'foo.invalid',
|
806
818
|
:local => 'bar',
|
807
|
-
:format => "\"\322\315\322 \312\353\363\341\" <bar@foo.invalid>",
|
819
|
+
:format => "\"\322\315\322 \312\353\363\341\" <bar@foo.invalid>".force_encoding("ASCII-8BIT"),
|
808
820
|
} ] ]
|
809
821
|
end
|
810
822
|
|
data/test/testbase.rb
CHANGED
data/test/testheader.rb
CHANGED
@@ -209,7 +209,12 @@ class TestRMailHeader < TestBase
|
|
209
209
|
# Test the params argument
|
210
210
|
h = RMail::Header.new
|
211
211
|
h.add("name", "value", nil, 'param1' => 'value1', 'param2' => '+value2')
|
212
|
-
|
212
|
+
# Param order can not be guaranteed since they are given as dict to the
|
213
|
+
# function.
|
214
|
+
#assert_equal('value; param1=value1; param2="+value2"', h['name'])
|
215
|
+
header_check = (h['name'] == 'value; param1=value1; param2="+value2"' or
|
216
|
+
h['name'] == 'value; param2="+value2"; param1=value1')
|
217
|
+
assert(header_check)
|
213
218
|
|
214
219
|
h = RMail::Header.new
|
215
220
|
h.add_raw("MIME-Version: 1.0")
|
data/test/testmessage.rb
CHANGED
metadata
CHANGED
@@ -1,38 +1,56 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: rmail
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
|
-
authors:
|
6
|
+
authors:
|
7
7
|
- Matt Armstrong
|
8
|
+
- Antonio Terceiro
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
|
12
|
-
date: 2008-01-05 00:00:00 -08:00
|
13
|
-
default_executable:
|
12
|
+
date: 2015-02-11 00:00:00.000000000 Z
|
14
13
|
dependencies: []
|
15
|
-
|
16
|
-
|
17
|
-
|
14
|
+
description: |2
|
15
|
+
RMail is a lightweight mail library containing various utility classes and
|
16
|
+
modules that allow ruby scripts to parse, modify, and generate MIME mail
|
17
|
+
messages.
|
18
|
+
email: terceiro@softwarelivre.org
|
18
19
|
executables: []
|
19
|
-
|
20
20
|
extensions: []
|
21
|
-
|
22
|
-
extra_rdoc_files:
|
21
|
+
extra_rdoc_files:
|
23
22
|
- README
|
24
|
-
-
|
23
|
+
- ChangeLog
|
25
24
|
- THANKS
|
26
25
|
- TODO
|
27
26
|
- guide/Intro.txt
|
28
27
|
- guide/MIME.txt
|
29
28
|
- guide/TableOfContents.txt
|
30
|
-
files:
|
29
|
+
files:
|
30
|
+
- ChangeLog
|
31
|
+
- NOTES
|
32
|
+
- README
|
33
|
+
- Rakefile
|
34
|
+
- THANKS
|
35
|
+
- TODO
|
36
|
+
- guide/Intro.txt
|
37
|
+
- guide/MIME.txt
|
38
|
+
- guide/TableOfContents.txt
|
39
|
+
- lib/rmail.rb
|
40
|
+
- lib/rmail/address.rb
|
41
|
+
- lib/rmail/header.rb
|
42
|
+
- lib/rmail/mailbox.rb
|
43
|
+
- lib/rmail/mailbox/mboxreader.rb
|
44
|
+
- lib/rmail/message.rb
|
45
|
+
- lib/rmail/parser.rb
|
46
|
+
- lib/rmail/parser/multipart.rb
|
47
|
+
- lib/rmail/parser/pushbackreader.rb
|
48
|
+
- lib/rmail/serialize.rb
|
49
|
+
- lib/rmail/utils.rb
|
50
|
+
- lib/rmail/version.rb
|
31
51
|
- test/addrgrammar.txt
|
32
|
-
- test/data
|
33
52
|
- test/data/mbox.odd
|
34
53
|
- test/data/mbox.simple
|
35
|
-
- test/data/multipart
|
36
54
|
- test/data/multipart/data.1
|
37
55
|
- test/data/multipart/data.10
|
38
56
|
- test/data/multipart/data.11
|
@@ -50,7 +68,14 @@ files:
|
|
50
68
|
- test/data/multipart/data.7
|
51
69
|
- test/data/multipart/data.8
|
52
70
|
- test/data/multipart/data.9
|
53
|
-
- test/data/parser
|
71
|
+
- test/data/parser.badmime1
|
72
|
+
- test/data/parser.badmime2
|
73
|
+
- test/data/parser.nested-multipart
|
74
|
+
- test/data/parser.nested-simple
|
75
|
+
- test/data/parser.nested-simple2
|
76
|
+
- test/data/parser.nested-simple3
|
77
|
+
- test/data/parser.rfc822
|
78
|
+
- test/data/parser.simple-mime
|
54
79
|
- test/data/parser/multipart.1
|
55
80
|
- test/data/parser/multipart.10
|
56
81
|
- test/data/parser/multipart.11
|
@@ -67,15 +92,6 @@ files:
|
|
67
92
|
- test/data/parser/multipart.7
|
68
93
|
- test/data/parser/multipart.8
|
69
94
|
- test/data/parser/multipart.9
|
70
|
-
- test/data/parser.badmime1
|
71
|
-
- test/data/parser.badmime2
|
72
|
-
- test/data/parser.nested-multipart
|
73
|
-
- test/data/parser.nested-simple
|
74
|
-
- test/data/parser.nested-simple2
|
75
|
-
- test/data/parser.nested-simple3
|
76
|
-
- test/data/parser.rfc822
|
77
|
-
- test/data/parser.simple-mime
|
78
|
-
- test/data/transparency
|
79
95
|
- test/data/transparency/absolute.1
|
80
96
|
- test/data/transparency/absolute.2
|
81
97
|
- test/data/transparency/absolute.3
|
@@ -101,61 +117,33 @@ files:
|
|
101
117
|
- test/testserialize.rb
|
102
118
|
- test/testtestbase.rb
|
103
119
|
- test/testtranspparency.rb
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
- lib/rmail
|
108
|
-
- lib/rmail/address.rb
|
109
|
-
- lib/rmail/header.rb
|
110
|
-
- lib/rmail/mailbox
|
111
|
-
- lib/rmail/mailbox/mboxreader.rb
|
112
|
-
- lib/rmail/mailbox.rb
|
113
|
-
- lib/rmail/message.rb
|
114
|
-
- lib/rmail/parser
|
115
|
-
- lib/rmail/parser/multipart.rb
|
116
|
-
- lib/rmail/parser/pushbackreader.rb
|
117
|
-
- lib/rmail/parser.rb
|
118
|
-
- lib/rmail/serialize.rb
|
119
|
-
- lib/rmail/utils.rb
|
120
|
-
- lib/rmail.rb
|
121
|
-
- install.rb
|
122
|
-
- NEWS
|
123
|
-
- NOTES
|
124
|
-
- README
|
125
|
-
- THANKS
|
126
|
-
- TODO
|
127
|
-
- Rakefile
|
128
|
-
- version
|
129
|
-
has_rdoc: true
|
130
|
-
homepage: http://www.rfc20.org/rubymail
|
120
|
+
homepage: https://github.com/terceiro/rmail
|
121
|
+
licenses: []
|
122
|
+
metadata: {}
|
131
123
|
post_install_message:
|
132
|
-
rdoc_options:
|
133
|
-
- --title
|
134
|
-
- RubyMail Documentation (version 1.
|
135
|
-
- --main
|
124
|
+
rdoc_options:
|
125
|
+
- "--title"
|
126
|
+
- RubyMail Documentation (version 1.1.0)
|
127
|
+
- "--main"
|
136
128
|
- README
|
137
|
-
- --exclude
|
129
|
+
- "--exclude"
|
138
130
|
- SCCS
|
139
|
-
require_paths:
|
131
|
+
require_paths:
|
140
132
|
- lib
|
141
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
142
|
-
requirements:
|
133
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
134
|
+
requirements:
|
143
135
|
- - ">="
|
144
|
-
- !ruby/object:Gem::Version
|
136
|
+
- !ruby/object:Gem::Version
|
145
137
|
version: 1.8.1
|
146
|
-
|
147
|
-
|
148
|
-
requirements:
|
138
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
139
|
+
requirements:
|
149
140
|
- - ">="
|
150
|
-
- !ruby/object:Gem::Version
|
151
|
-
version:
|
152
|
-
version:
|
141
|
+
- !ruby/object:Gem::Version
|
142
|
+
version: '0'
|
153
143
|
requirements: []
|
154
|
-
|
155
|
-
|
156
|
-
rubygems_version: 1.0.1
|
144
|
+
rubyforge_project:
|
145
|
+
rubygems_version: 2.2.2
|
157
146
|
signing_key:
|
158
|
-
specification_version:
|
147
|
+
specification_version: 4
|
159
148
|
summary: A MIME mail parsing and generation library.
|
160
149
|
test_files: []
|
161
|
-
|