vendorer 0.1.14 → 0.1.15

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: c9d9dd1243bab4fadf0c44dd84e1be3676555c7a
4
+ data.tar.gz: 3aa7207a6b3270fae463a11bd5ebd80b1abe2de7
5
+ SHA512:
6
+ metadata.gz: 9ccbced7c3adfdcff9e27cffb7ea299333859812076d7c0503e937a1999e9d2ba4114a9abdfaf4ad029ca59b2062afa6b26514f08cb13902292715610a41378e
7
+ data.tar.gz: f11f38a9ddc9ec4e5016904d711d9438332e820eec84c333983c247261d9cc6372c2a840eb993eeca47229630e1d5df0c11598d23c6e90d69c9b96c7dde98eb1
data/bin/vendorer CHANGED
@@ -34,4 +34,6 @@ require 'vendorer'
34
34
  v = Vendorer.new(:update => (ARGV[1] || true if ARGV[0] == 'update'),
35
35
  :init => (true if ARGV[0] == 'init'))
36
36
  v.init and exit if ARGV[0] == 'init'
37
- v.parse(File.read('Vendorfile'))
37
+ config_locations = ['Vendorfile.rb', 'Vendorfile']
38
+ config_location = config_locations.detect { |f| File.exist?(f) } || config_locations.last
39
+ v.parse(File.read(config_location))
@@ -1,3 +1,3 @@
1
1
  class Vendorer
2
- VERSION = '0.1.14'
2
+ VERSION = '0.1.15'
3
3
  end
metadata CHANGED
@@ -1,15 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vendorer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.14
5
- prerelease:
4
+ version: 0.1.15
6
5
  platform: ruby
7
6
  authors:
8
7
  - Michael Grosser
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-02-23 00:00:00.000000000 Z
11
+ date: 2014-04-02 00:00:00.000000000 Z
13
12
  dependencies: []
14
13
  description:
15
14
  email: michael@grosser.it
@@ -18,46 +17,31 @@ executables:
18
17
  extensions: []
19
18
  extra_rdoc_files: []
20
19
  files:
21
- - .travis.yml
22
- - Gemfile
23
- - Gemfile.lock
24
- - Rakefile
25
- - Readme.md
26
20
  - bin/vendorer
27
21
  - lib/vendorer.rb
28
22
  - lib/vendorer/version.rb
29
- - spec/spec_helper.rb
30
- - spec/vendorer_spec.rb
31
- - vendorer.gemspec
32
- homepage: http://github.com/grosser/vendorer
23
+ homepage: https://github.com/grosser/vendorer
33
24
  licenses:
34
25
  - MIT
26
+ metadata: {}
35
27
  post_install_message:
36
28
  rdoc_options: []
37
29
  require_paths:
38
30
  - lib
39
31
  required_ruby_version: !ruby/object:Gem::Requirement
40
- none: false
41
32
  requirements:
42
- - - ! '>='
33
+ - - ">="
43
34
  - !ruby/object:Gem::Version
44
35
  version: '0'
45
- segments:
46
- - 0
47
- hash: -2133170739879048900
48
36
  required_rubygems_version: !ruby/object:Gem::Requirement
49
- none: false
50
37
  requirements:
51
- - - ! '>='
38
+ - - ">="
52
39
  - !ruby/object:Gem::Version
53
40
  version: '0'
54
- segments:
55
- - 0
56
- hash: -2133170739879048900
57
41
  requirements: []
58
42
  rubyforge_project:
59
- rubygems_version: 1.8.24
43
+ rubygems_version: 2.2.2
60
44
  signing_key:
61
- specification_version: 3
45
+ specification_version: 4
62
46
  summary: Keep your vendor files up to date
63
47
  test_files: []
