Class: Rhebok::Buffered
- Inherits:
-
Object
- Object
- Rhebok::Buffered
- Defined in:
- lib/rhebok/buffered.rb
Instance Method Summary collapse
- #close ⇒ Object
-
#initialize(length = 0, memory_max = 1048576) ⇒ Buffered
constructor
A new instance of Buffered.
- #print(buf) ⇒ Object
- #rewind ⇒ Object
- #size ⇒ Object
Constructor Details
#initialize(length = 0, memory_max = 1048576) ⇒ Buffered
Returns a new instance of Buffered.
6 7 8 9 10 11 12 13 14 15 16 17 |
# File 'lib/rhebok/buffered.rb', line 6 def initialize(length=0,memory_max=1048576) @length = length @memory_max = memory_max @size = 0 if length > memory_max @buffer = Tempfile.open('r') @buffer.binmode @buffer.set_encoding('BINARY') else @buffer = StringIO.new("").set_encoding('BINARY') end end |
Instance Method Details
#close ⇒ Object
40 41 42 43 44 |
# File 'lib/rhebok/buffered.rb', line 40 def close if @buffer.instance_of?(Tempfile) @buffer.close! end end |
#print(buf) ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/rhebok/buffered.rb', line 19 def print(buf) if @size + buf.bytesize > @memory_max && @buffer.instance_of?(StringIO) new_buffer = Tempfile.open('r') new_buffer.binmode new_buffer.set_encoding('BINARY') new_buffer << @buffer.string @buffer = new_buffer end @buffer << buf @size += buf.bytesize end |
#rewind ⇒ Object
35 36 37 38 |
# File 'lib/rhebok/buffered.rb', line 35 def rewind @buffer.rewind @buffer end |
#size ⇒ Object
31 32 33 |
# File 'lib/rhebok/buffered.rb', line 31 def size @size end |