reapack-index 1.0beta2 → 1.0beta3

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.
@@ -9,7 +9,7 @@ class TestIndex < MiniTest::Test
9
9
  end
10
10
 
11
11
  def teardown
12
- File.delete @dummy_path if File.exists? @dummy_path
12
+ File.delete @dummy_path if File.exist? @dummy_path
13
13
  end
14
14
 
15
15
  def test_type_of
@@ -19,14 +19,43 @@ class TestIndex < MiniTest::Test
19
19
  assert_equal :script, ReaPack::Index.type_of('Track/instrument_track.eel')
20
20
  end
21
21
 
22
- def test_source_for
23
- assert_nil ReaPack::Index.source_for('http://google.com')
22
+ def test_url_template
23
+ index = ReaPack::Index.new @dummy_path
24
+ assert_nil index.url_template
25
+
26
+ index.url_template = 'https://get.cfillion.tk/?v=$version&f=$path'
27
+ assert_equal 'https://get.cfillion.tk/?v=$version&f=$path', index.url_template
28
+
29
+ index.url_template = 'https://google.com/$path'
30
+ assert_equal 'https://google.com/$path', index.url_template
31
+
32
+ error = assert_raises ReaPack::Index::Error do
33
+ index.url_template = 'no path placeholder!'
34
+ end
24
35
 
25
- assert_equal 'https://github.com/User/Repo/raw/$commit/$path',
26
- ReaPack::Index.source_for('git@github.com:User/Repo.git')
36
+ assert_match '$path', error.message
37
+ assert_equal 'https://google.com/$path', index.url_template
27
38
 
28
- assert_equal 'https://github.com/User/Repo/raw/$commit/$path',
29
- ReaPack::Index.source_for('https://github.com/User/Repo.git')
39
+ index.url_template = nil
40
+ assert_nil index.url_template
41
+ end
42
+
43
+ def test_url_template_unsupported_scheme
44
+ index = ReaPack::Index.new @dummy_path
45
+
46
+ error = assert_raises ReaPack::Index::Error do
47
+ index.url_template = 'scp://cfillion.tk/$path'
48
+ end
49
+
50
+ assert_match /invalid url/i, error.message
51
+ end
52
+
53
+ def test_files
54
+ index = ReaPack::Index.new @dummy_path
55
+ assert_empty index.files
56
+
57
+ index.files = ['a', 'b/c']
58
+ assert_equal ['a', 'b/c'], index.files
30
59
  end
31
60
 
32
61
  def test_validate_standalone
@@ -98,10 +127,9 @@ class TestIndex < MiniTest::Test
98
127
 
99
128
  def test_new_package
100
129
  index = ReaPack::Index.new @dummy_path
101
- assert_empty index.files
102
-
103
130
  index.files = ['Category/Path/Instrument Track.lua']
104
- index.source_pattern = '$path'
131
+ index.url_template = 'http://host/$path'
132
+
105
133
  index.scan index.files.first, <<-IN
106
134
  @version 1.0
107
135
  @changelog Hello World
@@ -122,7 +150,7 @@ class TestIndex < MiniTest::Test
122
150
  <reapack name="Instrument Track.lua" type="script">
123
151
  <version name="1.0">
124
152
  <changelog><![CDATA[Hello World]]></changelog>
125
- <source platform="all">Category/Path/Instrument%20Track.lua</source>
153
+ <source platform="all">http://host/Category/Path/Instrument%20Track.lua</source>
126
154
  </version>
127
155
  </reapack>
128
156
  </category>
@@ -134,10 +162,9 @@ class TestIndex < MiniTest::Test
134
162
 
135
163
  def test_default_category
136
164
  index = ReaPack::Index.new @dummy_path
137
- assert_empty index.files
138
-
139
165
  index.files = ['script.lua', 'Hello/World']
140
- index.source_pattern = '$path'
166
+ index.url_template = 'http://host/$path'
167
+
141
168
  index.scan index.files.first, <<-IN
142
169
  @version 1.0
