# File lib/mega/preinitialize.rb, line 67 def new(*args,&blk) o = allocate if respond_to?(:default_instance_variables) default_instance_variables.each{|k,v| o.instance_variable_set( "@#{k.to_s.gsub(/\W$/,'')}",v )} end a = ancestors until a.empty? m = a.pop if m.private_instance_methods.include?('preinitialize') or m.public_instance_methods.include?('preinitialize') im = instance_method('preinitialize') im.arity == 0 ? im.bind(o).call : im.bind(o).call(*args, &blk) end end o.send(:initialize, *args, &blk) return o end