How to add an after_save callback on runtime on a particular instance

class User < AR
end

user = User.new

Let's say that I have a user instance with me. After this record is
saved I want an after_save callback which would print the id of the
record.
The only catch is that I am not allowed to change the User class. How
can I accomplish my goal? Is that even possible to add an after_save
callback on a particular instance object. Any metaprogramming hack.
I'm sure ruby does provide some tool.

This would be a trivial issue if I were allowed to change the User
class but I am not.

class User < AR
end

user = User.new

Let's say that I have a user instance with me. After this record is
saved I want an after_save callback which would print the id of the
record.
The only catch is that I am not allowed to change the User class. How
can I accomplish my goal? Is that even possible to add an after_save
callback on a particular instance object. Any metaprogramming hack.
I'm sure ruby does provide some tool.

This would be a trivial issue if I were allowed to change the User
class but I am not.

What do you mean by 'not allowed to change the User class'? Do you
mean that you are not allowed to change the file user.rb? If so that
is not a problem as you can modify or extend the class in another
loaded file merely by providing class User < ... and providing new or
modified methods there.

Colin

class User < AR
end

user = User.new

Let's say that I have a user instance with me. After this record is
saved I want an after_save callback which would print the id of the
record.
The only catch is that I am not allowed to change the User class. How
can I accomplish my goal? Is that even possible to add an after_save
callback on a particular instance object. Any metaprogramming hack.
I'm sure ruby does provide some tool.

well on top of what Colin says you can do

def user.some_method

end

or user.extend SomeModule

I think both will prevent you from marshalling the object and I seem
to remember that in MRI both will cause ruby to dump it's cache of
method names to implementations

Fred