reapack-index 1.1rc4 → 1.1rc5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/lib/reapack/index/cli/options.rb +1 -1
- data/lib/reapack/index/cli.rb +14 -7
- data/lib/reapack/index/gem_version.rb +2 -1
- data/lib/reapack/index/git.rb +22 -1
- data/lib/reapack/index/provides.rb +10 -8
- data/lib/reapack/index/scanner.rb +16 -3
- data/lib/reapack/index.rb +1 -0
- data/setup/reapack-index.nsi +1 -1
- data/test/cli/test_scan.rb +109 -7
- data/test/index/test_provides.rb +43 -0
- data/test/index/test_scan.rb +26 -0
- data/test/test_git.rb +21 -0
- data/test/test_index.rb +2 -0
- data/test/test_provides.rb +12 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 521e9cf95253116fdbdae336d5e103e412800a63
|
4
|
+
data.tar.gz: 0ba6258b623ec7dc4daefc2055ba8cd9e5a147a8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0cbe24ed175822879c0dc9fff484b6311c7d3a53d4000d8ee7036d885184e85b448f8f953fb5ca5f50b872556cc826e2b521845166fca18637867d98f9dc5624
|
7
|
+
data.tar.gz: a747dc392326879db9980f449ac483d13b92d8a6d0de0e003f2b6242957cf23e718f24ea8cc4b9af68b6d5f55f20ffdc2e48770b95a504ae3543120e300adcc3
|
data/README.md
CHANGED
@@ -29,7 +29,7 @@ reapack-index [options] [path-to-your-repository]
|
|
29
29
|
```
|
30
30
|
Modes:
|
31
31
|
-c, --check Test every package including uncommited changes and exit
|
32
|
-
-s, --scan [
|
32
|
+
-s, --scan [PATH|COMMIT] Scan new commits (default), a path or a specific commit
|
33
33
|
--no-scan Do not scan for new commits
|
34
34
|
--rebuild Clear the index and rescan the whole git history
|
35
35
|
Indexer options:
|
@@ -56,7 +56,7 @@ class ReaPack::Index::CLI
|
|
56
56
|
opts[:check] = true
|
57
57
|
end
|
58
58
|
|
59
|
-
op.on '-s', '--scan [
|
59
|
+
op.on '-s', '--scan [PATH|COMMIT]', 'Scan new commits (default), a path or a specific commit' do |commit|
|
60
60
|
opts[:check] = opts[:rebuild] = false
|
61
61
|
opts[:scan] ||= []
|
62
62
|
|
data/lib/reapack/index/cli.rb
CHANGED
@@ -78,16 +78,23 @@ private
|
|
78
78
|
else
|
79
79
|
@index.auto_bump_commit = false
|
80
80
|
|
81
|
+
# call process_commit only once per commit instead of once per --scan argument
|
82
|
+
commits = Hash.new
|
81
83
|
@opts[:scan].map {|hash|
|
82
|
-
|
83
|
-
|
84
|
+
files = @git.last_commits_for @git.relative_path(hash)
|
85
|
+
if !files.empty?
|
86
|
+
files.each {|commit, files|
|
87
|
+
commits[commit] = Array.new unless commits.has_key? commit # keep nil
|
88
|
+
commits[commit].concat files unless commits[commit].nil?
|
89
|
+
}
|
84
90
|
elsif c = @git.get_commit(hash)
|
85
|
-
c
|
91
|
+
commits[c] = nil
|
86
92
|
else
|
87
93
|
$stderr.puts "--scan: bad file or revision: '%s'" % hash
|
88
94
|
throw :stop, false
|
89
95
|
end
|
90
|
-
}
|
96
|
+
}
|
97
|
+
commits.to_a
|
91
98
|
end
|
92
99
|
|
93
100
|
unless commits.empty?
|
@@ -97,7 +104,7 @@ private
|
|
97
104
|
end
|
98
105
|
end
|
99
106
|
|
100
|
-
def process_commit(commit,
|
107
|
+
def process_commit(commit, files = nil)
|
101
108
|
if @opts[:verbose]
|
102
109
|
log 'processing %s: %s' % [commit.short_id, commit.summary]
|
103
110
|
end
|
@@ -108,9 +115,9 @@ private
|
|
108
115
|
|
109
116
|
commit.each_diff
|
110
117
|
.select {|diff|
|
111
|
-
(
|
118
|
+
(files.nil? || files.include?(diff.file)) &&
|
112
119
|
(not ignored? expand_path(diff.file)) &&
|
113
|
-
ReaPack::Index.
|
120
|
+
ReaPack::Index.is_package?(diff.file)
|
114
121
|
}
|
115
122
|
.sort_by {|diff|
|
116
123
|
diff.status == :deleted || diff.new_header[:noindex] ? 0 : 1
|
data/lib/reapack/index/git.rb
CHANGED
@@ -50,6 +50,20 @@ class ReaPack::Index
|
|
50
50
|
}
|
51
51
|
end
|
52
52
|
|
53
|
+
def last_commits_for(pattern)
|
54
|
+
dir = pattern.empty? ? '' : pattern + '/'
|
55
|
+
out = Hash.new
|
56
|
+
last_commit.filelist.each {|file|
|
57
|
+
path = File.split(file).first + '/'
|
58
|
+
next unless path.start_with?(dir) || file == pattern
|
59
|
+
|
60
|
+
commit = last_commit_for(file)
|
61
|
+
out[commit] ||= Array.new
|
62
|
+
out[commit] << file
|
63
|
+
}
|
64
|
+
out
|
65
|
+
end
|
66
|
+
|
53
67
|
def guess_url_template
|
54
68
|
remote = @repo.remotes['origin']
|
55
69
|
return unless remote
|
@@ -67,7 +81,8 @@ class ReaPack::Index
|
|
67
81
|
root = Pathname.new self.path
|
68
82
|
file = Pathname.new File.expand_path(path)
|
69
83
|
|
70
|
-
file.relative_path_from(root).to_s
|
84
|
+
rel = file.relative_path_from(root).to_s
|
85
|
+
rel == '.' ? '' : rel
|
71
86
|
end
|
72
87
|
|
73
88
|
def create_commit(message, files)
|
@@ -163,6 +178,12 @@ class ReaPack::Index
|
|
163
178
|
o && id == o.id
|
164
179
|
end
|
165
180
|
|
181
|
+
alias :eql? :==
|
182
|
+
|
183
|
+
def hash
|
184
|
+
id.hash
|
185
|
+
end
|
186
|
+
|
166
187
|
def inspect
|
167
188
|
"#<#{self.class} #{id} #{summary}>"
|
168
189
|
end
|
@@ -1,11 +1,15 @@
|
|
1
1
|
class ReaPack::Index
|
2
|
-
Provides = Struct.new :file_pattern, :url_template, :platform, :type, :main do
|
2
|
+
Provides = Struct.new :file_pattern, :url_template, :target, :platform, :type, :main do
|
3
3
|
PROVIDES_REGEX = /
|
4
4
|
\A
|
5
|
-
( \[ \s* (?<options> .+? ) \s* \] )?
|
5
|
+
(?: \[ \s* (?<options> .+? ) \s* \] )?
|
6
6
|
\s*
|
7
|
-
(?<
|
8
|
-
(
|
7
|
+
(?<pattern>.+?)
|
8
|
+
(?:
|
9
|
+
\s*>\s*(?<target>.+?)
|
10
|
+
|
|
11
|
+
\s+ (?<url_tpl>(?:file|https?):\/\/.+)
|
12
|
+
)?
|
9
13
|
\z
|
10
14
|
/x.freeze
|
11
15
|
|
@@ -24,11 +28,9 @@ class ReaPack::Index
|
|
24
28
|
m = line.strip.match PROVIDES_REGEX
|
25
29
|
return unless m
|
26
30
|
|
27
|
-
|
31
|
+
instance = self.new m[:pattern], m[:url_tpl], m[:target]
|
28
32
|
|
29
|
-
|
30
|
-
|
31
|
-
options and options.split("\x20").each {|user_opt|
|
33
|
+
m[:options]&.split("\x20")&.each {|user_opt|
|
32
34
|
user_opt.strip!
|
33
35
|
next if user_opt.empty?
|
34
36
|
|
@@ -37,7 +37,7 @@ class ReaPack::Index
|
|
37
37
|
|
38
38
|
HEADER_ALIASES = {
|
39
39
|
[:reascript_name, :jsfx_name, :theme_name,
|
40
|
-
:extension_name, :desc] => :description,
|
40
|
+
:extension_name, :desc, :name] => :description,
|
41
41
|
[:links, :website] => :link,
|
42
42
|
:screenshots => :screenshot,
|
43
43
|
}.freeze
|
@@ -47,6 +47,7 @@ class ReaPack::Index
|
|
47
47
|
def initialize(cat, pkg, mh, index)
|
48
48
|
@cat, @pkg, @mh, @index = cat, pkg, mh, index
|
49
49
|
@cselector = @index.cdetector[pkg.path]
|
50
|
+
@self_overriden = false
|
50
51
|
end
|
51
52
|
|
52
53
|
def run
|
@@ -76,7 +77,7 @@ class ReaPack::Index
|
|
76
77
|
@cselector.clear
|
77
78
|
sources = parse_provides @mh[:provides]
|
78
79
|
|
79
|
-
|
80
|
+
unless metapackage? || @self_overriden
|
80
81
|
# add the package itself as a main source
|
81
82
|
src = Source.new make_url(@pkg.path)
|
82
83
|
src.detect_sections @pkg
|
@@ -142,6 +143,13 @@ class ReaPack::Index
|
|
142
143
|
end
|
143
144
|
|
144
145
|
files.map {|file|
|
146
|
+
if line.target
|
147
|
+
target = line.target
|
148
|
+
expanded = ReaPack::Index.expand line.target, @pkg.category
|
149
|
+
else
|
150
|
+
target = file
|
151
|
+
end
|
152
|
+
|
145
153
|
src = Source.new make_url(file, line.url_template)
|
146
154
|
src.platform = line.platform
|
147
155
|
src.type = line.type
|
@@ -154,7 +162,7 @@ class ReaPack::Index
|
|
154
162
|
end
|
155
163
|
|
156
164
|
@cselector.push src.type || @pkg.type, src.platform,
|
157
|
-
line.url_template ? expanded :
|
165
|
+
line.url_template || line.target ? expanded : target
|
158
166
|
|
159
167
|
if file == @pkg.path
|
160
168
|
if metapackage?
|
@@ -164,9 +172,14 @@ class ReaPack::Index
|
|
164
172
|
# not a metapackage? then the current file is registered by default
|
165
173
|
src.detect_sections @pkg
|
166
174
|
end
|
175
|
+
|
176
|
+
src.file = target if line.target
|
177
|
+
@self_overriden = true
|
167
178
|
else
|
168
179
|
if line.url_template
|
169
180
|
src.file = file
|
181
|
+
elsif line.target
|
182
|
+
src.file = target
|
170
183
|
else
|
171
184
|
src.file = Pathname.new(file).relative_path_from(pathdir).to_s
|
172
185
|
end
|
data/lib/reapack/index.rb
CHANGED
data/setup/reapack-index.nsi
CHANGED
data/test/cli/test_scan.rb
CHANGED
@@ -318,8 +318,6 @@ processing [a-f0-9]{7}: third commit
|
|
318
318
|
end
|
319
319
|
|
320
320
|
def test_scan_file
|
321
|
-
options = [ '--scan', 'cat/test1.lua']
|
322
|
-
|
323
321
|
setup = proc {
|
324
322
|
Dir.chdir @git.path
|
325
323
|
|
@@ -329,19 +327,123 @@ processing [a-f0-9]{7}: third commit
|
|
329
327
|
@git.create_commit 'second commit', [
|
330
328
|
mkfile('cat/test1.lua', '@version 2'),
|
331
329
|
mkfile('cat/test2.lua', '@version 2.2'),
|
330
|
+
mkfile('cat/test3.lua', '@version 3'),
|
332
331
|
]
|
333
332
|
|
334
333
|
@git.create_commit 'third commit',
|
335
|
-
[mkfile('cat/
|
334
|
+
[mkfile('cat/test4.lua', '@version 4')]
|
335
|
+
}
|
336
|
+
|
337
|
+
wrapper ['--progress', '--scan', 'cat/test1.lua', '--scan', 'cat/test2.lua'],
|
338
|
+
setup: setup do
|
339
|
+
stdin, stderr = capture_io { @cli.run }
|
340
|
+
|
341
|
+
contents = read_index
|
342
|
+
refute_match 'version name="1"', contents, 'The initial commit was scanned'
|
343
|
+
assert_match 'version name="2"', contents
|
344
|
+
assert_match 'test2.lua', contents, 'test2.lua was indexed'
|
345
|
+
refute_match 'test3.lua', contents, 'The third commit was scanned'
|
346
|
+
|
347
|
+
assert_match /Indexing commit \d+ of 1/, stderr # not 3 commits!
|
348
|
+
end
|
349
|
+
end
|
350
|
+
|
351
|
+
def test_scan_directory
|
352
|
+
setup = proc {
|
353
|
+
Dir.chdir @git.path
|
354
|
+
|
355
|
+
mkfile('dir1/uncommited.lua')
|
356
|
+
|
357
|
+
@git.create_commit 'initial commit',
|
358
|
+
[mkfile('dir1/test1.lua', '@version 1')]
|
359
|
+
|
360
|
+
@git.create_commit 'second commit', [
|
361
|
+
mkfile('dir1/test2.lua', '@version 2'),
|
362
|
+
mkfile('dir1/sub/test3.lua', '@version 3'),
|
363
|
+
mkfile('dir2/test4.lua', '@version 4'),
|
364
|
+
]
|
365
|
+
}
|
366
|
+
|
367
|
+
wrapper ['--progress', '--scan', 'dir1'], setup: setup do
|
368
|
+
stdout, stderr = capture_io { @cli.run }
|
369
|
+
|
370
|
+
contents = read_index
|
371
|
+
assert_match 'test1.lua', contents
|
372
|
+
assert_match 'test2.lua', contents
|
373
|
+
assert_match 'test3.lua', contents
|
374
|
+
refute_match 'test4.lua', contents, 'test4.lua was indexed'
|
375
|
+
|
376
|
+
assert_match /Indexing commit \d+ of 2/, stderr # not 3 commits!
|
377
|
+
end
|
378
|
+
end
|
379
|
+
|
380
|
+
def test_scan_directory_uncommited
|
381
|
+
setup = proc {
|
382
|
+
Dir.chdir @git.path
|
383
|
+
|
384
|
+
mkfile('dir/uncommited.lua')
|
385
|
+
}
|
386
|
+
|
387
|
+
wrapper ['--scan', 'dir'], setup: setup do
|
388
|
+
@git.create_commit 'initial commit', [mkfile('README.md')]
|
389
|
+
|
390
|
+
assert_output nil, /--scan: bad file or revision: 'dir'/i do
|
391
|
+
assert_throws(:stop, false) { @cli.run }
|
392
|
+
end
|
393
|
+
end
|
394
|
+
end
|
395
|
+
|
396
|
+
def test_scan_directory_absolute
|
397
|
+
options = ['--scan', nil]
|
398
|
+
|
399
|
+
setup = proc {
|
400
|
+
@git.create_commit 'initial commit',
|
401
|
+
[mkfile('dir/test.lua', '@version 1')]
|
402
|
+
options[1] = mkpath('dir')
|
336
403
|
}
|
337
404
|
|
338
405
|
wrapper options, setup: setup do
|
339
406
|
capture_io { @cli.run }
|
340
407
|
|
341
|
-
|
342
|
-
|
343
|
-
|
344
|
-
|
408
|
+
assert_match 'test.lua', read_index
|
409
|
+
end
|
410
|
+
end
|
411
|
+
|
412
|
+
def test_scan_directory_root
|
413
|
+
setup = proc {
|
414
|
+
Dir.chdir @git.path
|
415
|
+
|
416
|
+
@git.create_commit 'initial commit',
|
417
|
+
[mkfile('dir1/test1.lua', '@version 1'),
|
418
|
+
mkfile('dir2/test2.lua', '@version 2')]
|
419
|
+
}
|
420
|
+
|
421
|
+
wrapper ['--scan', '.'], setup: setup do
|
422
|
+
capture_io { @cli.run }
|
423
|
+
|
424
|
+
contents = read_index
|
425
|
+
assert_match 'test1.lua', contents
|
426
|
+
assert_match 'test2.lua', contents
|
427
|
+
end
|
428
|
+
end
|
429
|
+
|
430
|
+
def test_scan_stick_to_full_commit
|
431
|
+
options = ['--scan', nil, '--scan', 'cat/test1.lua']
|
432
|
+
|
433
|
+
setup = proc {
|
434
|
+
Dir.chdir @git.path
|
435
|
+
|
436
|
+
@git.create_commit 'initial commit',
|
437
|
+
[mkfile('cat/test1.lua', '@version 1'),
|
438
|
+
mkfile('cat/test2.lua', '@version 2')]
|
439
|
+
|
440
|
+
options[1] = @git.last_commit.id
|
441
|
+
}
|
442
|
+
|
443
|
+
wrapper options, setup: setup do
|
444
|
+
capture_io { @cli.run }
|
445
|
+
|
446
|
+
assert_match 'test2.lua', read_index
|
345
447
|
end
|
346
448
|
end
|
347
449
|
|
data/test/index/test_provides.rb
CHANGED
@@ -360,4 +360,47 @@ class TestIndex::Provides < MiniTest::Test
|
|
360
360
|
refute_match 'main="main"', contents
|
361
361
|
assert_match '<source>http://host/Category/script.lua</source>', contents
|
362
362
|
end
|
363
|
+
|
364
|
+
def test_rename_target
|
365
|
+
index = ReaPack::Index.new @dummy_path
|
366
|
+
index.files = ['Category/source.lua', 'Category/source.png']
|
367
|
+
index.url_template = 'http://host/$path'
|
368
|
+
|
369
|
+
index.scan index.files.first, <<-IN
|
370
|
+
@version 1.0
|
371
|
+
@provides
|
372
|
+
source.lua > target.lua
|
373
|
+
source.png > target.png
|
374
|
+
IN
|
375
|
+
|
376
|
+
index.write!
|
377
|
+
|
378
|
+
xml = File.read index.path
|
379
|
+
|
380
|
+
assert_match 'file="target.lua"', xml
|
381
|
+
assert_match 'file="target.png"', xml
|
382
|
+
refute_match 'file="source.png"', xml
|
383
|
+
|
384
|
+
assert_equal 1,
|
385
|
+
xml.scan(/#{Regexp.quote('http://host/Category/source.lua')}/).count
|
386
|
+
assert_match 'http://host/Category/source.png', xml
|
387
|
+
end
|
388
|
+
|
389
|
+
def test_rename_target_no_wrong_conflict
|
390
|
+
index = ReaPack::Index.new @dummy_path
|
391
|
+
|
392
|
+
# target.lua is not in the same directory
|
393
|
+
index.files = ['Category/s1.lua', 'target.lua', 'Category/s2.lua']
|
394
|
+
index.url_template = 'http://host/$path'
|
395
|
+
|
396
|
+
index.scan index.files.first, <<-IN
|
397
|
+
@version 1.0
|
398
|
+
@provides . > target.lua
|
399
|
+
IN
|
400
|
+
|
401
|
+
index.scan index.files.last, <<-IN
|
402
|
+
@version 1.0
|
403
|
+
@provides ../target.lua
|
404
|
+
IN
|
405
|
+
end
|
363
406
|
end
|
data/test/index/test_scan.rb
CHANGED
@@ -226,4 +226,30 @@ class TestIndex::Scan < MiniTest::Test
|
|
226
226
|
index.write!
|
227
227
|
assert_equal expected, File.read(index.path)
|
228
228
|
end
|
229
|
+
|
230
|
+
def test_langpack
|
231
|
+
index = ReaPack::Index.new @dummy_path
|
232
|
+
index.url_template = 'http://host/$path'
|
233
|
+
index.files = ['Translations/French.ReaperLangPack']
|
234
|
+
|
235
|
+
index.scan index.files.first, <<-IN
|
236
|
+
@version 1.0
|
237
|
+
IN
|
238
|
+
|
239
|
+
expected = <<-XML
|
240
|
+
<?xml version="1.0" encoding="utf-8"?>
|
241
|
+
<index version="1">
|
242
|
+
<category name="Translations">
|
243
|
+
<reapack name="French.ReaperLangPack" type="langpack">
|
244
|
+
<version name="1.0">
|
245
|
+
<source>http://host/Translations/French.ReaperLangPack</source>
|
246
|
+
</version>
|
247
|
+
</reapack>
|
248
|
+
</category>
|
249
|
+
</index>
|
250
|
+
XML
|
251
|
+
|
252
|
+
index.write!
|
253
|
+
assert_equal expected, File.read(index.path)
|
254
|
+
end
|
229
255
|
end
|
data/test/test_git.rb
CHANGED
@@ -19,6 +19,7 @@ class TestGit < MiniTest::Test
|
|
19
19
|
def test_relative_path
|
20
20
|
assert_equal 'test', @git.relative_path(File.join(@git.path, 'test'))
|
21
21
|
assert_match 'test', @git.relative_path('test')
|
22
|
+
assert_equal '', @git.relative_path(File.join(@git.path, '.'))
|
22
23
|
end
|
23
24
|
|
24
25
|
def test_guess_url_template
|
@@ -140,6 +141,26 @@ class TestGit < MiniTest::Test
|
|
140
141
|
assert_nil @git.last_commit_for('foo/bar')
|
141
142
|
end
|
142
143
|
|
144
|
+
def test_last_commits_for_directory
|
145
|
+
c1 = @git.create_commit 'first commit', [mkfile('hello/world')]
|
146
|
+
c2 = @git.create_commit 'second commit', [mkfile('hello/world', 'modified')]
|
147
|
+
c3 = @git.create_commit 'third commit', [mkfile('chunky/bacon')]
|
148
|
+
c4 = @git.create_commit 'fourth commit', [mkfile('hello/sub/world')]
|
149
|
+
c5 = @git.create_commit 'fifth commit',
|
150
|
+
[mkfile('helloworld/a'), mkfile('hello-world')]
|
151
|
+
|
152
|
+
assert_equal({c2 => ['hello/world'], c4 => ['hello/sub/world']},
|
153
|
+
@git.last_commits_for('hello'))
|
154
|
+
assert_equal({c3 => ['chunky/bacon']}, @git.last_commits_for('chunky'))
|
155
|
+
assert_equal({c4 => ['hello/sub/world']}, @git.last_commits_for('hello/sub'))
|
156
|
+
assert_empty @git.last_commits_for('foobar')
|
157
|
+
|
158
|
+
assert_equal({c2 => ['hello/world']}, @git.last_commits_for('hello/world'))
|
159
|
+
assert_equal({c3 => ['chunky/bacon'], c5 => ['hello-world', 'helloworld/a'],
|
160
|
+
c4 => ['hello/sub/world'], c2 => ['hello/world']},
|
161
|
+
@git.last_commits_for(''))
|
162
|
+
end
|
163
|
+
|
143
164
|
def test_multibyte_filename
|
144
165
|
filename = "\342\200\224.lua"
|
145
166
|
|
data/test/test_index.rb
CHANGED
@@ -20,6 +20,7 @@ class TestIndex < MiniTest::Test
|
|
20
20
|
'Cat/test.jsfx' => :effect,
|
21
21
|
'Cat/test.data' => :data,
|
22
22
|
'Cat/test.theme' => :theme,
|
23
|
+
'Cat/test.ReaperLangPack' => :langpack,
|
23
24
|
}.each {|fn, type|
|
24
25
|
actual = ReaPack::Index.type_of fn
|
25
26
|
assert_equal type, actual,
|
@@ -41,6 +42,7 @@ class TestIndex < MiniTest::Test
|
|
41
42
|
'ext' => :extension,
|
42
43
|
'data' => :data,
|
43
44
|
'theme' => :theme,
|
45
|
+
'langpack' => :langpack,
|
44
46
|
}.each {|input, type|
|
45
47
|
actual = ReaPack::Index.resolve_type input
|
46
48
|
assert_equal type, actual,
|
data/test/test_provides.rb
CHANGED
@@ -66,6 +66,18 @@ class TestProvides < MiniTest::Test
|
|
66
66
|
].map {|l| ReaPack::Index::Provides.parse(l).main? }
|
67
67
|
end
|
68
68
|
|
69
|
+
def test_target
|
70
|
+
l1 = ReaPack::Index::Provides.parse 'src.txt > dst.txt'
|
71
|
+
assert_equal 'src.txt', l1.file_pattern
|
72
|
+
assert_equal 'dst.txt', l1.target
|
73
|
+
assert_nil l1.url_template
|
74
|
+
|
75
|
+
l2 = ReaPack::Index::Provides.parse 'src.txt>dst.txt http://test.com'
|
76
|
+
assert_equal 'src.txt', l2.file_pattern
|
77
|
+
assert_equal 'dst.txt http://test.com', l2.target
|
78
|
+
assert_nil l2.url_template
|
79
|
+
end
|
80
|
+
|
69
81
|
def test_invalid_options
|
70
82
|
assert_equal ["unknown option 'HeLlO'", "unknown option 'Test'"],
|
71
83
|
[
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: reapack-index
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1rc5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- cfillion
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-11-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|