143
170
  @provides Hello/World
@@ -149,8 +176,8 @@ class TestIndex < MiniTest::Test
149
176
  <category name="Other">
150
177
  <reapack name="script.lua" type="script">
151
178
  <version name="1.0">
152
- <source platform="all">script.lua</source>
153
- <source platform="all" file="Hello/World">Hello/World</source>
179
+ <source platform="all">http://host/script.lua</source>
180
+ <source platform="all" file="Hello/World">http://host/Hello/World</source>
154
181
  </version>
155
182
  </reapack>
156
183
  </category>
@@ -164,9 +191,10 @@ class TestIndex < MiniTest::Test
164
191
  def test_edit_version_amend_off
165
192
  index = ReaPack::Index.new @real_path
166
193
  assert_equal false, index.amend
167
- index.source_pattern = 'http://google.com/$path'
168
194
 
195
+ index.url_template = 'http://google.com/$path'
169
196
  index.files = ['Category Name/Hello World.lua']
197
+
170
198
  index.scan index.files.first, <<-IN
171
199
  @version 1.0
172
200
  @changelog New Changelog!
@@ -181,8 +209,9 @@ class TestIndex < MiniTest::Test
181
209
  index.amend = true
182
210
  assert_equal true, index.amend
183
211
 
184
- index.source_pattern = 'http://google.com/$path'
212
+ index.url_template = 'http://google.com/$path'
185
213
  index.files = ['Category Name/Hello World.lua']
214
+
186
215
  index.scan index.files.first, <<-IN
187
216
  @version 1.0
188
217
  @changelog New Changelog!
@@ -212,9 +241,10 @@ class TestIndex < MiniTest::Test
212
241
  def test_edit_version_amend_unmodified
213
242
  index = ReaPack::Index.new @real_path
214
243
  index.amend = true
215
- index.source_pattern = 'https://google.com/$path'
216
244
 
245
+ index.url_template = 'https://google.com/$path'
217
246
  index.files = ['Category Name/Hello World.lua']
247
+
218
248
  index.scan index.files.first, <<-IN
219
249
  @version 1.0
220
250
  @author cfillion
@@ -227,12 +257,10 @@ class TestIndex < MiniTest::Test
227
257
 
228
258
  def test_file_unlisted
229
259
  index = ReaPack::Index.new @dummy_path
230
- index.source_pattern = 'http://google.com/$path'
260
+ index.url_template = 'http://google.com/$path'
231
261
 
232
262
  error = assert_raises ReaPack::Index::Error do
233
- index.scan 'unlisted.lua', <<-IN
234
- @version 1.0
235
- IN
263
+ index.scan 'unlisted.lua', '@version 1.0'
236
264
  end
237
265
 
238
266
  assert_equal 'unlisted.lua: No such file or directory', error.message
@@ -246,38 +274,25 @@ class TestIndex < MiniTest::Test
246
274
  assert_equal expected, File.read(index.path)
247
275
  end
248
276
 
249
- def test_source_pattern_unset
277
+ def test_make_url_without_template
250
278
  index = ReaPack::Index.new @dummy_path
251
279
  index.files = ['script.lua']
252
280
 
253
281
  error = assert_raises ReaPack::Index::Error do
254
- index.scan index.files.first, <<-IN
255
- @version 1.0
256
- IN
282
+ index.scan index.files.first, '@version 1.0'
257
283
  end
258
284
 
259
- assert_match /source pattern is unset/i, error.message
260
- end
261
-
262
- def test_source_pattern_no_path
263
- index = ReaPack::Index.new @dummy_path
264
- index.files = ['script.lua']
265
-
266
- assert_raises ArgumentError do
267
- index.source_pattern = 'no path variable here'
268
- end
285
+ assert_match /url template is unset/i, error.message
269
286
  end
270
287
 
271
- def test_source_pattern_defaut_branch
288
+ def test_make_url_defaut_branch
272
289
  index = ReaPack::Index.new @dummy_path
