# File lib/ole/ranges_io.rb, line 56
  def initialize io, mode='r', params={}
    mode, params = 'r', mode if Hash === mode
    ranges = params[:ranges]
    @params = {:close_parent => false}.merge params
    @mode = IO::Mode.new mode
    @io = io
    # initial position in the file
    @pos = 0
    self.ranges = ranges || [[0, io.size]]
    # handle some mode flags
    truncate 0 if @mode.truncate?
    seek size if @mode.append?
  end