puppet-library 0.9.1 → 0.10.0

Sign up to get free protection for your applications and to get access to all the features.
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