def initialize_plugin(options)
      klass = plugin_class
      fail "Could not load class: #{_constant_name.inspect}" unless klass
      if klass.ancestors.include?(Guard)
        klass.new(options.delete(:watchers), options)
      else
        begin
          klass.new(options)
        rescue ArgumentError => e
          fail "Failed to call #{klass}.new(options): #{e}"
        end
      end
    end
def initialize_plugin(options)
      klass = plugin_class
      fail "Could not load class: #{_constant_name.inspect}" unless klass
      if klass.ancestors.include?(Guard)
        klass.new(options.delete(:watchers), options)
      else
        begin
          klass.new(options)
        rescue ArgumentError => e
          fail "Failed to call #{klass}.new(options): #{e}"
        end
      end
    end
Initializes a new `Guard::PluginUtil` object.

 @param [String] name the name of the Guard plugin

 Initializes a new `Guard::Plugin` with the given `options` hash. This
 methods handles plugins that inherit from the deprecated `Guard::Guard`
 class as well as plugins that inherit from `Guard::Plugin`.

 @see Guard::Plugin
 @see https://github.com/guard/guard/wiki/Upgrading-to-Guard-2.0 How to
 upgrade for Guard 2.0

 @return [Guard::Plugin] the initialized plugin
 @return [Guard::Guard] the initialized plugin. This return type is
   deprecated and the plugin's maintainer should update it to be
   compatible with Guard 2.0. For more information on how to upgrade for
   Guard 2.0, please head over to:
   https://github.com/guard/guard/wiki/Upgrading-to-Guard-2.0