def add_observer(observer_class, func = :handle_event)
      func = func.to_sym

      unless observer_class.instance_methods.include?(func)
        m = "#<#{observer_class}> does not respond to `#{func}'"
        raise NoMethodError, m
      end

      observer_peers[observer_class] = func

      self
    end
def add_observer(observer_class, func = :handle_event)
      func = func.to_sym

      unless observer_class.instance_methods.include?(func)
        m = "#<#{observer_class}> does not respond to `#{func}'"
        raise NoMethodError, m
      end

      observer_peers[observer_class] = func

      self
    end
Add observer.

 @param [Class] observer_class
 @return [self]