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.
- data/.bnsignore +14 -0
- data/.gitignore +17 -0
- data/HISTORY.asciidoc +20 -0
- data/README.asciidoc +126 -0
- data/Rakefile +22 -3
- data/bin/stickler +50 -0
- data/bin/stickler-passenger-config +112 -0
- data/bin/stickler-server +109 -0
- data/examples/config.ru +6 -3
- data/examples/gemcutter_repo.ru +2 -0
- data/examples/index_repo.ru +2 -0
- data/examples/local_repo.ru +6 -3
- data/examples/mirror_repo.ru +2 -0
- data/examples/not_found.ru +2 -0
- data/lib/stickler.rb +12 -0
- data/lib/stickler/client.rb +47 -0
- data/lib/stickler/client/config.rb +35 -0
- data/lib/stickler/client/config_file.rb +58 -0
- data/lib/stickler/client/mirror.rb +61 -0
- data/lib/stickler/client/push.rb +50 -0
- data/lib/stickler/client/yank.rb +51 -0
- data/lib/stickler/logable.rb +35 -0
- data/lib/stickler/middleware/gemcutter.rb +5 -0
- data/lib/stickler/middleware/helpers.rb +32 -0
- data/lib/stickler/middleware/index.rb +30 -4
- data/lib/stickler/middleware/mirror.rb +8 -3
- data/lib/stickler/middleware/not_found.rb +4 -2
- data/lib/stickler/paths.rb +53 -0
- data/lib/stickler/repository/local.rb +12 -12
- data/lib/stickler/repository/mirror.rb +13 -6
- data/lib/stickler/repository/null.rb +1 -0
- data/lib/stickler/repository/remote.rb +10 -4
- data/lib/stickler/repository/rubygems_authenticator.rb +32 -0
- data/lib/stickler/server.rb +34 -0
- data/lib/stickler/server/public/css/blueprint/LICENSE +22 -0
- data/lib/stickler/server/public/css/blueprint/ie.css +35 -0
- data/lib/stickler/server/public/css/blueprint/screen.css +266 -0
- data/lib/stickler/server/public/css/style.css +19 -0
- data/lib/stickler/server/public/images/apple-touch-icon.png +0 -0
- data/lib/stickler/server/public/images/favicon.ico +0 -0
- data/lib/stickler/server/public/js/modernizr-1.5.min.js +28 -0
- data/lib/stickler/server/views/index.erb +35 -0
- data/lib/stickler/server/views/layout.erb +42 -0
- data/lib/stickler/spec_lite.rb +16 -6
- data/lib/stickler/version.rb +1 -1
- data/man/asciidoc.conf +25 -0
- data/man/stickler-passenger-config.asciidoc +74 -0
- data/man/stickler-server.asciidoc +87 -0
- data/man/stickler.asciidoc +148 -0
- data/spec/middleware/common_gem_server_helpers.rb +4 -2
- data/spec/middleware/index_spec.rb +3 -3
- data/spec/middleware/legacy_gem_server_behavior.rb +0 -2
- data/spec/middleware/local_spec.rb +3 -3
- data/spec/middleware/modern_gem_server_behavior.rb +2 -0
- data/spec/paths_spec.rb +13 -0
- data/spec/spec_lite_spec.rb +14 -0
- data/tasks/man.rake +19 -0
- metadata +183 -56
- data/HISTORY.rdoc +0 -12
- data/README.rdoc +0 -88
- data/lib/stickler/web.rb +0 -19
- data/stickler.gemspec +0 -60
- data/views/index.erb +0 -19
- data/views/layout.erb +0 -39
data/tasks/man.rake
ADDED
@@ -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
|
-
|
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-
|
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
|
-
|
18
|
-
|
19
|
-
|
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
|
-
|
35
|
+
type: :runtime
|
36
|
+
version_requirements: *id001
|
25
37
|
- !ruby/object:Gem::Dependency
|
26
38
|
name: addressable
|
27
|
-
|
28
|
-
|
29
|
-
|
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
|
-
|
51
|
+
type: :runtime
|
52
|
+
version_requirements: *id002
|
35
53
|
- !ruby/object:Gem::Dependency
|
36
54
|
name: resourceful
|
37
|
-
|
38
|
-
|
39
|
-
|
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
|
-
|
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
|
-
|
48
|
-
|
49
|
-
|
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
|
-
|
115
|
+
type: :development
|
116
|
+
version_requirements: *id006
|
55
117
|
- !ruby/object:Gem::Dependency
|
56
118
|
name: rack-test
|
57
|
-
|
58
|
-
|
59
|
-
|
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
|
-
|
131
|
+
type: :development
|
132
|
+
version_requirements: *id007
|
65
133
|
- !ruby/object:Gem::Dependency
|
66
134
|
name: bones-extras
|
67
|
-
|
68
|
-
|
69
|
-
|
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
|
-
|
147
|
+
type: :development
|
148
|
+
version_requirements: *id008
|
75
149
|
- !ruby/object:Gem::Dependency
|
76
150
|
name: bones
|
77
|
-
|
78
|
-
|
79
|
-
|
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
|
-
|
85
|
-
|
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
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
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
|
-
-
|
103
|
-
-
|
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
|
-
-
|
196
|
+
- .bnsignore
|
197
|
+
- .gitignore
|
198
|
+
- HISTORY.asciidoc
|
106
199
|
- LICENSE
|
107
|
-
- README.
|
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
|
-
-
|
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
|
-
-
|
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.
|
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
|
-
|
177
|
-
|
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.
|
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
|
|
data/HISTORY.rdoc
DELETED
@@ -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
|
data/README.rdoc
DELETED
@@ -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.
|