Class: Shredder::Files
- Inherits:
-
Object
- Object
- Shredder::Files
- Includes:
- Shredder
- Defined in:
- lib/shredder/files.rb
Constant Summary
Constants included from Shredder
Instance Attribute Summary
Attributes included from Shredder
Instance Method Summary collapse
-
#initialize(sewn, shreds = sewn, m = 2, n: m) ⇒ Files
constructor
this one takes filenames.
- #sew(limit = 0) ⇒ Object
- #shred(limit = 0) ⇒ Object
Methods included from Shredder
Constructor Details
#initialize(sewn, shreds = sewn, m = 2, n: m) ⇒ Files
this one takes filenames
5 6 7 8 9 |
# File 'lib/shredder/files.rb', line 5 def initialize(sewn, shreds=sewn, m=2, n: m) @sewn = sewn @shreds = shred_files(shreds, n) raise "Need at least 2 shreds" unless @shreds.length > 1 end |
Instance Method Details
#sew(limit = 0) ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/shredder/files.rb', line 24 def sew(limit=0) writer = readers = count = nil begin writer = File.open(@sewn, 'wb') readers = @shreds.map{File.open(_1, 'r')} count = Streams.new(writer, readers).sew(limit: limit) ensure writer.close if writer readers.each{_1.close} if readers end return count end |
#shred(limit = 0) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/shredder/files.rb', line 11 def shred(limit=0) reader = writers = count = nil begin reader = File.open(@sewn, 'r') writers = @shreds.map{File.open _1, 'wb'} count = Streams.new(reader, writers).shred(limit: limit) ensure writers.each{_1.close} if writers reader.close if reader end return count end |