pst 0.0.1 → 0.0.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.
- data/lib/pst/base.rb +57 -1
- data/lib/pst/version.rb +1 -1
- data/spec/pst_spec.rb +21 -5
- metadata +49 -33
data/lib/pst/base.rb
CHANGED
@@ -49,6 +49,12 @@ class Java::ComPff::PSTFolder
|
|
49
49
|
# that move the cursor out from underneith the underlying
|
50
50
|
# java-pst library
|
51
51
|
#
|
52
|
+
# instead do:
|
53
|
+
#
|
54
|
+
# while pe = pst_folder.getNextChild
|
55
|
+
# # ... use pe
|
56
|
+
# end
|
57
|
+
#
|
52
58
|
# Maybe once I understand Enumerator better we can fix this.
|
53
59
|
raise "TODO"
|
54
60
|
Enumerator.new do |yielder|
|
@@ -64,6 +70,18 @@ class Java::ComPff::PSTFolder
|
|
64
70
|
end
|
65
71
|
end
|
66
72
|
|
73
|
+
# TODO this might suffer from the same problem as #children.
|
74
|
+
def take(n)
|
75
|
+
i = 0
|
76
|
+
results = []
|
77
|
+
while i < n && pe = self.getNextChild
|
78
|
+
results << pe
|
79
|
+
i = i + 1
|
80
|
+
end
|
81
|
+
results
|
82
|
+
end
|
83
|
+
|
84
|
+
|
67
85
|
def filename
|
68
86
|
self.file.filename
|
69
87
|
end
|
@@ -91,7 +109,7 @@ class Java::ComPff::PSTFolder
|
|
91
109
|
self.file = the_parent.file
|
92
110
|
end
|
93
111
|
|
94
|
-
def
|
112
|
+
def creation_trme
|
95
113
|
t = self.getCreationTime || self.getLastModificationTime
|
96
114
|
t.andand.to_time
|
97
115
|
end
|
@@ -110,6 +128,7 @@ class Java::ComPff::PSTMessage
|
|
110
128
|
alias_method :original_subject, :getOriginalSubject
|
111
129
|
#alias_method :body, :getBody
|
112
130
|
alias_method :html_body, :getBodyHTML
|
131
|
+
alias_method :in_reply_to_id, :getInReplyToId
|
113
132
|
|
114
133
|
# things to pay attention to
|
115
134
|
# next.getDescriptorNode().descriptorIdentifier+"";
|
@@ -118,6 +137,10 @@ class Java::ComPff::PSTMessage
|
|
118
137
|
# next.displayTo();
|
119
138
|
# next.getClientSubmitTime();
|
120
139
|
|
140
|
+
def human_sender
|
141
|
+
"%s <%s>" % [sender_name, sender_email]
|
142
|
+
end
|
143
|
+
|
121
144
|
def human_id
|
122
145
|
"%s:%s:%s:%s" % [ folder.human_id, self.getClientSubmitTime.to_s, self.getInternetMessageId, self.subject ]
|
123
146
|
end
|
@@ -182,6 +205,25 @@ class Java::ComPff::PSTMessage
|
|
182
205
|
orig
|
183
206
|
end
|
184
207
|
end
|
208
|
+
|
209
|
+
def headers
|
210
|
+
@headers ||= begin
|
211
|
+
hstr = self.getTransportMessageHeaders
|
212
|
+
hstr.split("\n").inject({}){|acc, line|
|
213
|
+
key,value = line.split(":", 2)
|
214
|
+
acc[key] = value.strip if value
|
215
|
+
acc
|
216
|
+
}
|
217
|
+
end
|
218
|
+
end
|
219
|
+
|
220
|
+
def thread_topic
|
221
|
+
self.headers["Thread-Topic"]
|
222
|
+
end
|
223
|
+
|
224
|
+
def thread_index
|
225
|
+
self.headers["Thread-Index"]
|
226
|
+
end
|
185
227
|
end
|
186
228
|
|
187
229
|
class Java::ComPff::PSTRecipient
|
@@ -200,6 +242,20 @@ class Java::ComPff::PSTRecipient
|
|
200
242
|
def hash_string
|
201
243
|
Digest::SHA1.hexdigest(human_id)
|
202
244
|
end
|
245
|
+
|
246
|
+
def how
|
247
|
+
case getRecipientType
|
248
|
+
when Java::ComPff::PSTRecipient::MAPI_BCC then :bcc
|
249
|
+
when Java::ComPff::PSTRecipient::MAPI_CC then :cc
|
250
|
+
when Java::ComPff::PSTRecipient::MAPI_TO then :to
|
251
|
+
else
|
252
|
+
:to
|
253
|
+
end
|
254
|
+
end
|
255
|
+
|
256
|
+
def order
|
257
|
+
getRecipientOrder
|
258
|
+
end
|
203
259
|
end
|
204
260
|
|
205
261
|
class Java::ComPff::PSTAttachment
|
data/lib/pst/version.rb
CHANGED
data/spec/pst_spec.rb
CHANGED
@@ -78,7 +78,8 @@ describe "PST" do
|
|
78
78
|
context "PSTMessage" do
|
79
79
|
before(:all) do
|
80
80
|
@folder = @folders["Deleted Items"]
|
81
|
-
@
|
81
|
+
@folder.moveChildCursorTo(0)
|
82
|
+
@email = @folder.getNextChild
|
82
83
|
end
|
83
84
|
|
84
85
|
it "should have basic attributes" do
|
@@ -102,9 +103,11 @@ describe "PST" do
|
|
102
103
|
|
103
104
|
it "should iterate over recipients" do
|
104
105
|
@email.recipients.count.should eql(1)
|
105
|
-
|
106
|
-
#
|
107
|
-
#
|
106
|
+
# @email.recipients.each do |r|
|
107
|
+
# pp r
|
108
|
+
# pp r.how
|
109
|
+
# pp r.order
|
110
|
+
# end
|
108
111
|
end
|
109
112
|
|
110
113
|
end
|
@@ -112,7 +115,7 @@ describe "PST" do
|
|
112
115
|
describe "PSTRecipient" do
|
113
116
|
before(:all) do
|
114
117
|
@folder = @folders["Deleted Items"]
|
115
|
-
@email = @folder.
|
118
|
+
@email = @folder.take(8).last
|
116
119
|
|
117
120
|
@recipients = @email.recipients.inject({}){|acc,r|
|
118
121
|
acc[r.name] = r
|
@@ -134,6 +137,19 @@ describe "PST" do
|
|
134
137
|
it "should have a hash string" do
|
135
138
|
@recipients["Bill"].hash_string.should eql("f161dd2a45952784c440bd5879684ae89b8b0523")
|
136
139
|
end
|
140
|
+
|
141
|
+
pending "should have an order" do
|
142
|
+
pp @recipients["Volume Management"].order
|
143
|
+
pp @recipients["Williams III"].order
|
144
|
+
pp @recipients["Bill"].order
|
145
|
+
end
|
146
|
+
|
147
|
+
it "should have a how" do
|
148
|
+
@recipients["Volume Management"].how.should eql(:to)
|
149
|
+
@recipients["Williams III"].how.should eql(:cc)
|
150
|
+
@recipients["Bill"].how.should eql(:cc)
|
151
|
+
end
|
152
|
+
|
137
153
|
end
|
138
154
|
|
139
155
|
end
|
metadata
CHANGED
@@ -1,34 +1,44 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: pst
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 0
|
7
|
+
- 0
|
8
|
+
- 2
|
9
|
+
version: 0.0.2
|
6
10
|
platform: ruby
|
7
|
-
authors:
|
11
|
+
authors:
|
8
12
|
- Nate Murray
|
9
13
|
autorequire:
|
10
14
|
bindir: bin
|
11
15
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
16
|
+
|
17
|
+
date: 2011-09-10 00:00:00 -07:00
|
18
|
+
default_executable:
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
15
21
|
name: andand
|
16
|
-
requirement: &2153586440 !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
|
-
requirements:
|
19
|
-
- - ! '>='
|
20
|
-
- !ruby/object:Gem::Version
|
21
|
-
version: '0'
|
22
|
-
type: :runtime
|
23
22
|
prerelease: false
|
24
|
-
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - ">="
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
segments:
|
28
|
+
- 0
|
29
|
+
version: "0"
|
30
|
+
type: :runtime
|
31
|
+
version_requirements: *id001
|
25
32
|
description: Syntactic sugar over java-libpst.
|
26
|
-
email:
|
33
|
+
email:
|
27
34
|
- nate@natemurray.com
|
28
35
|
executables: []
|
36
|
+
|
29
37
|
extensions: []
|
38
|
+
|
30
39
|
extra_rdoc_files: []
|
31
|
-
|
40
|
+
|
41
|
+
files:
|
32
42
|
- .gitignore
|
33
43
|
- Gemfile
|
34
44
|
- README.mkd
|
@@ -44,31 +54,37 @@ files:
|
|
44
54
|
- test/data/.gitkeep
|
45
55
|
- test/data/README
|
46
56
|
- vendor/jars/java-libpst-1.0.0.jar
|
57
|
+
has_rdoc: true
|
47
58
|
homepage: http://www.xcombinator.com/
|
48
59
|
licenses: []
|
60
|
+
|
49
61
|
post_install_message:
|
50
62
|
rdoc_options: []
|
51
|
-
|
63
|
+
|
64
|
+
require_paths:
|
52
65
|
- lib
|
53
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
requirements:
|
62
|
-
- -
|
63
|
-
- !ruby/object:Gem::Version
|
64
|
-
|
66
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
67
|
+
requirements:
|
68
|
+
- - ">="
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
segments:
|
71
|
+
- 0
|
72
|
+
version: "0"
|
73
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
74
|
+
requirements:
|
75
|
+
- - ">="
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
segments:
|
78
|
+
- 0
|
79
|
+
version: "0"
|
65
80
|
requirements: []
|
81
|
+
|
66
82
|
rubyforge_project: pst.rb
|
67
|
-
rubygems_version: 1.
|
83
|
+
rubygems_version: 1.3.6
|
68
84
|
signing_key:
|
69
85
|
specification_version: 3
|
70
86
|
summary: Syntactic sugar over java-libpst
|
71
|
-
test_files:
|
87
|
+
test_files:
|
72
88
|
- spec/pst_spec.rb
|
73
89
|
- spec/spec_helper.rb
|
74
90
|
- test/data/.gitkeep
|