okay, this works:

Dog = Struct.new(:bark, :bite) 

class Dog
  class << self
    alias_method :old_new, :new
    def new(*args)
      obj = old_new(*args)
      obj.bark = 'really loud'
      obj
    end
  end
end

dd = Dog.new
p dd.bark # => should be "really loud"