Module: Shredder

Included in:
Files, StdIO, Streams
Defined in:
lib/shredder.rb,
lib/shredder/files.rb,
lib/shredder/stdio.rb,
lib/shredder/streams.rb,
lib/shredder/shredder.rb

Defined Under Namespace

Classes: Files, StdIO, Streams

Constant Summary collapse

VERSION =
'3.1.221230'

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#sewnObject

Returns the value of attribute sewn.



2
3
4
# File 'lib/shredder/shredder.rb', line 2

def sewn
  @sewn
end

#shredsObject

Returns the value of attribute shreds.



2
3
4
# File 'lib/shredder/shredder.rb', line 2

def shreds
  @shreds
end

Instance Method Details

#sew(shreds = @shreds, sewn = (@sewn or $stdout), readers: shreds, writer: sewn, limit: 0, xor: 0) ⇒ Object

note that these are streams



17
18
19
20
21
22
23
24
25
26
# File 'lib/shredder/shredder.rb', line 17

def sew(shreds=@shreds, sewn=(@sewn or $stdout),
        readers: shreds, writer: sewn, limit: 0, xor: 0)
  shreds,count = readers.length,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, xor: 0) ⇒ Object

note that these are streams



5
6
7
8
9
10
11
12
13
14
# File 'lib/shredder/shredder.rb', line 5

def shred(sewn=(@sewn or $stdin), shreds=@shreds,
          writers: shreds, reader: sewn, limit: 0, xor: 0)
  shreds,count = writers.length,0
  while byte = reader.getbyte do
    writers[count%shreds].putc(xor^(xor=byte))
    count += 1 # note that 0 is skipped
    break if count == limit
  end
  return count
end

#shred_files(b = nil, m = 2, basename: b, n: m) ⇒ Object



28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/shredder/shredder.rb', line 28

def shred_files(b=nil, 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