vvm-rb 0.2.2 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,68 +0,0 @@
1
- require 'fileutils'
2
-
3
- class Installer
4
- def initialize(version, conf, silent = false)
5
- vvmopt = ENV['VVMOPT']
6
- @silent = silent ? '> /dev/null 2>&1' : ''
7
- @version = version
8
- @conf = conf.flatten.empty? && vvmopt ? vvmopt.split(' ') : conf
9
- end
10
-
11
- def self.fetch
12
- FileUtils.mkdir_p(get_repos_dir)
13
- repos_dir = get_vimorg_dir
14
- system("hg -q clone #{VIM_URI} #{repos_dir}") unless File.exist?(repos_dir)
15
- end
16
-
17
- def self.pull
18
- Dir.chdir(get_vimorg_dir) { system('hg -q pull') }
19
- end
20
-
21
- def checkout
22
- src_dir = get_src_dir
23
- FileUtils.mkdir_p(src_dir)
24
- unless File.exist?(get_src_dir(@version))
25
- archive = "hg archive -t tar -r #{@version} -p #{@version} -"
26
- expand = "(cd #{src_dir} && tar xf -)"
27
- Dir.chdir get_vimorg_dir do
28
- system("#{archive} | #{expand} #{@silent}")
29
- end
30
- end
31
- end
32
-
33
- def configure
34
- vims_dir = get_vims_dir(@version)
35
- src_dir = get_src_dir(@version)
36
- default = "--prefix=#{vims_dir}"
37
- Dir.chdir src_dir do
38
- system("./configure #{default} #{@conf.join(' ')} #{@silent}")
39
- end
40
- end
41
-
42
- def make_clean
43
- src_dir = get_src_dir(@version)
44
- Dir.chdir src_dir do
45
- system("make clean #{@silent}")
46
- end
47
- end
48
-
49
- def make_install
50
- src_dir = get_src_dir(@version)
51
- Dir.chdir src_dir do
52
- system("make all install #{@silent}")
53
- end
54
- end
55
-
56
- def self.cp_etc
57
- current_login = get_login_file
58
- path = File.join(File.dirname(__FILE__), '..', '..', 'etc', 'login')
59
- login = File.expand_path(path)
60
- if !File.exist?(current_login)
61
- etc_dir = get_etc_dir
62
- FileUtils.mkdir_p(etc_dir)
63
- FileUtils.cp(login, etc_dir)
64
- elsif !FileUtils.compare_file(login, current_login)
65
- FileUtils.cp(login, get_etc_dir)
66
- end
67
- end
68
- end
@@ -1,17 +0,0 @@
1
- require 'fileutils'
2
-
3
- class Switcher
4
- def initialize(version)
5
- @version = version
6
- end
7
-
8
- def use
9
- current = get_current_dir
10
- FileUtils.rm(current) if File.exist?(current)
11
- unless @version == 'system'
12
- vims_dir = get_vims_dir(@version)
13
- abort "#{@version} is not installed." unless File.exist?(vims_dir)
14
- FileUtils.ln_s(vims_dir, current)
15
- end
16
- end
17
- end
@@ -1,21 +0,0 @@
1
- require 'fileutils'
2
-
3
- class Uninstaller
4
- def initialize(version)
5
- @version = version
6
- end
7
-
8
- def uninstall
9
- current = get_current_dir
10
- vims_dir = get_vims_dir(@version)
11
- src_dir = get_src_dir(@version)
12
- if File.exist?(current)
13
- target = File.readlink(current)
14
- if target == vims_dir
15
- abort "#{@version} can not be uninstalled; it is currently used."
16
- end
17
- end
18
- FileUtils.rm_rf(src_dir) if File.exist?(src_dir)
19
- FileUtils.rm_rf(vims_dir) if File.exist?(vims_dir)
20
- end
21
- end
@@ -1,44 +0,0 @@
1
- module Validator
2
- module_function
3
-
4
- def has_hg?
5
- unless Kernel.system('which hg > /dev/null')
6
- abort 'mercurial is required to install.'
7
- end
8
- return true
9
- end
10
-
11
- def version?
12
- if get_version.nil?
13
- abort 'undefined vim version. please run [ vvm-rb list ].'
14
- end
15
- return true
16
- end
17
-
18
- def new_version?(version = get_version)
19
- abort "#{version} is already installed." if version_include?(version)
20
- return true
21
- end
22
-
23
- def has_version?(version = get_version)
24
- abort "#{version} is not installed." unless version_include?(version)
25
- return true
26
- end
27
-
28
- private
29
-
30
- def get_version
31
- version_regex = /\Av7-.+\z|\A(\d\.\d(a|b){0,1}(\.\d+){0,1})\z/
32
- regex = /(\Astart\z|\Atip\z|\Asystem\z|\Alatest\z|#{version_regex})/
33
- version = $*.find { |v| v =~ regex }
34
- return Version.format(version)
35
- end
36
-
37
- def version_include?(version)
38
- return Version.versions.include?(version) || use_system?(version)
39
- end
40
-
41
- def use_system?(version)
42
- return version == 'system' && $*.include?('use')
43
- end
44
- end
@@ -1,41 +0,0 @@
1
- class Version
2
- def self.list
3
- Dir.chdir(get_vimorg_dir) do
4
- list = `hg tags`.split.reverse
5
- return list.values_at(* list.each_index.select { |i| i.odd? })
6
- end
7
- end
8
-
9
- def self.versions
10
- output = []
11
- vims_dir = get_vims_dir
12
- return output unless File.exist?(vims_dir)
13
- Dir.glob(File.join(vims_dir, 'v*')).sort.each do |d|
14
- output << File.basename(d)
15
- end
16
- return output
17
- end
18
-
19
- def self.latest
20
- return list.select { |v| v =~ /\Av7-.+\z/ }.last
21
- end
22
-
23
- def self.current
24
- c = get_current_dir
25
- return File.exist?(c) ? File.basename(File.readlink(c)) : 'system'
26
- end
27
-
28
- def self.convert(version)
29
- return "v#{version.gsub(/\./, '-')}"
30
- end
31
-
32
- def self.format(version)
33
- case version
34
- when /\Alatest\z/
35
- version = latest
36
- when /\A(\d\.\d(a|b){0,1}(\.\d+){0,1})\z/
37
- version = convert(version)
38
- end
39
- return version
40
- end
41
- end
data/lib/vvm-rb.rb DELETED
@@ -1,13 +0,0 @@
1
- require 'vvm-rb/base'
2
- require 'vvm-rb/constants'
3
- require 'vvm-rb/installer'
4
- require 'vvm-rb/uninstaller'
5
- require 'vvm-rb/switcher'
6
- require 'vvm-rb/validator'
7
- require 'vvm-rb/accesser'
8
- require 'vvm-rb/version'
9
-
10
- module VvmRb
11
- include Accesser
12
- include Validator
13
- end
@@ -1,40 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe 'Accesser' do
4
- it 'can access vvm-rb home directory' do
5
- expect(File.exist?(get_dot_dir)).to be_true
6
- end
7
-
8
- it 'can access etc directory' do
9
- expect(File.exist?(get_etc_dir)).to be_true
10
- end
11
-
12
- it 'can access repos directory' do
13
- expect(File.exist?(get_repos_dir)).to be_true
14
- end
15
-
16
- it 'can access src directory' do
17
- expect(File.exist?(get_src_dir)).to be_true
18
- end
19
-
20
- it 'can access vims directory' do
21
- expect(File.exist?(get_vims_dir)).to be_true
22
- end
23
-
24
- it 'can access vimorg directory' do
25
- expect(File.exist?(get_vimorg_dir)).to be_true
26
- end
27
-
28
- it 'can access login file' do
29
- expect(File.exist?(get_login_file)).to be_true
30
- end
31
-
32
- context 'of current directory' do
33
- before { Switcher.new(VERSION1).use }
34
- after { Switcher.new('system').use }
35
-
36
- it 'can access current directory' do
37
- expect(File.exist?(get_current_dir)).to be_true
38
- end
39
- end
40
- end