reapack-index 1.2.2 → 1.2.3rc1
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.
- checksums.yaml +4 -4
- data/.travis.yml +2 -1
- data/README.md +0 -1
- data/lib/reapack/index.rb +11 -3
- data/lib/reapack/index/gem_version.rb +1 -1
- data/lib/reapack/index/git.rb +1 -1
- data/lib/reapack/index/parsers.rb +11 -8
- data/lib/reapack/index/scanner.rb +22 -8
- data/lib/reapack/index/source.rb +1 -0
- data/reapack-index.gemspec +2 -2
- data/test/index/test_provides.rb +14 -0
- data/test/scanner/test_makeurl.rb +2 -2
- data/test/scanner/test_validation.rb +2 -2
- data/test/test_parsers.rb +14 -5
- data/test/test_provides.rb +3 -1
- data/test/test_scanner.rb +1 -1
- metadata +7 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5326de32c33b763e737211b02a854e59c12fcd29982d3b835ae80d2c797d46c3
|
4
|
+
data.tar.gz: 20ee6a02cc538a3bcf6ffff3a0cae3f7e50f98252efcd89dbcef5ff054a86adc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7a2421af8f16e88a29cd7c86f5becfd96c5e22d04e344214e4fff22ef3821023d2e54cdb7bba54c4eeb4053b82f3724c98765e1674748ea4d3cd409957608cd4
|
7
|
+
data.tar.gz: f2668253f9110713cb107b779ca9adc52b36ca5449075e493f61f1881343de6f16bad76fda0cb7d6d6008622e6bd65c8e6a53fd5ea46c92f892a3ff26cf3a429
|
data/.travis.yml
CHANGED
@@ -4,8 +4,9 @@ rvm:
|
|
4
4
|
- 2.4
|
5
5
|
- 2.5
|
6
6
|
- 2.6
|
7
|
+
- 2.7
|
7
8
|
before_install:
|
8
9
|
- gem update bundler
|
9
|
-
- wget https://github.com/jgm/pandoc/releases/download/2.
|
10
|
+
- wget https://github.com/jgm/pandoc/releases/download/2.9.2/pandoc-2.9.2-1-amd64.deb -O pandoc.deb
|
10
11
|
- sudo dpkg -i pandoc.deb
|
11
12
|
cache: bundler
|
data/README.md
CHANGED
@@ -5,7 +5,6 @@ Subproject: [https://github.com/cfillion/metaheader](https://github.com/cfillion
|
|
5
5
|
|
6
6
|
[](http://badge.fury.io/rb/reapack-index)
|
7
7
|
[](https://travis-ci.org/cfillion/reapack-index)
|
8
|
-
[](https://gemnasium.com/cfillion/reapack-index)
|
9
8
|
[](https://coveralls.io/github/cfillion/reapack-index?branch=master)
|
10
9
|
[](https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=T3DEWBQJAV7WL&lc=CA&item_name=reapack-index%3a%20Package%20indexer%20for%20git-based%20ReaPack%20repositories&no_note=0&cn=Custom%20message&no_shipping=1¤cy_code=CAD&bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted)
|
11
10
|
|
data/lib/reapack/index.rb
CHANGED
@@ -120,8 +120,16 @@ class ReaPack::Index
|
|
120
120
|
type = self.class.type_of path
|
121
121
|
return unless type
|
122
122
|
|
123
|
-
mh =
|
124
|
-
|
123
|
+
mh = if contents.is_a? MetaHeader
|
124
|
+
contents
|
125
|
+
else
|
126
|
+
mh = MetaHeader.parse contents
|
127
|
+
unless mh.has? :changelog
|
128
|
+
wp = WordpressChangelog.new mh
|
129
|
+
wp.parse contents
|
130
|
+
end
|
131
|
+
mh
|
132
|
+
end
|
125
133
|
|
126
134
|
if mh[:noindex]
|
127
135
|
remove path
|
@@ -139,7 +147,7 @@ class ReaPack::Index
|
|
139
147
|
scanner = Scanner.new cat, pkg, mh, self
|
140
148
|
|
141
149
|
begin
|
142
|
-
scanner.run
|
150
|
+
scanner.run @strict
|
143
151
|
rescue Error
|
144
152
|
backups.each {|var, value| instance_variable_set var, value }
|
145
153
|
raise
|
data/lib/reapack/index/git.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
class WordpressChangelog
|
1
|
+
class WordpressChangelog
|
2
2
|
CHANGELOG = /
|
3
3
|
Changelog\s*:\n
|
4
4
|
(.+?)\n\s*
|
@@ -7,11 +7,14 @@ class WordpressChangelog < MetaHeader::Parser
|
|
7
7
|
|
8
8
|
VERSION = /\A[\s\*]*v([\d\.]+)(?:\s+(.+))?\Z/.freeze
|
9
9
|
|
10
|
+
def initialize(mh)
|
11
|
+
@header = mh
|
12
|
+
end
|
13
|
+
|
10
14
|
def parse(input)
|
11
|
-
input = input.read
|
12
15
|
input.encode! Encoding::UTF_8, invalid: :replace
|
13
16
|
|
14
|
-
ver, changes = header[:version], header[:changelog]
|
17
|
+
ver, changes = @header[:version], @header[:changelog]
|
15
18
|
return if ver.nil? || changes || CHANGELOG.match(input).nil?
|
16
19
|
|
17
20
|
$1.lines.each {|line| read line.lstrip }
|
@@ -19,15 +22,15 @@ class WordpressChangelog < MetaHeader::Parser
|
|
19
22
|
|
20
23
|
def read(line)
|
21
24
|
if line =~ VERSION
|
22
|
-
@current = $1 == header[:version]
|
25
|
+
@current = $1 == @header[:version]
|
23
26
|
elsif @current
|
24
|
-
if header[:changelog]
|
25
|
-
header[:changelog] += "\n"
|
27
|
+
if @header[:changelog]
|
28
|
+
@header[:changelog] += "\n"
|
26
29
|
else
|
27
|
-
header[:changelog] = String.new
|
30
|
+
@header[:changelog] = String.new
|
28
31
|
end
|
29
32
|
|
30
|
-
header[:changelog] += line.chomp
|
33
|
+
@header[:changelog] += line.chomp
|
31
34
|
end
|
32
35
|
end
|
33
36
|
end
|
@@ -52,10 +52,12 @@ class ReaPack::Index
|
|
52
52
|
@self_overriden = false
|
53
53
|
end
|
54
54
|
|
55
|
-
def run
|
55
|
+
def run(strict = false)
|
56
56
|
@mh.alias HEADER_ALIASES
|
57
57
|
|
58
|
-
|
58
|
+
errors = @mh.validate(HEADER_RULES, strict)
|
59
|
+
|
60
|
+
unless errors.empty?
|
59
61
|
raise Error, errors.join("\n")
|
60
62
|
end
|
61
63
|
|
@@ -108,11 +110,23 @@ class ReaPack::Index
|
|
108
110
|
end
|
109
111
|
end
|
110
112
|
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
113
|
+
substitutions = {
|
114
|
+
'$path' => path,
|
115
|
+
'$commit' => @index.commit || 'master',
|
116
|
+
'$version' => @ver.name,
|
117
|
+
'$package' => @pkg.path,
|
118
|
+
}
|
119
|
+
|
120
|
+
uri = Addressable::URI.parse template
|
121
|
+
[:host, :path, :query].each {|segment|
|
122
|
+
value = uri.send segment
|
123
|
+
|
124
|
+
if value
|
125
|
+
value.gsub! /\$\w+/, substitutions
|
126
|
+
uri.send "#{segment}=", value
|
127
|
+
end
|
128
|
+
}
|
129
|
+
uri.normalize.to_s
|
116
130
|
end
|
117
131
|
|
118
132
|
def parse_provides(provides)
|
@@ -182,7 +196,7 @@ class ReaPack::Index
|
|
182
196
|
src.detect_sections @pkg
|
183
197
|
end
|
184
198
|
|
185
|
-
src.file = target if line.target
|
199
|
+
src.file = target if line.target && expanded != file
|
186
200
|
@self_overriden = true
|
187
201
|
else
|
188
202
|
if line.url_template
|
data/lib/reapack/index/source.rb
CHANGED
data/reapack-index.gemspec
CHANGED
@@ -8,7 +8,7 @@ Gem::Specification.new do |spec|
|
|
8
8
|
spec.name = 'reapack-index'
|
9
9
|
spec.version = ReaPack::Index::VERSION
|
10
10
|
spec.authors = ['cfillion']
|
11
|
-
spec.email = ['reapack-index@cfillion.
|
11
|
+
spec.email = ['reapack-index@cfillion.ca']
|
12
12
|
spec.summary = 'Package indexer for git-based ReaPack repositories'
|
13
13
|
spec.homepage = 'https://github.com/cfillion/reapack-index'
|
14
14
|
spec.license = 'GPL-3.0+'
|
@@ -29,7 +29,7 @@ Gem::Specification.new do |spec|
|
|
29
29
|
spec.add_runtime_dependency 'addressable', '~> 2.4'
|
30
30
|
spec.add_runtime_dependency 'colorize', '~> 0.7'
|
31
31
|
spec.add_runtime_dependency 'gitable', '~> 0.3'
|
32
|
-
spec.add_runtime_dependency 'metaheader', '~>
|
32
|
+
spec.add_runtime_dependency 'metaheader', '~> 2.0'
|
33
33
|
spec.add_runtime_dependency 'nokogiri', '~> 1.7'
|
34
34
|
spec.add_runtime_dependency 'pandoc-ruby', '~> 2.0'
|
35
35
|
spec.add_runtime_dependency 'rugged', '~> 0.25'
|
data/test/index/test_provides.rb
CHANGED
@@ -427,4 +427,18 @@ class TestIndex::Provides < MiniTest::Test
|
|
427
427
|
@provides ../target.lua
|
428
428
|
IN
|
429
429
|
end
|
430
|
+
|
431
|
+
def test_rename_target_same_name
|
432
|
+
index = ReaPack::Index.new @dummy_path
|
433
|
+
index.files = ['Category/script.lua']
|
434
|
+
index.url_template = 'http://host/$path'
|
435
|
+
|
436
|
+
index.scan index.files.first, <<-IN
|
437
|
+
@version 1.0
|
438
|
+
@provides . > script.lua
|
439
|
+
IN
|
440
|
+
|
441
|
+
index.write!
|
442
|
+
refute_match 'file=', File.read(index.path)
|
443
|
+
end
|
430
444
|
end
|
@@ -93,10 +93,10 @@ class TestScanner::TestMakeUrl < MiniTest::Test
|
|
93
93
|
|
94
94
|
def test_repeat
|
95
95
|
@index.expect :files, ['Category/script.lua']
|
96
|
-
@index.expect :url_template, '$path
|
96
|
+
@index.expect :url_template, '$path$path'
|
97
97
|
@index.expect :commit, 'C0FF33'
|
98
98
|
|
99
|
-
assert_equal 'Category/script.
|
99
|
+
assert_equal 'Category/script.luaCategory/script.lua',
|
100
100
|
@scanner.make_url('Category/script.lua')
|
101
101
|
end
|
102
102
|
end
|
@@ -8,7 +8,7 @@ class TestScanner::TestValidation < MiniTest::Test
|
|
8
8
|
@pkg.expect :type, :script
|
9
9
|
@pkg.expect :path, 'cat/test'
|
10
10
|
|
11
|
-
@mh = MetaHeader.new
|
11
|
+
@mh = MetaHeader.new
|
12
12
|
@mh[:version] = '1.0'
|
13
13
|
|
14
14
|
@index = MiniTest::Mock.new
|
@@ -20,7 +20,7 @@ class TestScanner::TestValidation < MiniTest::Test
|
|
20
20
|
def test_validation
|
21
21
|
mh_mock = MiniTest::Mock.new
|
22
22
|
mh_mock.expect :alias, nil, [Hash]
|
23
|
-
mh_mock.expect :validate, ['first', 'second'], [Hash]
|
23
|
+
mh_mock.expect :validate, ['first', 'second'], [Hash, false]
|
24
24
|
|
25
25
|
@scanner.instance_variable_set :@mh, mh_mock
|
26
26
|
|
data/test/test_parsers.rb
CHANGED
@@ -2,7 +2,7 @@ require File.expand_path '../helper', __FILE__
|
|
2
2
|
|
3
3
|
class TestParsers < MiniTest::Test
|
4
4
|
def test_wordpress
|
5
|
-
|
5
|
+
input = <<-IN
|
6
6
|
/**
|
7
7
|
* Version: 1.1
|
8
8
|
*/
|
@@ -23,12 +23,17 @@ class TestParsers < MiniTest::Test
|
|
23
23
|
Test\x97
|
24
24
|
IN
|
25
25
|
|
26
|
+
mh = MetaHeader.parse input
|
26
27
|
assert_equal '1.1', mh[:version]
|
28
|
+
refute mh.has?(:changelog)
|
29
|
+
|
30
|
+
parser = WordpressChangelog.new mh
|
31
|
+
parser.parse input
|
27
32
|
assert_equal "+ Line 3\n+ Line 4", mh[:changelog]
|
28
33
|
end
|
29
34
|
|
30
35
|
def test_wordpress_no_date
|
31
|
-
|
36
|
+
input = <<-IN
|
32
37
|
/**
|
33
38
|
* Version: 1.1
|
34
39
|
*/
|
@@ -49,12 +54,14 @@ class TestParsers < MiniTest::Test
|
|
49
54
|
Test\x97
|
50
55
|
IN
|
51
56
|
|
52
|
-
|
57
|
+
mh = MetaHeader.parse input
|
58
|
+
parser = WordpressChangelog.new mh
|
59
|
+
parser.parse input
|
53
60
|
assert_equal "+ Line 3\n+ Line 4", mh[:changelog]
|
54
61
|
end
|
55
62
|
|
56
63
|
def test_wordpress_noprefix
|
57
|
-
|
64
|
+
input = <<-IN
|
58
65
|
--[[
|
59
66
|
Version: 1.1
|
60
67
|
--]]
|
@@ -76,7 +83,9 @@ v1.0 (2012-01-01)
|
|
76
83
|
Test\x97
|
77
84
|
IN
|
78
85
|
|
79
|
-
|
86
|
+
mh = MetaHeader.parse input
|
87
|
+
parser = WordpressChangelog.new mh
|
88
|
+
parser.parse input
|
80
89
|
assert_equal "+ Line 3\n+ Line 4", mh[:changelog]
|
81
90
|
end
|
82
91
|
end
|
data/test/test_provides.rb
CHANGED
@@ -35,7 +35,7 @@ class TestProvides < MiniTest::Test
|
|
35
35
|
def test_platforms
|
36
36
|
assert_equal [:windows, :win32, :win64,
|
37
37
|
:darwin, :darwin32, :darwin64,
|
38
|
-
:linux, :linux32, :linux64],
|
38
|
+
:linux, :linux32, :linux64, :'linux-armv7l', :'linux-aarch64'],
|
39
39
|
[
|
40
40
|
'[windows] file',
|
41
41
|
'[win32] file',
|
@@ -46,6 +46,8 @@ class TestProvides < MiniTest::Test
|
|
46
46
|
'[linux] file',
|
47
47
|
'[linux32] file',
|
48
48
|
'[linux64] file',
|
49
|
+
'[linux-armv7l] file',
|
50
|
+
'[linux-aarch64] file',
|
49
51
|
].map {|l| ReaPack::Index::Provides.parse(l).platform }
|
50
52
|
end
|
51
53
|
|
data/test/test_scanner.rb
CHANGED
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.2.
|
4
|
+
version: 1.2.3rc1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- cfillion
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-02-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -128,14 +128,14 @@ dependencies:
|
|
128
128
|
requirements:
|
129
129
|
- - "~>"
|
130
130
|
- !ruby/object:Gem::Version
|
131
|
-
version: '
|
131
|
+
version: '2.0'
|
132
132
|
type: :runtime
|
133
133
|
prerelease: false
|
134
134
|
version_requirements: !ruby/object:Gem::Requirement
|
135
135
|
requirements:
|
136
136
|
- - "~>"
|
137
137
|
- !ruby/object:Gem::Version
|
138
|
-
version: '
|
138
|
+
version: '2.0'
|
139
139
|
- !ruby/object:Gem::Dependency
|
140
140
|
name: nokogiri
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|
@@ -194,7 +194,7 @@ dependencies:
|
|
194
194
|
version: '1.1'
|
195
195
|
description:
|
196
196
|
email:
|
197
|
-
- reapack-index@cfillion.
|
197
|
+
- reapack-index@cfillion.ca
|
198
198
|
executables:
|
199
199
|
- reapack-index
|
200
200
|
extensions: []
|
@@ -260,9 +260,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
260
260
|
version: '2.3'
|
261
261
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
262
262
|
requirements:
|
263
|
-
- - "
|
263
|
+
- - ">"
|
264
264
|
- !ruby/object:Gem::Version
|
265
|
-
version:
|
265
|
+
version: 1.3.1
|
266
266
|
requirements: []
|
267
267
|
rubygems_version: 3.0.2
|
268
268
|
signing_key:
|