Class: GemInstallerJob

Inherits:
ApplicationJob show all
Defined in:
app/jobs/gem_installer_job.rb

Instance Method Summary collapse

Instance Method Details

#perform(gem_name, version = nil) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
# File 'app/jobs/gem_installer_job.rb', line 4

def perform(gem_name, version = nil)
  SuckerPunch.logger.info "install #{gem_name} #{version}"
  pl = Plugin.new(gem_name: gem_name, version: version)
  begin
    # NOTE: uninstall all versions of `gem_name` then install it for upgrade/downgrade
    pl.uninstall! if pl.installed?
    pl.install!
    logger.info "installed #{gem_name} #{version}"
  rescue Plugin::GemError
    logger.warn "installing #{gem_name} #{version} is failed"
  end
end