From 3b3a9d096d7c1b99a53b4f4917eaeaaff765fc25 Mon Sep 17 00:00:00 2001 From: uu59 Date: Tue, 10 Jun 2014 12:50:27 +0900 Subject: [PATCH] Don't install/uninstall when same gem_name is processing --- app/models/plugin.rb | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/app/models/plugin.rb b/app/models/plugin.rb index 91cf384..d226fd2 100644 --- a/app/models/plugin.rb +++ b/app/models/plugin.rb @@ -60,6 +60,10 @@ class Plugin end end + def processing? + !!WORKING.find{|data| data[:plugin].gem_name == gem_name} + end + def format_gemfile self.version ||= latest_version %Q|gem "#{gem_name}", "#{version}"| @@ -154,7 +158,7 @@ class Plugin def gem_install data = { plugin: self, state: :running, type: :install } - return if WORKING.grep(data).present? + return if processing? return if installed? WORKING.push(data) fluent_gem("install", gem_name, "-v", version) @@ -164,7 +168,7 @@ class Plugin def gem_uninstall data = { plugin: self, state: :running, type: :uninstall } - return if WORKING.grep(data).present? + return if processing? return unless installed? WORKING.push(data) fluent_gem("uninstall", gem_name, "-x", "-a")