module Shredder

Constants

VERSION

Attributes

sewn[RW]
shreds[RW]

Public Instance Methods

sew(shreds=@shreds, sewn=(@sewn or $stdout), readers: shreds, writer: sewn, limit: 0) click to toggle source

note that these are streams

# File lib/shredder/shredder.rb, line 17
def sew(shreds=@shreds, sewn=(@sewn or $stdout),
        readers: shreds, writer: sewn, limit: 0)
  shreds,xor,count = readers.length,0,0
  while byte = readers[count%shreds].getbyte do
    writer.putc(xor=(byte^xor))
    count += 1 # note that 0 is skipped
    break if count == limit
  end
  return count
end
shred(sewn=(@sewn or $stdin), shreds=@shreds, writers: shreds, reader: sewn, limit: 0) click to toggle source

note that these are streams

# File lib/shredder/shredder.rb, line 5
def shred(sewn=(@sewn or $stdin), shreds=@shreds,
          writers: shreds, reader: sewn, limit: 0)
  shreds,xor,count = writers.length,0,0
  while byte = reader.getbyte do
    writers[count%shreds].putc(xor^(xor=byte))
    count += 1 # not that 0 is skipped
    break if count == limit
  end
  return count
end
shred_files(b, m=2, basename: b, n: m) click to toggle source
# File lib/shredder/shredder.rb, line 28
def shred_files(b, m=2, basename: b, n: m)
  case basename
  when Array
    basename
  when String
    (1..n).map{|i| "#{basename}.#{i}"}
  when Integer
    (1..basename).map{|i| "#{@sewn or 'shred'}.#{i}"}
  else
    raise "Expected basename Array|String|Integer"
  end
end