Module: Shredder
- 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
-
#sewn ⇒ Object
Returns the value of attribute sewn.
-
#shreds ⇒ Object
Returns the value of attribute shreds.
Instance Method Summary collapse
-
#sew(shreds = @shreds, sewn = (@sewn or $stdout), readers: shreds, writer: sewn, limit: 0, xor: 0) ⇒ Object
note that these are streams.
-
#shred(sewn = (@sewn or $stdin), shreds = @shreds, writers: shreds, reader: sewn, limit: 0, xor: 0) ⇒ Object
note that these are streams.
- #shred_files(b = nil, m = 2, basename: b, n: m) ⇒ Object
Instance Attribute Details
#sewn ⇒ Object
Returns the value of attribute sewn.
2 3 4 |
# File 'lib/shredder/shredder.rb', line 2 def sewn @sewn end |
#shreds ⇒ Object
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 |