On 9/30/07, Rassat Nicolas <nicolas.rassat / free.fr> wrote: > I have a class which inherit from Array. I want to perform some task > each time something is append to an instance of this class. The problem > is: there are so many way to append something to an array. For example: > class Narray def initialize(a) @array = a.dup.freeze end def method_missing(name, *args, &block) @array.send(name, *args, &block) rescue NoMethodError super rescue TypeError => e if e.message =~ /can't modify frozen array/ a = @array.dup p "#{name}ing" r = a.send(name, *args, &block) @array = a.freeze r else raise e end end def inspect @array.inspect end def to_s @array.to_s end end narray = Narray.new [1,2,3] narray.append 4 p narray narray << 3 p narray narray.fill(2) p narray Totally didn't test this