vimpack 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (62) hide show
  1. data/.autotest +13 -0
  2. data/.gitignore +6 -0
  3. data/.rspec +2 -0
  4. data/.rvmrc +1 -0
  5. data/Gemfile +2 -0
  6. data/LICENSE +21 -0
  7. data/README.md +47 -0
  8. data/Rakefile +5 -0
  9. data/autotest/discover.rb +2 -0
  10. data/bin/vimpack +103 -0
  11. data/cucumber.yml +13 -0
  12. data/features/commands/environments.feature +26 -0
  13. data/features/commands/git.feature +77 -0
  14. data/features/commands/info.feature +28 -0
  15. data/features/commands/init.feature +47 -0
  16. data/features/commands/install.feature +50 -0
  17. data/features/commands/list.feature +18 -0
  18. data/features/commands/search.feature +137 -0
  19. data/features/commands/uninstall.feature +46 -0
  20. data/features/step_definitions/environment_steps.rb +3 -0
  21. data/features/step_definitions/file_utils_steps.rb +36 -0
  22. data/features/step_definitions/initialize_steps.rb +14 -0
  23. data/features/step_definitions/output_steps.rb +12 -0
  24. data/features/step_definitions/vimpack_git_steps.rb +91 -0
  25. data/features/support/env.rb +11 -0
  26. data/features/support/executable_paths.rb +15 -0
  27. data/lib/vimpack/commands/command.rb +46 -0
  28. data/lib/vimpack/commands/git.rb +32 -0
  29. data/lib/vimpack/commands/info.rb +26 -0
  30. data/lib/vimpack/commands/init.rb +23 -0
  31. data/lib/vimpack/commands/install.rb +35 -0
  32. data/lib/vimpack/commands/list.rb +14 -0
  33. data/lib/vimpack/commands/search.rb +37 -0
  34. data/lib/vimpack/commands/uninstall.rb +27 -0
  35. data/lib/vimpack/commands.rb +8 -0
  36. data/lib/vimpack/models/apibase.rb +7 -0
  37. data/lib/vimpack/models/base.rb +29 -0
  38. data/lib/vimpack/models/repo.rb +117 -0
  39. data/lib/vimpack/models/script.rb +110 -0
  40. data/lib/vimpack/models.rb +8 -0
  41. data/lib/vimpack/utils/api.rb +39 -0
  42. data/lib/vimpack/utils/file.rb +66 -0
  43. data/lib/vimpack/utils/file_path.rb +25 -0
  44. data/lib/vimpack/utils/git.rb +103 -0
  45. data/lib/vimpack/utils/github.rb +41 -0
  46. data/lib/vimpack/utils/io.rb +26 -0
  47. data/lib/vimpack/utils/process.rb +61 -0
  48. data/lib/vimpack/utils/vimscripts.rb +64 -0
  49. data/lib/vimpack/version.rb +4 -0
  50. data/lib/vimpack.rb +46 -0
  51. data/simplecov_setup.rb +5 -0
  52. data/spec/spec_helper.rb +32 -0
  53. data/spec/vimpack/models/repo_spec.rb +150 -0
  54. data/spec/vimpack/models/script_spec.rb +230 -0
  55. data/spec/vimpack/utils/github_spec.rb +39 -0
  56. data/spec/vimpack/utils/vimscripts_spec.rb +38 -0
  57. data/tasks/cucumber.rake +8 -0
  58. data/tasks/default.rake +2 -0
  59. data/tasks/rspec.rake +5 -0
  60. data/templates/vimrc.erb +6 -0
  61. data/vimpack.gemspec +42 -0
  62. metadata +333 -0
