class PluginRegistry::Plugin
def self.name(name)
-
(nil)- disregard
Parameters:
-
the(String) -- unique name of this plugin
def self.name(name) fail "Trying to register #{self} with name == nil" if name.nil? @name = name plugin_registry.registry[name] = self end
def self.plugin_registry
-
(PluginRegistry)- plugin registry for this plugin
def self.plugin_registry fail "Plugin #{self} does not implement `self.plugin_registry()`. This method is required" end
def self.priority(x = nil)
-
(Numeric)- This plugin's priority
Parameters:
-
Priority(Numeric) -- as a number. Will only be set if != nil
def self.priority(x = nil) @priority = x unless x.nil? @priority || 0 end
def self.resolve(_target)
-
(Plugin)- instance if it can be resolved, nil otherwise
Parameters:
-
target(String) -- to try to resolve
def self.resolve(_target) fail "Plugin #{self} does not implement `self.resolve(target)`. This method is required" end
def self.resolve_next(target, parent)
-
(Plugin)- instance if it can be resolved, nil otherwise
Parameters:
-
an(Plugin) -- instance of the calling resolver -
the(Any) -- current target that needs resolving
def self.resolve_next(target, parent) res = plugin_registry.resolve(target) res.parent = parent res end