def invoke(method, *args)
      @log.debug("Invoking plugin API #{method}")
      plugins.map do |p|
        if p.respond_to? method
          @log.debug("Sending message to #{p.class.name}")
          p.public_send method, *args
        else
          nil
        end
      end.select {|i| i}
    end
def invoke(method, *args)
      @log.debug("Invoking plugin API #{method}")
      plugins.map do |p|
        if p.respond_to? method
          @log.debug("Sending message to #{p.class.name}")
          p.public_send method, *args
        else
          nil
        end
      end.select {|i| i}
    end
Call all plugins and collate any data returned.

 nil can be returned explicitly to say this plugin has nothing to return.

 @param [Symbol] method The name of the method to call. This should be namespaced somehow. For example, a plugin
                        called `usmu-s3` could use the method namespace `s3` and have a hook called `:s3_upload`
 @param [Array] args The arguments to pass through to plugins. Can be empty.
 @return [Array] An array of non-nil values returned from plugins