# 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