data/.travis.yml DELETED
@@ -1,5 +0,0 @@
1
- script: "bundle exec rake"
2
- rvm:
3
- - ree
4
- - 1.9.2
5
- - 1.9.3
data/Gemfile DELETED
@@ -1,6 +0,0 @@
1
- source :rubygems
2
- gemspec
3
-
4
- gem "bump"
5
- gem "rake"
6
- gem "rspec", ">= 2"
data/Gemfile.lock DELETED
@@ -1,28 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- vendorer (0.1.14)
5
-
6
- GEM
7
- remote: http://rubygems.org/
8
- specs:
9
- bump (0.3.9)
10
- diff-lcs (1.1.3)
11
- rake (10.0.3)
12
- rspec (2.12.0)
13
- rspec-core (~> 2.12.0)
14
- rspec-expectations (~> 2.12.0)
15
- rspec-mocks (~> 2.12.0)
16
- rspec-core (2.12.2)
17
- rspec-expectations (2.12.1)
18
- diff-lcs (~> 1.1.3)
19
- rspec-mocks (2.12.2)
20
-
21
- PLATFORMS
22
- ruby
23
-
24
- DEPENDENCIES
25
- bump
26
- rake
27
- rspec (>= 2)
28
- vendorer!
data/Rakefile DELETED
@@ -1,7 +0,0 @@
1
- require "bundler/setup"
2
- require "bundler/gem_tasks"
3
- require "bump/tasks"
4
-
5
- task :default do
6
- sh "rspec spec/"
7
- end
data/Readme.md DELETED
@@ -1,89 +0,0 @@
1
- Vendorer
2
- ========
3
-
4
- - documented & cached dependencies
5
- - automatic updates
6
- - no unwanted/accidental updates
7
-
8
-
9
- Install
10
- -------
11
-
12
- Ensure you have:
13
-
14
- - Curl
15
- - Git v1.7+
16
- - Ruby v1.8.7 or v1.9.2+
17
-
18
- then:
19
-
20
- ``` bash
21
- $ gem install vendorer
22
- ```
23
-
24
- Or add vendorer to your `Gemfile`:
25
-
26
- ``` ruby
27
- gem 'vendorer', :group => :development
28
- ```
29
-
30
-
31
- Usage
32
- -----
33
-
34
- Add a `Vendorfile` to your project root:
35
-
36
-
37
- <!-- extracted by vendorer init -->
38
- ``` ruby
39
- file 'vendor/assets/javascripts/jquery.min.js', 'http://code.jquery.com/jquery-latest.min.js'
40
- folder 'vendor/plugins/parallel_tests', 'https://github.com/grosser/parallel_tests.git'
41
-
42
- # Execute a block after updates
43
- file 'vendor/assets/javascripts/jquery.js', 'http://code.jquery.com/jquery.js' do |path|
44
- puts "Do something useful with #{path}"
45
- rewrite(path) { |content| content.gsub(/\r\n/, \n).gsub /\t/, ' ' }
46
- end
47
-
48
- # Checkout a specific :ref/:tag/:branch
49
- folder 'vendor/plugins/parallel_tests', 'https://github.com/grosser/parallel_tests.git', :tag => 'v0.6.10'
50
-
51
- # DRY folders
52
- folder 'vendor/assets/javascripts' do
53
- file 'jquery.js', 'http://code.jquery.com/jquery-latest.js'
54
- end
55
-
56
- # Copy files & folders from repos (also works with private repos)
57
- from 'https://github.com/grosser/parallel_tests.git' do |checkout_location|
58
- file 'Readme.md'
59
- file 'target-folder/file.rb', 'lib/parallel_tests.rb'
60
- folder 'spec'
61
- folder 'renamed-folder', 'spec'
62
- end
63
- ```
64
- <!-- extracted by vendorer init -->
65
-
66
- - Create a new Vendorfile: `vendorer init`
67
- - excute all installations: `vendorer`
68
- - Update all dependencies: `vendorer update`
69
- - update a single dependency: `vendorer update vendor/assets/javascripts/jquery.min.js`
70
- - update everything in a specific folder: `vendorer update vendor/assets/javascripts`
71
-
72
-
73
- TODO
74
- ====
75
- - nice error message when no Vendorfile was found
76
-
77
- Author
78
- ======
79
-
80
- ### [Contributors](http://github.com/grosser/vendorer/contributors)
81
- - [Kurtis Rainbolt-Greene](https://github.com/krainboltgreene)
82
- - [Ivan K.](https://github.com/divout)
83
- - [Matt Brictson](https://github.com/mbrictson)
84
- - [Andreas Haller](https://github.com/ahx)
85
-
86
- [Michael Grosser](http://grosser.it)<br/>
87
- michael@grosser.it<br/>
88
- License: MIT<br/>
89
- [![Build Status](https://travis-ci.org/grosser/vendorer.png)](https://travis-ci.org/grosser/vendorer)
data/spec/spec_helper.rb DELETED
@@ -1,4 +0,0 @@
1
- $LOAD_PATH.unshift 'lib'
2
- require 'vendorer'
3
- require 'vendorer/version'
4
- require 'rspec/mocks'
@@ -1,583 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Vendorer do
4
- before do
5
- Dir.chdir File.dirname(File.dirname(__FILE__))
6
- `rm -rf spec/tmp`
7
- `mkdir spec/tmp`
8
- Dir.chdir 'spec/tmp'
9
- end
10
-
11
- after do
12
- `rm -rf spec/tmp`
13
- end
14
-
15
- def write(file, content)
16
- File.open(file, 'w') { |f| f.write(content) }
17
- end
18
-
19
- def read(file)
20
- File.read(file)
21
- end
22
-
23
- def size(file)
24
- File.size(file)
25
- end
26
-
27
- def run(cmd)
28
- result = `#{cmd} 2>&1`
29
- raise result unless $?.success?
30
- result
31
- end
32
-
33
- def ls(path)
34
- `ls #{path} 2>&1`.split("\n")
35
- end
36
-
37
- def vendorer(args='', options={})
38
- out = `bundle exec ../../bin/vendorer #{args} 2>&1`
39
- raise out if $?.success? == !!options[:raise]
40
- out
41
- end
42
-
43
- it "has a VERSION" do
44
- Vendorer::VERSION.should =~ /^[\.\da-z]+$/
45
- end
46
-
47
- describe 'version' do
48
- it "shows its version via -v" do
49
- vendorer('-v').should == "#{Vendorer::VERSION}\n"
50
- end
51
-
52
- it "shows its version via --version" do
53
- vendorer('--version').should == "#{Vendorer::VERSION}\n"
54
- end
55
- end
56
-
57
- describe 'help' do
58
- it "shows help via -h" do
59
- vendorer('-h').should include("Usage")
60
- end
61
-
62
- it "shows help via --help" do
63
- vendorer('--help').should include("Usage")
64
- end
65
- end
66
-
67
- describe '#file' do
68
- def simple_vendorfile
69
- write 'Vendorfile', "file 'public/javascripts/jquery.min.js', 'http://code.jquery.com/jquery-latest.min.js'"
70
- end
71
-
72
- it "can download a new file" do
73
- simple_vendorfile
74
- vendorer
75
- ls('public/javascripts').should == ["jquery.min.js"]
76
- read('public/javascripts/jquery.min.js').should include('jQuery')
77
- end
78
-
79
- it "can download a file via redirect" do
80
- # old github raw urls are redirected
81
- write 'Vendorfile', "file 'xxx', 'https://github.com/grosser/vendorer/raw/master/Gemfile'"
82
- vendorer
83
- read('xxx').should include('rspec')
84
- end
85
-
86
- it "does not update an existing file" do
87
- simple_vendorfile
88
- vendorer
89
- write('public/javascripts/jquery.min.js', 'Foo')
90
- vendorer
91
- read('public/javascripts/jquery.min.js').should == 'Foo'
92
- end
93
-
94
- it "fails with a nice message if the Vendorfile is broken" do
95
- write 'Vendorfile', "file 'xxx.js', 'http://NOTFOUND'"
96
- result = vendorer '', :raise => true
97
- # different errors on travis / local
98
- raise result unless result.include?("NOTFOUND") or result.include?('Downloaded empty file')
99
- end
100
-
101
- describe "with update" do
102
- it "updates all files when update is called" do
103
- simple_vendorfile
104
- vendorer
105
- write('public/javascripts/jquery.min.js', 'Foo')
106
- vendorer 'update'
107
- read('public/javascripts/jquery.min.js').should include('jQuery')
108
- end
109
-
110
- context "with multiple files" do
111
- before do
112
- write 'Vendorfile', "
113
- file 'public/javascripts/jquery.js', 'http://code.jquery.com/jquery-latest.js'
114
- file 'public/javascripts/jquery.js.min', 'http://code.jquery.com/jquery-latest.min.js'
115
- "
116
- vendorer
117
- read('public/javascripts/jquery.js').should include('jQuery')
118
- read('public/javascripts/jquery.js.min').should include('jQuery')
119
-
120
- write('public/javascripts/jquery.js', 'Foo')
121
- write('public/javascripts/jquery.js.min', 'Foo')
122
- end
123
-
124
- it "updates a single file when update is called with the file" do
125
- vendorer 'update public/javascripts/jquery.js.min'
126
- size('public/javascripts/jquery.js.min').should > 300
127
- size('public/javascripts/jquery.js').should == 3
128
- end
129
-
130
- it "does not update a file that starts with the same path" do
131
- vendorer 'update public/javascripts/jquery.js'
132
- size('public/javascripts/jquery.js').should > 300
133
- size('public/javascripts/jquery.js.min').should == 3
134
- end
135
- end
136
-
137
- it "does not change file modes" do
138
- simple_vendorfile
139
- vendorer
140
- run 'chmod 711 public/javascripts/jquery.min.js'
141
- lambda {
142
- vendorer 'update'
143
- }.should_not change { run('ls -l public/javascripts').split("\n") }
144
- end
145
- end
146
-
147
- context "with a passed block" do
148
- before do
149
- write 'Vendorfile', "file('public/javascripts/jquery.js', 'http://code.jquery.com/jquery-latest.js'){|path| puts 'THE PATH IS ' + path }"
150
- @output = "THE PATH IS public/javascripts/jquery.js"
151
- end
152
-
153
- it "runs the block after update" do
154
- vendorer.should include(@output)
155
- end
156
-
157
- it "does not run the block when not updating" do
158
- vendorer
159
- vendorer.should_not include(@output)
160
- end
161
- end
162
-
163
- context "with a compressed resource" do
164
- def vendorfile_for_compressed_resource
165
- write 'Vendorfile', "file 'public/javascripts/highcharts.js', 'http://code.highcharts.com/highcharts.js'"
166
- end
167
-
168
- it "decompresses to plain text" do
169
- vendorfile_for_compressed_resource
170
- vendorer
171
- read('public/javascripts/highcharts.js').should include('Highcharts')
172
- end
173
- end
174
- end
175
-
176
- describe '#folder' do
177
- before do
178
- write 'Vendorfile', "folder 'its_recursive', '../../.git'"
179
- end
180
-
181
- it "can download from remote" do
182
- write 'Vendorfile', "folder 'vendor/plugins/parallel_tests', 'https://github.com/grosser/parallel_tests.git'"
183
- vendorer
184
- ls('vendor/plugins').should == ["parallel_tests"]
185
- read('vendor/plugins/parallel_tests/Gemfile').should include('cucumber')
186
- end
187
-
188
- it "reports errors when the Vendorfile is broken" do
189
- write 'Vendorfile', "folder 'vendor/plugins/parallel_tests', 'https://blob'"
190
- output = vendorer '', :raise => true
191
- # different errors on travis / local
192
- raise unless output.include?('Connection refused') or output.include?('resolve host')
193
- end
194
-
195
- it "can download from local" do
196
- vendorer
197
- ls('').should =~ ["its_recursive", "Vendorfile"]
198
- read('its_recursive/Gemfile').should include('rake')
199
- end
200
-
201
- it "can handle a trailing slash" do
202
- write 'Vendorfile', "folder 'its_recursive/', '../../.git'"
203
- output = vendorer
204
- ls('').should =~ ["its_recursive", "Vendorfile"]
205
- read('its_recursive/Gemfile').should include('rake')
206
- output.should_not include('//')
207
- end
208
-
209
- it "does not keep .git folder so everything can be checked in" do
210
- vendorer
211
- ls('its_recursive/.git').first.should =~ /cannot access|No such file or directory/
212
- end
213
-
214
- it "does not update an existing folder" do
215
- vendorer
216
- write('its_recursive/Gemfile', 'Foo')
217
- vendorer
218
- read('its_recursive/Gemfile').should == 'Foo'
219
- end
220
-
221
- describe '#update' do
222
- it "updates a folder" do
223
- vendorer
224
- write('its_recursive/Gemfile', 'Foo')
225
- vendorer 'update'
226
- read('its_recursive/Gemfile').should include('rake')
227
- end
228
-
229
- it "can update a specific folder" do
230
- write 'Vendorfile', "
231
- folder 'its_recursive', '../../.git'
232
- folder 'its_really_recursive', '../../.git'
233
- "
234
- vendorer
235
- write('its_recursive/Gemfile', 'Foo')
236
- write('its_really_recursive/Gemfile', 'Foo')
237
- vendorer 'update its_recursive'
238
- size('its_really_recursive/Gemfile').should == 3
239
- size('its_recursive/Gemfile').should > 30
240
- end
241
- end
242
-
243
- describe "git options" do
244
- it "can checkout by :ref" do
245
- write 'Vendorfile', "folder 'its_recursive', '../../.git', :ref => 'b1e6460'"
246
- vendorer
247
- read('its_recursive/Readme.md').should include('CODE EXAMPLE')
248
- end
249
-
250
- it "can checkout by :branch" do
251
- write 'Vendorfile', "folder 'its_recursive', '../../.git', :branch => 'b1e6460'"
252
- vendorer
253
- read('its_recursive/Readme.md').should include('CODE EXAMPLE')
254
- end
255
-
256
- it "can checkout by :tag" do
257
- write 'Vendorfile', "folder 'its_recursive', '../../.git', :tag => 'b1e6460'"
258
- vendorer
259
- read('its_recursive/Readme.md').should include('CODE EXAMPLE')
260
- end
261
- end
262
-
263
- context "with an execute after update block" do
264
- before do
265
- write 'Vendorfile', "folder('its_recursive', '../../.git'){|path| puts 'THE PATH IS ' + path }"
266
- @output = 'THE PATH IS its_recursive'
267
- end
268
-
269
- it "runs the block after update" do
270
- vendorer.should include(@output)
271
- end
272
-
273
- it "does not run the block when not updating" do
274
- vendorer
275
- vendorer.should_not include(@output)
276
- end
277
- end
278
-
279
- context "with folder scoping" do
280
- before do
281
- write 'Vendorfile', "
282
- folder 'public/javascripts' do
283
- file 'jquery.js', 'http://code.jquery.com/jquery-latest.min.js'
284
- end
285
- "
286
- end
287
-
288
- it "can download a nested file" do
289
- vendorer
290
- read('public/javascripts/jquery.js').should include('jQuery')
291
- end
292
-
293
- it "can update a nested file" do
294
- vendorer
295
- write('public/javascripts/jquery.js', 'Foo')
296
- vendorer 'update'
297
- read('public/javascripts/jquery.js').should include('jQuery')
298
- end
299
-
300
- it "can update a whole folder" do
301
- write 'Vendorfile', "
302
- folder 'public/javascripts' do
303
- file 'jquery.js', 'http://code.jquery.com/jquery-latest.min.js'
304
- end
305
- file 'xxx.js', 'http://code.jquery.com/jquery-latest.min.js'
306
- "
307
- vendorer
308
- write('public/javascripts/jquery.js', 'Foo')
309
- write('xxx.js', 'Foo')
310
- vendorer 'update public/javascripts'
311
- read('xxx.js').should == "Foo"
312
- read('public/javascripts/jquery.js').should include('jQuery')
313
- end
314
-
315
- it "can be nested multiple times" do
316
- write 'Vendorfile', "
317
- folder 'public' do
318
- folder 'javascripts' do
319
- file 'jquery.js', 'http://code.jquery.com/jquery-latest.min.js'
320
- end
321
- end
322
- "
323
- vendorer
324
- read('public/javascripts/jquery.js').should include('jQuery')
325
- end
326
-
327
- it "can handle trailing slash" do
328
- write 'Vendorfile', read('Vendorfile').sub("javascripts' do", "javascripts/' do")
329
- output = vendorer
330
- read('public/javascripts/jquery.js').should include('jQuery')
331
- output.should_not include('//')
332
- end
333
- end
334
-
335
- context "submodules" do
336
- def create_git_repo(folder, command)
337
- # create a git repo with a submodule
338
- run "mkdir #{folder}"
339
- run "cd #{folder} && git init"
340
- run "cd #{folder} && #{command}"
341
- run "cd #{folder} && git add ."
342
- run "cd #{folder} && git commit -am 'initial'"
343
- end
344
-
345
- let(:vendorer) {
346
- v = Vendorer.new
347
- def v.puts(x) # silence
348
- end
349
- v
350
- }
351
-
352
- it "installs submodules" do
353
- create_git_repo 'a', 'git submodule add `cd ../../../.git && pwd` sub'
354
-
355
- vendorer.folder 'plugin', 'a/.git'
356
-
357
- run("ls -a plugin").should == ".\n..\n.gitmodules\nsub\n"
358
- run("ls -a plugin/sub").should include('Gemfile')
359
- end
360
-
361
- it "installs recursive submodules" do
362
- create_git_repo 'a', 'git submodule add `cd ../../../.git && pwd` sub_a'
363
- create_git_repo 'b', 'git submodule add `cd ../a/.git && pwd` sub_b'
364
-
365
- vendorer.folder 'plugin', 'b/.git'
366
-
367
- run("ls -a plugin").should == ".\n..\n.gitmodules\nsub_b\n"
368
- run("ls -a plugin/sub_b").should == ".\n..\n.git\n.gitmodules\nsub_a\n"
369
- run("ls -a plugin/sub_b/sub_a").should include('Gemfile')
370
- end
371
-
372
- it "installs recursive submodules from a branch" do
373
- create_git_repo 'a', 'git submodule add `cd ../../../.git && pwd` sub_a'
374
- create_git_repo 'b', 'touch .gitmodules'
375
-
376
- # create submodules on a branch
377
- run "cd b && git checkout -b with_submodules"
378
- run "cd b && git submodule add `cd ../a/.git && pwd` sub_b"
379
- run "cd b && git add . && git commit -am 'submodules'"
380
- run "cd b && git checkout master"
381
-
382
- vendorer.folder 'plugin', 'b/.git', :branch => 'with_submodules'
383
-
384
- run("ls -a plugin").should == ".\n..\n.gitmodules\nsub_b\n"
385
- run("ls -a plugin/sub_b").should == ".\n..\n.git\n.gitmodules\nsub_a\n"
386
- run("ls -a plugin/sub_b/sub_a").should include('Gemfile')
387
- end
388
- end
389
- end
390
-
391
- describe '#rewrite' do
392
- it "can rewrite a file to change stuff" do
393
- write "Vendorfile", "
394
- file 'public/javascripts/jquery.min.js', 'http://code.jquery.com/jquery-latest.min.js' do |path|
395
- rewrite(path){|content| content.gsub('j','h') }
396
- end
397
- "
398
- vendorer
399
- content = read('public/javascripts/jquery.min.js')[0..100]
400
- content.should_not include('jQuery')
401
- content.should include('hQuery')
402
- end
403
- end
404
-
405
- describe "#parse" do
406
- it "executes inside vendorer" do
407
- $test = 1
408
- v = Vendorer.new
409
- v.parse '$test = self'
410
- $test.should == v
411
- end
412
-
413
- it "fails with a nice backtrace" do
414
- write 'Vendorfile', "\n\nfile 'XXX'\n\n"
415
- output = vendorer '', :raise => true
416
- output.should include("from Vendorfile:3:in `parse")
417
- end
418
- end
419
-
420
- describe "#init" do
421
- it "creates a Vendorfile via cli" do
422
- vendorer("init")
423
- read("Vendorfile").should include("folder")
424
- end
425
-
426
- context "from ruby" do
427
- before do
428
- Dir.chdir '../../' if RUBY_VERSION < '1.9'
429
- end
430
-
431
- it "creates a Vendorfile via ruby" do
432
- Vendorer.new('init').init
433
- read("Vendorfile").should include("folder")
434
- end
435
-
436
- it "created Vendorfile contains commented out examples" do
437
- Vendorer.new('init').init
438
- read("Vendorfile").split("\n").each { |l| l.should =~ /^(#|\s*$)/ }
439
- end
440
-
441
- it "created Vendorfile contains many examples" do
442
- Vendorer.new('init').init
443
- read("Vendorfile").should include("folder 'vendor/")
444
- read("Vendorfile").should include("file 'vendor/")
445
- read("Vendorfile").should include("rewrite(path)")
446
- end
447
-
448
- it "created Vendorfile does not contain other instructions" do
449
- Vendorer.new('init').init
450
- read("Vendorfile").should_not include("vendorer init")
451
- read("Vendorfile").should_not include("Gemfile")
452
- read("Vendorfile").should_not include("gem install")
453
- read("Vendorfile").should_not include("```")
454
- end
455
- end
456
- end
457
-
458
- describe "#from" do
459
- it "returns to normal after the block" do
460
- write "Vendorfile", "
461
- from '../../.git' do
462
- file 'Readme.md'
463
- end
464
- file 'jquery.js', 'http://code.jquery.com/jquery-latest.min.js'
465
- "
466
- vendorer
467
- ls(".").should =~ ['Readme.md', 'Vendorfile', 'jquery.js']
468
- read('jquery.js').should include("jQuery")
469
- end
470
-
471
- it "can checkout a specific version" do
472
- write "Vendorfile", "
473
- from '../../.git', :tag => 'v0.1.0' do
474
- file 'lib/vendorer/version.rb'
475
- end
476
- "
477
- vendorer
478
- read('lib/vendorer/version.rb').should include("0.1.0")
479
- end
480
-
481
- it "passes the path to the working copy to the block" do
482
- write "Vendorfile", "
483
- from('../../.git'){|path| puts `ls #\{path}` }
484
- "
485
- vendorer.should include('vendorer.gemspec')
486
- end
487
-
488
- context "with file" do
489
- it "copies" do
490
- write "Vendorfile", "
491
- from '../../.git' do
492
- file 'Readme.md'
493
- end
494
- "
495
- vendorer
496
- ls(".").should =~ ['Readme.md', 'Vendorfile']
497
- end
498
-
499
- it "copies to/from a nested location" do
500
- write "Vendorfile", "
501
- from '../../.git' do
502
- file 'foo/bar/renamed.rb', 'lib/vendorer.rb'
503
- end
504
- "
505
- vendorer
506
- ls(".").should =~ ['foo', 'Vendorfile']
507
- ls("./foo/bar").should =~ ['renamed.rb']
508
- end
509
-
510
- it "renames" do
511
- write "Vendorfile", "
512
- from '../../.git' do
513
- file 'Readme.renamed', 'Readme.md'
514
- end
515
- "
516
- vendorer
517
- ls(".").should =~ ['Readme.renamed', 'Vendorfile']
518
- end
519
- end
520
-
521
- context "with folder" do
522
- it "copies" do
523
- write "Vendorfile", "
524
- from '../../.git' do
525
- folder 'lib'
526
- end
527
- "
528
- vendorer
529
- ls(".").should =~ ['lib', 'Vendorfile']
530
- ls("./lib").should =~ ['vendorer', 'vendorer.rb']
531
- end
532
-
533
- it "copies to/from a nested location" do
534
- write "Vendorfile", "
535
- from '../../.git' do
536
- folder 'foo/bar', 'lib/vendorer'
537
- end
538
- "
539
- vendorer
540
- ls(".").should =~ ['foo', 'Vendorfile']
541
- ls("./foo/bar").should =~ ['version.rb']
542
- end
543
-
544
- it "renames" do
545
- write "Vendorfile", "
546
- from '../../.git' do
547
- folder 'foo', 'lib'
548
- end
549
- "
550
- vendorer
551
- ls(".").should =~ ['foo', 'Vendorfile']
552
- ls("./foo").should =~ ['vendorer', 'vendorer.rb']
553
- end
554
- end
555
-
556
- context "with folder nesting" do
557
- it "copies" do
558
- write "Vendorfile", "
559
- folder 'foo' do
560
- from '../../.git' do
561
- folder 'lib'
562
- file 'Gemfile'
563
- end
564
- end
565
- "
566
- vendorer
567
- ls(".").should =~ ['foo', 'Vendorfile']
568
- ls("./foo").should =~ ['Gemfile', 'lib']
569
- ls("./foo/lib").should =~ ['vendorer', 'vendorer.rb']
570
- end
571
- end
572
-
573
- it "gives 'not found' error for non-existent file" do
574
- write "Vendorfile", "
575
- from '../../.git', :tag => 'b1e6460' do
576
- file 'bogus'
577
- end
578
- "
579
- output = vendorer '', :raise => true
580
- output.should include("'bogus' not found in ../../.git")
581
- end
582
- end
583
- end
data/vendorer.gemspec DELETED
@@ -1,13 +0,0 @@
1
- $LOAD_PATH.unshift File.expand_path('../lib', __FILE__)
2
- name = "vendorer"
3
- require "#{name}/version"
4
-
5
- Gem::Specification.new name, Vendorer::VERSION do |s|
6
- s.summary = "Keep your vendor files up to date"
7
- s.authors = ["Michael Grosser"]
8
- s.email = "michael@grosser.it"
9
- s.homepage = "http://github.com/grosser/#{name}"
10
- s.files = `git ls-files`.split("\n")
11
- s.license = 'MIT'
12
- s.executables = ["vendorer"]
13
- end