stickler 2.0.0a → 2.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (64) hide show
  1. data/.bnsignore +14 -0
  2. data/.gitignore +17 -0
  3. data/HISTORY.asciidoc +20 -0
  4. data/README.asciidoc +126 -0
  5. data/Rakefile +22 -3
  6. data/bin/stickler +50 -0
  7. data/bin/stickler-passenger-config +112 -0
  8. data/bin/stickler-server +109 -0
  9. data/examples/config.ru +6 -3
  10. data/examples/gemcutter_repo.ru +2 -0
  11. data/examples/index_repo.ru +2 -0
  12. data/examples/local_repo.ru +6 -3
  13. data/examples/mirror_repo.ru +2 -0
  14. data/examples/not_found.ru +2 -0
  15. data/lib/stickler.rb +12 -0
  16. data/lib/stickler/client.rb +47 -0
  17. data/lib/stickler/client/config.rb +35 -0
  18. data/lib/stickler/client/config_file.rb +58 -0
  19. data/lib/stickler/client/mirror.rb +61 -0
  20. data/lib/stickler/client/push.rb +50 -0
  21. data/lib/stickler/client/yank.rb +51 -0
  22. data/lib/stickler/logable.rb +35 -0
  23. data/lib/stickler/middleware/gemcutter.rb +5 -0
  24. data/lib/stickler/middleware/helpers.rb +32 -0
  25. data/lib/stickler/middleware/index.rb +30 -4
  26. data/lib/stickler/middleware/mirror.rb +8 -3
  27. data/lib/stickler/middleware/not_found.rb +4 -2
  28. data/lib/stickler/paths.rb +53 -0
  29. data/lib/stickler/repository/local.rb +12 -12
  30. data/lib/stickler/repository/mirror.rb +13 -6
  31. data/lib/stickler/repository/null.rb +1 -0
  32. data/lib/stickler/repository/remote.rb +10 -4
  33. data/lib/stickler/repository/rubygems_authenticator.rb +32 -0
  34. data/lib/stickler/server.rb +34 -0
  35. data/lib/stickler/server/public/css/blueprint/LICENSE +22 -0
  36. data/lib/stickler/server/public/css/blueprint/ie.css +35 -0
  37. data/lib/stickler/server/public/css/blueprint/screen.css +266 -0
  38. data/lib/stickler/server/public/css/style.css +19 -0
  39. data/lib/stickler/server/public/images/apple-touch-icon.png +0 -0
  40. data/lib/stickler/server/public/images/favicon.ico +0 -0
  41. data/lib/stickler/server/public/js/modernizr-1.5.min.js +28 -0
  42. data/lib/stickler/server/views/index.erb +35 -0
  43. data/lib/stickler/server/views/layout.erb +42 -0
  44. data/lib/stickler/spec_lite.rb +16 -6
  45. data/lib/stickler/version.rb +1 -1
  46. data/man/asciidoc.conf +25 -0
  47. data/man/stickler-passenger-config.asciidoc +74 -0
  48. data/man/stickler-server.asciidoc +87 -0
  49. data/man/stickler.asciidoc +148 -0
  50. data/spec/middleware/common_gem_server_helpers.rb +4 -2
  51. data/spec/middleware/index_spec.rb +3 -3
  52. data/spec/middleware/legacy_gem_server_behavior.rb +0 -2
  53. data/spec/middleware/local_spec.rb +3 -3
  54. data/spec/middleware/modern_gem_server_behavior.rb +2 -0
  55. data/spec/paths_spec.rb +13 -0
  56. data/spec/spec_lite_spec.rb +14 -0
  57. data/tasks/man.rake +19 -0
  58. metadata +183 -56
  59. data/HISTORY.rdoc +0 -12
  60. data/README.rdoc +0 -88
  61. data/lib/stickler/web.rb +0 -19
  62. data/stickler.gemspec +0 -60
  63. data/views/index.erb +0 -19
  64. data/views/layout.erb +0 -39
