Thanks
You should probably consider using structs for decorators. That avoids heap allocations and should be a lot more efficient for this use case. A decorator typically doesn’t need to be mutable.
For automatic decoration there might be some issues to keep in mind, when view code expects a type but the actual value is just a wrapper. A wrapper responds to the same methods, but it can’t fool is_a?(Time)
=)