# File lib/mcollective/pluginmanager.rb, line 30
    def self.<<(plugin)
      plugin[:single_instance] = true unless plugin.include?(:single_instance)

      type = plugin[:type]
      klass = plugin[:class]
      single = plugin[:single_instance]

      raise("Plugin #{type} already loaded") if @plugins.include?(type)


      # If we get a string then store 'nil' as the instance, signalling that we'll
      # create the class later on demand.
      if klass.is_a?(String)
        @plugins[type] = {:loadtime => Time.now, :class => klass, :instance => nil, :single => single}
        Log.debug("Registering plugin #{type} with class #{klass} single_instance: #{single}")
      else
        @plugins[type] = {:loadtime => Time.now, :class => klass.class, :instance => klass, :single => true}
        Log.debug("Registering plugin #{type} with class #{klass.class} single_instance: true")
      end
    end