Class: Rubylet::TeeIO

Inherits:
Object
  • Object
show all
Defined in:
lib/rubylet/tee_io.rb

Instance Method Summary collapse

Constructor Details

#initialize(io, out) ⇒ TeeIO

Returns a new instance of TeeIO.



5
6
7
8
# File 'lib/rubylet/tee_io.rb', line 5

def initialize(io, out)
  @io = io
  @out = out
end

Instance Method Details

#closeObject



39
40
41
# File 'lib/rubylet/tee_io.rb', line 39

def close
  @io.close
end

#eachObject



33
34
35
36
37
# File 'lib/rubylet/tee_io.rb', line 33

def each
  while s = gets
    yield s
  end
end

#getsObject

Does not support custom separator per Rack spec



11
12
13
14
15
# File 'lib/rubylet/tee_io.rb', line 11

def gets
  str = @io.gets
  @out.write(str) if str
  str
end

#read(length = nil, buffer = nil) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/rubylet/tee_io.rb', line 17

def read(length = nil, buffer = nil)
  str = ''
  ret = @io.read(length, str)
  @out.write(str)
  if buffer
    buffer << str
    if ret.object_id == str.object_id
      buffer
    else
      ret
    end
  else
    ret
  end
end