ruby-msg 1.5.2 → 1.5.3
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 +5 -5
- data/ChangeLog +7 -0
- data/{README → README.rdoc} +4 -5
- data/lib/mapi/base.rb +2 -1
- data/lib/mapi/convert/note-mime.rb +1 -1
- data/lib/mapi/convert/note-tmail.rb +1 -1
- data/lib/mapi/mime.rb +0 -8
- data/lib/mapi/version.rb +1 -1
- data/ruby-msg.gemspec +4 -4
- metadata +30 -32
- data/lib/orderedhash.rb +0 -218
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 94aa91f6a46340387923350f0eb5e758fd88ea6fe9042e2eeb3aa4e5830df910
|
4
|
+
data.tar.gz: d357f9db0d6af403d62f7707d82b70c6422ba18253335dce0f1c5b3a2ebefa9f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4b1f903559402d79634d44e2fe692ec4de5c106c059d6d402833cef0d51d5e12ffe5c1dcf57d0bd98461582b3129e2f3fc9d480f08ff11cb91b6388ec672f49d
|
7
|
+
data.tar.gz: a2ecce5b15c31678e1069d6482a75f73e168a16b71a2982f9d5c24b78ca8abf20015b8021584b02fd5294b07f9e1d87da12ce58166c05f014921f875b10eccc1
|
data/ChangeLog
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
+
== 1.5.3 / 2024-03-28
|
2
|
+
|
3
|
+
- Remove OrderedHash (github #12, mvz).
|
4
|
+
- Change project homepage to github and add .rdoc extension to README.
|
5
|
+
- Update wiki links in README to point to github not googlecode.
|
6
|
+
- Fix broken Attachment#save (github #14).
|
7
|
+
|
1
8
|
== 1.5.2 / 2014-08-20
|
2
9
|
|
3
10
|
- Move mime.rb file to avoid conflicts with mime_types gem (github #7,
|
data/{README → README.rdoc}
RENAMED
@@ -118,11 +118,10 @@ support conversion to mime objects.
|
|
118
118
|
|
119
119
|
For more information, see
|
120
120
|
|
121
|
-
* TODO
|
121
|
+
* TODO[/aquasync/ruby-msg/wiki/TODO]
|
122
122
|
|
123
|
-
* MsgDetails[
|
123
|
+
* MsgDetails[/aquasync/ruby-msg/wiki/MsgDetails]
|
124
124
|
|
125
|
-
* PstDetails[
|
126
|
-
|
127
|
-
* OleDetails[http://code.google.com/p/ruby-ole/wiki/OleDetails]
|
125
|
+
* PstDetails[/aquasync/ruby-msg/wiki/PstDetails]
|
128
126
|
|
127
|
+
* OleDetails[/aquasync/ruby-msg/wiki/OleDetails]
|
data/lib/mapi/base.rb
CHANGED
@@ -30,7 +30,8 @@ module Mapi
|
|
30
30
|
# a.save open(File.basename(a.filename || 'attachment'), 'wb')
|
31
31
|
def save io
|
32
32
|
raise "can only save binary data blobs, not ole dirs" if @embedded_ole
|
33
|
-
data.
|
33
|
+
data.rewind
|
34
|
+
io << data.read(8192) until data.eof?
|
34
35
|
end
|
35
36
|
|
36
37
|
def inspect
|
@@ -214,7 +214,7 @@ module Mapi
|
|
214
214
|
next if mime.headers.keys.map(&:downcase).include? key.downcase
|
215
215
|
mime.headers[key] += vals
|
216
216
|
end
|
217
|
-
# just a stupid hack to make the content-type header last
|
217
|
+
# just a stupid hack to make the content-type header last
|
218
218
|
mime.headers['Content-Type'] = mime.headers.delete 'Content-Type'
|
219
219
|
|
220
220
|
mime
|
@@ -226,7 +226,7 @@ module Mapi
|
|
226
226
|
#next if mime.headers.keys.map(&:downcase).include? key.downcase
|
227
227
|
mail[key] = vals.first
|
228
228
|
end
|
229
|
-
# just a stupid hack to make the content-type header last
|
229
|
+
# just a stupid hack to make the content-type header last
|
230
230
|
#mime.headers['Content-Type'] = mime.headers.delete 'Content-Type'
|
231
231
|
|
232
232
|
mail
|
data/lib/mapi/mime.rb
CHANGED
@@ -13,7 +13,6 @@
|
|
13
13
|
# = TODO
|
14
14
|
#
|
15
15
|
# * Better streaming support, rather than an all-in-string approach.
|
16
|
-
# * Add +OrderedHash+ optionally, to not lose ordering in headers.
|
17
16
|
# * A fair bit remains to be done for this class, its fairly immature. But generally I'd like
|
18
17
|
# to see it be more generally useful.
|
19
18
|
# * All sorts of correctness issues, encoding particular.
|
@@ -23,13 +22,6 @@
|
|
23
22
|
#
|
24
23
|
module Mapi
|
25
24
|
class Mime
|
26
|
-
Hash = begin
|
27
|
-
require 'orderedhash'
|
28
|
-
OrderedHash
|
29
|
-
rescue LoadError
|
30
|
-
Hash
|
31
|
-
end
|
32
|
-
|
33
25
|
attr_reader :headers, :body, :parts, :content_type, :preamble, :epilogue
|
34
26
|
|
35
27
|
# Create a Mime object using +str+ as an initial serialization, which must contain headers
|
data/lib/mapi/version.rb
CHANGED
data/ruby-msg.gemspec
CHANGED
@@ -11,20 +11,20 @@ Gem::Specification.new do |s|
|
|
11
11
|
s.description = %q{A library for reading and converting Outlook msg and pst files (mapi message stores).}
|
12
12
|
s.authors = ['Charles Lowe']
|
13
13
|
s.email = %q{aquasync@gmail.com}
|
14
|
-
s.homepage = %q{
|
14
|
+
s.homepage = %q{https://github.com/aquasync/ruby-msg}
|
15
15
|
s.rubyforge_project = %q{ruby-msg}
|
16
16
|
|
17
17
|
s.executables = ['mapitool']
|
18
|
-
s.files = ['README', 'COPYING', 'Rakefile', 'ChangeLog', 'ruby-msg.gemspec']
|
18
|
+
s.files = ['README.rdoc', 'COPYING', 'Rakefile', 'ChangeLog', 'ruby-msg.gemspec']
|
19
19
|
s.files += Dir.glob('data/*.yaml')
|
20
20
|
s.files += Dir.glob('lib/**/*.rb')
|
21
21
|
s.files += Dir.glob('test/test_*.rb')
|
22
22
|
s.files += Dir.glob('bin/*')
|
23
23
|
|
24
24
|
s.has_rdoc = true
|
25
|
-
s.extra_rdoc_files = ['README', 'ChangeLog']
|
25
|
+
s.extra_rdoc_files = ['README.rdoc', 'ChangeLog']
|
26
26
|
s.rdoc_options += [
|
27
|
-
'--main', 'README',
|
27
|
+
'--main', 'README.rdoc',
|
28
28
|
'--title', "#{PKG_NAME} documentation",
|
29
29
|
'--tab-width', '2'
|
30
30
|
]
|
metadata
CHANGED
@@ -1,41 +1,41 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-msg
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.5.
|
4
|
+
version: 1.5.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Charles Lowe
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-03-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ruby-ole
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: 1.2.8
|
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
26
|
version: 1.2.8
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: vpim
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0.360'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0.360'
|
41
41
|
description: A library for reading and converting Outlook msg and pst files (mapi
|
@@ -45,64 +45,62 @@ executables:
|
|
45
45
|
- mapitool
|
46
46
|
extensions: []
|
47
47
|
extra_rdoc_files:
|
48
|
-
- README
|
48
|
+
- README.rdoc
|
49
49
|
- ChangeLog
|
50
50
|
files:
|
51
|
-
- README
|
52
51
|
- COPYING
|
53
|
-
- Rakefile
|
54
52
|
- ChangeLog
|
55
|
-
-
|
53
|
+
- README.rdoc
|
54
|
+
- Rakefile
|
56
55
|
- bin/mapitool
|
57
|
-
- data/types.yaml
|
58
56
|
- data/mapitags.yaml
|
59
57
|
- data/named_map.yaml
|
58
|
+
- data/types.yaml
|
60
59
|
- lib/mapi.rb
|
61
|
-
- lib/orderedhash.rb
|
62
|
-
- lib/mapi/convert/note-tmail.rb
|
63
|
-
- lib/mapi/convert/note-mime.rb
|
64
|
-
- lib/mapi/convert/contact.rb
|
65
|
-
- lib/mapi/version.rb
|
66
|
-
- lib/mapi/convert.rb
|
67
60
|
- lib/mapi/base.rb
|
61
|
+
- lib/mapi/convert.rb
|
62
|
+
- lib/mapi/convert/contact.rb
|
63
|
+
- lib/mapi/convert/note-mime.rb
|
64
|
+
- lib/mapi/convert/note-tmail.rb
|
65
|
+
- lib/mapi/mime.rb
|
66
|
+
- lib/mapi/msg.rb
|
68
67
|
- lib/mapi/property_set.rb
|
68
|
+
- lib/mapi/pst.rb
|
69
69
|
- lib/mapi/rtf.rb
|
70
70
|
- lib/mapi/types.rb
|
71
|
-
- lib/mapi/
|
72
|
-
-
|
73
|
-
- lib/mapi/msg.rb
|
71
|
+
- lib/mapi/version.rb
|
72
|
+
- ruby-msg.gemspec
|
74
73
|
- test/test_convert_contact.rb
|
75
|
-
- test/
|
74
|
+
- test/test_convert_note.rb
|
76
75
|
- test/test_mime.rb
|
77
|
-
- test/test_types.rb
|
78
76
|
- test/test_msg.rb
|
79
|
-
- test/
|
80
|
-
|
77
|
+
- test/test_property_set.rb
|
78
|
+
- test/test_types.rb
|
79
|
+
homepage: https://github.com/aquasync/ruby-msg
|
81
80
|
licenses: []
|
82
81
|
metadata: {}
|
83
82
|
post_install_message:
|
84
83
|
rdoc_options:
|
85
|
-
- --main
|
86
|
-
- README
|
87
|
-
- --title
|
84
|
+
- "--main"
|
85
|
+
- README.rdoc
|
86
|
+
- "--title"
|
88
87
|
- ruby-msg documentation
|
89
|
-
- --tab-width
|
88
|
+
- "--tab-width"
|
90
89
|
- '2'
|
91
90
|
require_paths:
|
92
91
|
- lib
|
93
92
|
required_ruby_version: !ruby/object:Gem::Requirement
|
94
93
|
requirements:
|
95
|
-
- -
|
94
|
+
- - ">="
|
96
95
|
- !ruby/object:Gem::Version
|
97
96
|
version: '0'
|
98
97
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
99
98
|
requirements:
|
100
|
-
- -
|
99
|
+
- - ">="
|
101
100
|
- !ruby/object:Gem::Version
|
102
101
|
version: '0'
|
103
102
|
requirements: []
|
104
|
-
|
105
|
-
rubygems_version: 2.0.14
|
103
|
+
rubygems_version: 3.1.2
|
106
104
|
signing_key:
|
107
105
|
specification_version: 4
|
108
106
|
summary: Ruby Msg library.
|
data/lib/orderedhash.rb
DELETED
@@ -1,218 +0,0 @@
|
|
1
|
-
# = OrderedHash
|
2
|
-
#
|
3
|
-
# == Version
|
4
|
-
# 1.2006.07.13 (change of the first number means Big Change)
|
5
|
-
#
|
6
|
-
# == Description
|
7
|
-
# Hash which preserves order of added items (like PHP array).
|
8
|
-
#
|
9
|
-
# == Usage
|
10
|
-
#
|
11
|
-
# (see examples directory under the ruby gems root directory)
|
12
|
-
#
|
13
|
-
# require 'rubygems'
|
14
|
-
# require 'ordered_hash'
|
15
|
-
#
|
16
|
-
# hsh = OrderedHash.new
|
17
|
-
# hsh['z'] = 1
|
18
|
-
# hsh['a'] = 2
|
19
|
-
# hsh['c'] = 3
|
20
|
-
# p hsh.keys # ['z','a','c']
|
21
|
-
#
|
22
|
-
# == Source
|
23
|
-
# http://simplypowerful.1984.cz/goodlibs/1.2006.07.13
|
24
|
-
#
|
25
|
-
# == Author
|
26
|
-
# jan molic (/mig/at_sign/1984/dot/cz/)
|
27
|
-
#
|
28
|
-
# == Thanks to
|
29
|
-
# Andrew Johnson for his suggestions and fixes of Hash[], merge, to_a, inspect and shift
|
30
|
-
# Desmond Dsouza for == fixes
|
31
|
-
#
|
32
|
-
# == Licence
|
33
|
-
# You can redistribute it and/or modify it under the same terms of Ruby's license;
|
34
|
-
# either the dual license version in 2003, or any later version.
|
35
|
-
#
|
36
|
-
|
37
|
-
class OrderedHash < Hash
|
38
|
-
|
39
|
-
attr_accessor :order
|
40
|
-
|
41
|
-
class << self
|
42
|
-
|
43
|
-
def [] *args
|
44
|
-
hsh = OrderedHash.new
|
45
|
-
if Hash === args[0]
|
46
|
-
hsh.replace args[0]
|
47
|
-
elsif (args.size % 2) != 0
|
48
|
-
raise ArgumentError, "odd number of elements for Hash"
|
49
|
-
else
|
50
|
-
hsh[args.shift] = args.shift while args.size > 0
|
51
|
-
end
|
52
|
-
hsh
|
53
|
-
end
|
54
|
-
|
55
|
-
end
|
56
|
-
|
57
|
-
def initialize(*a, &b)
|
58
|
-
super
|
59
|
-
@order = []
|
60
|
-
end
|
61
|
-
|
62
|
-
def store_only a,b
|
63
|
-
store a,b
|
64
|
-
end
|
65
|
-
|
66
|
-
alias orig_store store
|
67
|
-
|
68
|
-
def store a,b
|
69
|
-
@order.push a unless has_key? a
|
70
|
-
super a,b
|
71
|
-
end
|
72
|
-
|
73
|
-
alias []= store
|
74
|
-
|
75
|
-
def == hsh2
|
76
|
-
return hsh2==self if !hsh2.is_a?(OrderedHash)
|
77
|
-
return false if @order != hsh2.order
|
78
|
-
super hsh2
|
79
|
-
end
|
80
|
-
|
81
|
-
def clear
|
82
|
-
@order = []
|
83
|
-
super
|
84
|
-
end
|
85
|
-
|
86
|
-
def delete key
|
87
|
-
@order.delete key
|
88
|
-
super
|
89
|
-
end
|
90
|
-
|
91
|
-
def each_key
|
92
|
-
@order.each { |k| yield k }
|
93
|
-
self
|
94
|
-
end
|
95
|
-
|
96
|
-
def each_value
|
97
|
-
@order.each { |k| yield self[k] }
|
98
|
-
self
|
99
|
-
end
|
100
|
-
|
101
|
-
def each
|
102
|
-
@order.each { |k| yield k,self[k] }
|
103
|
-
self
|
104
|
-
end
|
105
|
-
|
106
|
-
alias each_pair each
|
107
|
-
|
108
|
-
def delete_if
|
109
|
-
@order.clone.each { |k|
|
110
|
-
delete k if yield
|
111
|
-
}
|
112
|
-
self
|
113
|
-
end
|
114
|
-
|
115
|
-
def values
|
116
|
-
ary = []
|
117
|
-
@order.each { |k| ary.push self[k] }
|
118
|
-
ary
|
119
|
-
end
|
120
|
-
|
121
|
-
def keys
|
122
|
-
@order
|
123
|
-
end
|
124
|
-
|
125
|
-
def invert
|
126
|
-
hsh2 = Hash.new
|
127
|
-
@order.each { |k| hsh2[self[k]] = k }
|
128
|
-
hsh2
|
129
|
-
end
|
130
|
-
|
131
|
-
def reject &block
|
132
|
-
self.dup.delete_if( &block )
|
133
|
-
end
|
134
|
-
|
135
|
-
def reject! &block
|
136
|
-
hsh2 = reject( &block )
|
137
|
-
self == hsh2 ? nil : hsh2
|
138
|
-
end
|
139
|
-
|
140
|
-
def replace hsh2
|
141
|
-
@order = hsh2.keys
|
142
|
-
super hsh2
|
143
|
-
end
|
144
|
-
|
145
|
-
def shift
|
146
|
-
key = @order.first
|
147
|
-
key ? [key,delete(key)] : super
|
148
|
-
end
|
149
|
-
|
150
|
-
def unshift k,v
|
151
|
-
unless self.include? k
|
152
|
-
@order.unshift k
|
153
|
-
orig_store(k,v)
|
154
|
-
true
|
155
|
-
else
|
156
|
-
false
|
157
|
-
end
|
158
|
-
end
|
159
|
-
|
160
|
-
def push k,v
|
161
|
-
unless self.include? k
|
162
|
-
@order.push k
|
163
|
-
orig_store(k,v)
|
164
|
-
true
|
165
|
-
else
|
166
|
-
false
|
167
|
-
end
|
168
|
-
end
|
169
|
-
|
170
|
-
def pop
|
171
|
-
key = @order.last
|
172
|
-
key ? [key,delete(key)] : nil
|
173
|
-
end
|
174
|
-
|
175
|
-
def first
|
176
|
-
self[@order.first]
|
177
|
-
end
|
178
|
-
|
179
|
-
def last
|
180
|
-
self[@order.last]
|
181
|
-
end
|
182
|
-
|
183
|
-
def to_a
|
184
|
-
ary = []
|
185
|
-
each { |k,v| ary << [k,v] }
|
186
|
-
ary
|
187
|
-
end
|
188
|
-
|
189
|
-
def to_s
|
190
|
-
self.to_a.to_s
|
191
|
-
end
|
192
|
-
|
193
|
-
def inspect
|
194
|
-
ary = []
|
195
|
-
each {|k,v| ary << k.inspect + "=>" + v.inspect}
|
196
|
-
'{' + ary.join(", ") + '}'
|
197
|
-
end
|
198
|
-
|
199
|
-
def update hsh2
|
200
|
-
hsh2.each { |k,v| self[k] = v }
|
201
|
-
self
|
202
|
-
end
|
203
|
-
|
204
|
-
alias :merge! update
|
205
|
-
|
206
|
-
def merge hsh2
|
207
|
-
self.dup update(hsh2)
|
208
|
-
end
|
209
|
-
|
210
|
-
def select
|
211
|
-
ary = []
|
212
|
-
each { |k,v| ary << [k,v] if yield k,v }
|
213
|
-
ary
|
214
|
-
end
|
215
|
-
|
216
|
-
end
|
217
|
-
|
218
|
-
#=end
|