class VundleMigrator::Migrator

Constants

PLUGINS_END
PLUGINS_START
VIMRC_SOURCE

Attributes

plugins[R]

Public Class Methods

new(vimrc, source, destination) click to toggle source
# File lib/vundle_migrator.rb, line 24
def initialize(vimrc, source, destination)
  @vimrc = vimrc
  @source = source || "#{Dir.home}/.vim/bundle"
  @destination = destination || "#{Dir.home}/.vim/vundle/plugins.vim"
  @entries = Dir.entries(@source) - %w(. ..)
  @plugins = []
end

Public Instance Methods

create_plugins_file() click to toggle source
# File lib/vundle_migrator.rb, line 62
def create_plugins_file
  puts "creating #{@destination}"
  File.open(@destination, "w") do |f|
    f.write(PLUGINS_START)

    @plugins.each do |plugin|
      f.write("#{plugin}\n")
    end

    f.write(PLUGINS_END)
  end
end
create_plugins_list() click to toggle source
# File lib/vundle_migrator.rb, line 47
def create_plugins_list
  puts "creating list of plugins"
  @plugins = @entries.map do |plugin_directory|
    Dir.chdir("#{@source}/#{plugin_directory}") do
      package = `git remote -v`.match(/com[\/|:](.+)\.git/)[1]
      "Plugin '#{package}'"
    end
  end
end
create_vundle_folder() click to toggle source
# File lib/vundle_migrator.rb, line 57
def create_vundle_folder
  puts "creating folder at #{File.dirname(@destination)}"
  FileUtils.mkdir_p(File.dirname(@destination))
end
dry_run() click to toggle source
# File lib/vundle_migrator.rb, line 42
def dry_run
  create_plugins_list
  print_file_contents
end
prepend_vimrc() click to toggle source
# File lib/vundle_migrator.rb, line 75
def prepend_vimrc
  puts "adding 'source vundle' to #{@vimrc}"
  File.rename("#{@vimrc}", "#{@vimrc}.old")

  File.open("#{@vimrc}", 'w') do |f|
    f.puts VIMRC_SOURCE
    File.foreach("#{@vimrc}.old") do |l|
      f.puts l
    end
  end

  FileUtils.remove("#{@vimrc}.old")
end
print_file_contents() click to toggle source
run() click to toggle source
# File lib/vundle_migrator.rb, line 32
def run
  puts "starting the migration"
  create_plugins_list
  create_vundle_folder
  create_plugins_file
  prepend_vimrc
  puts "migration finished"
  puts "don't forget to run ':PluginInstall' after loading vim"
end