reapack-index 1.1beta1 → 1.1beta3
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.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:
|