code: func NewHTTPInstaller(source string, home helmpath.Home) (*HTTPInstaller, error) {
  
  	key, err := cache.Key(source)
  	if err != nil {
  		return nil, err
  	}
  
  	extractor, err := NewExtractor(source)
  	if err != nil {
  		return nil, err
  	}
  
  	getConstructor, err := getter.ByScheme("http", environment.EnvSettings{})
  	if err != nil {
  		return nil, err
  	}
  
  	get, err := getConstructor.New(source, "", "", "")
  	if err != nil {
  		return nil, err
  	}
  
  	i := &HTTPInstaller{
  		CacheDir:   home.Path("cache", "plugins", key),
  		PluginName: stripPluginName(filepath.Base(source)),
  		base:       newBase(source, home),
  		extractor:  extractor,
  		getter:     get,
  	}
  	return i, nil
  }
docs: // NewHTTPInstaller creates a new HttpInstaller.