@@ -0,0 +1,19 @@
1
+ namespace :man do
2
+
3
+ rule '.1' => '.asciidoc' do |t|
4
+ sh "a2x --format manpage #{t.source}"
5
+ end
6
+
7
+ src = FileList["man/*.asciidoc"]
8
+ man = src.collect{ |f| f.ext( "1" ) }
9
+
10
+ desc "Create man pages"
11
+ task :create => man
12
+
13
+ task :clobber_man do
14
+ rm_f FileList["man/*.1", "man/*.html", "man/*.xml"]
15
+ end
16
+ end
17
+
18
+ task :clobber => %w[ man:clobber_man ]
19
+ task 'gem:prereqs' => 'man:create'
metadata CHANGED
@@ -1,7 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stickler
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0a
4
+ hash: 13
5
+ prerelease: false
6
+ segments:
7
+ - 2
8
+ - 0
9
+ - 1
10
+ version: 2.0.1
5
11
  platform: ruby
6
12
  authors:
7
13
  - Jeremy Hinegardner
@@ -9,110 +15,208 @@ autorequire:
9
15
  bindir: bin
10
16
  cert_chain: []
11
17
 
12
- date: 2010-06-29 00:00:00 -06:00
18
+ date: 2010-09-19 00:00:00 -06:00
13
19
  default_executable:
14
20
  dependencies:
15
21
  - !ruby/object:Gem::Dependency
16
22
  name: sinatra
17
- type: :runtime
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
20
26
  requirements:
21
27
  - - ~>
22
28
  - !ruby/object:Gem::Version
29
+ hash: 23
30
+ segments:
31
+ - 1
32
+ - 0
33
+ - 0
23
34
  version: 1.0.0
24
- version:
35
+ type: :runtime
36
+ version_requirements: *id001
25
37
  - !ruby/object:Gem::Dependency
26
38
  name: addressable
27
- type: :runtime
28
- version_requirement:
29
- version_requirements: !ruby/object:Gem::Requirement
39
+ prerelease: false
40
+ requirement: &id002 !ruby/object:Gem::Requirement
41
+ none: false
30
42
  requirements:
31
43
  - - ~>
32
44
  - !ruby/object:Gem::Version
45
+ hash: 15
46
+ segments:
47
+ - 2
48
+ - 1
49
+ - 2
33
50
  version: 2.1.2
34
- version:
51
+ type: :runtime
52
+ version_requirements: *id002
35
53
  - !ruby/object:Gem::Dependency
36
54
  name: resourceful
37
- type: :runtime
38
- version_requirement:
39
- version_requirements: !ruby/object:Gem::Requirement
55
+ prerelease: false
56
+ requirement: &id003 !ruby/object:Gem::Requirement
57
+ none: false
40
58
  requirements:
41
59
  - - ~>
42
60
  - !ruby/object:Gem::Version
61
+ hash: 21
62
+ segments:
63
+ - 1
64
+ - 0
65
+ - 1
43
66
  version: 1.0.1
44
- version:
67
+ type: :runtime
68
+ version_requirements: *id003
69
+ - !ruby/object:Gem::Dependency
70
+ name: trollop
71
+ prerelease: false
72
+ requirement: &id004 !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ~>
76
+ - !ruby/object:Gem::Version
77
+ hash: 83
78
+ segments:
79
+ - 1
80
+ - 16
81
+ - 2
82
+ version: 1.16.2
83
+ type: :runtime
84
+ version_requirements: *id004
85
+ - !ruby/object:Gem::Dependency
86
+ name: logging
87
+ prerelease: false
88
+ requirement: &id005 !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ~>
92
+ - !ruby/object:Gem::Version
93
+ hash: 1
94
+ segments:
95
+ - 1
96
+ - 4
97
+ - 3
98
+ version: 1.4.3
99
+ type: :runtime
100
+ version_requirements: *id005
45
101
  - !ruby/object:Gem::Dependency
46
102
  name: bones
47
- type: :development
48
- version_requirement:
49
- version_requirements: !ruby/object:Gem::Requirement
103
+ prerelease: false
104
+ requirement: &id006 !ruby/object:Gem::Requirement
105
+ none: false
50
106
  requirements:
51
107
  - - ~>
52
108
  - !ruby/object:Gem::Version
109
+ hash: 27
110
+ segments:
111
+ - 3
112
+ - 4
113
+ - 6
53
114
  version: 3.4.6
54
- version:
115
+ type: :development
116
+ version_requirements: *id006
55
117
  - !ruby/object:Gem::Dependency
56
118
  name: rack-test
57
- type: :development
58
- version_requirement:
59
- version_requirements: !ruby/object:Gem::Requirement
119
+ prerelease: false
120
+ requirement: &id007 !ruby/object:Gem::Requirement
121
+ none: false
60
122
  requirements:
