Google

def has_next? @source.read if @source.buffer.size==0 and !@source.empty? (!@source.empty? and @source.buffer.strip.size>0 and @stack.size==0) or @closed end