class My::ReadLine

Public Class Methods

new(input = nil, &block) click to toggle source
# File lib/my/read_line.rb, line 6
def initialize input = nil, &block
  @input = input || Enumerator.new(&block)
end

Public Instance Methods

each() { |line| ... } click to toggle source
# File lib/my/read_line.rb, line 10
def each
  last_line = ''
  @input.each do |chunk|
    chunk.each_line do |line|
      if line[-1] == "\n"
        unless last_line.empty?
          last_line << line
          line, last_line = last_line, ''
        end
        yield line
      else
        last_line << line
      end
    end
  end
  yield last_line unless last_line.empty?
end