vimpack 0.0.1 → 0.0.1.1

Sign up to get free protection for your applications and to get access to all the features.
data/.bundle/config ADDED
@@ -0,0 +1,4 @@
1
+ ---
2
+ DISSABLE_SHARED_GEMS: '1'
3
+ BUNDLE_PATH: .bundle/bundle
4
+ BUNDLE_DISABLE_SHARED_GEMS: '1'
data/.gitignore CHANGED
@@ -1,6 +1,7 @@
1
- .bundle
1
+ .bundle/bundle
2
2
  *.swp
3
3
  tmp/*
4
4
  coverage/*
5
5
  Gemfile.lock
6
6
  cassette_library/*.yml
7
+ pkg/*
data/.rbenv-version ADDED
@@ -0,0 +1 @@
1
+ 1.9.2-p290
@@ -48,3 +48,14 @@ Feature: Install a vim script
48
48
  """
49
49
  And the exit status should be 1
50
50
 
51
+ Scenario: Install a script from a github repo directly
52
+ Given an initialized vimpack in "test_vimpack"
53
+ When I run `vimpack -e development install https://github.com/tpope/vim-rails.git`
54
+ Then the output should contain:
55
+ """
56
+ * installing vim-rails
57
+ vim-rails (38b54e3a192197b0d4383e3783ff93e0de2b3d41) installed!
58
+ """
59
+ And a directory named "test_vimpack/.vimpack/scripts/github/tpope/vim-rails" should exist and be a git submodule of "test_vimpack/.vimpack"
60
+ And a symlink named "test_vimpack/.vimpack/vim/bundle/vim-rails" should exist and link to "test_vimpack/.vimpack/scripts/github/tpope/vim-rails"
61
+ And the exit status should be 0
@@ -13,9 +13,11 @@ module Vimpack
13
13
  attr_reader :name, :type, :version, :version_date, :author, :author_email
14
14
  # From Github
15
15
  attr_reader :url, :description
16
+ # From awesomeness
17
+ attr_reader :repo_owner
16
18
 
17
19
  SCRIPT_TYPES = [ 'utility', 'color scheme', 'syntax', 'ftplugin',
18
- 'indent', 'game', 'plugin', 'patch' ]
20
+ 'indent', 'game', 'plugin', 'patch', 'github' ]
19
21
 
20
22
  def initialize(attrs={})
21
23
  set_attributes_from_input(attrs)
@@ -29,8 +31,8 @@ module Vimpack
29
31
  end
30
32
 
31
33
  def set_attributes_from_github
32
- url = "vim-scripts/#{name}"
33
- @repo = self.class.repo("vim-scripts/#{name}")
34
+ url = "#{repo_owner}/#{name}"
35
+ @repo = self.class.repo(url)
34
36
  [ :url, :description ].each { |attr| instance_variable_set("@#{attr}".to_sym, @repo[attr]) }
35
37
  set_version_from_github
36
38
  end
@@ -43,7 +45,11 @@ module Vimpack
43
45
 
44
46
  def set_version_from_github
45
47
  last_commit = commits.last
46
- @version = last_commit.message[0..10].gsub(/Version /, '')
48
+ if type == 'github'
49
+ @version = last_commit.id
50
+ else
51
+ @version = last_commit.message[0..10].gsub(/Version /, '')
52
+ end
47
53
  @version_date = last_commit.authored_date
48
54
  end
49
55
 
@@ -54,9 +60,23 @@ module Vimpack
54
60
  end
55
61
 
56
62
  def self.get(name)
57
- vimscript = get_vimscript(name)
58
- raise ScriptNotFound.new(name) if vimscript.nil?
59
- Script.new(vimscript)
63
+ # If the name has a slash in it, then it's URLy and it's a straight github repo
64
+ _type = (name =~ /\//) ? :github : :vimscript
65
+ case _type
66
+ when :github
67
+ repo_key = name.split("/")[-2..-1].join("/").split(".").first # wut demeter?
68
+ repo = repository(repo_key)
69
+ script_hash =
70
+ { :name => repo.name, :type => 'github',
71
+ :description => repo.description, :script_version => '',
72
+ :author => repo.owner, :author_email => '',
73
+ :repo_owner => repo.owner
74
+ }
75
+ when :vimscript
76
+ script_hash = get_vimscript(name)
77
+ raise ScriptNotFound.new(name) if script_hash.nil?
78
+ end
79
+ Script.new(script_hash)
60
80
  end
61
81
 
62
82
  def self.info(name)
@@ -66,7 +86,12 @@ module Vimpack
66
86
  def install!(link_to_bundle=true)
67
87
  Repo.raise_unless_initialized!
68
88
  raise AlreadyInstalled.new(name) if installed?
69
- Repo.add_submodule(url, type.gsub(' ', '_'), name)
89
+ case type
90
+ when 'github'
91
+ Repo.add_submodule(url, type.gsub(' ', '_'), repo_owner, name)
92
+ else
93
+ Repo.add_submodule(url, type.gsub(' ', '_'), name)
94
+ end
70
95
  if link_to_bundle
71
96
  Repo.create_link(install_path, bundle_path)
72
97
  end
@@ -90,7 +115,12 @@ module Vimpack
90
115
  end
91
116
 
92
117
  def install_path
93
- Repo.script_path.join(type.gsub(' ', '_'), name)
118
+ case type
119
+ when 'github'
120
+ Repo.script_path.join(type.gsub(' ', '_'), repo_owner, name)
121
+ else
122
+ Repo.script_path.join(type.gsub(' ', '_'), name)
123
+ end
94
124
  end
95
125
 
96
126
  def bundle_path
@@ -20,7 +20,7 @@ module Vimpack
20
20
  Results.new(child)
21
21
  end
22
22
 
23
- def wait_for_child(child, timeout=30)
23
+ def wait_for_child(child, timeout=240)
24
24
  child.process.poll_for_exit(timeout.to_f)
25
25
  child.process.stop unless child.process.exited?
26
26
  child.process.io.stdout.close
@@ -54,7 +54,8 @@ module Vimpack
54
54
  def normalize_vimscript(script)
55
55
  { :name => script['n'], :type => script['t'],
56
56
  :description => script['s'], :script_version => script['rv'],
57
- :author => script['ra'], :author_email => script['re']
57
+ :author => script['ra'], :author_email => script['re'],
58
+ :repo_owner => 'vim-scripts'
58
59
  }
59
60
  end
60
61
 
@@ -1,4 +1,4 @@
1
1
  module Vimpack
2
2
  # FIXME: shouldn't have to have this unless statement
3
- VERSION = "0.0.1" unless const_defined?('VERSION')
3
+ VERSION = "0.0.1.1" unless const_defined?('VERSION')
4
4
  end
metadata CHANGED
@@ -1,228 +1,226 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: vimpack
3
- version: !ruby/object:Gem::Version
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1.1
4
5
  prerelease:
5
- version: 0.0.1
6
6
  platform: ruby
7
- authors:
7
+ authors:
8
8
  - Bram Swenson
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
-
13
- date: 2011-05-20 00:00:00 -07:00
14
- default_executable:
15
- dependencies:
16
- - !ruby/object:Gem::Dependency
12
+ date: 2011-10-22 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
17
15
  name: bundler
18
- prerelease: false
19
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: &17939000 !ruby/object:Gem::Requirement
20
17
  none: false
21
- requirements:
22
- - - ">="
23
- - !ruby/object:Gem::Version
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
24
21
  version: 1.0.13
25
22
  type: :runtime
26
- version_requirements: *id001
27
- - !ruby/object:Gem::Dependency
28
- name: trollop
29
23
  prerelease: false
30
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: *17939000
25
+ - !ruby/object:Gem::Dependency
26
+ name: trollop
27
+ requirement: &17937320 !ruby/object:Gem::Requirement
31
28
  none: false
32
- requirements:
29
+ requirements:
33
30
  - - ~>
34
- - !ruby/object:Gem::Version
31
+ - !ruby/object:Gem::Version
35
32
  version: 1.16.2
36
33
  type: :runtime
37
- version_requirements: *id002
38
- - !ruby/object:Gem::Dependency
39
- name: rainbow
40
34
  prerelease: false
41
- requirement: &id003 !ruby/object:Gem::Requirement
35
+ version_requirements: *17937320
36
+ - !ruby/object:Gem::Dependency
37
+ name: rainbow
38
+ requirement: &17933900 !ruby/object:Gem::Requirement
42
39
  none: false
43
- requirements:
40
+ requirements:
44
41
  - - ~>
45
- - !ruby/object:Gem::Version
42
+ - !ruby/object:Gem::Version
46
43
  version: 1.1.1
47
44
  type: :runtime
48
- version_requirements: *id003
49
- - !ruby/object:Gem::Dependency
50
- name: childprocess
51
45
  prerelease: false
52
- requirement: &id004 !ruby/object:Gem::Requirement
46
+ version_requirements: *17933900
47
+ - !ruby/object:Gem::Dependency
48
+ name: childprocess
49
+ requirement: &17932080 !ruby/object:Gem::Requirement
53
50
  none: false
54
- requirements:
51
+ requirements:
55
52
  - - ~>
56
- - !ruby/object:Gem::Version
53
+ - !ruby/object:Gem::Version
57
54
  version: 0.1.8
58
55
  type: :runtime
59
- version_requirements: *id004
60
- - !ruby/object:Gem::Dependency
61
- name: activemodel
62
56
  prerelease: false
63
- requirement: &id005 !ruby/object:Gem::Requirement
57
+ version_requirements: *17932080
58
+ - !ruby/object:Gem::Dependency
59
+ name: activemodel
60
+ requirement: &17930820 !ruby/object:Gem::Requirement
64
61
  none: false
65
- requirements:
62
+ requirements:
66
63
  - - ~>
67
- - !ruby/object:Gem::Version
64
+ - !ruby/object:Gem::Version
68
65
  version: 3.0.4
69
66
  type: :runtime
70
- version_requirements: *id005
71
- - !ruby/object:Gem::Dependency
72
- name: yajl-ruby
73
67
  prerelease: false
74
- requirement: &id006 !ruby/object:Gem::Requirement
68
+ version_requirements: *17930820
69
+ - !ruby/object:Gem::Dependency
70
+ name: yajl-ruby
71
+ requirement: &17929780 !ruby/object:Gem::Requirement
75
72
  none: false
76
- requirements:
73
+ requirements:
77
74
  - - ~>
78
- - !ruby/object:Gem::Version
75
+ - !ruby/object:Gem::Version
79
76
  version: 0.8.1
80
77
  type: :runtime
81
- version_requirements: *id006
82
- - !ruby/object:Gem::Dependency
83
- name: enviro
84
78
  prerelease: false
85
- requirement: &id007 !ruby/object:Gem::Requirement
79
+ version_requirements: *17929780
80
+ - !ruby/object:Gem::Dependency
81
+ name: enviro
82
+ requirement: &17928920 !ruby/object:Gem::Requirement
86
83
  none: false
87
- requirements:
88
- - - ">="
89
- - !ruby/object:Gem::Version
84
+ requirements:
85
+ - - ! '>='
86
+ - !ruby/object:Gem::Version
90
87
  version: 0.0.4
91
88
  type: :runtime
92
- version_requirements: *id007
93
- - !ruby/object:Gem::Dependency
94
- name: nokogiri
95
89
  prerelease: false
96
- requirement: &id008 !ruby/object:Gem::Requirement
90
+ version_requirements: *17928920
91
+ - !ruby/object:Gem::Dependency
92
+ name: nokogiri
93
+ requirement: &17927920 !ruby/object:Gem::Requirement
97
94
  none: false
98
- requirements:
95
+ requirements:
99
96
  - - ~>
100
- - !ruby/object:Gem::Version
97
+ - !ruby/object:Gem::Version
101
98
  version: 1.4.4
102
99
  type: :runtime
103
- version_requirements: *id008
104
- - !ruby/object:Gem::Dependency
105
- name: octokit
106
100
  prerelease: false
107
- requirement: &id009 !ruby/object:Gem::Requirement
101
+ version_requirements: *17927920
102
+ - !ruby/object:Gem::Dependency
103
+ name: octokit
104
+ requirement: &17927060 !ruby/object:Gem::Requirement
108
105
  none: false
109
- requirements:
106
+ requirements:
110
107
  - - ~>
111
- - !ruby/object:Gem::Version
108
+ - !ruby/object:Gem::Version
112
109
  version: 0.6.3
113
110
  type: :runtime
114
- version_requirements: *id009
115
- - !ruby/object:Gem::Dependency
116
- name: vcr
117
111
  prerelease: false
118
- requirement: &id010 !ruby/object:Gem::Requirement
112
+ version_requirements: *17927060
113
+ - !ruby/object:Gem::Dependency
114
+ name: vcr
115
+ requirement: &17926500 !ruby/object:Gem::Requirement
119
116
  none: false
120
- requirements:
121
- - - ">="
122
- - !ruby/object:Gem::Version
123
- version: "0"
117
+ requirements:
118
+ - - ! '>='
119
+ - !ruby/object:Gem::Version
120
+ version: '0'
124
121
  type: :development
125
- version_requirements: *id010
126
- - !ruby/object:Gem::Dependency
127
- name: webmock
128
122
  prerelease: false
129
- requirement: &id011 !ruby/object:Gem::Requirement
123
+ version_requirements: *17926500
124
+ - !ruby/object:Gem::Dependency
125
+ name: webmock
126
+ requirement: &17923380 !ruby/object:Gem::Requirement
130
127
  none: false
131
- requirements:
132
- - - ">="
133
- - !ruby/object:Gem::Version
134
- version: "0"
128
+ requirements:
129
+ - - ! '>='
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
135
132
  type: :development
136
- version_requirements: *id011
137
- - !ruby/object:Gem::Dependency
138
- name: cucumber
139
133
  prerelease: false
140
- requirement: &id012 !ruby/object:Gem::Requirement
134
+ version_requirements: *17923380
135
+ - !ruby/object:Gem::Dependency
136
+ name: cucumber
137
+ requirement: &17922100 !ruby/object:Gem::Requirement
141
138
  none: false
142
- requirements:
143
- - - ">="
144
- - !ruby/object:Gem::Version
145
- version: "0"
139
+ requirements:
140
+ - - ! '>='
141
+ - !ruby/object:Gem::Version
142
+ version: '0'
146
143
  type: :development
147
- version_requirements: *id012
148
- - !ruby/object:Gem::Dependency
149
- name: rspec
150
144
  prerelease: false
151
- requirement: &id013 !ruby/object:Gem::Requirement
145
+ version_requirements: *17922100
146
+ - !ruby/object:Gem::Dependency
147
+ name: rspec
148
+ requirement: &17921460 !ruby/object:Gem::Requirement
152
149
  none: false
153
- requirements:
154
- - - ">="
155
- - !ruby/object:Gem::Version
156
- version: "0"
150
+ requirements:
151
+ - - ! '>='
152
+ - !ruby/object:Gem::Version
153
+ version: '0'
157
154
  type: :development
158
- version_requirements: *id013
159
- - !ruby/object:Gem::Dependency
160
- name: aruba
161
155
  prerelease: false
162
- requirement: &id014 !ruby/object:Gem::Requirement
156
+ version_requirements: *17921460
157
+ - !ruby/object:Gem::Dependency
158
+ name: aruba
159
+ requirement: &17920380 !ruby/object:Gem::Requirement
163
160
  none: false
164
- requirements:
165
- - - ">="
166
- - !ruby/object:Gem::Version
167
- version: "0"
161
+ requirements:
162
+ - - ! '>='
163
+ - !ruby/object:Gem::Version
164
+ version: '0'
168
165
  type: :development
169
- version_requirements: *id014
170
- - !ruby/object:Gem::Dependency
171
- name: autotest-standalone
172
166
  prerelease: false
173
- requirement: &id015 !ruby/object:Gem::Requirement
167
+ version_requirements: *17920380
168
+ - !ruby/object:Gem::Dependency
169
+ name: autotest-standalone
170
+ requirement: &17919100 !ruby/object:Gem::Requirement
174
171
  none: false
175
- requirements:
176
- - - ">="
177
- - !ruby/object:Gem::Version
178
- version: "0"
172
+ requirements:
173
+ - - ! '>='
174
+ - !ruby/object:Gem::Version
175
+ version: '0'
179
176
  type: :development
180
- version_requirements: *id015
181
- - !ruby/object:Gem::Dependency
182
- name: autotest-growl
183
177
  prerelease: false
184
- requirement: &id016 !ruby/object:Gem::Requirement
178
+ version_requirements: *17919100
179
+ - !ruby/object:Gem::Dependency
180
+ name: autotest-growl
181
+ requirement: &17917620 !ruby/object:Gem::Requirement
185
182
  none: false
186
- requirements:
187
- - - ">="
188
- - !ruby/object:Gem::Version
189
- version: "0"
183
+ requirements:
184
+ - - ! '>='
185
+ - !ruby/object:Gem::Version
186
+ version: '0'
190
187
  type: :development
191
- version_requirements: *id016
192
- - !ruby/object:Gem::Dependency
193
- name: simplecov
194
188
  prerelease: false
195
- requirement: &id017 !ruby/object:Gem::Requirement
189
+ version_requirements: *17917620
190
+ - !ruby/object:Gem::Dependency
191
+ name: simplecov
192
+ requirement: &17916680 !ruby/object:Gem::Requirement
196
193
  none: false
197
- requirements:
198
- - - ">="
199
- - !ruby/object:Gem::Version
200
- version: "0"
194
+ requirements:
195
+ - - ! '>='
196
+ - !ruby/object:Gem::Version
197
+ version: '0'
201
198
  type: :development
202
- version_requirements: *id017
203
- - !ruby/object:Gem::Dependency
204
- name: ruby-debug19
205
199
  prerelease: false
206
- requirement: &id018 !ruby/object:Gem::Requirement
200
+ version_requirements: *17916680
201
+ - !ruby/object:Gem::Dependency
202
+ name: ruby-debug19
203
+ requirement: &17912620 !ruby/object:Gem::Requirement
207
204
  none: false
208
- requirements:
209
- - - ">="
210
- - !ruby/object:Gem::Version
211
- version: "0"
205
+ requirements:
206
+ - - ! '>='
207
+ - !ruby/object:Gem::Version
208
+ version: '0'
212
209
  type: :development
213
- version_requirements: *id018
214
- description: " Vim Script Package Manager based on pathogen.vim by Tim Pope "
215
- email:
210
+ prerelease: false
211
+ version_requirements: *17912620
212
+ description: ! ' Vim Script Package Manager based on pathogen.vim by Tim Pope '
213
+ email:
216
214
  - bram@craniumisajar.com
217
- executables:
215
+ executables:
218
216
  - vimpack
219
217
  extensions: []
220
-
221
218
  extra_rdoc_files: []
222
-
223
- files:
219
+ files:
224
220
  - .autotest
221
+ - .bundle/config
225
222
  - .gitignore
223
+ - .rbenv-version
226
224
  - .rspec
227
225
  - .rvmrc
228
226
  - Gemfile
@@ -282,52 +280,34 @@ files:
282
280
  - tasks/rspec.rake
283
281
  - templates/vimrc.erb
284
282
  - vimpack.gemspec
285
- has_rdoc: true
286
- homepage: ""
283
+ homepage: ''
287
284
  licenses: []
288
-
289
285
  post_install_message:
290
286
  rdoc_options: []
291
-
292
- require_paths:
287
+ require_paths:
293
288
  - lib
294
- required_ruby_version: !ruby/object:Gem::Requirement
289
+ required_ruby_version: !ruby/object:Gem::Requirement
295
290
  none: false
296
- requirements:
297
- - - ">="
298
- - !ruby/object:Gem::Version
299
- version: "0"
300
- required_rubygems_version: !ruby/object:Gem::Requirement
291
+ requirements:
292
+ - - ! '>='
293
+ - !ruby/object:Gem::Version
294
+ version: '0'
295
+ segments:
296
+ - 0
297
+ hash: 2910229080418397065
298
+ required_rubygems_version: !ruby/object:Gem::Requirement
301
299
  none: false
302
- requirements:
303
- - - ">="
304
- - !ruby/object:Gem::Version
305
- version: "0"
300
+ requirements:
301
+ - - ! '>='
302
+ - !ruby/object:Gem::Version
303
+ version: '0'
304
+ segments:
305
+ - 0
306
+ hash: 2910229080418397065
306
307
  requirements: []
307
-
308
308
  rubyforge_project: vimpack
309
- rubygems_version: 1.6.1
309
+ rubygems_version: 1.8.10
310
310
  signing_key:
311
311
  specification_version: 3
312
312
  summary: Vim Script Package Manager
313
- test_files:
314
- - features/commands/environments.feature
315
- - features/commands/git.feature
316
- - features/commands/info.feature
317
- - features/commands/init.feature
318
- - features/commands/install.feature
319
- - features/commands/list.feature
320
- - features/commands/search.feature
321
- - features/commands/uninstall.feature
322
- - features/step_definitions/environment_steps.rb
323
- - features/step_definitions/file_utils_steps.rb
324
- - features/step_definitions/initialize_steps.rb
325
- - features/step_definitions/output_steps.rb
326
- - features/step_definitions/vimpack_git_steps.rb
327
- - features/support/env.rb
328
- - features/support/executable_paths.rb
329
- - spec/spec_helper.rb
330
- - spec/vimpack/models/repo_spec.rb
331
- - spec/vimpack/models/script_spec.rb
332
- - spec/vimpack/utils/github_spec.rb
333
- - spec/vimpack/utils/vimscripts_spec.rb
313
+ test_files: []