class Async::IO::Protocol::Line

Attributes

eol[R]

Public Class Methods

new(stream, eol = $/) click to toggle source
Calls superclass method Async::IO::Protocol::Generic::new
# File lib/async/io/protocol/line.rb, line 29
def initialize(stream, eol = $/)
        super(stream)
        
        @eol = eol
end

Public Instance Methods

each_line() { |line| ... } click to toggle source
# File lib/async/io/protocol/line.rb, line 64
def each_line
        return to_enum(:each_line) unless block_given?
        
        while line = @stream.read_until(@eol)
                yield line
        end
end
peek_line() click to toggle source
# File lib/async/io/protocol/line.rb, line 54
def peek_line
        @stream.peek do |read_buffer|
                if index = read_buffer.index(@eol)
                        return read_buffer.slice(0, index)
                end
        end
        
        raise EOFError
end
read_line() click to toggle source
# File lib/async/io/protocol/line.rb, line 50
def read_line
        @stream.read_until(@eol) or @stream.eof!
end
read_lines() click to toggle source
# File lib/async/io/protocol/line.rb, line 72
def read_lines
        @stream.read.split(@eol)
end
write_lines(*args) click to toggle source
# File lib/async/io/protocol/line.rb, line 37
def write_lines(*args)
        if args.empty?
                @stream.write(@eol)
        else
                args.each do |arg|
                        @stream.write(arg)
                        @stream.write(@eol)
                end
        end
        
        @stream.flush
end