reapack-index 1.2.2 → 1.2.3rc1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
[![Gem Version](https://badge.fury.io/rb/reapack-index.svg)](http://badge.fury.io/rb/reapack-index)
|
7
7
|
[![Build Status](https://travis-ci.org/cfillion/reapack-index.svg?branch=master)](https://travis-ci.org/cfillion/reapack-index)
|
8
|
-
[![Dependency Status](https://gemnasium.com/cfillion/reapack-index.svg)](https://gemnasium.com/cfillion/reapack-index)
|
9
8
|
[![Coverage Status](https://coveralls.io/repos/cfillion/reapack-index/badge.svg?branch=master&service=github)](https://coveralls.io/github/cfillion/reapack-index?branch=master)
|
10
9
|
[![Donate](https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_74x21.png)](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:
|