puppet-library 0.9.1 → 0.10.0

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.
Files changed (37) hide show
  1. checksums.yaml +7 -7
  2. data/CHANGELOG.yml +1 -0
  3. data/README.md +9 -4
  4. data/Rakefile +44 -23
  5. data/TODO.yml +3 -4
  6. data/config.ru +28 -3
  7. data/lib/puppet_library/forge/cache.rb +19 -0
  8. data/lib/puppet_library/forge/directory.rb +16 -0
  9. data/lib/puppet_library/forge/git_repository.rb +57 -49
  10. data/lib/puppet_library/forge/proxy.rb +18 -4
  11. data/lib/puppet_library/forge/source.rb +10 -0
  12. data/lib/puppet_library/puppet_library.rb +1 -1
  13. data/lib/puppet_library/server.rb +12 -3
  14. data/lib/puppet_library/util/git.rb +103 -0
  15. data/lib/puppet_library/util/patches.rb +104 -0
  16. data/lib/puppet_library/util/temp_dir.rb +42 -0
  17. data/lib/puppet_library/util.rb +4 -70
  18. data/lib/puppet_library/version.rb +1 -1
  19. data/spec/archive/archive_reader_spec.rb +9 -2
  20. data/spec/archive/archiver_spec.rb +4 -0
  21. data/spec/forge/cache_spec.rb +4 -0
  22. data/spec/forge/directory_spec.rb +4 -0
  23. data/spec/forge/git_repository_spec.rb +5 -2
  24. data/spec/forge/source_spec.rb +4 -0
  25. data/spec/integration_test_helper.rb +42 -0
  26. data/spec/util/git_spec.rb +143 -0
  27. data/spec/util/patches_spec.rb +86 -0
  28. data/spec/util/temp_dir_spec.rb +35 -0
  29. data/test/directory_forge_integration_test.rb +96 -0
  30. data/test/offline_git_repo_forge_integration_test.rb +122 -0
  31. data/test/offline_proxy_forge_integration_test.rb +126 -0
  32. data/test/online_git_repo_forge_integration_test.rb +89 -0
  33. data/test/online_proxy_forge_integration_test.rb +93 -0
  34. data/test/source_forge_integration_test.rb +96 -0
  35. metadata +292 -118
  36. data/spec/util_spec.rb +0 -43
  37. data/test/librarian_puppet_integration_test.rb +0 -349
metadata CHANGED
@@ -1,149 +1,303 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: puppet-library
3
- version: !ruby/object:Gem::Version
4
- version: 0.9.1
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.10.0
5
5
  platform: ruby
6
- authors:
6
+ authors:
7
7
  - drrb
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
-
12
- date: 2014-02-20 00:00:00 Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
11
+ date: 2014-02-25 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
15
14
  name: sinatra
16
- version_requirements: &id001 !ruby/object:Gem::Requirement
17
- requirements:
18
- - &id002
19
- - ">="
20
- - !ruby/object:Gem::Version
21
- version: "0"
22
- prerelease: false
23
- requirement: *id001
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
24
20
  type: :runtime
25
- - !ruby/object:Gem::Dependency
26
- name: json
27
- version_requirements: &id003 !ruby/object:Gem::Requirement
28
- requirements:
29
- - *id002
30
21
  prerelease: false
31
- requirement: *id003
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: json
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
32
34
  type: :runtime
33
- - !ruby/object:Gem::Dependency
34
- name: haml
35
- version_requirements: &id004 !ruby/object:Gem::Requirement
36
- requirements:
37
- - *id002
38
35
  prerelease: false
39
- requirement: *id004
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: haml
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
40
48
  type: :runtime
41
- - !ruby/object:Gem::Dependency
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
42
56
  name: bundler
43
- version_requirements: &id005 !ruby/object:Gem::Requirement
44
- requirements:
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
45
59
  - - ~>
46
- - !ruby/object:Gem::Version
47
- version: "1.3"
48
- prerelease: false
49
- requirement: *id005
60
+ - !ruby/object:Gem::Version
61
+ version: '1.3'
50
62
  type: :development
51
- - !ruby/object:Gem::Dependency
52
- name: coveralls
53
- version_requirements: &id006 !ruby/object:Gem::Requirement
54
- requirements:
55
- - *id002
56
63
  prerelease: false
57
- requirement: *id006
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ~>
67
+ - !ruby/object:Gem::Version
68
+ version: '1.3'
69
+ - !ruby/object:Gem::Dependency
70
+ name: coveralls
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
58
76
  type: :development