61
123
  - - ~>
62
124
  - !ruby/object:Gem::Version
125
+ hash: 3
126
+ segments:
127
+ - 0
128
+ - 5
129
+ - 4
63
130
  version: 0.5.4
64
- version:
131
+ type: :development
132
+ version_requirements: *id007
65
133
  - !ruby/object:Gem::Dependency
66
134
  name: bones-extras
67
- type: :development
68
- version_requirement:
69
- version_requirements: !ruby/object:Gem::Requirement
135
+ prerelease: false
136
+ requirement: &id008 !ruby/object:Gem::Requirement
137
+ none: false
70
138
  requirements:
71
139
  - - ~>
72
140
  - !ruby/object:Gem::Version
141
+ hash: 23
142
+ segments:
143
+ - 1
144
+ - 2
145
+ - 4
73
146
  version: 1.2.4
74
- version:
147
+ type: :development
148
+ version_requirements: *id008
75
149
  - !ruby/object:Gem::Dependency
76
150
  name: bones
77
- type: :development
78
- version_requirement:
79
- version_requirements: !ruby/object:Gem::Requirement
151
+ prerelease: false
152
+ requirement: &id009 !ruby/object:Gem::Requirement
153
+ none: false
80
154
  requirements:
81
155
  - - ">="
82
156
  - !ruby/object:Gem::Version
157
+ hash: 27
158
+ segments:
159
+ - 3
160
+ - 4
161
+ - 6
83
162
  version: 3.4.6
84
- version:
85
- description: |-
163
+ type: :development
164
+ version_requirements: *id009
165
+ description: |
86
166
  Stickler is a tool to organize and maintain an internal gem repository.
167
+ Primarily, you would want to use Stickler if:
87
168
 
88
- At times it is useful to have complete control over the availability of the gems
89
- for you testing, staging and production environments. In these cases you
90
- probably do not want to accidentally type 'gem update' and get a new untested
91
- version of a gem installed on your machines. This is where Stickler helps.
92
-
93
- Configure stickler with the the names and versions of the gems you require for
94
- your deployment and it will organize and setup everything that is necessary for
95
- a standard web server to function as your internal gem distribution server.
96
- email: jeremy@hinegardner.org
97
- executables: []
169
+ 1. You have proprietary gems that you want to have available via a gem server so
170
+ you may +gem install+ them.
171
+ 2. You would like to have a local mirror of third party gems from either
172
+ http://rubygems.org or some other gem server.
173
+ 3. You want both (1) and (2) in the same server.
98
174
 
175
+ email: jeremy@hinegardner.org
176
+ executables:
177
+ - stickler
178
+ - stickler-passenger-config
179
+ - stickler-server
99
180
  extensions: []
100
181
 
101
182
  extra_rdoc_files:
102
- - HISTORY.rdoc
103
- - README.rdoc
183
+ - bin/stickler
184
+ - bin/stickler-passenger-config
185
+ - bin/stickler-server
186
+ - lib/stickler/server/public/css/blueprint/LICENSE
187
+ - lib/stickler/server/public/css/blueprint/ie.css
188
+ - lib/stickler/server/public/css/blueprint/screen.css
189
+ - lib/stickler/server/public/css/style.css
190
+ - lib/stickler/server/public/images/apple-touch-icon.png
191
+ - lib/stickler/server/public/images/favicon.ico
192
+ - lib/stickler/server/public/js/modernizr-1.5.min.js
193
+ - lib/stickler/server/views/index.erb
194
+ - lib/stickler/server/views/layout.erb
104
195
  files:
105
- - HISTORY.rdoc
196
+ - .bnsignore
197
+ - .gitignore
198
+ - HISTORY.asciidoc
106
199
  - LICENSE
107
- - README.rdoc
200
+ - README.asciidoc
108
201
  - Rakefile
202
+ - bin/stickler
203
+ - bin/stickler-passenger-config
204
+ - bin/stickler-server
109
205
  - examples/config.ru
110
206
  - examples/gemcutter_repo.ru
111
207
  - examples/index_repo.ru
112
208
  - examples/local_repo.ru
113
209
  - examples/mirror_repo.ru
114
210
  - examples/not_found.ru
211
+ - lib/stickler.rb
212
+ - lib/stickler/client.rb
213
+ - lib/stickler/client/config.rb
214
+ - lib/stickler/client/config_file.rb
215
+ - lib/stickler/client/mirror.rb
216
+ - lib/stickler/client/push.rb
217
+ - lib/stickler/client/yank.rb
115
218
  - lib/stickler/error.rb
