def use(plugin, options = {})
      if plugin.is_a?(Array)
        plugin.each { |p| use(p) }
      elsif plugin.is_a?(Hash)
        plugin.to_a.each { |p| use(*p) }
      else
        ROM.plugin_registry.configuration.fetch(plugin).apply_to(self, options)
      end

      self
    end
def use(plugin, options = {})
      if plugin.is_a?(Array)
        plugin.each { |p| use(p) }
      elsif plugin.is_a?(Hash)
        plugin.to_a.each { |p| use(*p) }
      else
        ROM.plugin_registry.configuration.fetch(plugin).apply_to(self, options)
      end

      self
    end
Initialize a new configuration

 @see Environment#initialize

 @return [Configuration]

 @api private
 Apply a plugin to the configuration

 @param [Mixed] plugin The plugin identifier, usually a Symbol
 @param [Hash] options Plugin options

 @return [Configuration]

 @api public