vvm-rb 0.0.13 → 0.0.14
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.
- checksums.yaml +4 -4
- data/VERSION +1 -1
- data/lib/vvm-rb/cli.rb +9 -13
- data/lib/vvm-rb/installer.rb +4 -1
- data/lib/vvm-rb/validator.rb +3 -5
- data/lib/vvm-rb/version.rb +19 -3
- data/spec/installer_spec.rb +10 -0
- data/spec/validator_spec.rb +1 -1
- data/spec/version_spec.rb +45 -13
- data/vvm-rb.gemspec +3 -3
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3b0c5ce1f3171c0f708d880c112ee34c77d504a7
|
4
|
+
data.tar.gz: 4f4cd9ff34744a99727838d46682c98b7a4561ed
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: be346af4b466e0a5cd50deb9d4464a2c8bd9456c9beb63f847a19b7f4c66fcf1c589490a798602edbc53aa65d45650a5fed6f7e941e072aad06b19682498a27b
|
7
|
+
data.tar.gz: e9b8e6a2ed72f820de74d39f419231460c51c64f349b8743dce35aded380a329756e1ef3a3d878451caedf175dcca2e9a2dc919567730efd190c1c7d51893910
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.14
|
data/lib/vvm-rb/cli.rb
CHANGED
@@ -7,9 +7,10 @@ class Cli < Thor
|
|
7
7
|
desc 'install [VERSION] [CONFIGURE_OPTS]', 'Install a specific version of Vim'
|
8
8
|
method_option :use, type: :boolean, aliases: '-u', banner: 'Use installed vim'
|
9
9
|
def install(version, *conf)
|
10
|
-
version =
|
10
|
+
version = Version.format(version)
|
11
|
+
new_version?(version)
|
11
12
|
|
12
|
-
Installer.
|
13
|
+
Installer.pull
|
13
14
|
i = Installer.new(version, conf)
|
14
15
|
i.checkout
|
15
16
|
i.configure
|
@@ -42,7 +43,7 @@ class Cli < Thor
|
|
42
43
|
|
43
44
|
desc 'list', 'Look available vim versions'
|
44
45
|
def list
|
45
|
-
Installer.
|
46
|
+
Installer.pull
|
46
47
|
puts Version.list.join("\n")
|
47
48
|
end
|
48
49
|
|
@@ -56,21 +57,16 @@ class Cli < Thor
|
|
56
57
|
Uninstaller.new(version).uninstall
|
57
58
|
end
|
58
59
|
|
59
|
-
before_method(:install, :reinstall, :rebuild, :list) { check_hg }
|
60
|
-
before_method(:install, :reinstall, :rebuild, :use, :uninstall) { check_tag }
|
61
60
|
before_method(:install) { new_version? }
|
62
61
|
before_method(:reinstall, :rebuild, :use, :uninstall) { version_exist? }
|
62
|
+
before_method(:install, :reinstall, :rebuild, :use, :uninstall) { check_tag }
|
63
|
+
before_method(:install, :reinstall, :rebuild, :list) { check_hg }
|
64
|
+
before_method(*instance_methods(false)) do
|
65
|
+
Installer.fetch unless File.exists?(get_vimorg_dir)
|
66
|
+
end
|
63
67
|
|
64
68
|
private
|
65
69
|
|
66
|
-
def format_version(version)
|
67
|
-
if version == 'latest'
|
68
|
-
version = Version.list.select { |v| v =~ /^v7-.+$/ }.last
|
69
|
-
new_version?(version)
|
70
|
-
end
|
71
|
-
return version
|
72
|
-
end
|
73
|
-
|
74
70
|
def message
|
75
71
|
print "\e[32m"
|
76
72
|
puts <<-EOS
|
data/lib/vvm-rb/installer.rb
CHANGED
@@ -10,7 +10,10 @@ class Installer
|
|
10
10
|
FileUtils.mkdir_p(get_repos_dir)
|
11
11
|
repos_dir = get_vimorg_dir
|
12
12
|
system("hg clone #{VIM_URI} #{repos_dir}") unless File.exists?(repos_dir)
|
13
|
-
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.pull
|
16
|
+
Dir.chdir(get_vimorg_dir) { system('hg pull') }
|
14
17
|
end
|
15
18
|
|
16
19
|
def checkout
|
data/lib/vvm-rb/validator.rb
CHANGED
@@ -28,11 +28,9 @@ module Validator
|
|
28
28
|
private
|
29
29
|
|
30
30
|
def get_version
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
end
|
35
|
-
return version
|
31
|
+
regex = /(^start$|^tip$|^v7-.+$|^(\d\.\d\.\d+)$|^system$|^latest$)/
|
32
|
+
version = $*.find { |v| v =~ regex }
|
33
|
+
return Version.format(version)
|
36
34
|
end
|
37
35
|
|
38
36
|
def version_include?(version)
|
data/lib/vvm-rb/version.rb
CHANGED
@@ -1,8 +1,6 @@
|
|
1
1
|
class Version
|
2
2
|
def self.list
|
3
|
-
|
4
|
-
return [] unless File.exists?(vimorg_dir)
|
5
|
-
Dir.chdir(vimorg_dir) do
|
3
|
+
Dir.chdir(get_vimorg_dir) do
|
6
4
|
list = `hg tags`.split.reverse
|
7
5
|
return list.values_at(* list.each_index.select { |i| i.odd? })
|
8
6
|
end
|
@@ -17,4 +15,22 @@ class Version
|
|
17
15
|
end
|
18
16
|
return output
|
19
17
|
end
|
18
|
+
|
19
|
+
def self.latest
|
20
|
+
return list.select { |v| v =~ /^v7-.+$/ }.last
|
21
|
+
end
|
22
|
+
|
23
|
+
def self.convert(version)
|
24
|
+
return "v#{version.gsub(/\./, '-')}"
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.format(version)
|
28
|
+
case version
|
29
|
+
when /^latest$/
|
30
|
+
version = latest
|
31
|
+
when /^(\d\.\d\.\d+)$/
|
32
|
+
version = convert(version)
|
33
|
+
end
|
34
|
+
return version
|
35
|
+
end
|
20
36
|
end
|
data/spec/installer_spec.rb
CHANGED
@@ -22,6 +22,16 @@ describe 'Installer' do
|
|
22
22
|
end
|
23
23
|
end
|
24
24
|
|
25
|
+
context 'pull' do
|
26
|
+
before :all do
|
27
|
+
Installer.pull
|
28
|
+
end
|
29
|
+
|
30
|
+
it 'exists vimorg dir' do
|
31
|
+
expect($?.success?).to be_true
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
25
35
|
context 'checkout' do
|
26
36
|
before :all do
|
27
37
|
@installer.checkout
|
data/spec/validator_spec.rb
CHANGED
data/spec/version_spec.rb
CHANGED
@@ -1,20 +1,11 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
require 'fileutils'
|
3
|
+
require 'tmpdir'
|
3
4
|
|
4
5
|
describe 'Version' do
|
5
6
|
describe 'list' do
|
6
|
-
|
7
|
-
|
8
|
-
expect(Version.list.join("\n")).to match(/start\n(v7-.+\n)+tip$/)
|
9
|
-
end
|
10
|
-
end
|
11
|
-
context 'vimorg dirctory is not found' do
|
12
|
-
before do
|
13
|
-
FileUtils.rm_rf(get_vimorg_dir)
|
14
|
-
end
|
15
|
-
it 'echo nothing' do
|
16
|
-
expect(Version.list).to eq []
|
17
|
-
end
|
7
|
+
it 'echo available vim versions' do
|
8
|
+
expect(Version.list.join("\n")).to match(/start\n(v7-.+\n)+tip$/)
|
18
9
|
end
|
19
10
|
end
|
20
11
|
|
@@ -26,11 +17,52 @@ describe 'Version' do
|
|
26
17
|
end
|
27
18
|
context 'vims dirctory is not found' do
|
28
19
|
before do
|
29
|
-
|
20
|
+
@tmp_vvmroot = ENV['VVMROOT']
|
21
|
+
@tmp2 = Dir.mktmpdir
|
22
|
+
ENV['VVMROOT'] = @tmp2
|
30
23
|
end
|
24
|
+
|
25
|
+
after do
|
26
|
+
ENV['VVMROOT'] = @tmp_vvmroot
|
27
|
+
FileUtils.rm_rf(@tmp2)
|
28
|
+
end
|
29
|
+
|
31
30
|
it 'echo nothing' do
|
32
31
|
expect(Version.versions).to eq []
|
33
32
|
end
|
34
33
|
end
|
35
34
|
end
|
35
|
+
|
36
|
+
describe 'latest' do
|
37
|
+
it 'return latest vim version' do
|
38
|
+
expect(Version.latest).to match(/^v7-.+$/)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
describe 'convert' do
|
43
|
+
it 'version to tag' do
|
44
|
+
expect(Version.convert('7.4.112')).to eq 'v7-4-112'
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
describe 'format' do
|
49
|
+
|
50
|
+
context 'tag' do
|
51
|
+
it 'return formated vim version' do
|
52
|
+
expect(Version.format('v7-4-112')).to eq 'v7-4-112'
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
context 'dicimal version' do
|
57
|
+
it 'return formated vim version' do
|
58
|
+
expect(Version.format('7.4.112')).to eq 'v7-4-112'
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
context 'latest' do
|
63
|
+
it 'return latest vim version' do
|
64
|
+
expect(Version.format('latest')).to match(/^v7-.+$/)
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
36
68
|
end
|
data/vvm-rb.gemspec
CHANGED
@@ -2,15 +2,15 @@
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
3
|
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
|
-
# stub: vvm-rb 0.0.
|
5
|
+
# stub: vvm-rb 0.0.14 ruby lib
|
6
6
|
|
7
7
|
Gem::Specification.new do |s|
|
8
8
|
s.name = "vvm-rb"
|
9
|
-
s.version = "0.0.
|
9
|
+
s.version = "0.0.14"
|
10
10
|
|
11
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
12
12
|
s.authors = ["Yuu Shigetani"]
|
13
|
-
s.date = "2013-12-
|
13
|
+
s.date = "2013-12-11"
|
14
14
|
s.description = "vim version manager."
|
15
15
|
s.email = "s2g4t1n2@gmail.com"
|
16
16
|
s.executables = ["vvm-rb"]
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vvm-rb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.14
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yuu Shigetani
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-12-
|
11
|
+
date: 2013-12-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|