Sha256: 9efaa938f83dd48aeaf417ecc54438ef3cacdecbd803de3309dcb6da45e56793

Contents?: true

Size: 580 Bytes

Versions: 21

Compression:

Stored size: 580 Bytes

Contents

require 'epitools/minimal'

class IO

  unless IO.respond_to? :copy_stream
    #
    # IO.copy_stream backport
    #
    def self.copy_stream(input, output)
      while chunk = input.read(8192)
        output.write(chunk)
      end
    end
  end

  #
  # Iterate over each line of the stream, yielding the line and the byte offset of the start of the line in the file
  #
  def each_line_with_offset
    return to_enum(:each_line_with_offset) unless block_given?

    offset = 0

    each_line do |line|
      yield line, offset
      offset += line.bytesize
    end
  end

end


Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
epitools-0.5.136 lib/epitools/core_ext/io.rb
epitools-0.5.134 lib/epitools/core_ext/io.rb
epitools-0.5.133 lib/epitools/core_ext/io.rb
epitools-0.5.131 lib/epitools/core_ext/io.rb
epitools-0.5.130 lib/epitools/core_ext/io.rb
epitools-0.5.129 lib/epitools/core_ext/io.rb
epitools-0.5.128 lib/epitools/core_ext/io.rb
epitools-0.5.126 lib/epitools/core_ext/io.rb
epitools-0.5.125 lib/epitools/core_ext/io.rb
epitools-0.5.124 lib/epitools/core_ext/io.rb
epitools-0.5.123 lib/epitools/core_ext/io.rb
epitools-0.5.122 lib/epitools/core_ext/io.rb
epitools-0.5.121 lib/epitools/core_ext/io.rb
epitools-0.5.119 lib/epitools/core_ext/io.rb
epitools-0.5.118 lib/epitools/core_ext/io.rb
epitools-0.5.116 lib/epitools/core_ext/io.rb
epitools-0.5.115 lib/epitools/core_ext/io.rb
epitools-0.5.114 lib/epitools/core_ext/io.rb
epitools-0.5.113 lib/epitools/core_ext/io.rb
epitools-0.5.112 lib/epitools/core_ext/io.rb