Method: OpenC3::GemModel.destroy

Defined in:
lib/openc3/models/gem_model.rb

.destroy(name, log_and_raise_needed_errors: true) ⇒ Object



105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
# File 'lib/openc3/models/gem_model.rb', line 105

def self.destroy(name, log_and_raise_needed_errors: true)
  gem_name, version = self.extract_name_and_version(name)
  plugin_gem_names = PluginModel.gem_names
  if plugin_gem_names.include?(name)
    if log_and_raise_needed_errors
      message = "Gem file #{name} can't be uninstalled because needed by installed plugin"
      Logger.error message
      raise message
    end
  else
    begin
      Gem::Uninstaller.new(gem_name, {:version => version, :force => true}).uninstall
    rescue => e
      Logger.error "Gem file #{name} error uninstalling\n#{e.formatted}"
      raise e
    end
  end
end