219
+ - lib/stickler/logable.rb
116
220
  - lib/stickler/middleware.rb
117
221
  - lib/stickler/middleware/compression.rb
118
222
  - lib/stickler/middleware/gemcutter.rb
@@ -121,6 +225,7 @@ files:
121
225
  - lib/stickler/middleware/local.rb
122
226
  - lib/stickler/middleware/mirror.rb
123
227
  - lib/stickler/middleware/not_found.rb
228
+ - lib/stickler/paths.rb
124
229
  - lib/stickler/repository.rb
125
230
  - lib/stickler/repository/api.rb
126
231
  - lib/stickler/repository/index.rb
@@ -128,9 +233,26 @@ files:
128
233
  - lib/stickler/repository/mirror.rb
129
234
  - lib/stickler/repository/null.rb
130
235
  - lib/stickler/repository/remote.rb
236
+ - lib/stickler/repository/rubygems_authenticator.rb
237
+ - lib/stickler/server.rb
238
+ - lib/stickler/server/public/css/blueprint/LICENSE
239
+ - lib/stickler/server/public/css/blueprint/ie.css
240
+ - lib/stickler/server/public/css/blueprint/screen.css
241
+ - lib/stickler/server/public/css/style.css
242
+ - lib/stickler/server/public/images/apple-touch-icon.png
243
+ - lib/stickler/server/public/images/favicon.ico
244
+ - lib/stickler/server/public/js/modernizr-1.5.min.js
245
+ - lib/stickler/server/views/index.erb
246
+ - lib/stickler/server/views/layout.erb
131
247
  - lib/stickler/spec_lite.rb
132
248
  - lib/stickler/version.rb
133
- - lib/stickler/web.rb
249
+ - man/asciidoc.conf
250
+ - man/stickler-passenger-config.1
251
+ - man/stickler-passenger-config.asciidoc
252
+ - man/stickler-server.1
253
+ - man/stickler-server.asciidoc
254
+ - man/stickler.1
255
+ - man/stickler.asciidoc
134
256
  - spec/data/gems/bar-1.0.0.gem
135
257
  - spec/data/gems/foo-1.0.0.gem
136
258
  - spec/data/specifications/bar-1.0.0.gemspec
@@ -141,6 +263,7 @@ files:
141
263
  - spec/middleware/local_spec.rb
142
264
  - spec/middleware/modern_gem_server_behavior.rb
143
265
  - spec/middleware/not_found_spec.rb
266
+ - spec/paths_spec.rb
144
267
  - spec/repository/api_behavior.rb
145
268
  - spec/repository/api_spec.rb
146
269
  - spec/repository/index_spec.rb
@@ -150,9 +273,7 @@ files:
150
273
  - spec/spec.opts
151
274
  - spec/spec_helper.rb
152
275
  - spec/spec_lite_spec.rb
153
- - stickler.gemspec
154
- - views/index.erb
155
- - views/layout.erb
276
+ - tasks/man.rake
156
277
  has_rdoc: true
157
278
  homepage: http://rubygems.org/gems/stickler
158
279
  licenses: []
@@ -160,27 +281,33 @@ licenses: []
160
281
  post_install_message:
161
282
  rdoc_options:
162
283
  - --main
163
- - README.rdoc
284
+ - README.asciidoc
164
285
  require_paths:
165
286
  - lib
166
287
  required_ruby_version: !ruby/object:Gem::Requirement
288
+ none: false
167
289
  requirements:
168
290
  - - ">="
169
291
  - !ruby/object:Gem::Version
292
+ hash: 3
293
+ segments:
294
+ - 0
170
295
  version: "0"
171
- version:
172
296
  required_rubygems_version: !ruby/object:Gem::Requirement
297
+ none: false
173
298
  requirements:
174
- - - ">"
299
+ - - ">="
175
300
  - !ruby/object:Gem::Version
176
- version: 1.3.1
177
- version:
301
+ hash: 3
302
+ segments:
303
+ - 0
304
+ version: "0"
178
305
  requirements: []
179
306
 
180
307
  rubyforge_project: copiousfreetime
181
- rubygems_version: 1.3.5
308
+ rubygems_version: 1.3.7
182
309
  signing_key:
