#!/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]