Class: RemoteRuby::StreamCacher

Inherits:
Object
  • Object
show all
Defined in:
lib/remote_ruby/stream_cacher.rb

Overview

Decorates the source stream and writes to the cache stream as the source is being read

Instance Method Summary collapse

Constructor Details

#initialize(source_stream, cache_stream) ⇒ StreamCacher

Returns a new instance of StreamCacher.



7
8
9
10
# File 'lib/remote_ruby/stream_cacher.rb', line 7

def initialize(source_stream, cache_stream)
  @source_stream = source_stream
  @cache_stream = cache_stream
end

Instance Method Details

#closeObject



28
29
30
# File 'lib/remote_ruby/stream_cacher.rb', line 28

def close
  source_stream.close
end

#eof?Boolean

Returns:

  • (Boolean)


24
25
26
# File 'lib/remote_ruby/stream_cacher.rb', line 24

def eof?
  source_stream.eof?
end

#read(*args) ⇒ Object



12
13
14
15
16
# File 'lib/remote_ruby/stream_cacher.rb', line 12

def read(*args)
  res = source_stream.read(*args)
  cache_stream.write(res)
  res
end

#readlineObject



18
19
20
21
22
# File 'lib/remote_ruby/stream_cacher.rb', line 18

def readline
  res = source_stream.readline
  cache_stream.write(res)
  res
end