# File lib/ohai/dsl/plugin.rb, line 46 def self.plugin(name, &block) raise Ohai::Exceptions::InvalidPluginName, "#{name} is not a valid plugin name. A valid plugin name is a symbol which begins with a capital letter and contains no underscores" unless NamedPlugin.valid_name?(name) plugin = nil if NamedPlugin.strict_const_defined?(name) plugin = NamedPlugin.const_get(name) plugin.class_eval(&block) else klass = Class.new(DSL::Plugin::VersionVII, &block) plugin = NamedPlugin.const_set(name, klass) end plugin end