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

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


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

    Move install logic to the addon itself

diff --git a/bin/vim-addons b/bin/vim-addons
index d0d0d4f..6b2ec79 100755
--- a/bin/vim-addons
+++ b/bin/vim-addons
@@ -270,7 +270,7 @@ when 'status'
 when 'files'
   selected_addons.each {|a| puts a.files.to_a}
 else
-  mgr = Vim::AddonManager.new options[:source_dir], options[:target_dir]
+  mgr = Vim::AddonManager.new options[:target_dir]
   mgr.send cmd, selected_addons
 end
 
diff --git a/lib/vim/addon_manager.rb b/lib/vim/addon_manager.rb
index 8320b0e..718c593 100644
--- a/lib/vim/addon_manager.rb
+++ b/lib/vim/addon_manager.rb
@@ -19,12 +19,10 @@ module Vim
 
   class AddonManager
 
-    def initialize(source_dir, target_dir)
-      @source_dir = source_dir
+    def initialize(target_dir)
       @target_dir = target_dir
     end
 
-    attr_accessor :source_dir
     attr_accessor :target_dir
 
     def self.override_file(dir)
@@ -47,30 +45,7 @@ module Vim
     def install(addons)
       installed_files = []
       addons.each do |addon|
-        base_dir = (addon.basedir or @source_dir)
-        symlink = lambda do |file|
-          dest = File.join(@target_dir, file)
-          dest_dir = File.dirname dest
-          FileUtils.mkdir_p dest_dir
-          FileUtils.ln_sf(File.join(base_dir, file), dest)
-        end
-        status = addon.status(@target_dir)
-        case status.status
-        when :broken
-          logger.info "installing broken addon '#{addon}' to #{@target_dir}"
-          status.missing_files.each(&symlink)
-          installed_files.concat(status.missing_files.to_a)
-        when :not_installed
-          logger.info "installing removed addon '#{addon}' to #{@target_dir}"
-          addon.files.each(&symlink)
-          installed_files.concat(addon.files.to_a)
-        when :unavailable
-          s = "ignoring '#{addon}' which is missing source files"
-          s << "\n- #{status.missing_files.join "\n- "}" if logger.verbose?
-          logger.warn s
-        else
-          logger.info "ignoring '#{addon}' which is neither removed nor broken"
-        end
+        installed_files.concat(addon.install(@target_dir))
       end
       rebuild_tags(installed_files)
     end
diff --git a/lib/vim/addon_manager/addon.rb b/lib/vim/addon_manager/addon.rb
index 8859048..07207bc 100644
--- a/lib/vim/addon_manager/addon.rb
+++ b/lib/vim/addon_manager/addon.rb
@@ -76,6 +76,36 @@ module Vim
         line =~ @disabled_by_RE ? true : false
       end
 
+      # Installs addon files into +target_dir+ and returns a list of installed
+      # files.
+      def install(target_dir)
+        installed_files = []
+        symlink = lambda do |file|
+          dest = File.join(target_dir, file)
+          dest_dir = File.dirname dest
+          FileUtils.mkdir_p dest_dir
+          FileUtils.ln_sf(File.join(basedir, file), dest)
+        end
+        status = self.status(target_dir)
+        case status.status
+        when :broken
+          logger.info "installing broken addon '#{self}' to #{target_dir}"
+          status.missing_files.each(&symlink)
+          installed_files.concat(status.missing_files.to_a)
+        when :not_installed
+          logger.info "installing removed addon '#{self}' to #{target_dir}"
+          self.files.each(&symlink)
+          installed_files.concat(self.files.to_a)
+        when :unavailable
+          s = "ignoring '#{self}' which is missing source files"
+          s << "\n- #{status.missing_files.join "\n- "}" if logger.verbose?
+          logger.warn s
+        else
+          logger.info "ignoring '#{self}' which is neither removed nor broken"
+        end
+        installed_files
+      end
+
       attr_reader :basedir
       attr_reader :description
       attr_reader :files
diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb
index 3d50836..358ce19 100644
--- a/spec/spec_helper.rb
+++ b/spec/spec_helper.rb
@@ -46,7 +46,7 @@ module VimAddonManagerSpecHelper
   end
 
   def addon_manager
-    @addon_manager ||= Vim::AddonManager.new(FAKE_ADDONS, target_dir.path)
+    @addon_manager ||= Vim::AddonManager.new(target_dir.path)
   end
 
 end

-- 
vim-addon-manager packaging



More information about the pkg-vim-maintainers mailing list