Class: GemInstaller

Inherits:
Object
  • Object
show all
Includes:
SuckerPunch::Job
Defined in:
app/workers/gem_installer.rb

Instance Method Summary collapse

Instance Method Details

#perform(gem_name, version = nil) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
# File 'app/workers/gem_installer.rb', line 5

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!
    SuckerPunch.logger.info "installed #{gem_name} #{version}"
  rescue Plugin::GemError
    SuckerPunch.logger.warn "installing #{gem_name} #{version} is failed"
  end
end