reapack-index 1.1beta1 → 1.1beta3
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/README.md +1 -1
- data/lib/reapack/index.rb +4 -2
- data/lib/reapack/index/cli.rb +12 -5
- data/lib/reapack/index/cli/options.rb +1 -1
- data/lib/reapack/index/gem_version.rb +1 -1
- data/lib/reapack/index/git.rb +20 -7
- data/lib/reapack/index/metadata.rb +1 -1
- data/lib/reapack/index/package.rb +11 -0
- data/lib/reapack/index/parsers.rb +1 -0
- data/lib/reapack/index/provides.rb +3 -1
- data/lib/reapack/index/scanner.rb +16 -11
- data/reapack-index.gemspec +1 -1
- data/setup/reapack-index.nsi +2 -2
- data/test/cli/test_scan.rb +45 -1
- data/test/index/test_scan.rb +20 -0
- data/test/scanner/test_validation.rb +6 -0
- data/test/test_git.rb +17 -0
- data/test/test_index.rb +1 -0
- data/test/test_metadata.rb +3 -0
- data/test/test_package.rb +18 -1
- data/test/test_parsers.rb +27 -11
- data/test/test_provides.rb +5 -0
- data/test/test_scanner.rb +2 -1
- metadata +4 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8fe0c0ad52b4938c414bacfff63b2981614c2df2
|
4
|
+
data.tar.gz: 4c799d2fd3f4d7823bad7ac142cc08146c029c60
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8c0f24e952b9c836e5db6172928bcd5366f60dba50388fee7d54bd6159b9b3afcbf8c954af8613235a99b463a339a7d561fca7928930dbcab2d7b8649eb7eb53
|
7
|
+
data.tar.gz: 84acc8f432d45f95d51053c05e2a0233ea4b961e933c2c849cdb471e11f8b93c60d68ebbc86b0624d80547beefaccc85a34941cdddb0e52964c7ea24a63d1afa
|
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 [COMMIT]
|
32
|
+
-s, --scan [FILE|COMMIT] Scan new commits (default), a file or a commit
|
33
33
|
--rebuild Clear the index and rescan the whole git history
|
34
34
|
Indexer options:
|
35
35
|
-a, --[no-]amend Reindex existing versions
|
data/lib/reapack/index.rb
CHANGED
@@ -43,6 +43,7 @@ class ReaPack::Index
|
|
43
43
|
|
44
44
|
attr_reader :path, :url_template, :cdetector
|
45
45
|
attr_accessor :amend, :commit, :files, :time, :strict
|
46
|
+
attr_accessor :auto_bump_commit
|
46
47
|
|
47
48
|
class << self
|
48
49
|
def is_type?(input)
|
@@ -73,6 +74,7 @@ class ReaPack::Index
|
|
73
74
|
@changed_nodes = []
|
74
75
|
@files = []
|
75
76
|
@path = path
|
77
|
+
@auto_bump_commit = true
|
76
78
|
|
77
79
|
@cdetector = ConflictDetector.new
|
78
80
|
|
@@ -146,7 +148,7 @@ class ReaPack::Index
|
|
146
148
|
end
|
147
149
|
}
|
148
150
|
|
149
|
-
bump_commit
|
151
|
+
bump_commit if @auto_bump_commit
|
150
152
|
end
|
151
153
|
|
152
154
|
def remove(path)
|
@@ -158,7 +160,7 @@ class ReaPack::Index
|
|
158
160
|
pkg.remove
|
159
161
|
cat.remove if cat.empty?
|
160
162
|
|
161
|
-
bump_commit
|
163
|
+
bump_commit if @auto_bump_commit
|
162
164
|
log_change 'removed package'
|
163
165
|
end
|
164
166
|
|
data/lib/reapack/index/cli.rb
CHANGED
@@ -84,9 +84,15 @@ private
|
|
84
84
|
elsif @opts[:scan].empty?
|
85
85
|
@git.commits_since @index.last_commit
|
86
86
|
else
|
87
|
+
@index.auto_bump_commit = false
|
88
|
+
|
87
89
|
@opts[:scan].map {|hash|
|
88
|
-
@git.
|
89
|
-
|
90
|
+
if c = @git.last_commit_for(hash)
|
91
|
+
[c, hash]
|
92
|
+
elsif c = @git.get_commit(hash)
|
93
|
+
c
|
94
|
+
else
|
95
|
+
$stderr.puts "--scan: bad file or revision: '%s'" % @opts[:scan]
|
90
96
|
@exit = false
|
91
97
|
nil
|
92
98
|
end
|
@@ -95,12 +101,12 @@ private
|
|
95
101
|
|
96
102
|
unless commits.empty?
|
97
103
|
progress_wrapper commits.size do
|
98
|
-
commits.each {|
|
104
|
+
commits.each {|args| process_commit *args }
|
99
105
|
end
|
100
106
|
end
|
101
107
|
end
|
102
108
|
|
103
|
-
def process_commit(commit)
|
109
|
+
def process_commit(commit, file = nil)
|
104
110
|
if @opts[:verbose]
|
105
111
|
log 'processing %s: %s' % [commit.short_id, commit.summary]
|
106
112
|
end
|
@@ -111,7 +117,8 @@ private
|
|
111
117
|
|
112
118
|
commit.each_diff
|
113
119
|
.select {|diff|
|
114
|
-
(
|
120
|
+
(file.nil? || diff.file == file) &&
|
121
|
+
(not ignored? expand_path(diff.file)) &&
|
115
122
|
ReaPack::Index.type_of(diff.file)
|
116
123
|
}
|
117
124
|
.sort_by {|diff|
|
@@ -54,7 +54,7 @@ class ReaPack::Index::CLI
|
|
54
54
|
opts[:check] = true
|
55
55
|
end
|
56
56
|
|
57
|
-
op.on '-s', '--scan [COMMIT]', 'Scan new commits (default) or
|
57
|
+
op.on '-s', '--scan [FILE|COMMIT]', 'Scan new commits (default), a file or a commit' do |commit|
|
58
58
|
opts[:check] = opts[:rebuild] = false
|
59
59
|
opts[:scan] ||= []
|
60
60
|
|
data/lib/reapack/index/git.rb
CHANGED
@@ -13,7 +13,7 @@ class ReaPack::Index
|
|
13
13
|
end
|
14
14
|
|
15
15
|
def commits
|
16
|
-
commits_since nil
|
16
|
+
@commits ||= commits_since nil
|
17
17
|
end
|
18
18
|
|
19
19
|
def commits_since(sha)
|
@@ -38,6 +38,12 @@ class ReaPack::Index
|
|
38
38
|
Commit.new c, @repo if c
|
39
39
|
end
|
40
40
|
|
41
|
+
def last_commit_for(file)
|
42
|
+
commits.reverse_each.find {|c|
|
43
|
+
c.each_diff.any? {|d| d.file == file }
|
44
|
+
}
|
45
|
+
end
|
46
|
+
|
41
47
|
def guess_url_template
|
42
48
|
remote = @repo.remotes['origin']
|
43
49
|
return unless remote
|
@@ -77,7 +83,7 @@ class ReaPack::Index
|
|
77
83
|
end
|
78
84
|
}
|
79
85
|
|
80
|
-
|
86
|
+
hash = Rugged::Commit.create @repo, \
|
81
87
|
tree: new_index.write_tree(@repo),
|
82
88
|
message: message,
|
83
89
|
parents: [target].compact,
|
@@ -88,7 +94,9 @@ class ReaPack::Index
|
|
88
94
|
# force-reload the repository
|
89
95
|
@repo = Rugged::Repository.discover path
|
90
96
|
|
91
|
-
get_commit
|
97
|
+
commit = get_commit hash
|
98
|
+
@commits << commit if @commits
|
99
|
+
commit
|
92
100
|
end
|
93
101
|
|
94
102
|
private
|
@@ -108,8 +116,8 @@ class ReaPack::Index
|
|
108
116
|
@parent = commit.parents.first
|
109
117
|
end
|
110
118
|
|
111
|
-
def each_diff
|
112
|
-
return
|
119
|
+
def each_diff(&block)
|
120
|
+
return @diffs.each &block if @diffs
|
113
121
|
|
114
122
|
if @parent
|
115
123
|
diff = @parent.diff id
|
@@ -117,7 +125,8 @@ class ReaPack::Index
|
|
117
125
|
diff = @commit.diff
|
118
126
|
end
|
119
127
|
|
120
|
-
diff.each_delta {|delta|
|
128
|
+
@diffs ||= diff.each_delta.map {|delta| Git::Diff.new(delta, @parent.nil?, @repo) }
|
129
|
+
@diffs.each &block
|
121
130
|
end
|
122
131
|
|
123
132
|
def id
|
@@ -145,7 +154,11 @@ class ReaPack::Index
|
|
145
154
|
end
|
146
155
|
|
147
156
|
def ==(o)
|
148
|
-
id == o.id
|
157
|
+
o && id == o.id
|
158
|
+
end
|
159
|
+
|
160
|
+
def inspect
|
161
|
+
"#<#{self.class} #{id} #{message}>"
|
149
162
|
end
|
150
163
|
|
151
164
|
private
|
@@ -165,7 +165,7 @@ class ReaPack::Index
|
|
165
165
|
# the first type will be the default one
|
166
166
|
VALID_TYPES = [:website, :screenshot, :donation].freeze
|
167
167
|
|
168
|
-
LINK_REGEX = /\A(.+?)(?:\s
|
168
|
+
LINK_REGEX = /\A(.+?)(?:\s+|=)(\w+?:\/\/.+)\Z/.freeze
|
169
169
|
|
170
170
|
def self.split(input)
|
171
171
|
if input =~ LINK_REGEX
|
@@ -73,6 +73,17 @@ class ReaPack::Index
|
|
73
73
|
if has_version? name
|
74
74
|
ver = @versions[name]
|
75
75
|
else
|
76
|
+
@versions.each_key {|other|
|
77
|
+
normalized = [other.dup, name.dup].each {|ver|
|
78
|
+
ver.gsub! /(?<![\d\w])0+/, ''
|
79
|
+
ver.gsub! /[^\d\w]+/, '.'
|
80
|
+
}
|
81
|
+
|
82
|
+
if normalized.uniq.size < 2
|
83
|
+
raise Error, "version #{name} is a duplicate of version #{other}"
|
84
|
+
end
|
85
|
+
}
|
86
|
+
|
76
87
|
ver = @versions[name] = Version.create name, @node
|
77
88
|
end
|
78
89
|
|
@@ -14,7 +14,7 @@ class ReaPack::Index
|
|
14
14
|
class << self
|
15
15
|
def parse_each(input)
|
16
16
|
if block_given?
|
17
|
-
input.to_s.lines.map {|line|
|
17
|
+
input.to_s.lines.map {|line| i = parse(line) and yield i }
|
18
18
|
else
|
19
19
|
enum_for :parse_each, input
|
20
20
|
end
|
@@ -22,6 +22,8 @@ class ReaPack::Index
|
|
22
22
|
|
23
23
|
def parse(line)
|
24
24
|
m = line.strip.match PROVIDES_REGEX
|
25
|
+
return unless m
|
26
|
+
|
25
27
|
options, pattern, url_tpl = m[:options], m[:file], m[:url]
|
26
28
|
|
27
29
|
instance = self.new pattern, url_tpl
|
@@ -21,22 +21,25 @@ class ReaPack::Index
|
|
21
21
|
'segment overflow (%d > %d)' % [s, VERSION_SEGMENT_MAX] if s
|
22
22
|
}
|
23
23
|
],
|
24
|
-
description: SIMPLE_TAG,
|
25
24
|
about: MetaHeader::VALUE,
|
26
|
-
|
27
|
-
screenshot: MetaHeader::VALUE,
|
25
|
+
description: SIMPLE_TAG,
|
28
26
|
donation: MetaHeader::VALUE,
|
27
|
+
link: MetaHeader::VALUE,
|
28
|
+
noindex: MetaHeader::BOOLEAN,
|
29
|
+
screenshot: MetaHeader::VALUE,
|
29
30
|
|
30
31
|
# version-specific tags
|
31
32
|
author: SIMPLE_TAG,
|
32
33
|
changelog: MetaHeader::VALUE,
|
33
|
-
provides: [MetaHeader::VALUE, PROVIDES_VALIDATOR],
|
34
|
-
noindex: MetaHeader::BOOLEAN,
|
35
34
|
metapackage: MetaHeader::BOOLEAN,
|
35
|
+
provides: [MetaHeader::VALUE, PROVIDES_VALIDATOR],
|
36
36
|
}.freeze
|
37
37
|
|
38
38
|
HEADER_ALIASES = {
|
39
|
-
[:reascript_name, :
|
39
|
+
[:reascript_name, :jsfx_name, :theme_name,
|
40
|
+
:extension_name, :desc] => :description,
|
41
|
+
:links => :link,
|
42
|
+
:screenshots => :screenshot,
|
40
43
|
}.freeze
|
41
44
|
|
42
45
|
META_TYPES = [:extension, :data, :theme].freeze
|
@@ -56,7 +59,7 @@ class ReaPack::Index
|
|
56
59
|
@pkg.description = @mh[:description]
|
57
60
|
@pkg.metadata.about = @mh[:about]
|
58
61
|
|
59
|
-
eval_links :website
|
62
|
+
eval_links :website, tag: :link
|
60
63
|
eval_links :screenshot
|
61
64
|
eval_links :donation
|
62
65
|
|
@@ -152,11 +155,13 @@ class ReaPack::Index
|
|
152
155
|
}.flatten
|
153
156
|
end
|
154
157
|
|
155
|
-
def eval_links(type)
|
158
|
+
def eval_links(type, tag: nil)
|
159
|
+
tag ||= type
|
160
|
+
|
156
161
|
@pkg.metadata.replace_links type do
|
157
|
-
@mh[
|
158
|
-
|
159
|
-
@pkg.metadata.push_link type, *Link.split(
|
162
|
+
@mh[tag].to_s.lines {|line|
|
163
|
+
line.strip!
|
164
|
+
@pkg.metadata.push_link type, *Link.split(line) unless line.empty?
|
160
165
|
}
|
161
166
|
end
|
162
167
|
end
|
data/reapack-index.gemspec
CHANGED
@@ -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', '~> 1.
|
32
|
+
spec.add_runtime_dependency 'metaheader', '~> 1.3beta2'
|
33
33
|
spec.add_runtime_dependency 'nokogiri', '~> 1.6.8'
|
34
34
|
spec.add_runtime_dependency 'pandoc-ruby', '~> 2.0'
|
35
35
|
spec.add_runtime_dependency 'rugged', '~> 0.24'
|
data/setup/reapack-index.nsi
CHANGED
@@ -2,11 +2,11 @@
|
|
2
2
|
!include Sections.nsh
|
3
3
|
!include StrRep.nsh
|
4
4
|
|
5
|
-
!define VERSION "1.
|
5
|
+
!define VERSION "1.1beta3"
|
6
6
|
!define NAME "ReaPack Index ${VERSION}"
|
7
7
|
!define LONG_VERSION "0.1.0.0"
|
8
8
|
|
9
|
-
!define RUBY_VERSION "2.3.
|
9
|
+
!define RUBY_VERSION "2.3.1"
|
10
10
|
!define RUBYINSTALLER_FILE "rubyinstaller-${RUBY_VERSION}.exe"
|
11
11
|
!define RUBYINSTALLER_URL \
|
12
12
|
"http://dl.bintray.com/oneclick/rubyinstaller/${RUBYINSTALLER_FILE}"
|
data/test/cli/test_scan.rb
CHANGED
@@ -316,6 +316,50 @@ processing [a-f0-9]{7}: third commit
|
|
316
316
|
refute_match 'test1.lua', read_index, 'The initial commit was scanned'
|
317
317
|
assert_match 'test2.lua', read_index
|
318
318
|
assert_match 'test3.lua', read_index
|
319
|
+
assert_match @git.last_commit.id, read_index
|
320
|
+
end
|
321
|
+
end
|
322
|
+
|
323
|
+
def test_manual_disable_commit_bump
|
324
|
+
options = ['--scan', nil]
|
325
|
+
|
326
|
+
setup = proc {
|
327
|
+
@git.create_commit 'initial commit',
|
328
|
+
[mkfile('cat/test1.lua', '@version 2.0')]
|
329
|
+
options[1] = @git.last_commit.id
|
330
|
+
}
|
331
|
+
|
332
|
+
wrapper options, setup: setup do
|
333
|
+
capture_io { assert_equal true, @cli.run }
|
334
|
+
|
335
|
+
assert_equal false, @cli.index.auto_bump_commit
|
336
|
+
refute_match %Q[commit="#{options[1]}"], read_index
|
337
|
+
end
|
338
|
+
end
|
339
|
+
|
340
|
+
def test_scan_file
|
341
|
+
options = [ '--scan', 'cat/test1.lua']
|
342
|
+
|
343
|
+
setup = proc {
|
344
|
+
@git.create_commit 'initial commit',
|
345
|
+
[mkfile('cat/test1.lua', '@version 1')]
|
346
|
+
|
347
|
+
@git.create_commit 'second commit', [
|
348
|
+
mkfile('cat/test1.lua', '@version 2'),
|
349
|
+
mkfile('cat/test2.lua', '@version 2.2'),
|
350
|
+
]
|
351
|
+
|
352
|
+
@git.create_commit 'third commit',
|
353
|
+
[mkfile('cat/test3.lua', '@version 3')]
|
354
|
+
}
|
355
|
+
|
356
|
+
wrapper options, setup: setup do
|
357
|
+
capture_io { assert_equal true, @cli.run }
|
358
|
+
|
359
|
+
refute_match 'version name="1"', read_index, 'The initial commit was scanned'
|
360
|
+
assert_match 'version name="2"', read_index
|
361
|
+
refute_match 'test2.lua', read_index, 'test2.lua was indexed'
|
362
|
+
refute_match 'test3.lua', read_index, 'The third commit was scanned'
|
319
363
|
end
|
320
364
|
end
|
321
365
|
|
@@ -358,7 +402,7 @@ processing [a-f0-9]{7}: third commit
|
|
358
402
|
wrapper ['--scan', hash] do
|
359
403
|
@git.create_commit 'initial commit', [mkfile('README.md')]
|
360
404
|
|
361
|
-
assert_output nil, /--scan: bad revision: #{Regexp.escape hash}/i do
|
405
|
+
assert_output nil, /--scan: bad file or revision: '#{Regexp.escape hash}'/i do
|
362
406
|
assert_equal false, @cli.run
|
363
407
|
end
|
364
408
|
end
|
data/test/index/test_scan.rb
CHANGED
@@ -92,6 +92,26 @@ class TestIndex::Scan < MiniTest::Test
|
|
92
92
|
refute_match '<category', contents
|
93
93
|
end
|
94
94
|
|
95
|
+
def test_auto_bump_commit_enabled
|
96
|
+
index = ReaPack::Index.new @real_path
|
97
|
+
index.commit = @commit
|
98
|
+
|
99
|
+
assert_equal true, index.auto_bump_commit
|
100
|
+
refute_equal @commit, index.last_commit
|
101
|
+
|
102
|
+
index.scan 'Category Name/Hello World.lua', '@version 1.0'
|
103
|
+
assert_equal @commit, index.last_commit
|
104
|
+
end
|
105
|
+
|
106
|
+
def test_auto_bump_commit_disabled
|
107
|
+
index = ReaPack::Index.new @real_path
|
108
|
+
index.commit = @commit
|
109
|
+
index.auto_bump_commit = false
|
110
|
+
|
111
|
+
index.scan 'Category Name/Hello World.lua', '@version 1.0'
|
112
|
+
refute_equal @commit, index.last_commit
|
113
|
+
end
|
114
|
+
|
95
115
|
def test_strict_mode
|
96
116
|
index = ReaPack::Index.new @dummy_path
|
97
117
|
index.strict = true
|
@@ -112,6 +112,12 @@ class TestScanner::TestValidation < MiniTest::Test
|
|
112
112
|
assert_equal "missing value for tag 'about'", error.message
|
113
113
|
end
|
114
114
|
|
115
|
+
def test_links
|
116
|
+
@mh[:links] = true
|
117
|
+
error = assert_raises(ReaPack::Index::Error) { @scanner.run }
|
118
|
+
assert_equal "missing value for tag 'links'", error.message
|
119
|
+
end
|
120
|
+
|
115
121
|
def test_screenshot
|
116
122
|
@mh[:screenshot] = true
|
117
123
|
error = assert_raises(ReaPack::Index::Error) { @scanner.run }
|
data/test/test_git.rb
CHANGED
@@ -129,6 +129,16 @@ class TestGit < MiniTest::Test
|
|
129
129
|
}
|
130
130
|
end
|
131
131
|
|
132
|
+
def test_last_commit_for_file
|
133
|
+
c1 = @git.create_commit 'first commit', [mkfile('hello/world')]
|
134
|
+
c2 = @git.create_commit 'second commit', [mkfile('hello/world', 'modified')]
|
135
|
+
c3 = @git.create_commit 'third commit', [mkfile('chunky/bacon')]
|
136
|
+
|
137
|
+
assert_equal c2, @git.last_commit_for('hello/world')
|
138
|
+
assert_equal c3, @git.last_commit_for('chunky/bacon')
|
139
|
+
assert_nil @git.last_commit_for('foo/bar')
|
140
|
+
end
|
141
|
+
|
132
142
|
def test_multibyte_filename
|
133
143
|
filename = "\342\200\224.lua"
|
134
144
|
|
@@ -152,4 +162,11 @@ class TestGit < MiniTest::Test
|
|
152
162
|
git = ReaPack::Index::Git.new path # should not throw
|
153
163
|
assert_equal @git.path, git.path
|
154
164
|
end
|
165
|
+
|
166
|
+
def test_inspect_commit
|
167
|
+
c = @git.create_commit 'message', []
|
168
|
+
assert_match c.class.name, c.inspect
|
169
|
+
assert_match c.id, c.inspect
|
170
|
+
assert_match c.message, c.inspect
|
171
|
+
end
|
155
172
|
end
|
data/test/test_index.rb
CHANGED
data/test/test_metadata.rb
CHANGED
@@ -157,6 +157,9 @@ class TestMetadata < MiniTest::Test
|
|
157
157
|
|
158
158
|
assert_equal ['Hello World', 'http://perdu.com/a=b'],
|
159
159
|
ReaPack::Index::Link.split('Hello World http://perdu.com/a=b')
|
160
|
+
|
161
|
+
assert_equal ['Hello World', 'http://perdu.com/a=b'],
|
162
|
+
ReaPack::Index::Link.split('Hello World http://perdu.com/a=b')
|
160
163
|
end
|
161
164
|
|
162
165
|
def test_invalid_link
|
data/test/test_package.rb
CHANGED
@@ -95,7 +95,7 @@ class TestPackage < MiniTest::Test
|
|
95
95
|
assert_equal '1.0', versions.first.name
|
96
96
|
end
|
97
97
|
|
98
|
-
def
|
98
|
+
def test_new_version
|
99
99
|
before = make_node <<-XML
|
100
100
|
<reapack name="pkg" type="script">
|
101
101
|
<version name="1.0" />
|
@@ -120,6 +120,23 @@ class TestPackage < MiniTest::Test
|
|
120
120
|
assert pkg.has_version?('1.1'), 'version 1.1 not found'
|
121
121
|
end
|
122
122
|
|
123
|
+
def test_new_version_similar
|
124
|
+
before = make_node '<reapack name="pkg" type="script"/>'
|
125
|
+
|
126
|
+
pkg = ReaPack::Index::Package.new before
|
127
|
+
pkg.version '1.01'
|
128
|
+
|
129
|
+
error = assert_raises ReaPack::Index::Error do
|
130
|
+
pkg.version '1.1'
|
131
|
+
end
|
132
|
+
assert_equal 'version 1.1 is a duplicate of version 1.01', error.message
|
133
|
+
|
134
|
+
error = assert_raises ReaPack::Index::Error do
|
135
|
+
pkg.version '1//1'
|
136
|
+
end
|
137
|
+
assert_equal 'version 1//1 is a duplicate of version 1.01', error.message
|
138
|
+
end
|
139
|
+
|
123
140
|
def test_category_and_path
|
124
141
|
pkg1 = ReaPack::Index::Package.new make_node('<reapack/>')
|
125
142
|
assert_nil pkg1.category
|
data/test/test_parsers.rb
CHANGED
@@ -23,13 +23,34 @@ class TestParsers < MiniTest::Test
|
|
23
23
|
Test\x97
|
24
24
|
IN
|
25
25
|
|
26
|
-
|
27
|
-
+ Line 3
|
28
|
-
|
29
|
-
|
26
|
+
assert_equal '1.1', mh[:version]
|
27
|
+
assert_equal "+ Line 3\n+ Line 4", mh[:changelog]
|
28
|
+
end
|
29
|
+
|
30
|
+
def test_wordpress_no_date
|
31
|
+
mh = MetaHeader.new <<-IN
|
32
|
+
/**
|
33
|
+
* Version: 1.1
|
34
|
+
*/
|
35
|
+
|
36
|
+
/**
|
37
|
+
* Changelog:
|
38
|
+
* v1.2
|
39
|
+
\t+ Line 1
|
40
|
+
\t+ Line 2
|
41
|
+
* v1.1
|
42
|
+
\t+ Line 3
|
43
|
+
\t+ Line 4
|
44
|
+
* v1.0
|
45
|
+
\t+ Line 5
|
46
|
+
\t+ Line 6
|
47
|
+
*/
|
48
|
+
|
49
|
+
Test\x97
|
50
|
+
IN
|
30
51
|
|
31
52
|
assert_equal '1.1', mh[:version]
|
32
|
-
assert_equal
|
53
|
+
assert_equal "+ Line 3\n+ Line 4", mh[:changelog]
|
33
54
|
end
|
34
55
|
|
35
56
|
def test_wordpress_noprefix
|
@@ -55,12 +76,7 @@ v1.0 (2012-01-01)
|
|
55
76
|
Test\x97
|
56
77
|
IN
|
57
78
|
|
58
|
-
changelog = <<-LOG
|
59
|
-
+ Line 3
|
60
|
-
+ Line 4
|
61
|
-
LOG
|
62
|
-
|
63
79
|
assert_equal '1.1', mh[:version]
|
64
|
-
assert_equal
|
80
|
+
assert_equal "+ Line 3\n+ Line 4", mh[:changelog]
|
65
81
|
end
|
66
82
|
end
|
data/test/test_provides.rb
CHANGED
data/test/test_scanner.rb
CHANGED
@@ -124,7 +124,7 @@ class TestScanner < MiniTest::Test
|
|
124
124
|
end
|
125
125
|
|
126
126
|
def test_website_links
|
127
|
-
@mh[:
|
127
|
+
@mh[:links] = [
|
128
128
|
'http://cfillion.tk',
|
129
129
|
'Label http://cfillion.tk',
|
130
130
|
].join "\n"
|
@@ -140,6 +140,7 @@ class TestScanner < MiniTest::Test
|
|
140
140
|
def test_screenshot_links
|
141
141
|
@mh[:screenshot] = [
|
142
142
|
'http://i.imgur.com/1.png',
|
143
|
+
'',
|
143
144
|
'Label http://i.imgur.com/2.png',
|
144
145
|
].join "\n"
|
145
146
|
|
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.1beta3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- cfillion
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-07-
|
11
|
+
date: 2016-07-28 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: 1.
|
131
|
+
version: 1.3beta2
|
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: 1.
|
138
|
+
version: 1.3beta2
|
139
139
|
- !ruby/object:Gem::Dependency
|
140
140
|
name: nokogiri
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|
@@ -296,4 +296,3 @@ test_files:
|
|
296
296
|
- test/test_scanner.rb
|
297
297
|
- test/test_source.rb
|
298
298
|
- test/test_version.rb
|
299
|
-
has_rdoc:
|