seven_zip_ruby 1.2.0-x86-mingw32 → 1.2.1-x86-mingw32
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
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 91f7b44889e262c53f68a16bff9ca709503fd8a3
|
4
|
+
data.tar.gz: 0bdca3000310e5f74b3322aa49d6a5fea1e6acf6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 689ffdae9d3e90ffa4bee9790c8db0a710fdd96eb9d2b834e934e4d4456804d923923e3eded0f6c67493b0bbfe7698feaf13c8910b0942810f78f9c7d84fcaab
|
7
|
+
data.tar.gz: 05026822e8d1d3d25a9181f2c47351494b3c6e046ccc01afb0b3e75fca91df9dc9a1d8843d30c09a85cd2fcb76de6266f7b8f49e280f19351719a6c8a9150875
|
Binary file
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require("stringio")
|
2
|
+
require("thread")
|
2
3
|
|
3
4
|
module SevenZipRuby
|
4
5
|
|
@@ -165,7 +166,7 @@ module SevenZipRuby
|
|
165
166
|
def extract(stream, index, dir = ".", param = {})
|
166
167
|
password = { password: param.delete(:password) }
|
167
168
|
self.open(stream, password) do |szr|
|
168
|
-
szr.extract(index, dir
|
169
|
+
szr.extract(index, dir)
|
169
170
|
end
|
170
171
|
end
|
171
172
|
|
@@ -183,7 +184,7 @@ module SevenZipRuby
|
|
183
184
|
def extract_all(stream, dir = ".", param = {})
|
184
185
|
password = { password: param.delete(:password) }
|
185
186
|
self.open(stream, password) do |szr|
|
186
|
-
szr.extract_all(dir
|
187
|
+
szr.extract_all(dir)
|
187
188
|
end
|
188
189
|
end
|
189
190
|
|
@@ -267,7 +268,9 @@ module SevenZipRuby
|
|
267
268
|
# end
|
268
269
|
def test
|
269
270
|
begin
|
270
|
-
|
271
|
+
synchronize do
|
272
|
+
return test_all_impl(nil)
|
273
|
+
end
|
271
274
|
rescue
|
272
275
|
return false
|
273
276
|
end
|
@@ -288,7 +291,9 @@ module SevenZipRuby
|
|
288
291
|
# end
|
289
292
|
def verify_detail
|
290
293
|
begin
|
291
|
-
|
294
|
+
synchronize do
|
295
|
+
return test_all_impl(true)
|
296
|
+
end
|
292
297
|
rescue
|
293
298
|
return nil
|
294
299
|
end
|
@@ -320,11 +325,15 @@ module SevenZipRuby
|
|
320
325
|
return extract_all(path)
|
321
326
|
when Enumerable
|
322
327
|
index_list = index.map(&:to_i).sort.uniq
|
323
|
-
|
328
|
+
synchronize do
|
329
|
+
extract_files_impl(index_list, file_proc(path))
|
330
|
+
end
|
324
331
|
when nil
|
325
332
|
raise ArgumentError.new("Invalid parameter index")
|
326
333
|
else
|
327
|
-
|
334
|
+
synchronize do
|
335
|
+
extract_impl(index.to_i, file_proc(path))
|
336
|
+
end
|
328
337
|
end
|
329
338
|
end
|
330
339
|
|
@@ -340,7 +349,9 @@ module SevenZipRuby
|
|
340
349
|
# end
|
341
350
|
# end
|
342
351
|
def extract_all(dir = ".")
|
343
|
-
|
352
|
+
synchronize do
|
353
|
+
extract_all_impl(file_proc(File.expand_path(dir)))
|
354
|
+
end
|
344
355
|
end
|
345
356
|
|
346
357
|
# Extract entires of 7zip archive to local directory based on the block return value.
|
@@ -393,7 +404,9 @@ module SevenZipRuby
|
|
393
404
|
end
|
394
405
|
|
395
406
|
ret = []
|
396
|
-
|
407
|
+
synchronize do
|
408
|
+
extract_all_impl(data_proc(ret, idx_prj))
|
409
|
+
end
|
397
410
|
return ret
|
398
411
|
|
399
412
|
when Enumerable
|
@@ -401,7 +414,9 @@ module SevenZipRuby
|
|
401
414
|
idx_prj = Hash[*(index_list.each_with_index.map{ |idx, i| [ idx, i ] }.flatten)]
|
402
415
|
|
403
416
|
ret = []
|
404
|
-
|
417
|
+
synchronize do
|
418
|
+
extract_files_impl(index_list, data_proc(ret, idx_prj))
|
419
|
+
end
|
405
420
|
return ret
|
406
421
|
|
407
422
|
when nil
|
@@ -418,7 +433,9 @@ module SevenZipRuby
|
|
418
433
|
end
|
419
434
|
|
420
435
|
ret = []
|
421
|
-
|
436
|
+
synchronize do
|
437
|
+
extract_impl(index, data_proc(ret, idx_prj))
|
438
|
+
end
|
422
439
|
return ret[0]
|
423
440
|
|
424
441
|
end
|
@@ -482,6 +499,18 @@ module SevenZipRuby
|
|
482
499
|
end
|
483
500
|
end
|
484
501
|
private :data_proc
|
502
|
+
|
503
|
+
COMPRESS_GUARD = Mutex.new # :nodoc:
|
504
|
+
def synchronize # :nodoc:
|
505
|
+
if (COMPRESS_GUARD)
|
506
|
+
COMPRESS_GUARD.synchronize do
|
507
|
+
yield
|
508
|
+
end
|
509
|
+
else
|
510
|
+
yield
|
511
|
+
end
|
512
|
+
end
|
513
|
+
private :synchronize
|
485
514
|
end
|
486
515
|
|
487
516
|
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require("stringio")
|
2
|
+
require("thread")
|
2
3
|
|
3
4
|
module SevenZipRuby
|
4
5
|
|
@@ -253,7 +254,9 @@ module SevenZipRuby
|
|
253
254
|
# szw.close
|
254
255
|
# end
|
255
256
|
def compress
|
256
|
-
|
257
|
+
synchronize do
|
258
|
+
compress_impl(compress_proc)
|
259
|
+
end
|
257
260
|
return self
|
258
261
|
end
|
259
262
|
|
@@ -421,6 +424,18 @@ module SevenZipRuby
|
|
421
424
|
end
|
422
425
|
end
|
423
426
|
private :compress_proc
|
427
|
+
|
428
|
+
COMPRESS_GUARD = Mutex.new # :nodoc:
|
429
|
+
def synchronize # :nodoc:
|
430
|
+
if (COMPRESS_GUARD)
|
431
|
+
COMPRESS_GUARD.synchronize do
|
432
|
+
yield
|
433
|
+
end
|
434
|
+
else
|
435
|
+
yield
|
436
|
+
end
|
437
|
+
end
|
438
|
+
private :synchronize
|
424
439
|
end
|
425
440
|
|
426
441
|
|
data/spec/seven_zip_ruby_spec.rb
CHANGED
@@ -79,6 +79,24 @@ describe SevenZipRuby do
|
|
79
79
|
end
|
80
80
|
end
|
81
81
|
|
82
|
+
example "singleton method: extract" do
|
83
|
+
File.open(SevenZipRubySpecHelper::SEVEN_ZIP_FILE, "rb") do |file|
|
84
|
+
SevenZipRuby::SevenZipReader.extract(file, :all, SevenZipRubySpecHelper::EXTRACT_DIR)
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
example "singleton method: extract_all" do
|
89
|
+
File.open(SevenZipRubySpecHelper::SEVEN_ZIP_FILE, "rb") do |file|
|
90
|
+
SevenZipRuby::SevenZipReader.extract_all(file, SevenZipRubySpecHelper::EXTRACT_DIR)
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
example "singleton method: verify" do
|
95
|
+
File.open(SevenZipRubySpecHelper::SEVEN_ZIP_FILE, "rb") do |file|
|
96
|
+
SevenZipRuby::SevenZipReader.verify(file)
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
82
100
|
example "extract archive" do
|
83
101
|
File.open(SevenZipRubySpecHelper::SEVEN_ZIP_FILE, "rb") do |file|
|
84
102
|
SevenZipRuby::SevenZipReader.open(file) do |szr|
|
@@ -144,6 +162,28 @@ describe SevenZipRuby do
|
|
144
162
|
end
|
145
163
|
end
|
146
164
|
|
165
|
+
example "run in multi threads" do
|
166
|
+
s = StringIO.new
|
167
|
+
SevenZipRuby::SevenZipWriter.open(s) do |szw|
|
168
|
+
szw.add_data(SevenZipRubySpecHelper::SAMPLE_LARGE_RANDOM_DATA, "data.bin")
|
169
|
+
end
|
170
|
+
data = s.string
|
171
|
+
|
172
|
+
th_list = []
|
173
|
+
100.times do
|
174
|
+
th = Thread.new do
|
175
|
+
stream = StringIO.new(data)
|
176
|
+
SevenZipRuby::SevenZipReader.open(stream) do |szr|
|
177
|
+
szr.extract_data(0)
|
178
|
+
end
|
179
|
+
end
|
180
|
+
th_list.push(th)
|
181
|
+
end
|
182
|
+
th_list.each do |t|
|
183
|
+
t.join
|
184
|
+
end
|
185
|
+
end
|
186
|
+
|
147
187
|
|
148
188
|
describe "error handling" do
|
149
189
|
|
@@ -470,6 +510,24 @@ describe SevenZipRuby do
|
|
470
510
|
expect(size.sort.reverse).to eq size
|
471
511
|
end
|
472
512
|
|
513
|
+
example "run in multi threads" do
|
514
|
+
th_list = []
|
515
|
+
mutex = Mutex.new
|
516
|
+
100.times do
|
517
|
+
th = Thread.new do
|
518
|
+
stream = StringIO.new
|
519
|
+
SevenZipRuby::SevenZipWriter.open(stream) do |szw|
|
520
|
+
data = SevenZipRubySpecHelper::SAMPLE_LARGE_RANDOM_DATA
|
521
|
+
szw.add_data(data, "hoge.dat")
|
522
|
+
end
|
523
|
+
end
|
524
|
+
th_list.push(th)
|
525
|
+
end
|
526
|
+
th_list.each do |t|
|
527
|
+
t.join
|
528
|
+
end
|
529
|
+
end
|
530
|
+
|
473
531
|
if (SevenZipRubySpecHelper.processor_count && SevenZipRubySpecHelper.processor_count > 1)
|
474
532
|
example "set multi_thread" do
|
475
533
|
time = [ false, true ].map do |multi_thread|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: seven_zip_ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.1
|
5
5
|
platform: x86-mingw32
|
6
6
|
authors:
|
7
7
|
- Masamitsu MURASE
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-02-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|