def notify(event)
      each(event.signal) do |observer|
        observer.call(event)
      end
      event
    end
def notify(event)
      each(event.signal) do |observer|
        observer.call(event)
      end
      event
    end
Send out a signal to all registered observers using a new {Event}
 instance. The {Event#signal} will be used to determine the stack of
 {#observers} to use.

 Using {#notify} allows observers to take action at a given time during
 program execution, such as logging important events.

 @param [Event]
 @return [Event]