data/.autotest ADDED
@@ -0,0 +1,13 @@
1
+ begin
2
+ require "autotest/growl"
3
+ rescue LoadError
4
+ puts 'Not going to growl'
5
+ end
6
+ Autotest.add_hook :initialize do |at|
7
+ at.add_exception %r%^\./\.autotest%
8
+ at.add_exception %r%^\./.git.%
9
+ at.add_exception %r%^\./tmp%
10
+ at.add_exception %r%^\./log%
11
+ at.add_exception %r%^\./rerun\.txt%
12
+ at.add_exception %r%^\./coverage%
13
+ end
data/.gitignore ADDED
@@ -0,0 +1,6 @@
1
+ .bundle
2
+ *.swp
3
+ tmp/*
4
+ coverage/*
5
+ Gemfile.lock
6
+ cassette_library/*.yml
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+ --format nested
data/.rvmrc ADDED
@@ -0,0 +1 @@
1
+ rvm 1.9.2@vimpack_dev
data/Gemfile ADDED
@@ -0,0 +1,2 @@
1
+ source "http://rubygems.org"
2
+ gemspec
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License
2
+
3
+ Copyright (c) 2011 Bram Swenson
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,47 @@
1
+ # vimpack
2
+
3
+ vim package manager
4
+
5
+ ### setup vimpack
6
+
7
+ # for now we install from the repo
8
+ $ git clone git@github.com:bramswenson/vimpack.git
9
+ $ cd vimpack
10
+ $ bundle install
11
+ $ rake build
12
+ $ gem install pkg/vimpack-0.0.1.gem
13
+ $ rake cucumber (if you want to run the tests)
14
+
15
+ $ vimpack init
16
+ * backing up existing vim environment
17
+ * initializing vimpack repo
18
+ * installing pathogen.vim
19
+ * initializing .vimrc
20
+ vimpack initialized!
21
+
22
+ $ vimpack search rails
23
+ rails.vim utility
24
+ railscast colorscheme
25
+ Railscast There (GUI&256color) colorscheme
26
+ railstab.vim utility
27
+ FastGrep utility
28
+ apidock.vim utility
29
+ grails-vim utility
30
+
31
+ $ vimpack info rails.vim
32
+ Name: rails.vim
33
+ Author: Tim Pope
34
+ Version: 4.3
35
+ Description: Ruby on Rails: easy file navigation, enhanced syntax highlighting, and more
36
+
37
+ $ vimpack install rails.vim
38
+ * installing rails.vim
39
+ rails.vim (4.3) installed!
40
+
41
+ $ vimpack list
42
+ rails.vim
43
+
44
+ $ vimpack uninstall rails.vim
45
+ * uninstalling rails.vim
46
+ rails.vim uninstalled!
47
+
data/Rakefile ADDED
@@ -0,0 +1,5 @@
1
+ require 'bundler'
2
+ Bundler::GemHelper.install_tasks
3
+
4
+ Dir.glob(File.join(File.dirname(__FILE__), 'tasks/*.rake')).each {|f| load f }
5
+
@@ -0,0 +1,2 @@
1
+ Autotest.add_discovery { "rspec2" }
2
+ Autotest.add_discovery { "cucumber" }
data/bin/vimpack ADDED
@@ -0,0 +1,103 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'bundler/setup'
4
+ begin
5
+ require 'vimpack'
6
+ rescue LoadError => e
7
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
8
+ require 'vimpack'
9
+ end
10
+
11
+ USAGE = <<-EOU
12
+ Manage bundles of vim scripts and vimrc
13
+
14
+ Usage:
15
+
16
+ vimpack <subcommand>
17
+ vimpack <subcommand> --help - Get more detailed help on subcommands
18
+ vimpack init [repo_url] - Initialize vimpack repository
19
+ vimpack search <string> - Search for scripts
20
+ vimpack install <script_name> - Install scripts
21
+ vimpack uninstall <script_name> - Uninstall scripts
22
+ vimpack list - List installed scripts
23
+ vimpack info <script_name> - Get detailed info on a script
24
+ vimpack git publish -m <message> - Publish vimpack repo (shorthand for commit and push)
25
+ vimpack git <git command> - Run any git command within the vimpack repo
26
+ EOU
27
+
28
+ SUB_COMMANDS = %w{ init search install uninstall list info git }
29
+ global_options = Trollop::options do
30
+ version 'vimpack 0.0.1 (c) 2011 Bram Swenson'
31
+ banner USAGE
32
+ opt :environment, 'The environment to run vimpack within', :short => '-e', :default => 'production'
33
+ stop_on SUB_COMMANDS
34
+ end
35
+
36
+ cmd = ARGV.shift
37
+ unless SUB_COMMANDS.include?(cmd)
38
+ Trollop::die USAGE
39
+ end
40
+
41
+ case cmd
42
+ when 'init'
43
+ options = Trollop::options do
44
+ banner 'vimpack init [repo_url] - Initialize vimpack repository'
45
+ opt :home_directory, 'The home directory of the user', :short => '-d', :default => ENV['HOME']
46
+ end
47
+ Vimpack::Commands::Init.run(options, global_options)
48
+ when 'search'
49
+ options = Trollop::options do
50
+ banner 'vimpack search <string> - Search for vim scripts'
51
+ opt :utility, 'Search for utility scripts', :short => '-u'
52
+ opt :color_scheme, 'Search for color scheme scripts', :short => '-c'
53
+ opt :syntax, 'Search for syntax scripts', :short => '-s'
54
+ opt :indent, 'Search for indent scripts', :short => '-i'
55
+ opt :game, 'Search for game scripts', :short => '-g'
56
+ opt :plugin, 'Search for plugin scripts', :short => '-p'
57
+ opt :patch, 'Search for patch scripts', :short => '-a'
58
+ end
59
+ Vimpack::Commands::Search.run(options, global_options)
60
+ when 'install'
61
+ options = Trollop::options do
62
+ banner 'vimpack install <script_name> [script_name] - Install vim scripts'
63
+ end
64
+ Vimpack::Commands::Install.run(options, global_options)
65
+ when 'uninstall'
66
+ options = Trollop::options do
67
+ banner 'vimpack uninstall <script_name> [script_name] - Uninstall vim scripts'
68
+ end
69
+ Vimpack::Commands::Uninstall.run(options, global_options)
70
+ when 'list'
71
+ options = Trollop::options do
72
+ banner 'vimpack list - List installed vim scripts'
73
+ end
74
+ Vimpack::Commands::List.run(options, global_options)
75
+ when 'info'
76
+ options = Trollop::options do
77
+ banner 'vimpack info <script_name> - Get detailed information on a vim script'
78
+ end
79
+ Vimpack::Commands::Info.run(options, global_options)
80
+ when 'git'
81
+ the_banner = <<-EOB
82
+ vimpack git publish -m <message> - Publish vimpack repo (shorthand for commit and push)
83
+ vimpack git <git command> - Run any git command within the vimpack repo
84
+ EOB
85
+ git_command = ARGV.shift
86
+ parser = Trollop::Parser.new do
87
+ opt :message, 'publish message', :short => '-m',
88
+ :default => '[VIMPACK] vimpack publish' if git_command == 'publish'
89
+ banner the_banner
90
+ end
91
+ begin
92
+ options = parser.parse ARGV
93
+ rescue Trollop::CommandlineError => e
94
+ raise e if git_command == 'publish'
95
+ options = {}
96
+ end
97
+ ARGV.unshift git_command
98
+ Vimpack::Commands::Git.run(options, global_options)
99
+ else
100
+ puts "command not found: #{cmd}"
101
+ Trollop::die USAGE
102
+ end
103
+
data/cucumber.yml ADDED
@@ -0,0 +1,13 @@
1
+ <%
2
+ opts = '--color --require features'
3
+ rerun = File.file?('rerun.txt') ? IO.read('rerun.txt') : ""
4
+ rerun_opts = rerun.to_s.strip.empty? ?
5
+ "#{opts} --format #{ENV['CUCUMBER_FORMAT'] || 'pretty'} features" :
6
+ "#{opts} --format #{ENV['CUCUMBER_FORMAT'] || 'pretty'} #{rerun}"
7
+ std_opts = "#{opts} --format #{ENV['CUCUMBER_FORMAT'] || 'pretty'} --strict --tags ~@wip"
8
+ %>
9
+ default: <%= std_opts %> features
10
+ wip: <%= opts %> --tags @wip:3 --wip features
11
+ rerun: <%= rerun_opts %> --format rerun --out rerun.txt --strict --tags ~@wip
12
+ autotest: <%= std_opts %>
13
+ autotest-all: <%= std_opts %>
@@ -0,0 +1,26 @@
1
+ Feature: Use different environments for vimpack
2
+
3
+ As a vimpack user
4
+ I want to use different environments
5
+ Mostly so I can test vimpack
6
+
7
+ Background: Setup test directories
8
+ Given a directory named "test_vimpack/.vim"
9
+ And an empty file named "test_vimpack/.vimrc"
10
+ And "test_vimpack" is my home directory
11
+
12
+ Scenario: Default environment should be production and should not alert
13
+ When I run `vimpack init`
14
+ Then the output should not contain " * using production environment!"
15
+ And the exit status should be 0
16
+
17
+ Scenario: When not in production environment we should be alerted
18
+ When I run `vimpack --environment development init`
19
+ Then the output should contain:
20
+ """
21
+ * using environment :development
22
+ """
23
+ And the output should not contain " * using production environment"
24
+ And the exit status should be 0
25
+
26
+
@@ -0,0 +1,77 @@
1
+ Feature: Manage vimpack -e development git repo
2
+
3
+ As a vimpack user
4
+ I want manage my vimpack -e development git repo
5
+ So I can easily replicate my vimpack
6
+
7
+ Scenario: Publish vimpack to empty git repo
8
+ Given an initialized vimpack in "test_vimpack"
9
+ And an initialized git repo in "vimpack-repo"
10
+ And I run `vimpack -e development git remote add origin /tmp/aruba/vimpack-repo`
11
+ When I run `vimpack -e development git publish -m '[TEST] testing vimpack'`
12
+ Then the exit status should be 0
13
+ And the output should contain:
14
+ """
15
+ * publishing vimpack repo
16
+ vimpack repo published!
17
+ """
18
+ And the vimpack git remote "origin" should be "/tmp/aruba/vimpack-repo"
19
+
20
+ Scenario: Publish vimpack repo when out of sync
21
+ Given an initialized vimpack in "test_vimpack"
22
+ And "rails.vim" is already installed
23
+ And an existing git repo in "vimpack-repo"
24
+ And an initialized vimpack in "test_vimpack_remoted" from remote "vimpack-repo"
25
+ And "test_vimpack" is my home directory
26
+ And "cucumber.zip" is already installed
27
+ And I run `vimpack -e development git publish -m '[CUKE] added cucumber.zip'`
28
+ And "test_vimpack_remoted" is my home directory
29
+ And "haml.zip" is already installed
30
+ When I run `vimpack -e development git publish -m '[TEST] this is a fail!'`
31
+ Then the exit status should be 1
32
+ And the output should contain:
33
+ """
34
+ error: local repo out of sync with remote
35
+ use git to sync with something like this:
36
+ vimpack git fetch && vimpack git merge origin/master
37
+ """
38
+
39
+ Scenario: Initialize vimpack -e development git remote
40
+ Given an initialized vimpack in "test_vimpack"
41
+ And an initialized git repo in "vimpack-repo"
42
+ When I run `vimpack -e development git remote add origin /tmp/aruba/vimpack-repo`
43
+ Then the exit status should be 0
44
+ And the output should contain:
45
+ """
46
+ * running git remote add origin /tmp/aruba/vimpack-repo
47
+ command complete!
48
+ """
49
+ And the vimpack git remote "origin" should be "/tmp/aruba/vimpack-repo"
50
+
51
+ Scenario: Commit vimpack -e development git repo with commit message
52
+ Given an initialized vimpack in "test_vimpack"
53
+ And an initialized git repo in "vimpack-repo"
54
+ And I run `vimpack -e development git remote add origin /tmp/aruba/vimpack-repo`
55
+ When I run `vimpack -e development git add . `
56
+ And I run `vimpack -e development git commit -m '[TEST] test commit'`
57
+ Then the exit status should be 0
58
+ And the output should contain:
59
+ """
60
+ * running git commit -m [TEST] test commit
61
+ command complete!
62
+ """
63
+ And the vimpack git commit logs last message should be "[TEST] test commit"
64
+
65
+ Scenario: Publish vimpack -e development git repo
66
+ Given an initialized vimpack in "test_vimpack"
67
+ And an initialized git repo in "vimpack-repo"
68
+ And I run `vimpack -e development git remote add origin /tmp/aruba/vimpack-repo`
69
+ And "rails.vim" is already installed
70
+ When I run `vimpack -e development git publish`
71
+ Then the exit status should be 0
72
+ And the output should contain:
73
+ """
74
+ * publishing vimpack repo
75
+ vimpack repo published!
76
+ """
77
+ And the vimpack git status should be empty
@@ -0,0 +1,28 @@
1
+ Feature: Get information about a script
2
+
3
+ As a vimpack user
4
+ I want to get information about a vim script
5
+ So I know more about what I am working with
6
+
7
+ Scenario: Get script detailed information
8
+ Given an initialized vimpack in "test_vimpack"
9
+ When I run `vimpack -e development info rails.vim`
10
+ Then the output should contain:
11
+ """
12
+ Name: rails.vim
13
+ Author: Tim Pope
14
+ Version: 4.3 (2010-09-09T17:00:00-07:00)
15
+ Type: utility
16
+ Description: Ruby on Rails: easy file navigation, enhanced syntax highlighting, and more
17
+ """
18
+ And the exit status should be 0
19
+
20
+ Scenario: Try to get info for a script that does not exist
21
+ Given an initialized vimpack in "test_vimpack"
22
+ When I run `vimpack -e development info this_does_not_exists_i_swear`
23
+ Then the output should contain:
24
+ """
25
+ Script not found!
26
+ """
27
+ And the exit status should be 1
28
+
@@ -0,0 +1,47 @@
1
+ Feature: Initialize vimpack
2
+
3
+ As a vimpack user
4
+ I want to initialize vimpack
5
+ So I can have a sane way to manage vim scripts
6
+
7
+ Scenario: Initialize vimpack in an existing vim environment
8
+ Given a directory named "test_vimpack/.vim"
9
+ And an empty file named "test_vimpack/.vimrc"
10
+ And "test_vimpack" is my home directory
11
+ When I run `vimpack -e development init`
12
+ Then a directory named "test_vimpack/.vim.before_vimpack" should exist
13
+ And a file named "test_vimpack/.vimrc.before_vimpack" should exist
14
+ And the output should contain " * initializing vimpack repo"
15
+ And a directory named "test_vimpack/.vimpack" should exist and be a git repo
16
+ And a directory named "test_vimpack/.vimpack/vim" should exist
17
+ And a directory named "test_vimpack/.vimpack/vim/autoload" should exist
18
+ And a directory named "test_vimpack/.vimpack/vim/bundle" should exist
19
+ And a directory named "test_vimpack/.vimpack/scripts" should exist
20
+ And a symlink named "test_vimpack/.vim" should exist and link to "test_vimpack/.vimpack/vim"
21
+ And a directory named "test_vimpack/.vimpack/scripts/utility/pathogen.vim" should exist and be a git submodule of "test_vimpack/.vimpack"
22
+ And a symlink named "test_vimpack/.vimpack/vim/autoload/pathogen.vim" should exist and link to "test_vimpack/.vimpack/scripts/utility/pathogen.vim/plugin/pathogen.vim"
23
+ And a symlink named "test_vimpack/.vimrc" should exist and link to "test_vimpack/.vimpack/vimrc"
24
+ And the output should contain "vimpack initialized!"
25
+ And the exit status should be 0
26
+
27
+ Scenario: Initialize vimpack from git repo
28
+ Given a directory named "test_vimpack/.vim"
29
+ And an empty file named "test_vimpack/.vimrc"
30
+ And "test_vimpack" is my home directory
31
+ When I run `vimpack -e development init git@github.com:bramswenson/vimpack-repo-test.git`
32
+ Then a directory named "test_vimpack/.vim.before_vimpack" should exist
33
+ And a file named "test_vimpack/.vimrc.before_vimpack" should exist
34
+ And the output should contain " * initializing vimpack repo from git@github.com:bramswenson/vimpack-repo-test.git"
35
+ And a directory named "test_vimpack/.vimpack" should exist and be a git repo
36
+ And a directory named "test_vimpack/.vimpack/vim" should exist
37
+ And a directory named "test_vimpack/.vimpack/vim/autoload" should exist
38
+ And a directory named "test_vimpack/.vimpack/vim/bundle" should exist
39
+ And a directory named "test_vimpack/.vimpack/scripts" should exist
40
+ And a symlink named "test_vimpack/.vim" should exist and link to "test_vimpack/.vimpack/vim"
41
+ And a directory named "test_vimpack/.vimpack/scripts/utility/pathogen.vim" should exist and be a git submodule of "test_vimpack/.vimpack"
42
+ And a symlink named "test_vimpack/.vimpack/vim/autoload/pathogen.vim" should exist and link to "test_vimpack/.vimpack/scripts/utility/pathogen.vim/plugin/pathogen.vim"
43
+ And a symlink named "test_vimpack/.vimrc" should exist and link to "test_vimpack/.vimpack/vimrc"
44
+ And the output should contain "vimpack initialized!"
45
+ And the vimpack git remote "origin" should be "git@github.com:bramswenson/vimpack-repo-test.git"
46
+ And the exit status should be 0
47
+
@@ -0,0 +1,50 @@
1
+ Feature: Install a vim script
2
+
3
+ As a vimpack user
4
+ I want to install a vim script
5
+ So I can use it in vim
6
+
7
+ Scenario: Install a script
8
+ Given an initialized vimpack in "test_vimpack"
9
+ When I run `vimpack -e development install rails.vim`
10
+ Then the output should contain:
11
+ """
12
+ * installing rails.vim
13
+ rails.vim (4.3) installed!
14
+ """
15
+ And a directory named "test_vimpack/.vimpack/scripts/utility/rails.vim" should exist and be a git submodule of "test_vimpack/.vimpack"
16
+ And a symlink named "test_vimpack/.vimpack/vim/bundle/rails.vim" should exist and link to "test_vimpack/.vimpack/scripts/utility/rails.vim"
17
+ And the exit status should be 0
18
+
19
+ Scenario: Install multiple scripts
20
+ Given an initialized vimpack in "test_vimpack"
21
+ When I run `vimpack -e development install rails.vim cucumber.zip`
22
+ Then the output should contain:
23
+ """
24
+ * installing rails.vim
25
+ rails.vim (4.3) installed!
26
+ * installing cucumber.zip
27
+ cucumber.zip (1.0) installed!
28
+ """
29
+ And a directory named "test_vimpack/.vimpack/scripts/utility/rails.vim" should exist and be a git submodule of "test_vimpack/.vimpack"
30
+ And a symlink named "test_vimpack/.vimpack/vim/bundle/rails.vim" should exist and link to "test_vimpack/.vimpack/scripts/utility/rails.vim"
31
+ And the exit status should be 0
32
+
33
+ Scenario: Attempt to install a script that is not found
34
+ Given an initialized vimpack in "test_vimpack"
35
+ When I run `vimpack -e development install railz`
36
+ Then the output should contain:
37
+ """
38
+ Script not found!
39
+ """
40
+ And the exit status should be 1
41
+
42
+ Scenario: Attempt to install a script that is not found but a fuzzy match is found
43
+ Given an initialized vimpack in "test_vimpack"
44
+ When I run `vimpack -e development install cucumber`
45
+ Then the output should contain:
46
+ """
47
+ Script not found! Did you mean cucumber.zip?
48
+ """
49
+ And the exit status should be 1
50
+
@@ -0,0 +1,18 @@
1
+ Feature: List installed vim script
2
+
3
+ As a vimpack user
4
+ I want to list installed vim script
5
+ So I know what I am working with
6
+
7
+ Scenario: List installed vim scripts
8
+ Given an initialized vimpack in "test_vimpack"
9
+ And "rails.vim" is already installed
10
+ And "railscasts" is already installed
11
+ When I run `vimpack -e development list`
12
+ Then the stdout should contain:
13
+ """
14
+ rails.vim
15
+ railscasts
16
+ """
17
+ And the exit status should be 0
18
+
@@ -0,0 +1,137 @@
1
+ Feature: Search for a vim script
2
+
3
+ As a vimpack user
4
+ I want to search for a vim script
5
+ So I can find a script to install
6
+
7
+ Scenario: Search for a script
8
+ Given an initialized vimpack in "test_vimpack"
9
+ When I run `vimpack -e development search rails`
10
+ Then the output should contain:
11
+ """
12
+ rails.vim utility
13
+ railscasts color scheme
14
+ Railscasts-Theme-GUIand256color color scheme
15
+ railstab.vim utility
16
+ FastGrep utility
17
+ apidock.vim utility
18
+ grails-vim utility
19
+ paper color scheme
20
+ """
21
+ And the exit status should be 0
22
+
23
+ Scenario: Search for a script within multiple script_types
24
+ Given an initialized vimpack in "test_vimpack"
25
+ When I run `vimpack -e development search --utility --color-scheme rails`
26
+ Then the output should contain:
27
+ """
28
+ rails.vim utility
29
+ railscasts color scheme
30
+ Railscasts-Theme-GUIand256color color scheme
31
+ railstab.vim utility
32
+ FastGrep utility
33
+ apidock.vim utility
34
+ grails-vim utility
35
+ paper color scheme
36
+ """
37
+ And the exit status should be 0
38
+
39
+ Scenario: Search for a utility script
40
+ Given an initialized vimpack in "test_vimpack"
41
+ When I run `vimpack -e development search --utility rails`
42
+ Then the output should contain:
43
+ """
44
+ rails.vim utility
45
+ railstab.vim utility
46
+ FastGrep utility
47
+ apidock.vim utility
48
+ grails-vim utility
49
+ """
50
+ And the exit status should be 0
51
+
52
+ Scenario: Search for all utility scripts
53
+ Given an initialized vimpack in "test_vimpack"
54
+ When I run `vimpack -e development search --utility`
55
+ Then the output should contain:
56
+ """
57
+ test.vim utility
58
+ test.zip utility
59
+ ToggleCommentify.vim utility
60
+ keepcase.vim utility
61
+ vimbuddy.vim utility
62
+ buffoptions.vim utility
63
+ fortune.vim utility
64
+ drawing.vim utility
65
+ ctags.vim utility
66
+ closetag.vim utility
67
+ """
68
+ And the exit status should be 0
69
+
70
+ Scenario: Search for a color scheme script
71
+ Given an initialized vimpack in "test_vimpack"
72
+ When I run `vimpack -e development search --color-scheme rails`
73
+ Then the output should contain:
74
+ """
75
+ railscasts color scheme
76
+ Railscasts-Theme-GUIand256color color scheme
77
+ paper color scheme
78
+ """
79
+ And the exit status should be 0
80
+
81
+ Scenario: Search for a syntax script
82
+ Given an initialized vimpack in "test_vimpack"
83
+ When I run `vimpack -e development search --syntax haml`
84
+ Then the output should contain:
85
+ """
86
+ haml.zip syntax
87
+ Haml syntax
88
+ """
89
+ And the exit status should be 0
90
+
91
+ Scenario: Search for an indent script
92
+ Given an initialized vimpack in "test_vimpack"
93
+ When I run `vimpack -e development search --indent ruby`
94
+ Then the output should contain:
95
+ """
96
+ indentruby.vim indent
97
+ ruby.vim--IGREQUE indent
98
+ """
99
+ And the exit status should be 0
100
+
101
+ Scenario: Search for a game script
102
+ Given an initialized vimpack in "test_vimpack"
103
+ When I run `vimpack -e development search --game sudoku`
104
+ Then the output should contain:
105
+ """
106
+ sudoku game
107
+ Sudoku-Solver game
108
+ """
109
+ And the exit status should be 0
110
+
111
+ Scenario: Search for a plugin script
112
+ Given an initialized vimpack in "test_vimpack"
113
+ When I run `vimpack -e development search --plugin apt`
114
+ Then the output should contain:
115
+ """
116
+ apt-complete.vim plugin
117
+ """
118
+ And the exit status should be 0
119
+
120
+ Scenario: Search for a patch script
121
+ Given an initialized vimpack in "test_vimpack"
122
+ When I run `vimpack -e development search --patch start`
123
+ Then the output should contain:
124
+ """
125
+ startup_profile patch
126
+ """
127
+ And the exit status should be 0
128
+
129
+ Scenario: Search for an unknown script
130
+ Given an initialized vimpack in "test_vimpack"
131
+ When I run `vimpack -e development search this_does_not_exist_anywhere_right`
132
+ Then the output should contain:
133
+ """
134
+ No scripts found!
135
+ """
136
+ And the exit status should be 0
137
+
@@ -0,0 +1,46 @@
1
+ Feature: Uninstall a vim script
2
+
3
+ As a vimpack user
4
+ I want to uninstall a vim script
5
+ So its not taking up space
6
+
7
+ Scenario: Uninstall a script
8
+ Given an initialized vimpack in "test_vimpack"
9
+ And "rails.vim" is already installed
10
+ When I run `vimpack -e development uninstall rails.vim`
11
+ Then the output should contain:
12
+ """
13
+ * uninstalling rails.vim
14
+ rails.vim uninstalled!
15
+ """
16
+ And a symlink named "test_vimpack/.vimpack/vim/bundle/rails.vim" should not exist
17
+ And a directory named "test_vimpack/.vimpack/scripts/utility/rails.vim" should not exist
18
+ And the exit status should be 0
19
+
20
+ Scenario: Uninstall multiple scripts
21
+ Given an initialized vimpack in "test_vimpack"
22
+ And "rails.vim" is already installed
23
+ And "cucumber.zip" is already installed
24
+ When I run `vimpack -e development uninstall rails.vim cucumber.zip`
25
+ Then the output should contain:
26
+ """
27
+ * uninstalling rails.vim
28
+ rails.vim uninstalled!
29
+ * uninstalling cucumber.zip
30
+ cucumber.zip uninstalled!
31
+ """
32
+ And a symlink named "test_vimpack/.vimpack/vim/bundle/rails.vim" should not exist
33
+ And a directory named "test_vimpack/.vimpack/scripts/utility/rails.vim" should not exist
34
+ And a symlink named "test_vimpack/.vimpack/vim/bundle/cucumber.zip" should not exist
35
+ And a directory named "test_vimpack/.vimpack/scripts/utility/cucumber.zip" should not exist
36
+ And the exit status should be 0
37
+
38
+ Scenario: Try Uninstall a script that is not installed
39
+ Given an initialized vimpack in "test_vimpack"
40
+ When I run `vimpack -e development uninstall rails.vim`
41
+ Then the output should contain:
42
+ """
43
+ Script not found!
44
+ """
45
+ And the exit status should be 1
46
+