class Shredder::Files
Public Class Methods
new(sewn, shreds=sewn, m=2, n: m)
click to toggle source
this one takes filenames
# 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
Public Instance Methods
sew(limit=0)
click to toggle source
# File lib/shredder/files.rb, line 24 def sew(limit=0) writer = readers = count = nil begin writer = File.open(@sewn, 'wb') readers = @shreds.map{|shred| File.open(shred, 'r')} count = Streams.new(writer, readers).sew(limit: limit) ensure writer.close if writer readers.each{|reader| reader.close} if readers end return count end
shred(limit=0)
click to toggle source
# File lib/shredder/files.rb, line 11 def shred(limit=0) reader = writers = count = nil begin reader = File.open(@sewn, 'r') writers = @shreds.map{|shred| File.open(shred, 'wb')} count = Streams.new(reader, writers).shred(limit: limit) ensure writers.each{|writer| writer.close} if writers reader.close if reader end return count end