class PluginRegistry

def initialize

def initialize
  @registry = {}
end

def modules

Returns:
  • (Array[Plugin]) - sorted list of plugins
def modules
  @registry.values
           .sort_by { |x| x.respond_to?(:priority) ? x.priority : 0 }
           .reverse
end

def resolve(target)

Returns:
  • (Plugin) - plugin instance if it can be resolved, nil otherwise

Parameters:
  • target (String) -- to resolve
def resolve(target)
  modules.each do |m|
    res = m.resolve(target)
    return res unless res.nil?
  end
  nil
end