def first_ask!(type, method_name, *params)
      @plugins[type] or raise Pluginator::MissingType.new(type, @plugins.keys)
      try_to_find(type, method_name, params) or
      raise Pluginator::MissingPlugin.new(type, "first_ask: #{method_name}", plugins_map(type).keys)
    end
def first_ask!(type, method_name, *params)
      @plugins[type] or raise Pluginator::MissingType.new(type, @plugins.keys)
      try_to_find(type, method_name, params) or
      raise Pluginator::MissingPlugin.new(type, "first_ask: #{method_name}", plugins_map(type).keys)
    end
Call a method on plugin and return first one that returns `true`.
 Behaves like `first_ask` but throws exceptions if can not find anything.
 @param type [String] name of type to search for plugins
 @param method_name [Symbol] name of the method to execute
 @param params [Array] params to pass to the called method
 @return [Class] The first plugin that method call returns true
 @raise [Pluginator::MissingPlugin] when can not find plugin