class Slipstream::Stream
Attributes
buffer_size[RW]
clean[RW]
Public Class Methods
new(**options)
click to toggle source
# File lib/slipstream.rb, line 12 def initialize(**options) if options[:id].nil? @id = SecureRandom.uuid else @id = options[:id] end if options[:buffer_size].nil? @buffer_size = 1 else @buffer_size = options[:buffer_size] end @clean = true if options[:clean] @reader, @writer = IO.pipe end
Public Instance Methods
clean!()
click to toggle source
# File lib/slipstream.rb, line 52 def clean! @clean = true end
clean?()
click to toggle source
# File lib/slipstream.rb, line 56 def clean? return true if @clean false end
close!()
click to toggle source
# File lib/slipstream.rb, line 65 def close! @writer.close @reader.close return true end
id()
click to toggle source
# File lib/slipstream.rb, line 41 def id @id end
read(clean: clean?)
click to toggle source
# File lib/slipstream.rb, line 27 def read(clean: clean?) buffer = "" buffer << @reader.read_nonblock(@buffer_size) while buffer[-1] != "\n" if @clean return buffer.strip else return buffer end rescue IO::EAGAINWaitReadable return nil rescue IOError return false end
unclean!()
click to toggle source
# File lib/slipstream.rb, line 61 def unclean! @clean = false end
write(mesg)
click to toggle source
# File lib/slipstream.rb, line 45 def write(mesg) @writer.puts mesg return true rescue IOError return false end