59
- - !ruby/object:Gem::Dependency
60
- name: gitsu
61
- version_requirements: &id007 !ruby/object:Gem::Requirement
62
- requirements:
63
- - *id002
64
77
  prerelease: false
65
- requirement: *id007
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: gitsu
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - '>='
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
66
90
  type: :development
67
- - !ruby/object:Gem::Dependency
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - '>='
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
68
98
  name: librarian-puppet
69
- version_requirements: &id008 !ruby/object:Gem::Requirement
70
- requirements:
71
- - - "="
72
- - !ruby/object:Gem::Version
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - '='
102
+ - !ruby/object:Gem::Version
73
103
  version: 0.9.10
74
- prerelease: false
75
- requirement: *id008
76
104
  type: :development
77
- - !ruby/object:Gem::Dependency
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - '='
109
+ - !ruby/object:Gem::Version
110
+ version: 0.9.10
111
+ - !ruby/object:Gem::Dependency
78
112
  name: mime-types
79
- version_requirements: &id009 !ruby/object:Gem::Requirement
80
- requirements:
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
81
115
  - - <
82
- - !ruby/object:Gem::Version
83
- version: "2"
84
- prerelease: false
85
- requirement: *id009
116
+ - !ruby/object:Gem::Version
117
+ version: '2'
86
118
  type: :development
87
- - !ruby/object:Gem::Dependency
88
- name: pry
89
- version_requirements: &id010 !ruby/object:Gem::Requirement
90
- requirements:
91
- - *id002
92
119
  prerelease: false
93
- requirement: *id010
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - <
123
+ - !ruby/object:Gem::Version
124
+ version: '2'
125
+ - !ruby/object:Gem::Dependency
126
+ name: pry
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - '>='
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
94
132
  type: :development
95
- - !ruby/object:Gem::Dependency
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - '>='
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ - !ruby/object:Gem::Dependency
96
140
  name: puppet
97
- version_requirements: &id011 !ruby/object:Gem::Requirement
98
- requirements:
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
99
143
  - - ~>
100
- - !ruby/object:Gem::Version
144
+ - !ruby/object:Gem::Version
101
145
  version: 3.3.0
102
- prerelease: false
103
- requirement: *id011
104
146
  type: :development
105
- - !ruby/object:Gem::Dependency
106
- name: rack-test
107
- version_requirements: &id012 !ruby/object:Gem::Requirement
108
- requirements:
109
- - *id002
110
147
  prerelease: false
111
- requirement: *id012
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ~>
151
+ - !ruby/object:Gem::Version
152
+ version: 3.3.0
153
+ - !ruby/object:Gem::Dependency
154
+ name: rack-test
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - '>='
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
112
160
  type: :development
113
- - !ruby/object:Gem::Dependency
114
- name: rake
115
- version_requirements: &id013 !ruby/object:Gem::Requirement
116
- requirements:
117
- - *id002
118
161
  prerelease: false
119
- requirement: *id013
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - '>='
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
167
+ - !ruby/object:Gem::Dependency
168
+ name: rake
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - '>='
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
120
174
  type: :development
121
- - !ruby/object:Gem::Dependency
122
- name: rspec
123
- version_requirements: &id014 !ruby/object:Gem::Requirement
124
- requirements:
125
- - *id002
126
175
  prerelease: false
127
- requirement: *id014
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - '>='
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
181
+ - !ruby/object:Gem::Dependency
182
+ name: rspec
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - '>='
186
+ - !ruby/object:Gem::Version
187
+ version: '0'
128
188
  type: :development
129
- - !ruby/object:Gem::Dependency
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - '>='
193
+ - !ruby/object:Gem::Version
194
+ version: '0'
195
+ - !ruby/object:Gem::Dependency
130
196
  name: simplecov
131
- version_requirements: &id015 !ruby/object:Gem::Requirement
132
- requirements:
133
- - *id002
197
+ requirement: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - '>='
200
+ - !ruby/object:Gem::Version
201
+ version: '0'
202
+ type: :development
134
203
  prerelease: false
135
- requirement: *id015
204
+ version_requirements: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - '>='
207
+ - !ruby/object:Gem::Version
208
+ version: '0'
209
+ - !ruby/object:Gem::Dependency
210
+ name: guard
211
+ requirement: !ruby/object:Gem::Requirement
212
+ requirements:
213
+ - - '>='
214
+ - !ruby/object:Gem::Version
215
+ version: '0'
136
216
  type: :development