273
290
  index.files = ['Category/script.lua']
274
- index.source_pattern = '$commit/$path'
291
+ index.url_template = 'http://host/$commit/$path'
275
292
 
276
293
  index.commit = nil
277
294
 
278
- index.scan index.files.first, <<-IN
279
- @version 1.0
280
- IN
295
+ index.scan index.files.first, '@version 1.0'
281
296
 
282
297
  expected = <<-XML
283
298
  <?xml version="1.0" encoding="utf-8"?>
@@ -285,7 +300,7 @@ class TestIndex < MiniTest::Test
285
300
  <category name="Category">
286
301
  <reapack name="script.lua" type="script">
287
302
  <version name="1.0">
288
- <source platform="all">master/Category/script.lua</source>
303
+ <source platform="all">http://host/master/Category/script.lua</source>
289
304
  </version>
290
305
  </reapack>
291
306
  </category>
@@ -296,16 +311,14 @@ class TestIndex < MiniTest::Test
296
311
  assert_equal expected, File.read(@dummy_path)
297
312
  end
298
313
 
299
- def test_source_pattern_commit
314
+ def test_make_url_commit
300
315
  index = ReaPack::Index.new @dummy_path
301
316
  index.files = ['Category/script.lua']
302
- index.source_pattern = '$commit/$path'
317
+ index.url_template = 'http://host/$commit/$path'
303
318
 
304
319
  index.commit = @commit
305
320
 
306
- index.scan index.files.first, <<-IN
307
- @version 1.0
308
- IN
321
+ index.scan index.files.first, '@version 1.0'
309
322
 
310
323
  expected = <<-XML
311
324
  <?xml version="1.0" encoding="utf-8"?>
@@ -313,7 +326,7 @@ class TestIndex < MiniTest::Test
313
326
  <category name="Category">
314
327
  <reapack name="script.lua" type="script">
315
328
  <version name="1.0">
316
- <source platform="all">#{@commit}/Category/script.lua</source>
329
+ <source platform="all">http://host/#{@commit}/Category/script.lua</source>
317
330
  </version>
318
331
  </reapack>
319
332
  </category>
@@ -324,17 +337,9 @@ class TestIndex < MiniTest::Test
324
337
  assert_equal expected, File.read(@dummy_path)
325
338
  end
326
339
 
327
- def test_nil_source_pattern
328
- index = ReaPack::Index.new @dummy_path
329
-
330
- error = assert_raises ArgumentError do
331
- index.source_pattern = nil
332
- end
333
- end
334
-
335
340
  def test_missing_version
336
341
  index = ReaPack::Index.new @dummy_path
337
- index.source_pattern = '$path'
342
+ index.url_template = 'http://host/$path'
338
343
  index.files = ['test.lua']
339
344
 
340
345
  error = assert_raises ReaPack::Index::Error do
@@ -346,7 +351,7 @@ class TestIndex < MiniTest::Test
346
351
 
347
352
  def test_changelog_boolean
348
353
  index = ReaPack::Index.new @dummy_path
349
- index.source_pattern = '$path'
354
+ index.url_template = 'http://host/$path'
350
355
  index.files = ['test.lua']
351
356
 
352
357
  error = assert_raises ReaPack::Index::Error do
@@ -361,7 +366,7 @@ class TestIndex < MiniTest::Test
361
366
 
362
367
  def test_author
363
368
  index = ReaPack::Index.new @dummy_path
364
- index.source_pattern = '$path'
369
+ index.url_template = 'http://host/$path'
365
370
  index.files = ['Category/script.lua']
366
371
 
367
372
  index.scan index.files.first, <<-IN
@@ -375,7 +380,7 @@ class TestIndex < MiniTest::Test
375
380
  <category name="Category">
376
381
  <reapack name="script.lua" type="script">
377
382
  <version name="1.0" author="cfillion">
378
- <source platform="all">Category/script.lua</source>
383
+ <source platform="all">http://host/Category/script.lua</source>
379
384
  </version>
