Topic: observer pattern

Task is:

send events from different places
events may be the same and not only active_record callbacks
I'd like to disable events for test purposes
Events should be cached in scope of one request.
Possible that several classes should handle one event

I wrote gem:

Is it a good strategy for this?

I saw that some people use resque for this purposes. But resque is too heavy for this and it's impossible to disable them.

sorry my english