217
+ prerelease: false
218
+ version_requirements: !ruby/object:Gem::Requirement
219
+ requirements:
220
+ - - '>='
221
+ - !ruby/object:Gem::Version
222
+ version: '0'
223
+ - !ruby/object:Gem::Dependency
224
+ name: guard-rspec
225
+ requirement: !ruby/object:Gem::Requirement
226
+ requirements:
227
+ - - '>='
228
+ - !ruby/object:Gem::Version
229
+ version: '0'
230
+ type: :development
231
+ prerelease: false
232
+ version_requirements: !ruby/object:Gem::Requirement
233
+ requirements:
234
+ - - '>='
235
+ - !ruby/object:Gem::Version
236
+ version: '0'
237
+ - !ruby/object:Gem::Dependency
238
+ name: terminal-notifier-guard
239
+ requirement: !ruby/object:Gem::Requirement
240
+ requirements:
241
+ - - '>='
242
+ - !ruby/object:Gem::Version
243
+ version: '0'
244
+ type: :development
245
+ prerelease: false
246
+ version_requirements: !ruby/object:Gem::Requirement
247
+ requirements:
248
+ - - '>='
249
+ - !ruby/object:Gem::Version
250
+ version: '0'
251
+ - !ruby/object:Gem::Dependency
252
+ name: capybara
253
+ requirement: !ruby/object:Gem::Requirement
254
+ requirements:
255
+ - - '>='
256
+ - !ruby/object:Gem::Version
257
+ version: '0'
258
+ type: :development
259
+ prerelease: false
260
+ version_requirements: !ruby/object:Gem::Requirement
261
+ requirements:
262
+ - - '>='
263
+ - !ruby/object:Gem::Version
264
+ version: '0'
265
+ - !ruby/object:Gem::Dependency
266
+ name: nokogiri
267
+ requirement: !ruby/object:Gem::Requirement
268
+ requirements:
269
+ - - '>='
270
+ - !ruby/object:Gem::Version
271
+ version: '0'
272
+ type: :development
273
+ prerelease: false
274
+ version_requirements: !ruby/object:Gem::Requirement
275
+ requirements:
276
+ - - '>='
277
+ - !ruby/object:Gem::Version
278
+ version: '0'
279
+ - !ruby/object:Gem::Dependency
280
+ name: cucumber
281
+ requirement: !ruby/object:Gem::Requirement
282
+ requirements:
283
+ - - '>='
284
+ - !ruby/object:Gem::Version
285
+ version: '0'
286
+ type: :development
287
+ prerelease: false
288
+ version_requirements: !ruby/object:Gem::Requirement
289
+ requirements:
290
+ - - '>='
291
+ - !ruby/object:Gem::Version
292
+ version: '0'
137
293
  description: A private Puppet forge
138
- email:
294
+ email:
139
295
  - drrrrrrrrrrrb@gmail.com
140
- executables:
296
+ executables:
141
297
  - puppet-library
142
298
  extensions: []
143
-
144
299
  extra_rdoc_files: []
145
-
146
- files:
300
+ files:
147
301
  - .gitignore
148
302
  - .licenseignore
149
303
  - .simplecov
@@ -191,6 +345,9 @@ files:
191
345
  - lib/puppet_library/puppet_module/modulefile.rb
192
346
  - lib/puppet_library/server.rb
193
347
  - lib/puppet_library/util.rb
348
+ - lib/puppet_library/util/git.rb
349
+ - lib/puppet_library/util/patches.rb
350
+ - lib/puppet_library/util/temp_dir.rb
194
351
  - lib/puppet_library/version.rb
195
352
  - puppet-library.gemspec
196
353
  - spec/archive/archive_reader_spec.rb
@@ -207,37 +364,46 @@ files:
207
364
  - spec/http/cache/noop_spec.rb
208
365
  - spec/http/http_client_spec.rb
209
366
  - spec/http/url_spec.rb
367
+ - spec/integration_test_helper.rb
210
368
  - spec/module_spec_helper.rb
211
369
  - spec/puppet_library_spec.rb
212
370
  - spec/puppet_module/modulefile_spec.rb
213
371
  - spec/server_spec.rb
214
372
  - spec/spec_helper.rb
215
- - spec/util_spec.rb
216
- - test/librarian_puppet_integration_test.rb
373
+ - spec/util/git_spec.rb
374
+ - spec/util/patches_spec.rb
375
+ - spec/util/temp_dir_spec.rb
376
+ - test/directory_forge_integration_test.rb
377
+ - test/offline_git_repo_forge_integration_test.rb
378
+ - test/offline_proxy_forge_integration_test.rb
379
+ - test/online_git_repo_forge_integration_test.rb
380
+ - test/online_proxy_forge_integration_test.rb
381
+ - test/source_forge_integration_test.rb
217
382
  homepage: https://github.com/drrb/puppet-library
