vim-flavor 1.0.1 → 1.0.2
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.
- data/features/.nav +3 -0
- data/features/caching.feature +16 -17
- data/features/command_line/progress_messages.feature +12 -16
- data/features/flavorfile/comments.feature +6 -7
- data/features/flavorfile/groups.feature +20 -19
- data/features/flavorfile/repository_name.feature +18 -19
- data/features/flavorfile/version_constraint.feature +16 -15
- data/features/step_definitions/bootstrap_script_steps.rb +5 -6
- data/features/step_definitions/cli_steps.rb +8 -40
- data/features/step_definitions/dependency_steps.rb +4 -2
- data/features/step_definitions/directory_steps.rb +4 -21
- data/features/step_definitions/file_steps.rb +8 -8
- data/features/step_definitions/flavor_steps.rb +22 -14
- data/features/step_definitions/flavorfile_steps.rb +12 -7
- data/features/step_definitions/lockfile_steps.rb +18 -7
- data/features/support/env.rb +19 -22
- data/features/testing_vim_plugins/dependencies.feature +12 -15
- data/features/testing_vim_plugins/failures.feature +60 -0
- data/features/testing_vim_plugins/typical_usage.feature +12 -15
- data/features/typical_usage/deploy_to_arbitrary_place.feature +8 -9
- data/features/typical_usage/install_vim_plugins.feature +7 -8
- data/features/typical_usage/uninstall_vim_plugins.feature +11 -11
- data/features/typical_usage/upgrade_vim_plugins.feature +7 -8
- data/features/version_lock.feature +7 -8
- data/lib/vim-flavor/cli.rb +3 -9
- data/lib/vim-flavor/facade.rb +8 -6
- data/lib/vim-flavor/flavor.rb +3 -4
- data/lib/vim-flavor/version.rb +1 -1
- data/vim-flavor.gemspec +1 -0
- metadata +20 -2
data/features/.nav
CHANGED
data/features/caching.feature
CHANGED
@@ -4,47 +4,46 @@ Feature: Caching
|
|
4
4
|
I want to cache repositories of plugins which are installed before.
|
5
5
|
|
6
6
|
Background:
|
7
|
-
Given a
|
8
|
-
And a
|
9
|
-
And a repository 'foo' with versions '1.0.0 1.0.1 1.0.2'
|
10
|
-
And flavorfile
|
7
|
+
Given a repository "foo" with versions "1.0.0 1.0.1 1.0.2"
|
8
|
+
And a flavorfile with:
|
11
9
|
"""ruby
|
12
10
|
flavor '$foo_uri', '~> 1.0'
|
13
11
|
"""
|
14
12
|
And I run `vim-flavor install`
|
15
|
-
And I disable network to the original repository of
|
13
|
+
And I disable network to the original repository of "foo"
|
16
14
|
|
17
15
|
Scenario: Install plugins - locked and compatible with new flavorfile
|
18
|
-
Given I
|
19
|
-
When I run `vim-flavor install`
|
20
|
-
Then
|
16
|
+
Given I remove the directory "home/.vim"
|
17
|
+
When I run `vim-flavor install`
|
18
|
+
Then it should pass
|
19
|
+
And a lockfile is created with:
|
21
20
|
"""
|
22
21
|
$foo_uri (1.0.2)
|
23
22
|
"""
|
24
|
-
And
|
23
|
+
And a flavor "$foo_uri" version "1.0.2" is deployed to "$home/.vim"
|
25
24
|
|
26
25
|
Scenario: Install plugins - locked but incompatible with new flavorfile
|
27
|
-
Given I edit flavorfile as
|
26
|
+
Given I edit the flavorfile as:
|
28
27
|
"""ruby
|
29
28
|
flavor '$foo_uri', '~> 2.0'
|
30
29
|
"""
|
31
|
-
When I run `vim-flavor install`
|
32
|
-
Then it
|
30
|
+
When I run `vim-flavor install`
|
31
|
+
Then it should fail with regexp:
|
33
32
|
"""
|
34
33
|
fatal: \S+ does not appear to be a git repository
|
35
34
|
"""
|
36
35
|
|
37
36
|
Scenario: Install plugins - not locked
|
38
|
-
Given I delete lockfile
|
39
|
-
When I run `vim-flavor install`
|
40
|
-
Then it
|
37
|
+
Given I delete the lockfile
|
38
|
+
When I run `vim-flavor install`
|
39
|
+
Then it should fail with regexp:
|
41
40
|
"""
|
42
41
|
fatal: \S+ does not appear to be a git repository
|
43
42
|
"""
|
44
43
|
|
45
44
|
Scenario: Upgrading plugins
|
46
|
-
When I run `vim-flavor upgrade`
|
47
|
-
Then it
|
45
|
+
When I run `vim-flavor upgrade`
|
46
|
+
Then it should fail with regexp:
|
48
47
|
"""
|
49
48
|
fatal: \S+ does not appear to be a git repository
|
50
49
|
"""
|
@@ -3,20 +3,16 @@ Feature: Progress messages
|
|
3
3
|
as a lazy Vim user,
|
4
4
|
I want to see messages about the current progress.
|
5
5
|
|
6
|
-
Background:
|
7
|
-
Given a temporary directory called 'tmp'
|
8
|
-
And a home directory called 'home' in '$tmp/home'
|
9
|
-
|
10
6
|
Scenario: Install Vim plugins successfully
|
11
|
-
Given a repository
|
12
|
-
And a repository
|
13
|
-
And flavorfile
|
7
|
+
Given a repository "foo" with versions "1.0.0 1.0.1 1.0.2"
|
8
|
+
And a repository "bar" with versions "2.0.0 2.0.1 2.0.2"
|
9
|
+
And a flavorfile with:
|
14
10
|
"""ruby
|
15
11
|
flavor '$foo_uri', '~> 1.0'
|
16
12
|
flavor '$bar_uri'
|
17
13
|
"""
|
18
14
|
When I run `vim-flavor install`
|
19
|
-
Then it
|
15
|
+
Then it should pass with template:
|
20
16
|
"""
|
21
17
|
Checking versions...
|
22
18
|
Use $bar_uri ... 2.0.2
|
@@ -28,17 +24,17 @@ Feature: Progress messages
|
|
28
24
|
"""
|
29
25
|
|
30
26
|
Scenario: Install Vim plugins which are not existing
|
31
|
-
Given flavorfile
|
27
|
+
Given a flavorfile with:
|
32
28
|
"""ruby
|
33
|
-
flavor 'no-such-plugin'
|
29
|
+
flavor 'file://$tmp/no-such-plugin'
|
34
30
|
"""
|
35
|
-
When I run `vim-flavor install`
|
36
|
-
Then it
|
31
|
+
When I run `vim-flavor install`
|
32
|
+
Then it should fail with template:
|
37
33
|
"""
|
38
|
-
|
34
|
+
Checking versions...
|
35
|
+
Use file://$tmp/no-such-plugin ... failed
|
39
36
|
"""
|
40
|
-
And it
|
37
|
+
And it should fail with regexp:
|
41
38
|
"""
|
42
|
-
|
43
|
-
Use no-such-plugin ... failed
|
39
|
+
fatal: '\S+' does not appear to be a git repository
|
44
40
|
"""
|
@@ -4,12 +4,10 @@ Feature: Comments
|
|
4
4
|
I want to leave comments in my flavorfile.
|
5
5
|
|
6
6
|
Background:
|
7
|
-
Given a
|
8
|
-
And a home directory called 'home' in '$tmp/home'
|
9
|
-
And a repository 'foo' with versions '1.0 1.1 1.2 2.0'
|
7
|
+
Given a repository "foo" with versions "1.0 1.1 1.2 2.0"
|
10
8
|
|
11
9
|
Scenario: Comment out declarations
|
12
|
-
Given flavorfile
|
10
|
+
Given a flavorfile with:
|
13
11
|
"""ruby
|
14
12
|
# Since flavorfile is parsed as a Ruby script,
|
15
13
|
# you can comment out arbitrary lines like this.
|
@@ -17,8 +15,9 @@ Feature: Comments
|
|
17
15
|
# flavor '$foo_uri', '~> 1.0'
|
18
16
|
"""
|
19
17
|
When I run `vim-flavor install`
|
20
|
-
Then
|
18
|
+
Then it should pass
|
19
|
+
And a lockfile is created with:
|
21
20
|
"""
|
22
21
|
"""
|
23
|
-
And
|
24
|
-
But
|
22
|
+
And a bootstrap script is created in "$home/.vim"
|
23
|
+
But a flavor "$foo_uri" is not deployed to "$home/.vim"
|
@@ -4,45 +4,45 @@ Feature: Groups
|
|
4
4
|
I want to declare groups of flavors.
|
5
5
|
|
6
6
|
Background:
|
7
|
-
Given a
|
8
|
-
And a
|
9
|
-
And a repository 'foo' with versions '1.0 1.1 1.2'
|
10
|
-
And a repository 'bar' with versions '2.0 2.1 2.2'
|
7
|
+
Given a repository "foo" with versions "1.0 1.1 1.2"
|
8
|
+
And a repository "bar" with versions "2.0 2.1 2.2"
|
11
9
|
|
12
10
|
Scenario: Install only runtime dependencies
|
13
|
-
Given flavorfile
|
11
|
+
Given a flavorfile with:
|
14
12
|
"""ruby
|
15
13
|
flavor '$foo_uri', :group => :runtime
|
16
14
|
flavor '$bar_uri', :group => :development
|
17
15
|
"""
|
18
16
|
When I run `vim-flavor install`
|
19
|
-
Then
|
17
|
+
Then it should pass
|
18
|
+
And a lockfile is created with:
|
20
19
|
"""
|
21
20
|
$bar_uri (2.2)
|
22
21
|
$foo_uri (1.2)
|
23
22
|
"""
|
24
|
-
And
|
25
|
-
And
|
26
|
-
But
|
23
|
+
And a bootstrap script is created in "$home/.vim"
|
24
|
+
And a flavor "$foo_uri" version "1.2" is deployed to "$home/.vim"
|
25
|
+
But a flavor "$bar_uri" is not deployed to "$home/.vim"
|
27
26
|
|
28
27
|
Scenario: The default group
|
29
|
-
Given flavorfile
|
28
|
+
Given a flavorfile with:
|
30
29
|
"""ruby
|
31
30
|
flavor '$foo_uri'
|
32
31
|
flavor '$bar_uri', :group => :development
|
33
32
|
"""
|
34
33
|
When I run `vim-flavor install`
|
35
|
-
Then
|
34
|
+
Then it should pass
|
35
|
+
And a lockfile is created with:
|
36
36
|
"""
|
37
37
|
$bar_uri (2.2)
|
38
38
|
$foo_uri (1.2)
|
39
39
|
"""
|
40
|
-
And
|
41
|
-
And
|
42
|
-
But
|
40
|
+
And a bootstrap script is created in "$home/.vim"
|
41
|
+
And a flavor "$foo_uri" version "1.2" is deployed to "$home/.vim"
|
42
|
+
But a flavor "$bar_uri" is not deployed to "$home/.vim"
|
43
43
|
|
44
44
|
Scenario: Group a bunch of flavors at once
|
45
|
-
Given flavorfile
|
45
|
+
Given a flavorfile with:
|
46
46
|
"""ruby
|
47
47
|
group :development do
|
48
48
|
flavor '$foo_uri'
|
@@ -50,11 +50,12 @@ Feature: Groups
|
|
50
50
|
end
|
51
51
|
"""
|
52
52
|
When I run `vim-flavor install`
|
53
|
-
Then
|
53
|
+
Then it should pass
|
54
|
+
And a lockfile is created with:
|
54
55
|
"""
|
55
56
|
$bar_uri (2.2)
|
56
57
|
$foo_uri (1.2)
|
57
58
|
"""
|
58
|
-
And
|
59
|
-
But
|
60
|
-
But
|
59
|
+
And a bootstrap script is created in "$home/.vim"
|
60
|
+
But a flavor "$foo_uri" is not deployed to "$home/.vim"
|
61
|
+
But a flavor "$bar_uri" is not deployed to "$home/.vim"
|
@@ -3,51 +3,50 @@ Feature: Repository name
|
|
3
3
|
as a lazy Vim user,
|
4
4
|
I also want to use shorthands for frequently used repositories.
|
5
5
|
|
6
|
-
Background:
|
7
|
-
Given a temporary directory called 'tmp'
|
8
|
-
And a home directory called 'home' in '$tmp/home'
|
9
|
-
|
10
6
|
Scenario: Declare using a Vim plugin from www.vim.org
|
11
|
-
Given a repository
|
12
|
-
And flavorfile
|
7
|
+
Given a GitHub repository "vim-scripts/vspec" with versions "0.0.4 1.2.0"
|
8
|
+
And a flavorfile with:
|
13
9
|
"""ruby
|
14
10
|
# Fetch the plugin from git://github.com/vim-scripts/vspec.git
|
15
11
|
flavor 'vspec', '~> 0.0'
|
16
12
|
"""
|
17
13
|
When I run `vim-flavor install`
|
18
|
-
Then
|
14
|
+
Then it should pass
|
15
|
+
And a lockfile is created with:
|
19
16
|
"""
|
20
17
|
vspec (0.0.4)
|
21
18
|
"""
|
22
|
-
And
|
23
|
-
And
|
19
|
+
And a bootstrap script is created in "$home/.vim"
|
20
|
+
And a flavor "vspec" version "0.0.4" is deployed to "$home/.vim"
|
24
21
|
|
25
22
|
Scenario: Declare using a Vim plugin from GitHub
|
26
|
-
Given a repository
|
27
|
-
And flavorfile
|
23
|
+
Given a GitHub repository "kana/vim-vspec" with versions "0.0.4 1.2.0"
|
24
|
+
And a flavorfile with:
|
28
25
|
"""ruby
|
29
26
|
# Fetch the plugin from git://github.com/kana/vim-vspec.git
|
30
27
|
flavor 'kana/vim-vspec', '~> 0.0'
|
31
28
|
"""
|
32
29
|
When I run `vim-flavor install`
|
33
|
-
Then
|
30
|
+
Then it should pass
|
31
|
+
And a lockfile is created with:
|
34
32
|
"""
|
35
33
|
kana/vim-vspec (0.0.4)
|
36
34
|
"""
|
37
|
-
And
|
38
|
-
And
|
35
|
+
And a bootstrap script is created in "$home/.vim"
|
36
|
+
And a flavor "kana/vim-vspec" version "0.0.4" is deployed to "$home/.vim"
|
39
37
|
|
40
38
|
Scenario: Declare using a Vim plugin from an arbitrary URI
|
41
|
-
Given a repository
|
42
|
-
And flavorfile
|
39
|
+
Given a local repository "vspec" with versions "0.0.4 1.2.0"
|
40
|
+
And a flavorfile with:
|
43
41
|
"""ruby
|
44
42
|
# Fetch the plugin from the URI.
|
45
43
|
flavor '$vspec_uri', '~> 0.0'
|
46
44
|
"""
|
47
45
|
When I run `vim-flavor install`
|
48
|
-
Then
|
46
|
+
Then it should pass
|
47
|
+
And a lockfile is created with:
|
49
48
|
"""
|
50
49
|
$vspec_uri (0.0.4)
|
51
50
|
"""
|
52
|
-
And
|
53
|
-
And
|
51
|
+
And a bootstrap script is created in "$home/.vim"
|
52
|
+
And a flavor "$vspec_uri" version "0.0.4" is deployed to "$home/.vim"
|
@@ -8,45 +8,46 @@ Feature: Version constraint
|
|
8
8
|
compatibility of plugins. See also [Philosophy](philosophy) for the details.
|
9
9
|
|
10
10
|
Background:
|
11
|
-
Given a
|
12
|
-
And a home directory called 'home' in '$tmp/home'
|
13
|
-
And a repository 'foo' with versions '1.0 1.1 1.2 2.0'
|
11
|
+
Given a repository "foo" with versions "1.0 1.1 1.2 2.0"
|
14
12
|
|
15
13
|
Scenario: Declare using the latest version of a Vim plugin
|
16
|
-
Given flavorfile
|
14
|
+
Given a flavorfile with:
|
17
15
|
"""ruby
|
18
16
|
flavor '$foo_uri'
|
19
17
|
"""
|
20
18
|
When I run `vim-flavor install`
|
21
|
-
Then
|
19
|
+
Then it should pass
|
20
|
+
And a lockfile is created with:
|
22
21
|
"""
|
23
22
|
$foo_uri (2.0)
|
24
23
|
"""
|
25
|
-
And
|
26
|
-
And
|
24
|
+
And a bootstrap script is created in "$home/.vim"
|
25
|
+
And a flavor "$foo_uri" version "2.0" is deployed to "$home/.vim"
|
27
26
|
|
28
27
|
Scenario: Declare using a Vim plugin not older than a specific version
|
29
|
-
Given flavorfile
|
28
|
+
Given a flavorfile with:
|
30
29
|
"""ruby
|
31
30
|
flavor '$foo_uri', '>= 1.1'
|
32
31
|
"""
|
33
32
|
When I run `vim-flavor install`
|
34
|
-
Then
|
33
|
+
Then it should pass
|
34
|
+
And a lockfile is created with:
|
35
35
|
"""
|
36
36
|
$foo_uri (2.0)
|
37
37
|
"""
|
38
|
-
And
|
39
|
-
And
|
38
|
+
And a bootstrap script is created in "$home/.vim"
|
39
|
+
And a flavor "$foo_uri" version "2.0" is deployed to "$home/.vim"
|
40
40
|
|
41
41
|
Scenario: Declare using the latest and compatible version of a Vim plugin
|
42
|
-
Given flavorfile
|
42
|
+
Given a flavorfile with:
|
43
43
|
"""ruby
|
44
44
|
flavor '$foo_uri', '~> 1.0'
|
45
45
|
"""
|
46
46
|
When I run `vim-flavor install`
|
47
|
-
Then
|
47
|
+
Then it should pass
|
48
|
+
And a lockfile is created with:
|
48
49
|
"""
|
49
50
|
$foo_uri (1.2)
|
50
51
|
"""
|
51
|
-
And
|
52
|
-
And
|
52
|
+
And a bootstrap script is created in "$home/.vim"
|
53
|
+
And a flavor "$foo_uri" version "1.2" is deployed to "$home/.vim"
|
@@ -1,7 +1,6 @@
|
|
1
|
-
Then /^
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
)
|
1
|
+
Then /^a bootstrap script is created in "(.+)"$/ do |v_vimfiles_path|
|
2
|
+
p = expand(v_vimfiles_path).to_flavors_path.to_bootstrap_path
|
3
|
+
steps %Q{
|
4
|
+
Then a file named "#{p}" should exist
|
5
|
+
}
|
7
6
|
end
|
@@ -1,43 +1,11 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
begin
|
8
|
-
$stdout = @output = StringIO.new()
|
9
|
-
Vim::Flavor::CLI.start(args.strip().split(/\s+/).map {|a| expand(a)})
|
10
|
-
rescue RuntimeError => e
|
11
|
-
@last_error = e
|
12
|
-
ensure
|
13
|
-
$stdout = original_stdout
|
14
|
-
end
|
15
|
-
if mode == 'but'
|
16
|
-
raise RuntimeError, 'Command succeeded unexpectedly' if not @last_error
|
17
|
-
else
|
18
|
-
raise @last_error if @last_error
|
19
|
-
end
|
20
|
-
end
|
21
|
-
ensure
|
22
|
-
ENV['HOME'] = original_home
|
23
|
-
end
|
1
|
+
Then 'it should pass' do
|
2
|
+
steps %Q{
|
3
|
+
Then it should pass with:
|
4
|
+
"""
|
5
|
+
"""
|
6
|
+
}
|
24
7
|
end
|
25
8
|
|
26
|
-
Then /^it
|
27
|
-
|
28
|
-
end
|
29
|
-
|
30
|
-
Then /^it fails with messages like$/ do |pattern|
|
31
|
-
@last_error.should_not be_nil
|
32
|
-
@last_error.message.should match Regexp.new(pattern.strip().gsub(/\s+/, '\s+'))
|
33
|
-
end
|
34
|
-
|
35
|
-
Then 'it outputs progress as follows' do |text|
|
36
|
-
# For some reason, Cucumber drops the last newline from every docstring...
|
37
|
-
@output.string.should include expand(text + "\n")
|
38
|
-
end
|
39
|
-
|
40
|
-
Then 'it outputs progress like' do |pattern|
|
41
|
-
# For some reason, Cucumber drops the last newline from every docstring...
|
42
|
-
@output.string.should match Regexp.new(expand(pattern + "\n"))
|
9
|
+
Then /^it should (pass|fail) with template:$/ do |pass_fail, template|
|
10
|
+
self.__send__("assert_#{pass_fail}ing_with", expand(template))
|
43
11
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
-
Then /^
|
2
|
-
|
1
|
+
Then /^a dependency "(.*)" is stored in "(.*)"$/ do |repo_name, deps_path|
|
2
|
+
steps %Q{
|
3
|
+
Then a directory named "#{deps_path}/#{repo_name.zap}" should exist
|
4
|
+
}
|
3
5
|
end
|
@@ -1,23 +1,6 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
at_exit do
|
6
|
-
delete_path path
|
1
|
+
When /^I remove the directory "([^"]*)"$/ do |dir_name|
|
2
|
+
in_current_dir do
|
3
|
+
# FileUtils#rmdir cannot delete non-empty directories.
|
4
|
+
FileUtils.rm_r(dir_name)
|
7
5
|
end
|
8
|
-
variable_table[name] = path
|
9
|
-
end
|
10
|
-
|
11
|
-
Given /^a home directory called '(.+)' in '(.+)'$/ do |name, virtual_path|
|
12
|
-
actual_path = expand(virtual_path)
|
13
|
-
Dir.mkdir actual_path, 0700
|
14
|
-
variable_table[name] = actual_path
|
15
|
-
end
|
16
|
-
|
17
|
-
Given /^I don't have a directory called '(.+)'$/ do |virtual_path|
|
18
|
-
Dir.should_not exist(expand(virtual_path))
|
19
|
-
end
|
20
|
-
|
21
|
-
Given /^I delete '(.+)'$/ do |virtual_path|
|
22
|
-
delete_path expand(virtual_path)
|
23
6
|
end
|
@@ -1,9 +1,9 @@
|
|
1
|
-
Given /^
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
File.chmod(0755,
|
1
|
+
Given /^an executable file named "(.*)" with:$/ do |file_path, content|
|
2
|
+
steps %Q{
|
3
|
+
Given a file named "#{file_path}" with:
|
4
|
+
"""
|
5
|
+
#{content}
|
6
|
+
"""
|
7
|
+
}
|
8
|
+
File.chmod(0755, File.join([current_dir, file_path]))
|
9
9
|
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
Given /^a repository
|
1
|
+
Given /^a (?:(?:GitHub|local) )?repository "(.+)" with versions "(.+)"$/ do |basename, versions|
|
2
2
|
repository_path = make_repo_path(basename)
|
3
3
|
doc_name = basename.split('/').last.sub(/^vim-/, '')
|
4
4
|
variable_table["#{basename}_uri"] = make_repo_uri(basename)
|
@@ -19,28 +19,36 @@ Given /^a repository '(.+)' with versions '(.+)'$/ do |basename, versions|
|
|
19
19
|
END
|
20
20
|
end
|
21
21
|
|
22
|
-
Given /^a repository
|
23
|
-
repository_path = make_repo_path(repo_name)
|
22
|
+
Given /^a repository "(.+)" from offline cache$/ do |repo_name|
|
23
|
+
repository_path = make_repo_path(repo_name).sub(expand('$tmp/'), '')
|
24
24
|
sh <<-"END"
|
25
25
|
{
|
26
|
-
git clone 'vendor/#{repo_name}' '#{repository_path}'
|
26
|
+
git clone 'vendor/#{repo_name}' '#{current_dir}/#{repository_path}'
|
27
27
|
} >/dev/null
|
28
28
|
END
|
29
29
|
end
|
30
30
|
|
31
|
-
Given /^I disable network to the original repository of
|
32
|
-
|
31
|
+
Given /^I disable network to the original repository of "(.+)"$/ do |basename|
|
32
|
+
steps %Q{
|
33
|
+
Given I remove the directory "#{make_repo_path(basename)}"
|
34
|
+
}
|
33
35
|
end
|
34
36
|
|
35
|
-
Then /^
|
36
|
-
flavor_path = make_flavor_path(expand(
|
37
|
+
Then /^a flavor "(.+)" version "(.+)" is deployed to "(.+)"$/ do |v_repo_name, version, v_vimfiles_path|
|
38
|
+
flavor_path = make_flavor_path(expand(v_vimfiles_path), expand(v_repo_name))
|
37
39
|
basename = expand(v_repo_name).split('/').last.sub(/^vim-/, '')
|
38
|
-
|
39
|
-
"
|
40
|
-
|
40
|
+
steps %Q{
|
41
|
+
Then the file "#{flavor_path}/doc/#{basename}.txt" should contain:
|
42
|
+
"""
|
43
|
+
*#{basename}* #{version}
|
44
|
+
"""
|
45
|
+
Then a file named "#{flavor_path}/doc/tags" should exist
|
46
|
+
}
|
41
47
|
end
|
42
48
|
|
43
|
-
Then /^
|
44
|
-
flavor_path = make_flavor_path(expand(
|
45
|
-
|
49
|
+
Then /^a flavor "(.+)" is not deployed to "(.+)"$/ do |v_repo_name, v_vimfiles_path|
|
50
|
+
flavor_path = make_flavor_path(expand(v_vimfiles_path), expand(v_repo_name))
|
51
|
+
steps %Q{
|
52
|
+
Then a directory named "#{flavor_path}" should not exist
|
53
|
+
}
|
46
54
|
end
|
@@ -1,12 +1,17 @@
|
|
1
|
-
Given 'flavorfile' do |content|
|
2
|
-
|
1
|
+
Given 'a flavorfile with:' do |content|
|
2
|
+
steps %Q{
|
3
|
+
Given a file named "#{'.'.to_flavorfile_path}" with:
|
4
|
+
"""
|
5
|
+
#{expand(content)}
|
6
|
+
"""
|
7
|
+
}
|
3
8
|
end
|
4
9
|
|
5
|
-
When 'I edit flavorfile as' do |content|
|
10
|
+
When 'I edit the flavorfile as:' do |content|
|
6
11
|
steps %Q{
|
7
|
-
Given flavorfile
|
8
|
-
|
9
|
-
|
10
|
-
|
12
|
+
Given a flavorfile with:
|
13
|
+
"""
|
14
|
+
#{content}
|
15
|
+
"""
|
11
16
|
}
|
12
17
|
end
|
@@ -1,13 +1,24 @@
|
|
1
|
-
Given 'lockfile' do |content|
|
2
|
-
|
1
|
+
Given 'a lockfile with:' do |content|
|
2
|
+
steps %Q{
|
3
|
+
Given a file named "#{'.'.to_lockfile_path}" with:
|
4
|
+
"""
|
5
|
+
#{expand(content)}
|
6
|
+
"""
|
7
|
+
}
|
3
8
|
end
|
4
9
|
|
5
|
-
Given
|
6
|
-
|
10
|
+
Given 'I delete the lockfile' do
|
11
|
+
steps %Q{
|
12
|
+
Given I remove the file "#{'.'.to_lockfile_path}"
|
13
|
+
}
|
7
14
|
end
|
8
15
|
|
9
|
-
Then
|
16
|
+
Then /^(?:a|the) lockfile is (?:created|updated) with:$/ do |content|
|
10
17
|
# For some reason, Cucumber drops the last newline from every docstring...
|
11
|
-
|
12
|
-
|
18
|
+
steps %Q{
|
19
|
+
Then the file "#{'.'.to_lockfile_path}" should contain exactly:
|
20
|
+
"""
|
21
|
+
#{content == '' ? '' : expand(content) + "\n"}
|
22
|
+
"""
|
23
|
+
}
|
13
24
|
end
|
data/features/support/env.rb
CHANGED
@@ -1,29 +1,11 @@
|
|
1
|
+
require 'aruba/api'
|
2
|
+
require 'aruba/cucumber'
|
1
3
|
require 'fileutils'
|
2
4
|
require 'vim-flavor'
|
3
5
|
|
4
6
|
class FakeUserEnvironment
|
5
7
|
include Vim::Flavor::ShellUtility
|
6
8
|
|
7
|
-
def initialize()
|
8
|
-
env = self
|
9
|
-
Vim::Flavor::Flavor.instance_eval do
|
10
|
-
@github_repo_uri = lambda {|user, repo|
|
11
|
-
"file://#{env.expand('$tmp')}/repos/#{user}/#{repo}"
|
12
|
-
}
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
def create_file path, content
|
17
|
-
FileUtils.mkdir_p(File.dirname(path))
|
18
|
-
File.open(path, 'w') do |f|
|
19
|
-
f.write(content)
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
def delete_path path
|
24
|
-
FileUtils.remove_entry_secure(path)
|
25
|
-
end
|
26
|
-
|
27
9
|
def expand(virtual_path)
|
28
10
|
virtual_path.gsub(/\$([a-z_]+)/) {
|
29
11
|
variable_table[$1]
|
@@ -47,8 +29,23 @@ class FakeUserEnvironment
|
|
47
29
|
end
|
48
30
|
end
|
49
31
|
|
32
|
+
Before do
|
33
|
+
variable_table['tmp'] = File.absolute_path(current_dir)
|
34
|
+
|
35
|
+
steps %Q{
|
36
|
+
Given a directory named "home"
|
37
|
+
}
|
38
|
+
variable_table['home'] = File.absolute_path(File.join([current_dir, 'home']))
|
39
|
+
end
|
40
|
+
|
41
|
+
Aruba.configure do |config|
|
42
|
+
config.before_cmd do |cmd|
|
43
|
+
set_env 'HOME', variable_table['home']
|
44
|
+
set_env 'VIM_FLAVOR_GITHUB_URI_PREFIX', expand('file://$tmp/repos/')
|
45
|
+
set_env 'VIM_FLAVOR_GITHUB_URI_SUFFIX', ''
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
50
49
|
World do
|
51
50
|
FakeUserEnvironment.new
|
52
51
|
end
|
53
|
-
|
54
|
-
ENV['THOR_DEBUG'] = '1' # To raise an exception as is.
|
@@ -4,18 +4,16 @@ Feature: Dependencies
|
|
4
4
|
I want to hide details to do proper testing.
|
5
5
|
|
6
6
|
Background:
|
7
|
-
Given a
|
8
|
-
And a
|
9
|
-
And a repository 'kana/vim-vspec' from offline cache
|
10
|
-
And a repository 'kana/vim-textobj-user' from offline cache
|
7
|
+
Given a repository "kana/vim-vspec" from offline cache
|
8
|
+
And a repository "kana/vim-textobj-user" from offline cache
|
11
9
|
|
12
10
|
Scenario: Testing a Vim plugin with dependencies
|
13
|
-
Given flavorfile
|
14
|
-
"""
|
11
|
+
Given a flavorfile with:
|
12
|
+
"""ruby
|
15
13
|
flavor 'kana/vim-textobj-user', '~> 0.3'
|
16
14
|
"""
|
17
|
-
And a file
|
18
|
-
"""
|
15
|
+
And a file named "plugin/textobj/date.vim" with:
|
16
|
+
"""vim
|
19
17
|
call textobj#user#plugin('date', {
|
20
18
|
\ '-': {
|
21
19
|
\ '*pattern*': '\v<\d{4}-\d{2}-\d{2}>',
|
@@ -23,8 +21,8 @@ Feature: Dependencies
|
|
23
21
|
\ }
|
24
22
|
\ })
|
25
23
|
"""
|
26
|
-
And a file
|
27
|
-
"""
|
24
|
+
And a file named "t/basics.vim" with:
|
25
|
+
"""vim
|
28
26
|
" Tests are written with vim-vspec.
|
29
27
|
runtime! plugin/textobj/date.vim
|
30
28
|
describe 'Text object: date'
|
@@ -34,8 +32,7 @@ Feature: Dependencies
|
|
34
32
|
end
|
35
33
|
"""
|
36
34
|
When I run `vim-flavor test`
|
37
|
-
Then it
|
38
|
-
And it outputs progress like
|
35
|
+
Then it should pass with regexp:
|
39
36
|
"""
|
40
37
|
-------- Preparing dependencies
|
41
38
|
Checking versions...
|
@@ -52,10 +49,10 @@ Feature: Dependencies
|
|
52
49
|
Files=1, Tests=1, \d+ wallclock secs .*
|
53
50
|
Result: PASS
|
54
51
|
"""
|
55
|
-
And
|
52
|
+
And a lockfile is created with:
|
56
53
|
"""
|
57
54
|
kana/vim-textobj-user (0.3.12)
|
58
55
|
kana/vim-vspec (1.1.0)
|
59
56
|
"""
|
60
|
-
And
|
61
|
-
And
|
57
|
+
And a dependency "kana/vim-vspec" is stored in ".vim-flavor/deps"
|
58
|
+
And a dependency "kana/vim-textobj-user" is stored in ".vim-flavor/deps"
|
@@ -0,0 +1,60 @@
|
|
1
|
+
Feature: Failures
|
2
|
+
In order to automate varisous processes about testing Vim plugins,
|
3
|
+
As a lazy Vim user,
|
4
|
+
I want to get a proper exit status according to test results.
|
5
|
+
|
6
|
+
Background:
|
7
|
+
Given a repository "kana/vim-vspec" from offline cache
|
8
|
+
|
9
|
+
Scenario: Failed test cases
|
10
|
+
Given a flavorfile with:
|
11
|
+
"""ruby
|
12
|
+
# No dependency
|
13
|
+
"""
|
14
|
+
And a file named "plugin/foo.vim" with:
|
15
|
+
"""vim
|
16
|
+
let g:foo = 3
|
17
|
+
"""
|
18
|
+
And a file named "t/basics.vim" with:
|
19
|
+
"""vim
|
20
|
+
runtime! plugin/foo.vim
|
21
|
+
describe 'g:foo'
|
22
|
+
it 'is equal to 5'
|
23
|
+
Expect g:foo == 5
|
24
|
+
end
|
25
|
+
end
|
26
|
+
"""
|
27
|
+
When I run `vim-flavor test`
|
28
|
+
Then it should fail with regexp:
|
29
|
+
"""
|
30
|
+
-------- Preparing dependencies
|
31
|
+
Checking versions...
|
32
|
+
Use kana/vim-vspec ... 1.1.0
|
33
|
+
Deploying plugins...
|
34
|
+
kana/vim-vspec 1.1.0 ... done
|
35
|
+
-------- Testing a Vim plugin
|
36
|
+
Files=0, Tests=0, 0 wallclock secs (.*)
|
37
|
+
Result: NOTESTS
|
38
|
+
t/basics.vim ..\s
|
39
|
+
not ok 1 - g:foo is equal to 5\r
|
40
|
+
# Expected g:foo == 5\r
|
41
|
+
# Actual value: 3\r
|
42
|
+
# Expected value: 5\r
|
43
|
+
Failed 1/1 subtests
|
44
|
+
|
45
|
+
Test Summary Report
|
46
|
+
-------------------
|
47
|
+
t/basics.vim \(Wstat: 0 Tests: 1 Failed: 1\)
|
48
|
+
Failed test: 1
|
49
|
+
Files=1, Tests=1, 0 wallclock secs (.*)
|
50
|
+
Result: FAIL
|
51
|
+
"""
|
52
|
+
And the output should not contain:
|
53
|
+
"""
|
54
|
+
:in `test':
|
55
|
+
"""
|
56
|
+
And a lockfile with:
|
57
|
+
"""
|
58
|
+
kana/vim-vspec (1.1.0)
|
59
|
+
"""
|
60
|
+
And a dependency "kana/vim-vspec" is stored in ".vim-flavor/deps"
|
@@ -4,21 +4,19 @@ Feature: Typical usage
|
|
4
4
|
I want to hide details to do proper testing.
|
5
5
|
|
6
6
|
Background:
|
7
|
-
Given a
|
8
|
-
And a home directory called 'home' in '$tmp/home'
|
9
|
-
And a repository 'kana/vim-vspec' from offline cache
|
7
|
+
Given a repository "kana/vim-vspec" from offline cache
|
10
8
|
|
11
9
|
Scenario: Testing a Vim plugin without any dependency
|
12
|
-
Given flavorfile
|
13
|
-
"""
|
10
|
+
Given a flavorfile with:
|
11
|
+
"""ruby
|
14
12
|
# No dependency
|
15
13
|
"""
|
16
|
-
And a file
|
17
|
-
"""
|
14
|
+
And a file named "plugin/foo.vim" with:
|
15
|
+
"""vim
|
18
16
|
let g:foo = 3
|
19
17
|
"""
|
20
|
-
And a file
|
21
|
-
"""
|
18
|
+
And a file named "t/basics.vim" with:
|
19
|
+
"""vim
|
22
20
|
" Tests are written with vim-vspec.
|
23
21
|
runtime! plugin/foo.vim
|
24
22
|
describe 'g:foo'
|
@@ -27,8 +25,8 @@ Feature: Typical usage
|
|
27
25
|
end
|
28
26
|
end
|
29
27
|
"""
|
30
|
-
And an executable
|
31
|
-
"""
|
28
|
+
And an executable file named "t/sh.t" with:
|
29
|
+
"""bash
|
32
30
|
#!/bin/bash
|
33
31
|
# It is also possible to write tests with arbitrary tools.
|
34
32
|
# Such tests must output results in Test Anything Protocol.
|
@@ -36,8 +34,7 @@ Feature: Typical usage
|
|
36
34
|
echo '1..1'
|
37
35
|
"""
|
38
36
|
When I run `vim-flavor test`
|
39
|
-
Then it
|
40
|
-
And it outputs progress like
|
37
|
+
Then it should pass with regexp:
|
41
38
|
"""
|
42
39
|
-------- Preparing dependencies
|
43
40
|
Checking versions...
|
@@ -54,8 +51,8 @@ Feature: Typical usage
|
|
54
51
|
Files=1, Tests=1, \d+ wallclock secs .*
|
55
52
|
Result: PASS
|
56
53
|
"""
|
57
|
-
And
|
54
|
+
And a lockfile is created with:
|
58
55
|
"""
|
59
56
|
kana/vim-vspec (1.1.0)
|
60
57
|
"""
|
61
|
-
And
|
58
|
+
And a dependency "kana/vim-vspec" is stored in ".vim-flavor/deps"
|
@@ -5,20 +5,19 @@ Feature: Deploy Vim plugins to a non-standard directory
|
|
5
5
|
I want to deploy Vim plugins to arbitrary place.
|
6
6
|
|
7
7
|
Background:
|
8
|
-
Given a
|
9
|
-
And a home directory called 'home' in '$tmp/home'
|
10
|
-
And a repository 'foo' with versions '1.0.0 1.0.1 1.0.2'
|
8
|
+
Given a repository "foo" with versions "1.0.0 1.0.1 1.0.2"
|
11
9
|
|
12
10
|
Scenario: Install to specified vimfiles path which does not exist
|
13
|
-
Given flavorfile
|
11
|
+
Given a flavorfile with:
|
14
12
|
"""ruby
|
15
13
|
flavor '$foo_uri'
|
16
14
|
"""
|
17
|
-
And
|
18
|
-
When I run `vim-flavor install --vimfiles-path
|
19
|
-
Then
|
15
|
+
And a directory named "my-vimfiles" should not exist
|
16
|
+
When I run `vim-flavor install --vimfiles-path=my-vimfiles`
|
17
|
+
Then it should pass
|
18
|
+
And a lockfile is created with:
|
20
19
|
"""
|
21
20
|
$foo_uri (1.0.2)
|
22
21
|
"""
|
23
|
-
And
|
24
|
-
And
|
22
|
+
And a bootstrap script is created in "my-vimfiles"
|
23
|
+
And a flavor "$foo_uri" version "1.0.2" is deployed to "my-vimfiles"
|
@@ -5,22 +5,21 @@ Feature: Install Vim plugins
|
|
5
5
|
I want to use a declarative way to start using new Vim plugins.
|
6
6
|
|
7
7
|
Background:
|
8
|
-
Given a
|
9
|
-
And a home directory called 'home' in '$tmp/home'
|
10
|
-
And a repository 'foo' with versions '1.0.0 1.0.1 1.0.2'
|
8
|
+
Given a repository "foo" with versions "1.0.0 1.0.1 1.0.2"
|
11
9
|
|
12
10
|
Scenario: Install from scratch
|
13
|
-
Given flavorfile
|
11
|
+
Given a flavorfile with:
|
14
12
|
"""ruby
|
15
13
|
"""
|
16
|
-
When I edit flavorfile as
|
14
|
+
When I edit the flavorfile as:
|
17
15
|
"""ruby
|
18
16
|
flavor '$foo_uri'
|
19
17
|
"""
|
20
18
|
And I run `vim-flavor install`
|
21
|
-
Then
|
19
|
+
Then it should pass
|
20
|
+
And a lockfile is created with:
|
22
21
|
"""
|
23
22
|
$foo_uri (1.0.2)
|
24
23
|
"""
|
25
|
-
And
|
26
|
-
And
|
24
|
+
And a bootstrap script is created in "$home/.vim"
|
25
|
+
And a flavor "$foo_uri" version "1.0.2" is deployed to "$home/.vim"
|
@@ -5,27 +5,27 @@ Feature: Uninstall Vim plugins
|
|
5
5
|
I want to use a declarative way to delete Vim plugins from my configuration.
|
6
6
|
|
7
7
|
Background:
|
8
|
-
Given a
|
9
|
-
And a
|
10
|
-
And a repository 'foo' with versions '1.0.0 1.0.1 1.0.2'
|
11
|
-
And a repository 'bar' with versions '2.0.0 2.0.1 2.0.2'
|
8
|
+
Given a repository "foo" with versions "1.0.0 1.0.1 1.0.2"
|
9
|
+
And a repository "bar" with versions "2.0.0 2.0.1 2.0.2"
|
12
10
|
|
13
11
|
Scenario: Install after deleting some flavors in flavorfile
|
14
|
-
Given flavorfile
|
12
|
+
Given a flavorfile with:
|
15
13
|
"""ruby
|
16
14
|
flavor '$foo_uri'
|
17
15
|
flavor '$bar_uri'
|
18
16
|
"""
|
19
17
|
And I run `vim-flavor install`
|
20
|
-
|
18
|
+
And a flavor "$foo_uri" version "1.0.2" is deployed to "$home/.vim"
|
19
|
+
When I edit the flavorfile as:
|
21
20
|
"""ruby
|
22
21
|
flavor '$bar_uri'
|
23
22
|
"""
|
24
|
-
And I run `vim-flavor install`
|
25
|
-
Then
|
23
|
+
And I run `vim-flavor install`
|
24
|
+
Then it should pass
|
25
|
+
And a lockfile is created with:
|
26
26
|
"""
|
27
27
|
$bar_uri (2.0.2)
|
28
28
|
"""
|
29
|
-
And
|
30
|
-
And
|
31
|
-
But
|
29
|
+
And a bootstrap script is created in "$home/.vim"
|
30
|
+
And a flavor "$bar_uri" version "2.0.2" is deployed to "$home/.vim"
|
31
|
+
But a flavor "$foo_uri" is not deployed to "$home/.vim"
|
@@ -5,23 +5,22 @@ Feature: Upgrade Vim plugins
|
|
5
5
|
I want to use a declarative way to upgrade my favorite Vim plugins.
|
6
6
|
|
7
7
|
Background:
|
8
|
-
Given a
|
9
|
-
And a home directory called 'home' in '$tmp/home'
|
10
|
-
And a repository 'foo' with versions '1.0.0 1.0.1 1.0.2'
|
8
|
+
Given a repository "foo" with versions "1.0.0 1.0.1 1.0.2"
|
11
9
|
|
12
10
|
Scenario: Upgrade with lockfile
|
13
|
-
Given flavorfile
|
11
|
+
Given a flavorfile with:
|
14
12
|
"""ruby
|
15
13
|
flavor '$foo_uri'
|
16
14
|
"""
|
17
|
-
And lockfile
|
15
|
+
And a lockfile with:
|
18
16
|
"""
|
19
17
|
$foo_uri (1.0.0)
|
20
18
|
"""
|
21
19
|
When I run `vim-flavor upgrade`
|
22
|
-
Then
|
20
|
+
Then it should pass
|
21
|
+
And the lockfile is updated with:
|
23
22
|
"""
|
24
23
|
$foo_uri (1.0.2)
|
25
24
|
"""
|
26
|
-
And
|
27
|
-
And
|
25
|
+
And a bootstrap script is created in "$home/.vim"
|
26
|
+
And a flavor "$foo_uri" version "1.0.2" is deployed to "$home/.vim"
|
@@ -4,23 +4,22 @@ Feature: Version lock
|
|
4
4
|
I want to keep versions of Vim plugins which I installed before.
|
5
5
|
|
6
6
|
Background:
|
7
|
-
Given a
|
8
|
-
And a home directory called 'home' in '$tmp/home'
|
9
|
-
And a repository 'foo' with versions '1.0.0 1.0.1 1.0.2'
|
7
|
+
Given a repository "foo" with versions "1.0.0 1.0.1 1.0.2"
|
10
8
|
|
11
9
|
Scenario: Install with lockfile
|
12
|
-
Given flavorfile
|
10
|
+
Given a flavorfile with:
|
13
11
|
"""ruby
|
14
12
|
flavor '$foo_uri'
|
15
13
|
"""
|
16
|
-
And lockfile
|
14
|
+
And a lockfile with:
|
17
15
|
"""
|
18
16
|
$foo_uri (1.0.0)
|
19
17
|
"""
|
20
18
|
When I run `vim-flavor install`
|
21
|
-
Then
|
19
|
+
Then it should pass
|
20
|
+
And the lockfile is updated with:
|
22
21
|
"""
|
23
22
|
$foo_uri (1.0.0)
|
24
23
|
"""
|
25
|
-
And
|
26
|
-
And
|
24
|
+
And a bootstrap script is created in "$home/.vim"
|
25
|
+
And a flavor "$foo_uri" version "1.0.0" is deployed to "$home/.vim"
|
data/lib/vim-flavor/cli.rb
CHANGED
@@ -34,16 +34,10 @@ module Vim
|
|
34
34
|
def default_vimfiles_path
|
35
35
|
ENV['HOME'].to_vimfiles_path
|
36
36
|
end
|
37
|
+
end
|
37
38
|
|
38
|
-
|
39
|
-
|
40
|
-
(s || '').
|
41
|
-
split(/,/).
|
42
|
-
map(&:strip).
|
43
|
-
reject(&:empty?).
|
44
|
-
map(&:to_sym)
|
45
|
-
0 < groups.length ? groups : nil
|
46
|
-
end
|
39
|
+
def self.exit_on_failure?
|
40
|
+
true
|
47
41
|
end
|
48
42
|
end
|
49
43
|
end
|
data/lib/vim-flavor/facade.rb
CHANGED
@@ -24,7 +24,7 @@ module Vim
|
|
24
24
|
|
25
25
|
deploy_flavors(
|
26
26
|
lockfile.flavors.select {|f| f.group == :runtime},
|
27
|
-
vimfiles_path.to_flavors_path
|
27
|
+
File.absolute_path(vimfiles_path).to_flavors_path
|
28
28
|
)
|
29
29
|
|
30
30
|
trace "Completed.\n"
|
@@ -69,19 +69,21 @@ module Vim
|
|
69
69
|
def deploy_flavors(flavors, flavors_path)
|
70
70
|
trace "Deploying plugins...\n"
|
71
71
|
|
72
|
+
a_flavors_path = File.absolute_path(flavors_path)
|
73
|
+
|
72
74
|
FileUtils.rm_rf(
|
73
|
-
[
|
75
|
+
[a_flavors_path],
|
74
76
|
:secure => true
|
75
77
|
)
|
76
78
|
|
77
|
-
create_vim_script_for_bootstrap(
|
79
|
+
create_vim_script_for_bootstrap(a_flavors_path)
|
78
80
|
|
79
81
|
flavors.
|
80
82
|
before_each {|f| trace " #{f.repo_name} #{f.locked_version} ..."}.
|
81
83
|
after_each {|f| trace " done\n"}.
|
82
84
|
on_failure {trace " failed\n"}.
|
83
85
|
each do |f|
|
84
|
-
f.deploy(
|
86
|
+
f.deploy(a_flavors_path)
|
85
87
|
end
|
86
88
|
end
|
87
89
|
|
@@ -150,12 +152,12 @@ module Vim
|
|
150
152
|
plugin_paths = lockfile.flavors.map {|f|
|
151
153
|
"#{deps_path}/#{f.repo_name.zap}"
|
152
154
|
}
|
153
|
-
|
154
|
-
print sh %Q{
|
155
|
+
succeeded = system %Q{
|
155
156
|
prove --ext '.t' #{prove_options} &&
|
156
157
|
prove --ext '.vim' #{prove_options} \
|
157
158
|
--exec '#{vspec} #{Dir.getwd()} #{plugin_paths.join(' ')}'
|
158
159
|
}
|
160
|
+
exit(1) unless succeeded
|
159
161
|
end
|
160
162
|
end
|
161
163
|
end
|
data/lib/vim-flavor/flavor.rb
CHANGED
@@ -27,10 +27,9 @@ module Vim
|
|
27
27
|
end
|
28
28
|
|
29
29
|
def self.github_repo_uri(user, repo)
|
30
|
-
|
31
|
-
|
32
|
-
}
|
33
|
-
@github_repo_uri.call(user, repo)
|
30
|
+
p = (ENV['VIM_FLAVOR_GITHUB_URI_PREFIX'] ||= 'git://github.com/')
|
31
|
+
s = (ENV['VIM_FLAVOR_GITHUB_URI_SUFFIX'] ||= '.git')
|
32
|
+
"#{p}#{user}/#{repo}#{s}"
|
34
33
|
end
|
35
34
|
|
36
35
|
def repo_uri
|
data/lib/vim-flavor/version.rb
CHANGED
data/vim-flavor.gemspec
CHANGED
@@ -18,6 +18,7 @@ Gem::Specification.new do |gem|
|
|
18
18
|
gem.add_dependency('parslet', '~> 1.0')
|
19
19
|
gem.add_dependency('thor', '~> 0.14')
|
20
20
|
|
21
|
+
gem.add_development_dependency('aruba', '~> 0.5')
|
21
22
|
gem.add_development_dependency('cucumber', '~> 1.2')
|
22
23
|
gem.add_development_dependency('rspec', '~> 2.8')
|
23
24
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vim-flavor
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-12-
|
12
|
+
date: 2012-12-06 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: parslet
|
@@ -43,6 +43,22 @@ dependencies:
|
|
43
43
|
- - ~>
|
44
44
|
- !ruby/object:Gem::Version
|
45
45
|
version: '0.14'
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: aruba
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ~>
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0.5'
|
54
|
+
type: :development
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0.5'
|
46
62
|
- !ruby/object:Gem::Dependency
|
47
63
|
name: cucumber
|
48
64
|
requirement: !ruby/object:Gem::Requirement
|
@@ -116,6 +132,7 @@ files:
|
|
116
132
|
- features/support/env.rb
|
117
133
|
- features/testing_vim_plugins/README.md
|
118
134
|
- features/testing_vim_plugins/dependencies.feature
|
135
|
+
- features/testing_vim_plugins/failures.feature
|
119
136
|
- features/testing_vim_plugins/typical_usage.feature
|
120
137
|
- features/typical_usage/README.md
|
121
138
|
- features/typical_usage/deploy_to_arbitrary_place.feature
|
@@ -193,6 +210,7 @@ test_files:
|
|
193
210
|
- features/support/env.rb
|
194
211
|
- features/testing_vim_plugins/README.md
|
195
212
|
- features/testing_vim_plugins/dependencies.feature
|
213
|
+
- features/testing_vim_plugins/failures.feature
|
196
214
|
- features/testing_vim_plugins/typical_usage.feature
|
197
215
|
- features/typical_usage/README.md
|
198
216
|
- features/typical_usage/deploy_to_arbitrary_place.feature
|