require 'inspec/errors' module Inspec module Plugin module V2 class Exception < Inspec::Error; end class ConfigError < Inspec::Plugin::V2::Exception; end class LoadError < Inspec::Plugin::V2::Exception; end class GemActionError < Inspec::Plugin::V2::Exception attr_accessor :plugin_name attr_accessor :version end class InstallError < Inspec::Plugin::V2::GemActionError; end class PluginExcludedError < Inspec::Plugin::V2::InstallError attr_accessor :details end class UpdateError < Inspec::Plugin::V2::GemActionError attr_accessor :from_version, :to_version end class UnInstallError < Inspec::Plugin::V2::GemActionError; end class SearchError < Inspec::Plugin::V2::GemActionError; end end end end require 'inspec/globals' require 'inspec/plugin/v2/config_file' require 'inspec/plugin/v2/registry' require 'inspec/plugin/v2/loader' require 'inspec/plugin/v2/plugin_base' # Load all plugin type base classes Dir.glob(File.join(__dir__, 'v2', 'plugin_types', '*.rb')).each { |file| require file } module Inspec # Provides the base class that plugin implementors should use. def self.plugin(version, plugin_type = nil) unless version == 2 raise 'Only plugins version 2 is supported!' end return Inspec::Plugin::V2::PluginBase if plugin_type.nil? Inspec::Plugin::V2::PluginBase.base_class_for_type(plugin_type) end end