218
- licenses:
383
+ licenses:
219
384
  - GPL-3
220
385
  metadata: {}
221
-
222
386
  post_install_message:
223
387
  rdoc_options: []
224
-
225
- require_paths:
388
+ require_paths:
226
389
  - lib
227
- required_ruby_version: !ruby/object:Gem::Requirement
228
- requirements:
229
- - *id002
230
- required_rubygems_version: !ruby/object:Gem::Requirement
231
- requirements:
232
- - *id002
390
+ required_ruby_version: !ruby/object:Gem::Requirement
391
+ requirements:
392
+ - - '>='
393
+ - !ruby/object:Gem::Version
394
+ version: '0'
395
+ required_rubygems_version: !ruby/object:Gem::Requirement
396
+ requirements:
397
+ - - '>='
398
+ - !ruby/object:Gem::Version
399
+ version: '0'
233
400
  requirements: []
234
-
235
401
  rubyforge_project:
236
- rubygems_version: 2.0.14
402
+ rubygems_version: 2.2.1
237
403
  signing_key:
238
404
  specification_version: 4
239
405
  summary: Puppet Library is a private Puppet module server that's compatible with librarian-puppet.
240
- test_files:
406
+ test_files:
241
407
  - features/module_list.feature
242
408
  - features/module_page.feature
243
409
  - features/module_search.feature
@@ -257,10 +423,18 @@ test_files:
257
423
  - spec/http/cache/noop_spec.rb
258
424
  - spec/http/http_client_spec.rb
259
425
  - spec/http/url_spec.rb
426
+ - spec/integration_test_helper.rb
260
427
  - spec/module_spec_helper.rb
261
428
  - spec/puppet_library_spec.rb
262
429
  - spec/puppet_module/modulefile_spec.rb
263
430
  - spec/server_spec.rb
264
431
  - spec/spec_helper.rb
265
- - spec/util_spec.rb
266
- - test/librarian_puppet_integration_test.rb
432
+ - spec/util/git_spec.rb
433
+ - spec/util/patches_spec.rb
434
+ - spec/util/temp_dir_spec.rb
435
+ - test/directory_forge_integration_test.rb
436
+ - test/offline_git_repo_forge_integration_test.rb
437
+ - test/offline_proxy_forge_integration_test.rb
438
+ - test/online_git_repo_forge_integration_test.rb
439
+ - test/online_proxy_forge_integration_test.rb
440
+ - test/source_forge_integration_test.rb
data/spec/util_spec.rb DELETED
@@ -1,43 +0,0 @@
1
- # -*- encoding: utf-8 -*-
2
- # Puppet Library
3
- # Copyright (C) 2014 drrb
4
- #
5
- # This program is free software: you can redistribute it and/or modify
6
- # it under the terms of the GNU General Public License as published by
7
- # the Free Software Foundation, either version 3 of the License, or
8
- # (at your option) any later version.
9
- #
10
- # This program is distributed in the hope that it will be useful,
11
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
12
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
- # GNU General Public License for more details.
14
- #
15
- # You should have received a copy of the GNU General Public License
16
- # along with this program. If not, see <http://www.gnu.org/licenses/>.
17
-
18
- require 'spec_helper'
19
-
20
- describe 'util' do
21
- describe Array do
22
- describe "#unique_by" do
23
- it "behaves like #uniq with a block, but works with Ruby < 1.9" do
24
- son = { "name" => "john", "age" => 10 }
25
- dad = { "name" => "john", "age" => 40 }
26
- mom = { "name" => "jane", "age" => 40 }
27
-
28
- family = [son, dad, mom]
29
- expect(family.unique_by {|p| p["name"]}).to eq [son, mom]
30
- end
31
- end
32
-
33
- describe "#version_sort" do
34
- it "sorts according to version numbers" do
35
- expect(["2.0.0", "1.10.0", "1.2.0"].version_sort).to eq ["1.2.0", "1.10.0", "2.0.0"]
36
- end
37
-
38
- it "copes with odd versions" do
39
- expect(["1.10.0-badprerelease", "1.3", "1.10.0", "xxx", "1.10.0.rc1", "1.2.0"].version_sort).to eq ["xxx", "1.2.0", "1.3", "1.10.0-badprerelease", "1.10.0.rc1", "1.10.0"]
40
- end
41
- end
42
- end
43
- end