fluentd-ui/app/workers/gem_installer.rb

18 lines
559 B
Ruby

class GemInstaller
include SuckerPunch::Job
workers 16
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
end