Class: Rhebok::Buffered

Inherits:
Object
  • Object
show all
Defined in:
lib/rhebok/buffered.rb

Instance Method Summary collapse

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

#closeObject



40
41
42
43
44
# File 'lib/rhebok/buffered.rb', line 40

def close
  if @buffer.instance_of?(Tempfile)
    @buffer.close!
  end
end


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

#rewindObject



35
36
37
38
# File 'lib/rhebok/buffered.rb', line 35

def rewind
  @buffer.rewind
  @buffer
end

#sizeObject



31
32
33
# File 'lib/rhebok/buffered.rb', line 31

def size
  @size
end