class Pry::PluginManager
def gem_list
def gem_list Gem.refresh Gem::Specification.respond_to?(:each) ? Gem::Specification : Gem.source_index.find_name('') end
def initialize
def initialize @plugins = [] end
def load_plugins
def load_plugins @plugins.each do |plugin| plugin.activate! if plugin.enabled? end end
def locate_plugins
def locate_plugins gem_list.each do |gem| next if gem.name !~ PRY_PLUGIN_PREFIX plugin_name = gem.name.split('-', 2).last plugin = Plugin.new(plugin_name, gem.name, gem, false) @plugins << plugin.tap(&:enable!) if plugin.supported? && !plugin_located?(plugin) end @plugins end
def plugin_located?(plugin)
def plugin_located?(plugin) @plugins.any? { |existing| existing.gem_name == plugin.gem_name } end
def plugins
-
(Hash)
- A hash with all plugin names (minus the 'pry-') as
def plugins h = Hash.new { |_, key| NoPlugin.new(key) } @plugins.each do |plugin| h[plugin.name] = plugin end h end