An implementation of named callback hooks for Ruby objects