Sha256: c1d15ab1c51ab74c7d0e0df17b7c0927d6c55c46b04d68aba159c4341d4f37f2
Contents?: true
Size: 907 Bytes
Versions: 1
Compression:
Stored size: 907 Bytes
Contents
module DeadlySerious module Engine # Restrict IO class that opens ONLY # when trying to read something. # # Also, used to reopend lost connections. # # By "restrict", I mean it implements # just a few IO operations. class LazyIo def initialize(channel) @channel = channel end def gets open_reader @io.gets end def each(&block) open_reader @io.each &block end def <<(element) open_writer @io << element end def closed? @io.nil? || @io.closed? end def close @io.close @io = nil end private def open_reader if closed? @io = @channel.open_reader end end def open_writer if closed? @io = @channel.open_writer end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
deadly_serious-0.5.0 | lib/deadly_serious/engine/lazy_io.rb |