183
310
  specification_version: 3
184
- summary: Stickler is a tool to organize and maintain an internal gem repository
311
+ summary: Stickler is a tool to organize and maintain an internal gem repository.
185
312
  test_files: []
186
313
 
@@ -1,12 +0,0 @@
1
- = stickler Changelog
2
- == Version 0.1.2
3
-
4
- * fix compatibility with gems 1.3.1
5
-
6
- == Version 0.1.1
7
- * 1 minor bugfix
8
- * remove unnecessary require 'progressbar'
9
-
10
- == Version 0.1.0
11
- * {Managing a Gem Repository with Stickler}[http://copiousfreetime.org/articles/2008/10/09/managing-a-gem-repository-with-stickler.html]
12
- * Initial public release
@@ -1,88 +0,0 @@
1
- = Stickler
2
-
3
- * Homepage[http://copiousfreetime.rubyforge.org/stickler/]
4
- * {Rubyforge Project}[http://rubyforge.org/projects/copiousfreetime/]
5
- * email jeremy at hinegardner dot org
6
- * {Managing a Gem Repository with Stickler}[http://copiousfreetime.org/articles/2008/10/09/managing-a-gem-repository-with-stickler.html]
7
-
8
- == DESCRIPTION
9
-
10
- Stickler is a tool to organize and maintain an internal gem repository.
11
-
12
- At times it is useful to have complete control over the availability of the gems
13
- for you testing, staging and production environments. In these cases you
14
- probably do not want to accidentally type 'gem update' and get a new untested
15
- version of a gem installed on your machines. This is where Stickler helps.
16
-
17
- Configure stickler with the the names and versions of the gems you require for
18
- your deployment and it will organize and setup everything that is necessary for
19
- a standard web server to function as your internal gem distribution server.
20
-
21
-
22
- == INSTALLATION
23
-
24
- Install as a gem:
25
-
26
- gem install stickler
27
-
28
- Or Get it from RubyForge[http://rubyforge.org/projects/copiousfreetime/]
29
- or github[http://github.com/copiousfreetime/stickler/tree/master]
30
-
31
- == SYNOPSIS
32
-
33
- Using stickler is fairly simple. First install it, then create a new stickler
34
- repository with the setup command:
35
-
36
- stickler setup /var/stickler
37
-
38
- This will create a stickler repository in /var/stickler, assuming you have the
39
- correct permissions to create that directory. Now you need to populate it with
40
- some gems. You can add and remove both gems and sources. The best way to do
41
- this is to change into stickler repository and run other commands.
42
-
43
- cd /var/stickler
44
- stickler add gem ramaze
45
-
46
- This will prompt you for the gem version requirement for 'ramaze' and then
47
- download ramaze and everything it depends upon into the stickler repository.
48
-
49
- You can also add your own upstream gem repository to stickler. This enables you
50
- to merge multiple upstream repositories into a single repository.
51
-
52
- stickler add source http://gems.example.com/
53
-
54
- Now you can add gems to your stickler repository that are found in the default
55
- upstream repository (rubygems) and your custom upstream repositories. It will
56
- even resolve dependencies between them.
57
-
58
- When you are ready to distribute the gems found in your stickler repository,
59
- edit the 'stickler.yml' file found in the root of your repository and set the
60
- 'downstream_source' configuration variable. This is the location that your
61
- installed rubygems clients will contact to download gems. Most likely something
62
- like 'http://gems.example.com' or whatever your company / organization name is.
63
-
64
- Then run the index command to generate the distributable gem repository.
65
-
66
- stickler generate index
67
-
68
- This generates a directory structure under the 'dist' directory that you can
69
- rsync to a web server or otherwise push to some location for your managed
70
- machines to contact for gems.
71
-
72
- If you want to setup a system gem source configuration, use the 'generate
73
- sysconfig' command to generate the text file you can put on your systems so that
74
- they contact the 'downstream_source' as the default gem server. The command
75
- informs you of where to install the file.
76
-
77
- stickler generate sysconfig
78
-
79
- == CREDITS
80
-
81
- * {The Rubygems Team}[http://rubyforge.org/projects/rubygems/]
82
-
83
- == LICENSE
84
-
85
- Copyright (c) 2008 Jeremy Hinegardner
86
-
87
- All rights reserved. Licensed under the same terms as Ruby. No warranty is
88
- provided. See LICENSE and COPYING for details.