380
385
  </reapack>
381
386
  </category>
@@ -388,7 +393,7 @@ class TestIndex < MiniTest::Test
388
393
 
389
394
  def test_author_boolean
390
395
  index = ReaPack::Index.new @dummy_path
391
- index.source_pattern = '$path'
396
+ index.url_template = 'http://host/$path'
392
397
  index.files = ['test.lua']
393
398
 
394
399
  error = assert_raises ReaPack::Index::Error do
@@ -403,7 +408,7 @@ class TestIndex < MiniTest::Test
403
408
 
404
409
  def test_author_multiline
405
410
  index = ReaPack::Index.new @dummy_path
406
- index.source_pattern = '$path'
411
+ index.url_template = 'http://host/$path'
407
412
  index.files = ['test.lua']
408
413
 
409
414
  error = assert_raises ReaPack::Index::Error do
@@ -420,7 +425,7 @@ class TestIndex < MiniTest::Test
420
425
 
421
426
  def test_provides
422
427
  index = ReaPack::Index.new @dummy_path
423
- index.source_pattern = '$path'
428
+ index.url_template = 'http://host/$path'
424
429
 
425
430
  index.files = [
426
431
  'Category/script.lua',
@@ -441,9 +446,9 @@ class TestIndex < MiniTest::Test
441
446
  <category name="Category">
442
447
  <reapack name="script.lua" type="script">
443
448
  <version name="1.0">
444
- <source platform="all">Category/script.lua</source>
445
- <source platform="all" file="../Resources/unicode.dat">Resources/unicode.dat</source>
446
- <source platform="all" file="test.png">Category/test.png</source>
449
+ <source platform="all">http://host/Category/script.lua</source>
450
+ <source platform="all" file="../Resources/unicode.dat">http://host/Resources/unicode.dat</source>
451
+ <source platform="all" file="test.png">http://host/Category/test.png</source>
447
452
  </version>
448
453
  </reapack>
449
454
  </category>
@@ -456,8 +461,7 @@ class TestIndex < MiniTest::Test
456
461
 
457
462
  def test_provides_unlisted
458
463
  index = ReaPack::Index.new @dummy_path
459
- index.source_pattern = '$path'
460
-
464
+ index.url_template = 'http://host/$path'
461
465
  index.files = ['Category/script.lua']
462
466
 
463
467
  error = assert_raises ReaPack::Index::Error do
@@ -473,7 +477,7 @@ class TestIndex < MiniTest::Test
473
477
 
474
478
  def test_provides_duplicate
475
479
  index = ReaPack::Index.new @dummy_path
476
- index.source_pattern = '$path'
480
+ index.url_template = 'http://host/$path'
477
481
 
478
482
  error = assert_raises ReaPack::Index::Error do
479
483
  index.scan 'script.lua', <<-IN
@@ -490,7 +494,7 @@ class TestIndex < MiniTest::Test
490
494
 
491
495
  def test_provides_duplicate_platforms
492
496
  index = ReaPack::Index.new @dummy_path
493
- index.source_pattern = '$path'
497
+ index.url_template = 'http://host/$path'
494
498
  index.files = ['script.lua', 'test.png', 'test.png']
495
499
 
496
500
  index.scan index.files.first, <<-IN
@@ -503,7 +507,7 @@ class TestIndex < MiniTest::Test
503
507
 
504
508
  def test_invalid_platform
505
509
  index = ReaPack::Index.new @dummy_path
506
- index.source_pattern = '$path'
510
+ index.url_template = 'http://host/$path'
507
511
 
508
512
  error = assert_raises ReaPack::Index::Error do
509
513
  index.scan 'test.lua', <<-IN
@@ -519,7 +523,7 @@ class TestIndex < MiniTest::Test
519
523
 
520
524
  def test_provides_platform
521
525
  index = ReaPack::Index.new @dummy_path
522
- index.source_pattern = '$path'
526
+ index.url_template = 'http://host/$path'
523
527
 
524
528
  index.files = [
525
529
  'Category/script.lua',
@@ -548,13 +552,13 @@ class TestIndex < MiniTest::Test
548
552
  <category name="Category">
549
553
  <reapack name="script.lua" type="script">
550
554
  <version name="1.0">
551
- <source platform="all">Category/script.lua</source>
552
- <source platform="windows" file="winall.png">Category/winall.png</source>
553
- <source platform="win32" file="win32bit.png">Category/win32bit.png</source>
554
- <source platform="win64" file="win64bit.png">Category/win64bit.png</source>
555
- <source platform="darwin" file="osxall.png">Category/osxall.png</source>
556
- <source platform="darwin32" file="osx32bit.png">Category/osx32bit.png</source>
557
- <source platform="darwin64" file="osx64bit.png">Category/osx64bit.png</source>
555
+ <source platform="all">http://host/Category/script.lua</source>
556
+ <source platform="windows" file="winall.png">http://host/Category/winall.png</source>
557
+ <source platform="win32" file="win32bit.png">http://host/Category/win32bit.png</source>
558
+ <source platform="win64" file="win64bit.png">http://host/Category/win64bit.png</source>
559
+ <source platform="darwin" file="osxall.png">http://host/Category/osxall.png</source>
560
+ <source platform="darwin32" file="osx32bit.png">http://host/Category/osx32bit.png</source>
561
+ <source platform="darwin64" file="osx64bit.png">http://host/Category/osx64bit.png</source>
558
562
  </version>
559
563
  </reapack>
560
564
  </category>
@@ -567,11 +571,8 @@ class TestIndex < MiniTest::Test
567
571
 
568
572
  def test_main_platform
569
573
  index = ReaPack::Index.new @dummy_path
570
- index.source_pattern = '$path'
571
-
572
- index.files = [
573
- 'Category/script.lua',
574
- ]
574
+ index.url_template = 'http://host/$path'
575
+ index.files = ['Category/script.lua']
575
576
 
576
577
  index.scan index.files.first, <<-IN
577
578
  @version 1.0
@@ -586,8 +587,8 @@ class TestIndex < MiniTest::Test
586
587
  <category name="Category">
587
588
  <reapack name="script.lua" type="script">
588
589
  <version name="1.0">
589
- <source platform="darwin">Category/script.lua</source>
590
- <source platform="win64">Category/script.lua</source>
590
+ <source platform="darwin">http://host/Category/script.lua</source>
591
+ <source platform="win64">http://host/Category/script.lua</source>
591
592
  </version>
592
593
  </reapack>
593
594
  </category>
@@ -598,12 +599,9 @@ class TestIndex < MiniTest::Test
598
599
  assert_equal expected, File.read(@dummy_path)
599
600
  end
600
601
 
601
- def test_source_custom_url
602
+ def test_provides_custom_url
602
603
  index = ReaPack::Index.new @dummy_path
603
-
604
- index.files = [
605
- 'Category/script.lua',
606
- ]
604
+ index.files = ['Category/script.lua']
607
605
 
608
606
  index.scan index.files.first, <<-IN
609
607
  @version 1.0
@@ -681,14 +679,12 @@ class TestIndex < MiniTest::Test
681
679
 
682
680
  def test_version_time
683
681
  index = ReaPack::Index.new @dummy_path
684
- index.source_pattern = '$path'
682
+ index.url_template = 'http://host/$path'
685
683
  index.files = ['Category/script.lua']
686
684
 
687
685
  index.time = Time.new 2016, 2, 11, 20, 16, 40, -5 * 3600
688
686
 
689
- index.scan index.files.first, <<-IN
690
- @version 1.0
691
- IN
687
+ index.scan index.files.first, '@version 1.0'
692
688
 
693
689
  expected = <<-XML
694
690
  <?xml version="1.0" encoding="utf-8"?>
@@ -696,7 +692,7 @@ class TestIndex < MiniTest::Test
696
692
  <category name="Category">
697
693
  <reapack name="script.lua" type="script">
698
694
  <version name="1.0" time="2016-02-12T01:16:40Z">
699
- <source platform="all">Category/script.lua</source>
695
+ <source platform="all">http://host/Category/script.lua</source>
700
696
  </version>
701
697
  </reapack>
702
698
  </category>
@@ -787,10 +783,7 @@ class TestIndex < MiniTest::Test
787
783
 
788
784
  def test_extension
789
785
  index = ReaPack::Index.new @dummy_path
790
-
791
- index.files = [
792
- 'Extensions/reapack.ext',
793
- ]
786
+ index.files = ['Extensions/reapack.ext']
794
787
 
795
788
  index.scan index.files.first, <<-IN
796
789
  @version 1.0
@@ -814,4 +807,87 @@ class TestIndex < MiniTest::Test
814
807
  index.write!
815
808
  assert_equal expected, File.read(@dummy_path)
816
809
  end
810
+
811
+ def test_effect
812
+ index = ReaPack::Index.new @dummy_path
813
+ index.url_template = 'http://host/$path'
814
+ index.files = ['Dynamics/super_compressor.jsfx']
815
+
816
+ index.scan index.files.first, '@version 1.0'
817
+
818
+ expected = <<-XML
819
+ <?xml version="1.0" encoding="utf-8"?>
820
+ <index version="1">
821
+ <category name="Dynamics">
822
+ <reapack name="super_compressor.jsfx" type="effect">
823
+ <version name="1.0">
824
+ <source platform="all">http://host/Dynamics/super_compressor.jsfx</source>
825
+ </version>
826
+ </reapack>
827
+ </category>
828
+ </index>
829
+ XML
830
+
831
+ index.write!
832
+ assert_equal expected, File.read(@dummy_path)
833
+ end
834
+
835
+ def test_sort_tags
836
+ index = ReaPack::Index.new @dummy_path
837
+ index.url_template = 'http://host/$path'
838
+ index.files = ['Hello/world.lua']
839
+
840
+ index.description = 'hello'
841
+
842
+ index.scan index.files.first, '@version 1.0'
843
+
844
+ index.write!
845
+ assert_match /<category.+<metadata>/m, File.read(@dummy_path)
846
+ end
847
+
848
+ def test_sort_categories
849
+ index = ReaPack::Index.new @dummy_path
850
+ index.url_template = 'http://host/$path'
851
+ index.files = ['zebra/agent.lua', 'bee/agent.lua']
852
+
853
+ index.scan index.files.first, '@version 1.0'
854
+ index.scan index.files.last, '@version 1.0'
855
+
856
+ index.write!
857
+ assert_match /bee.+zebra/m, File.read(@dummy_path)
858
+ end
859
+
860
+ def test_sort_packages
861
+ index = ReaPack::Index.new @dummy_path
862
+ index.url_template = 'http://host/$path'
863
+ index.files = ['zebra.lua', 'bee.lua']
864
+
865
+ index.scan index.files.first, '@version 1.0'
866
+ index.scan index.files.last, '@version 1.0'
867
+
868
+ index.write!
869
+ assert_match /bee.+zebra/m, File.read(@dummy_path)
870
+ end
871
+
872
+ def test_name
873
+ index = ReaPack::Index.new @dummy_path
874
+ assert_empty index.name
875
+
876
+ index.name = 'Hello World'
877
+ assert_equal '1 modified metadata, empty index', index.changelog
878
+
879
+ error = assert_raises ReaPack::Index::Error do index.name = '.'; end
880
+ assert_raises ReaPack::Index::Error do index.name = 'hello/world'; end
881
+ assert_equal "Invalid name: '.'", error.message
882
+
883
+ assert_equal 'Hello World', index.name
884
+
885
+ expected = <<-XML
886
+ <?xml version="1.0" encoding="utf-8"?>
887
+ <index version="1" name="Hello World"/>
888
+ XML
889
+
890
+ index.write!
891
+ assert_equal expected, File.read(@dummy_path)
892
+ end
817
893
  end