Ruby Observer with Event Types