def emit(event, *args, &block)
      listeners(event).delete_if do |cb|
        cb.call(*args, &block) == :delete
      end
    end
def emit(event, *args, &block)
      listeners(event).delete_if do |cb|
        cb.call(*args, &block) == :delete
      end
    end
Emit event with provided arguments.

 @param event [Symbol]
 @param args [Array] arguments to be passed to the callbacks
 @param block [Proc] callback function