[SCM] vim-addon-manager packaging branch, master, updated. v0.4.4-52-geef7258

Antonio Terceiro terceiro at debian.org
Tue Jan 31 23:33:21 UTC 2012


The following commit has been merged in the master branch:
commit 6fc6c360796784d6dff6f82e4951949bf6da1301
Author: Antonio Terceiro <terceiro at debian.org>
Date:   Sun Jan 22 11:30:51 2012 -0200

    Move remove logic to the addon itself

diff --git a/lib/vim/addon_manager.rb b/lib/vim/addon_manager.rb
index 718c593..dff12fe 100644
--- a/lib/vim/addon_manager.rb
+++ b/lib/vim/addon_manager.rb
@@ -52,34 +52,8 @@ module Vim
 
     def remove(addons)
       removed_files = []
-      rmdirs = lambda do |file|
-        File.delete(File.join(@target_dir, file))
-        dir = File.dirname(file)
-        paths = (dir.include? File::Separator) ? File.split(dir) : [dir]
-        while paths.size > 0
-          begin
-            FileUtils.rmdir(File.join(@target_dir, paths))
-          rescue Errno::ENOTEMPTY
-            break
-          end
-          paths.pop
-        end
-      end
       addons.each do |addon|
-        status = addon.status(@target_dir)
-        case status.status
-        when :installed
-          logger.info "removing installed addon '#{addon}' from #{@target_dir}"
-          addon.files.each(&rmdirs)
-          removed_files.concat(addon.files.to_a)
-        when :broken
-          logger.info "removing broken addon '#{addon}' from #{@target_dir}"
-          files = (addon.files - status.missing_files)
-          files.each(&rmdirs)
-          removed_files.concat(files.to_a)
-        else
-          logger.info "ignoring '#{addon}' which is neither installed nor broken"
-        end
+        removed_files.concat(addon.remove(@target_dir))
       end
       # Try to clean up the tags file and doc dir if it's empty
       tagfile = File.join(@target_dir, 'doc', 'tags')
diff --git a/lib/vim/addon_manager/addon.rb b/lib/vim/addon_manager/addon.rb
index 07207bc..294b4df 100644
--- a/lib/vim/addon_manager/addon.rb
+++ b/lib/vim/addon_manager/addon.rb
@@ -106,6 +106,39 @@ module Vim
         installed_files
       end
 
+      def rmdirs(target_dir, file)
+        File.delete(File.join(target_dir, file))
+        dir = File.dirname(file)
+        paths = (dir.include? File::Separator) ? File.split(dir) : [dir]
+        while paths.size > 0
+          begin
+            FileUtils.rmdir(File.join(target_dir, paths))
+          rescue Errno::ENOTEMPTY
+            break
+          end
+          paths.pop
+        end
+      end
+
+      def remove(target_dir)
+        removed_files = []
+        status = self.status(target_dir)
+        case status.status
+        when :installed
+          logger.info "removing installed addon '#{self}' from #{target_dir}"
+          self.files.each { |f| rmdirs(target_dir, f) }
+          removed_files.concat(self.files.to_a)
+        when :broken
+          logger.info "removing broken addon '#{self}' from #{target_dir}"
+          files = (self.files - status.missing_files)
+          files.each { |f| rmdirs(target_dir, f) }
+          removed_files.concat(files.to_a)
+        else
+          logger.info "ignoring '#{self}' which is neither installed nor broken"
+        end
+        removed_files
+      end
+
       attr_reader :basedir
       attr_reader :description
       attr_reader :files

-- 
vim-addon-manager packaging



More information about the pkg-vim-maintainers mailing list