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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: a44d1dd66134f46841a1842c8bcbbeffe895accf
4
- data.tar.gz: 26e85df3e4ea78233a5ec04e78003318479f66e1
2
+ SHA256:
3
+ metadata.gz: 94aa91f6a46340387923350f0eb5e758fd88ea6fe9042e2eeb3aa4e5830df910
4
+ data.tar.gz: d357f9db0d6af403d62f7707d82b70c6422ba18253335dce0f1c5b3a2ebefa9f
5
5
  SHA512:
6
- metadata.gz: 1501d2ba188801e3458db922d7992c15131a6405992d05c629baec93c80efb06b86ed93c56861ace5e8054684e3f7f9b1271528783559aa359a3008698af2aeb
7
- data.tar.gz: a68b2f5c4f2e4a1a35abf0ff3da414f8afdf82af59d743b20f37791b6f14d4a91eb59365f22122beb75960cb022e8509bc34df6bc1fc1164df81d10270d4bf45
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,
@@ -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[http://code.google.com/p/ruby-msg/wiki/MsgDetails]
123
+ * MsgDetails[/aquasync/ruby-msg/wiki/MsgDetails]
124
124
 
125
- * PstDetails[http://code.google.com/p/ruby-msg/wiki/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.each_read { |chunk| io << chunk }
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, when using OrderedHash
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, when using OrderedHash
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
@@ -1,3 +1,3 @@
1
1
  module Mapi
2
- VERSION = '1.5.2'
2
+ VERSION = '1.5.3'
3
3
  end
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{http://code.google.com/p/ruby-msg}
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.2
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: 2014-08-20 00:00:00.000000000 Z
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
- - ruby-msg.gemspec
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/mime.rb
72
- - lib/mapi/pst.rb
73
- - lib/mapi/msg.rb
71
+ - lib/mapi/version.rb
72
+ - ruby-msg.gemspec
74
73
  - test/test_convert_contact.rb
75
- - test/test_property_set.rb
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/test_convert_note.rb
80
- homepage: http://code.google.com/p/ruby-msg
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
- rubyforge_project: ruby-msg
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