mbox 0.0.4.1 → 0.0.4.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/mbox/mbox.rb +25 -7
- metadata +2 -2
data/lib/mbox/mbox.rb
CHANGED
@@ -64,30 +64,44 @@ class Mbox
|
|
64
64
|
@input.close
|
65
65
|
end
|
66
66
|
|
67
|
-
def
|
68
|
-
@input.seek 0
|
69
|
-
|
67
|
+
def lock
|
70
68
|
if @input.respond_to? :flock
|
71
69
|
@input.flock File::LOCK_SH
|
72
70
|
end
|
71
|
+
end
|
72
|
+
|
73
|
+
def unlock
|
74
|
+
if @input.respond_to? :flock
|
75
|
+
@input.flock File::LOCK_UN
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
def each (opts = {})
|
80
|
+
@input.seek 0
|
81
|
+
|
82
|
+
lock
|
73
83
|
|
74
84
|
while mail = Mail.parse(@input, options.merge(opts))
|
75
85
|
yield mail
|
76
86
|
end
|
77
87
|
|
78
|
-
|
79
|
-
@input.flock File::LOCK_UN
|
80
|
-
end
|
88
|
+
unlock
|
81
89
|
end
|
82
90
|
|
83
91
|
def [] (index, opts = {})
|
92
|
+
lock
|
93
|
+
|
84
94
|
seek index
|
85
95
|
|
86
96
|
if @input.eof?
|
87
97
|
raise IndexError, "#{index} is out of range"
|
88
98
|
end
|
89
99
|
|
90
|
-
Mail.parse(@input, options.merge(opts))
|
100
|
+
mail = Mail.parse(@input, options.merge(opts))
|
101
|
+
|
102
|
+
unlock
|
103
|
+
|
104
|
+
mail
|
91
105
|
end
|
92
106
|
|
93
107
|
def seek (to, whence = IO::SEEK_SET)
|
@@ -121,6 +135,8 @@ class Mbox
|
|
121
135
|
last = ''
|
122
136
|
length = 0
|
123
137
|
|
138
|
+
lock
|
139
|
+
|
124
140
|
while line = @input.readline rescue nil
|
125
141
|
if line.match(options[:separator]) && last.chomp.empty?
|
126
142
|
length += 1
|
@@ -129,6 +145,8 @@ class Mbox
|
|
129
145
|
last = line
|
130
146
|
end
|
131
147
|
|
148
|
+
unlock
|
149
|
+
|
132
150
|
length
|
133
151
|
end
|
134
152
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mbox
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.4.
|
4
|
+
version: 0.0.4.2
|
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-05-
|
12
|
+
date: 2012-05-09 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: call-me
|