stickler 2.0.0a → 2.0.1

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 (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.