reapack-index 1.0beta2

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.
@@ -0,0 +1,95 @@
1
+ require File.expand_path '../helper', __FILE__
2
+
3
+ class TestPackage < MiniTest::Test
4
+ include XMLHelper
5
+
6
+ def test_create
7
+ before = make_node '<category />'
8
+ after = <<-XML
9
+ <category>
10
+ <reapack name="1.0"/>
11
+ </category>
12
+ XML
13
+
14
+ pkg = ReaPack::Index::Package.new '1.0', before
15
+ assert pkg.is_new?, 'package is not new'
16
+ assert pkg.modified?, 'package is not modified'
17
+
18
+ assert_equal after.chomp, before.to_s
19
+ end
20
+
21
+ def test_use
22
+ before = make_node '<reapack name="1.0"/>'
23
+
24
+ pkg = ReaPack::Index::Package.new before
25
+ refute pkg.is_new?, 'package is new'
26
+ refute pkg.modified?, 'package is modified'
27
+ end
28
+
29
+ def test_change_type
30
+ before = make_node '<reapack name="1.0"/>'
31
+ after = '<reapack name="1.0" type="script"/>'
32
+
33
+ pkg = ReaPack::Index::Package.new before
34
+ assert_empty pkg.type
35
+
36
+ pkg.type = 'script'
37
+ assert pkg.modified?, 'package is not modified'
38
+ assert_equal 'script', pkg.type
39
+
40
+ assert_equal after, before.to_s
41
+ end
42
+
43
+ def test_set_same_type
44
+ before = make_node '<reapack name="1.0" type="script"/>'
45
+
46
+ pkg = ReaPack::Index::Package.new before
47
+
48
+ assert_equal 'script', pkg.type
49
+ pkg.type = pkg.type
50
+
51
+ refute pkg.modified?, 'package is modified'
52
+ end
53
+
54
+ def test_versions
55
+ before = make_node <<-XML
56
+ <reapack name="1.0" type="script">
57
+ <version name="1.0" />
58
+ </reapack>
59
+ XML
60
+
61
+ pkg = ReaPack::Index::Package.new before
62
+ assert pkg.has_version?('1.0'), 'version 1.0 not found'
63
+ refute pkg.has_version?('1.1'), 'version 1.1 was found?!'
64
+
65
+ versions = pkg.versions
66
+ assert_equal 1, versions.size
67
+ assert_kind_of ReaPack::Index::Version, versions.first
68
+ assert_equal '1.0', versions.first.name
69
+ end
70
+
71
+ def test_get_or_create_version
72
+ before = make_node <<-XML
73
+ <reapack name="1.0" type="script">
74
+ <version name="1.0" />
75
+ </reapack>
76
+ XML
77
+
78
+ pkg = ReaPack::Index::Package.new before
79
+
80
+ ver10 = pkg.version '1.0'
81
+ refute pkg.modified?, 'package is modified'
82
+
83
+ ver11 = pkg.version '1.1'
84
+ assert pkg.modified?, 'package not modified'
85
+
86
+ block_result = []
87
+ pkg.version '1.1' do |*vars|
88
+ block_result << vars
89
+ end
90
+
91
+ assert_equal [[ver11]], block_result
92
+
93
+ assert pkg.has_version?('1.1'), 'version 1.1 not found'
94
+ end
95
+ end
@@ -0,0 +1,35 @@
1
+ require File.expand_path '../helper', __FILE__
2
+
3
+ class TestParsers < MiniTest::Test
4
+ def test_wordpress
5
+ mh = MetaHeader.new <<-IN
6
+ /**
7
+ * Version: 1.1
8
+ */
9
+
10
+ /**
11
+ * Changelog:
12
+ * v1.2 (2010-01-01)
13
+ \t+ Line 1
14
+ \t+ Line 2
15
+ * v1.1 (2011-01-01)
16
+ \t+ Line 3
17
+ \t+ Line 4
18
+ * v1.0 (2012-01-01)
19
+ \t+ Line 5
20
+ \t+ Line 6
21
+ */
22
+
23
+ Test\x97
24
+ IN
25
+
26
+ changelog = <<-LOG
27
+ (2011-01-01)
28
+ + Line 3
29
+ + Line 4
30
+ LOG
31
+
32
+ assert_equal '1.1', mh[:version]
33
+ assert_equal changelog.chomp, mh[:changelog]
34
+ end
35
+ end
@@ -0,0 +1,215 @@
1
+ require File.expand_path '../helper', __FILE__
2
+
3
+ class TestVersion < MiniTest::Test
4
+ include XMLHelper
5
+
6
+ def test_create
7
+ before = make_node '<reapack />'
8
+ after = <<-XML
9
+ <reapack>
10
+ <version name="1.0"/>
11
+ </reapack>
12
+ XML
13
+
14
+ ver = ReaPack::Index::Version.new '1.0', before
15
+ assert ver.is_new?, 'version is not new'
16
+ assert ver.modified?, 'version is not modified'
17
+
18
+ assert_equal after.chomp, before.to_s
19
+ end
20
+
21
+ def test_use
22
+ before = make_node '<version name="1.0"/>'
23
+
24
+ ver = ReaPack::Index::Version.new before
25
+ refute ver.is_new?, 'version is new'
26
+ refute ver.modified?, 'version is modified'
27
+ end
28
+
29
+ def test_set_author
30
+ before = make_node '<version name="1.0"/>'
31
+ after = '<version name="1.0" author="cfillion"/>'
32
+
33
+ ver = ReaPack::Index::Version.new before
34
+ assert_empty ver.author
35
+
36
+ ver.author = 'cfillion'
37
+ assert ver.modified?, 'version is not modified'
38
+ assert_equal 'cfillion', ver.author
39
+
40
+ assert_equal after, before.to_s
41
+ end
42
+
43
+ def test_set_same_author
44
+ before = make_node '<version name="1.0" author="cfillion"/>'
45
+
46
+ ver = ReaPack::Index::Version.new before
47
+
48
+ assert_equal 'cfillion', ver.author
49
+ ver.author = ver.author
50
+
51
+ refute ver.modified?, 'version is modified'
52
+ end
53
+
54
+ def test_remove_author
55
+ before = make_node '<version name="1.0" author="cfillion"/>'
56
+ after = '<version name="1.0"/>'
57
+
58
+ ver = ReaPack::Index::Version.new before
59
+ assert_equal 'cfillion', ver.author
60
+
61
+ ver.author = nil
62
+ assert ver.modified?, 'version is not modified'
63
+
64
+ assert_equal after, before.to_s
65
+ end
66
+
67
+ def test_set_time
68
+ before = make_node '<version name="1.0"/>'
69
+ after = '<version name="1.0" time="2016-02-12T01:16:40Z"/>'
70
+
71
+ time = Time.new 2016, 2, 11, 20, 16, 40, -5 * 3600
72
+
73
+ ver = ReaPack::Index::Version.new before
74
+ assert_nil ver.time
75
+
76
+ ver.time = time
77
+ assert ver.modified?, 'version is not modified'
78
+ assert_equal time, ver.time
79
+
80
+ assert_equal after, before.to_s
81
+ end
82
+
83
+ def test_set_same_time
84
+ ver = ReaPack::Index::Version.new \
85
+ make_node '<version name="1.0" time="2016-02-12T01:16:40Z"/>'
86
+
87
+ time = Time.new 2016, 2, 11, 20, 16, 40, -5 * 3600
88
+
89
+ assert_equal time, ver.time
90
+ ver.time = time
91
+
92
+ refute ver.modified?, 'version is modified'
93
+ end
94
+
95
+ def test_remove_time
96
+ before = make_node '<version name="1.0" time="2016-02-12T01:16:40Z"/>'
97
+ after = '<version name="1.0"/>'
98
+
99
+ ver = ReaPack::Index::Version.new before
100
+
101
+ ver.time = nil
102
+ assert ver.modified?, 'version is not modified'
103
+
104
+ assert_equal after, before.to_s
105
+ end
106
+
107
+ def test_add_source
108
+ before = make_node '<version name="1.0"/>'
109
+ after = <<-XML
110
+ <version name="1.0">
111
+ <source platform="all" file="test.lua">http://files.cfillion.tk/test.lua</source>
112
+ </version>
113
+ XML
114
+
115
+ src = ReaPack::Index::Source.new nil, 'test.lua',
116
+ 'http://files.cfillion.tk/test.lua'
117
+
118
+ ver = ReaPack::Index::Version.new before
119
+ ver.add_source src
120
+
121
+ assert ver.modified?, 'version is not modified'
122
+
123
+ assert_equal after.chomp, before.to_s
124
+ end
125
+
126
+ def test_escape_source_url
127
+ before = make_node '<version name="1.0"/>'
128
+ after = <<-XML
129
+ <version name="1.0">
130
+ <source platform="all" file="test.lua">http://files.cfillion.tk/hello%20world.lua</source>
131
+ </version>
132
+ XML
133
+
134
+ ver = ReaPack::Index::Version.new before
135
+ ver.add_source :all, 'test.lua', 'http://files.cfillion.tk/hello world.lua'
136
+
137
+ assert_equal after.chomp, before.to_s
138
+ end
139
+
140
+ def test_replace_sources
141
+ before = make_node <<-XML
142
+ <version name="1.0">
143
+ <source platform="all" file="old.lua">http://files.cfillion.tk/old.lua</source>
144
+ </version>
145
+ XML
146
+
147
+ after = <<-XML
148
+ <version name="1.0">
149
+ <source platform="all" file="new.lua">http://files.cfillion.tk/new.lua</source>
150
+ </version>
151
+ XML
152
+
153
+ ver = ReaPack::Index::Version.new before
154
+
155
+ ver.replace_sources do
156
+ ver.add_source :all, 'new.lua', 'http://files.cfillion.tk/new.lua'
157
+ end
158
+
159
+ assert ver.modified?, 'version is not modified'
160
+
161
+ assert_equal after.chomp, before.to_s
162
+ end
163
+
164
+ def test_replace_sources_to_identical
165
+ before = make_node <<-XML
166
+ <version name="1.0">
167
+ <source platform="all" file="test.lua">http://files.cfillion.tk/test.lua</source>
168
+ </version>
169
+ XML
170
+
171
+ ver = ReaPack::Index::Version.new before
172
+
173
+ ver.replace_sources do
174
+ ver.add_source :all, 'test.lua', 'http://files.cfillion.tk/test.lua'
175
+ end
176
+
177
+ refute ver.modified?, 'version is modified'
178
+ end
179
+
180
+ def test_set_changelog
181
+ before = make_node '<version name="1.0"/>'
182
+
183
+ ver = ReaPack::Index::Version.new before
184
+ ver.changelog = 'Refactored the test suite'
185
+
186
+ assert ver.modified?, 'version is not modified'
187
+ end
188
+
189
+ def test_source_platform
190
+ src = ReaPack::Index::Source.new
191
+ assert_equal :all, src.platform
192
+
193
+ src.platform = :windows
194
+ assert_equal :windows, src.platform
195
+
196
+ error = assert_raises ReaPack::Index::Error do
197
+ src.platform = :hello
198
+ end
199
+
200
+ assert_equal 'invalid platform hello', error.message
201
+
202
+ src.platform = nil
203
+ assert_equal :all, src.platform
204
+ end
205
+
206
+ def test_version_without_sources
207
+ ver = ReaPack::Index::Version.new make_node('<version name="1.0"/>')
208
+
209
+ error = assert_raises ReaPack::Index::Error do
210
+ ver.replace_sources do; end
211
+ end
212
+
213
+ assert_equal 'no sources found. @provides tag missing?', error.message
214
+ end
215
+ end
metadata ADDED
@@ -0,0 +1,238 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: reapack-index
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0beta2
5
+ platform: ruby
6
+ authors:
7
+ - cfillion
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-02-16 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.10'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.10'
27
+ - !ruby/object:Gem::Dependency
28
+ name: coveralls
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '0.8'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '0.8'
41
+ - !ruby/object:Gem::Dependency
42
+ name: git
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1.2'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1.2'
55
+ - !ruby/object:Gem::Dependency
56
+ name: minitest
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '5.8'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '5.8'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rake
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: simplecov
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '0.11'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '0.11'
97
+ - !ruby/object:Gem::Dependency
98
+ name: colorize
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '0.7'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '0.7'
111
+ - !ruby/object:Gem::Dependency
112
+ name: metaheader
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '1.0'
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '1.0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: nokogiri
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: '1.6'
132
+ type: :runtime
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: '1.6'
139
+ - !ruby/object:Gem::Dependency
140
+ name: pandoc-ruby
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: '1.0'
146
+ type: :runtime
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - "~>"
151
+ - !ruby/object:Gem::Version
152
+ version: '1.0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: rugged
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - "~>"
158
+ - !ruby/object:Gem::Version
159
+ version: 0.24.0b12
160
+ type: :runtime
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - "~>"
165
+ - !ruby/object:Gem::Version
166
+ version: 0.24.0b12
167
+ description:
168
+ email:
169
+ - reapack-index@cfillion.tk
170
+ executables:
171
+ - reapack-index
172
+ extensions: []
173
+ extra_rdoc_files: []
174
+ files:
175
+ - ".gitignore"
176
+ - ".travis.yml"
177
+ - Gemfile
178
+ - README.md
179
+ - Rakefile
180
+ - bin/reapack-index
181
+ - lib/reapack/index.rb
182
+ - lib/reapack/index/cli.rb
183
+ - lib/reapack/index/gem_version.rb
184
+ - lib/reapack/index/metadata.rb
185
+ - lib/reapack/index/named_node.rb
186
+ - lib/reapack/index/package.rb
187
+ - lib/reapack/index/parsers.rb
188
+ - lib/reapack/index/version.rb
189
+ - reapack-index.gemspec
190
+ - setup/.gitignore
191
+ - setup/reapack-index.nsi
192
+ - test/data/index.xml
193
+ - test/data/noindex.lua
194
+ - test/helper.rb
195
+ - test/test_changelog.rb
196
+ - test/test_cli.rb
197
+ - test/test_index.rb
198
+ - test/test_metadata.rb
199
+ - test/test_named_node.rb
200
+ - test/test_package.rb
201
+ - test/test_parsers.rb
202
+ - test/test_version.rb
203
+ homepage: https://github.com/cfillion/reapack-indexer
204
+ licenses:
205
+ - LGPL-3.0+
206
+ metadata: {}
207
+ post_install_message:
208
+ rdoc_options: []
209
+ require_paths:
210
+ - lib
211
+ required_ruby_version: !ruby/object:Gem::Requirement
212
+ requirements:
213
+ - - ">="
214
+ - !ruby/object:Gem::Version
215
+ version: '0'
216
+ required_rubygems_version: !ruby/object:Gem::Requirement
217
+ requirements:
218
+ - - ">"
219
+ - !ruby/object:Gem::Version
220
+ version: 1.3.1
221
+ requirements: []
222
+ rubyforge_project:
223
+ rubygems_version: 2.5.1
224
+ signing_key:
225
+ specification_version: 4
226
+ summary: Package indexer for ReaPack-based repositories
227
+ test_files:
228
+ - test/data/index.xml
229
+ - test/data/noindex.lua
230
+ - test/helper.rb
231
+ - test/test_changelog.rb
232
+ - test/test_cli.rb
233
+ - test/test_index.rb
234
+ - test/test_metadata.rb
235
+ - test/test_named_node.rb
236
+ - test/test_package.rb
237
+ - test/test_parsers.rb
238
+ - test/test_version.rb