#!/usr/bin/ruby -w
# change default fill value for Array

class Array
  attr_accessor :default_value

  alias oldidx []=
  def []=(*arg)
    if arg.size == 3
      return oldidx(*arg)
    end
  
    start, elem = arg
    if start > size
      fill @default_value, size, (start - size)
    end
    oldidx start, elem
  end
end

a = [1,2,3]
a.default_value = 0
a[7] = 42
p a                 #=> [1, 2, 3, 0, 0, 0, 0, 42]
