Method: External::Io#insert

Defined in:
lib/external/io.rb

#insert(src, range = 0..src.length, pos = nil) ⇒ Object



66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# File 'lib/external/io.rb', line 66

def insert(src, range=0..src.length, pos=nil)
  self.pos = pos unless pos == nil
  
  start_pos = self.pos
  length_written = 0

  src.flush
  src.pos = range.begin 
  src.chunk(range) do |offset, length|
    length_written += write(src.read(length))
  end

  end_pos = start_pos + length_written
  self.length = end_pos if end_pos > self.length
  length_written
end