stickler 2.2.4 → 2.3.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.
- data/CONTRIBUTING.md +48 -0
- data/{HISTORY.asciidoc → HISTORY.md} +8 -2
- data/Manifest.txt +86 -0
- data/{README.asciidoc → README.rdoc} +18 -20
- data/Rakefile +25 -59
- data/bin/stickler +10 -3
- data/examples/gemcutter_repo.ru +1 -2
- data/lib/stickler.rb +6 -2
- data/lib/stickler/client.rb +5 -4
- data/lib/stickler/client/delete.rb +50 -0
- data/lib/stickler/client/unyank.rb +50 -0
- data/lib/stickler/middleware.rb +7 -0
- data/lib/stickler/middleware/compression.rb +0 -2
- data/lib/stickler/middleware/gemcutter.rb +16 -7
- data/lib/stickler/middleware/helpers.rb +1 -3
- data/lib/stickler/middleware/index.rb +0 -8
- data/lib/stickler/middleware/local.rb +1 -5
- data/lib/stickler/middleware/mirror.rb +0 -4
- data/lib/stickler/middleware/not_found.rb +0 -1
- data/lib/stickler/repository.rb +9 -5
- data/lib/stickler/repository/index.rb +0 -1
- data/lib/stickler/repository/local.rb +12 -4
- data/lib/stickler/repository/null.rb +0 -1
- data/lib/stickler/repository/remote.rb +40 -20
- data/lib/stickler/repository/remote_mirror.rb +1 -1
- data/lib/stickler/server.rb +1 -9
- 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/man/stickler-passenger-config.1 +83 -0
- data/man/stickler-passenger-config.1.ronn +70 -0
- data/man/stickler-server.1 +168 -0
- data/man/stickler-server.1.ronn +84 -0
- data/man/stickler.1 +321 -0
- data/man/stickler.1.ronn +144 -0
- data/spec/data/gemcutter/gems/foo-1.0.0.gem +0 -0
- data/spec/middleware/local_spec.rb +1 -4
- data/spec/middleware/not_found_spec.rb +1 -2
- data/spec/paths_spec.rb +1 -3
- data/spec/repository/api_behavior.rb +34 -4
- data/spec/repository/api_spec.rb +2 -3
- data/spec/repository/index_spec.rb +10 -11
- data/spec/repository/local_spec.rb +10 -12
- data/spec/repository/null_spec.rb +2 -5
- data/spec/repository/remote_spec.rb +3 -5
- data/spec/spec_helper.rb +7 -2
- data/spec/spec_lite_spec.rb +1 -3
- data/tasks/default.rake +274 -0
- data/tasks/this.rb +209 -0
- metadata +142 -85
- data/.bnsignore +0 -14
- data/.gitignore +0 -23
- data/TODO.asciidoc +0 -6
- data/lib/stickler/version.rb +0 -36
- data/man/asciidoc.conf +0 -25
- data/man/stickler-passenger-config.asciidoc +0 -74
- data/man/stickler-server.asciidoc +0 -87
- data/man/stickler.asciidoc +0 -150
- data/tasks/asciidoc.rake +0 -32
- data/tasks/bundler.rake +0 -13
- data/tasks/contribute.rake +0 -36
- data/tasks/man.rake +0 -19
data/CONTRIBUTING.md
ADDED
@@ -0,0 +1,48 @@
|
|
1
|
+
# Hi there!
|
2
|
+
|
3
|
+
I see you are interested in contributing. That is wonderful. I love
|
4
|
+
contributions.
|
5
|
+
|
6
|
+
I guarantee that there are bugs in this software. And I guarantee that there is
|
7
|
+
a feature you want that is not in here yet. As such, any and all bugs reports
|
8
|
+
are gratefully accepted, bugfixes even more so. Helping out with bugs is the
|
9
|
+
easiest way to contribute.
|
10
|
+
|
11
|
+
|
12
|
+
## The Quick Version
|
13
|
+
|
14
|
+
* Have a [GitHub Account][].
|
15
|
+
* Search the [GitHub Issues][] and see if your issue already present. If so
|
16
|
+
add your comments, :thumbsup:, etc.
|
17
|
+
* Issue not there? Not a problem, open up a [new issue][].
|
18
|
+
* **Bug reports** please be as detailed as possible. Include:
|
19
|
+
* full ruby engine and version: `ruby -e 'puts RUBY_DESCRIPTION'`
|
20
|
+
* operating system and version
|
21
|
+
* version of stickler `ruby -rubygems -e "require 'stickler'; puts Stickler::VERSION"`
|
22
|
+
* as much detail about the bug as possible so I can replicate it. Feel free
|
23
|
+
to link in a [gist][]
|
24
|
+
* **New Feature**
|
25
|
+
* What the new feature should do.
|
26
|
+
* What benefit the new feature brings to the project.
|
27
|
+
* Fork the [repo][].
|
28
|
+
* Create a new branch for your issue: `git checkout -b issue/my-issue`
|
29
|
+
* Lovingly craft your contribution:
|
30
|
+
* `rake develop` to get started, or if you prefer bundler `rake develop:using_bundler && bundle`.
|
31
|
+
* `rake test` to run tests
|
32
|
+
* Make sure that `rake test` passes. It's important, I said it twice.
|
33
|
+
* Add yourself to the contributors section below.
|
34
|
+
* Submit your [pull request][].
|
35
|
+
|
36
|
+
# Contributors
|
37
|
+
|
38
|
+
* [Jeremy Hinegardner][https://github.com/copiousfreetime]
|
39
|
+
* [Kevin Barnes][https://github.com/vinbarnes]
|
40
|
+
* [Philip Roberts][https://github.com/latentflip]
|
41
|
+
* [Alan Gardner][https://github.com/urfolomeus]
|
42
|
+
|
43
|
+
[GitHub Account]: https://github.com/signup/free "GitHub Signup"
|
44
|
+
[GitHub Issues]: https://github.com/copiousfreetime/stickler/issues "Stickler Issues"
|
45
|
+
[new issue]: https://github.com/copiousfreetime/stickler/issues/new "New Stickler Issue"
|
46
|
+
[gist]: https://gist.github.com/ "New Gist"
|
47
|
+
[repo]: https://github.com/copiousfreetime/stickler "Stickler Repo"
|
48
|
+
[pull request]: https://help.github.com/articles/using-pull-requests "Using Pull Requests"
|
@@ -1,7 +1,13 @@
|
|
1
1
|
Stickler Changelog
|
2
2
|
==================
|
3
|
-
Jeremy Hinegardner <jeremy@
|
3
|
+
Jeremy Hinegardner <jeremy@copiousfreetime.org>
|
4
4
|
|
5
|
+
Version 2.3.0 - 2013-03-09
|
6
|
+
--------------------------
|
7
|
+
* Expose deleting a gem via the stickler commandline (copiousfreetime/stickler/#10)
|
8
|
+
* Update dependencies for Excon so http proxy works (copiousfreetime/stickler/#24)
|
9
|
+
* Implement unyank for local and remote repositories (copiousfreetime/stickler/#26)
|
10
|
+
* Updated dependencies to latest versions
|
5
11
|
|
6
12
|
Version 2.2.4 - 2012-02-26
|
7
13
|
--------------------------
|
@@ -55,5 +61,5 @@ Version 0.1.1 - 2008-10-12
|
|
55
61
|
|
56
62
|
Version 0.1.0 - 2008-10-10
|
57
63
|
--------------------------
|
58
|
-
* http://copiousfreetime.org/articles/2008/10/09/managing-a-gem-repository-with-stickler.html
|
64
|
+
* [Managing a Gem Repository with Stickler](http://copiousfreetime.org/articles/2008/10/09/managing-a-gem-repository-with-stickler.html)
|
59
65
|
* Initial public release
|
data/Manifest.txt
ADDED
@@ -0,0 +1,86 @@
|
|
1
|
+
CONTRIBUTING.md
|
2
|
+
HISTORY.md
|
3
|
+
LICENSE
|
4
|
+
Manifest.txt
|
5
|
+
README.rdoc
|
6
|
+
Rakefile
|
7
|
+
bin/stickler
|
8
|
+
bin/stickler-passenger-config
|
9
|
+
bin/stickler-server
|
10
|
+
examples/auth_repo.ru
|
11
|
+
examples/config.ru
|
12
|
+
examples/fetch-a-gem
|
13
|
+
examples/gemcutter_repo.ru
|
14
|
+
examples/index_repo.ru
|
15
|
+
examples/local_repo.ru
|
16
|
+
examples/mirror_repo.ru
|
17
|
+
examples/not_found.ru
|
18
|
+
lib/stickler.rb
|
19
|
+
lib/stickler/client.rb
|
20
|
+
lib/stickler/client/config.rb
|
21
|
+
lib/stickler/client/config_file.rb
|
22
|
+
lib/stickler/client/delete.rb
|
23
|
+
lib/stickler/client/list.rb
|
24
|
+
lib/stickler/client/mirror.rb
|
25
|
+
lib/stickler/client/push.rb
|
26
|
+
lib/stickler/client/unyank.rb
|
27
|
+
lib/stickler/client/yank.rb
|
28
|
+
lib/stickler/error.rb
|
29
|
+
lib/stickler/logable.rb
|
30
|
+
lib/stickler/middleware.rb
|
31
|
+
lib/stickler/middleware/compression.rb
|
32
|
+
lib/stickler/middleware/gemcutter.rb
|
33
|
+
lib/stickler/middleware/helpers.rb
|
34
|
+
lib/stickler/middleware/index.rb
|
35
|
+
lib/stickler/middleware/local.rb
|
36
|
+
lib/stickler/middleware/mirror.rb
|
37
|
+
lib/stickler/middleware/not_found.rb
|
38
|
+
lib/stickler/paths.rb
|
39
|
+
lib/stickler/repository.rb
|
40
|
+
lib/stickler/repository/api.rb
|
41
|
+
lib/stickler/repository/basic_authenticator.rb
|
42
|
+
lib/stickler/repository/index.rb
|
43
|
+
lib/stickler/repository/local.rb
|
44
|
+
lib/stickler/repository/mirror.rb
|
45
|
+
lib/stickler/repository/null.rb
|
46
|
+
lib/stickler/repository/remote.rb
|
47
|
+
lib/stickler/repository/remote_mirror.rb
|
48
|
+
lib/stickler/repository/rubygems_authenticator.rb
|
49
|
+
lib/stickler/server.rb
|
50
|
+
lib/stickler/server/public/css/blueprint/LICENSE
|
51
|
+
lib/stickler/server/public/css/blueprint/ie.css
|
52
|
+
lib/stickler/server/public/css/blueprint/screen.css
|
53
|
+
lib/stickler/server/public/css/style.css
|
54
|
+
lib/stickler/server/public/images/apple-touch-icon.png
|
55
|
+
lib/stickler/server/public/images/favicon.ico
|
56
|
+
lib/stickler/server/public/js/modernizr-1.5.min.js
|
57
|
+
lib/stickler/server/views/index.erb
|
58
|
+
lib/stickler/server/views/layout.erb
|
59
|
+
lib/stickler/spec_lite.rb
|
60
|
+
man/stickler-passenger-config.1
|
61
|
+
man/stickler-passenger-config.1.ronn
|
62
|
+
man/stickler-server.1
|
63
|
+
man/stickler-server.1.ronn
|
64
|
+
man/stickler.1
|
65
|
+
man/stickler.1.ronn
|
66
|
+
spec/data/gemcutter/gems/foo-1.0.0.gem
|
67
|
+
spec/data/gems/bar-1.0.0.gem
|
68
|
+
spec/data/gems/baz-3.1.4-java.gem
|
69
|
+
spec/data/gems/baz-3.1.4.gem
|
70
|
+
spec/data/gems/foo-1.0.0.gem
|
71
|
+
spec/data/gems/foo-2.0.0a.gem
|
72
|
+
spec/index_spec_helpers.rb
|
73
|
+
spec/middleware/local_spec.rb
|
74
|
+
spec/middleware/not_found_spec.rb
|
75
|
+
spec/paths_spec.rb
|
76
|
+
spec/repository/api_behavior.rb
|
77
|
+
spec/repository/api_spec.rb
|
78
|
+
spec/repository/index_spec.rb
|
79
|
+
spec/repository/local_spec.rb
|
80
|
+
spec/repository/null_spec.rb
|
81
|
+
spec/repository/remote_spec.rb
|
82
|
+
spec/spec.opts
|
83
|
+
spec/spec_helper.rb
|
84
|
+
spec/spec_lite_spec.rb
|
85
|
+
tasks/default.rake
|
86
|
+
tasks/this.rb
|
@@ -1,10 +1,10 @@
|
|
1
|
-
Stickler
|
2
|
-
========
|
3
|
-
Jeremy Hinegardner <jeremy@hinegardner.org>
|
1
|
+
= Stickler
|
4
2
|
|
3
|
+
* Jeremy Hinegardner <jeremy@hinegardner.org>
|
4
|
+
* http://github.com/copiousfreetime/qup
|
5
|
+
|
6
|
+
== DESCRIPTION
|
5
7
|
|
6
|
-
Overview
|
7
|
-
--------
|
8
8
|
Stickler is a tool to organize and maintain an internal gem repository.
|
9
9
|
Primarily, you would want to use Stickler if:
|
10
10
|
|
@@ -15,19 +15,17 @@ Primarily, you would want to use Stickler if:
|
|
15
15
|
3. You want both (1) and (2) in the same server.
|
16
16
|
|
17
17
|
|
18
|
-
|
19
|
-
|
18
|
+
== INSTALLATION
|
19
|
+
|
20
20
|
Installing stickler may be done via the standard gem installation
|
21
21
|
|
22
|
-
|
23
|
-
gem install stickler
|
24
|
-
--------------------
|
22
|
+
gem install stickler
|
25
23
|
|
26
24
|
Or downloaded from http://github.com/copiousfreetime/stickler/downloads
|
27
25
|
|
28
26
|
|
29
|
-
|
30
|
-
|
27
|
+
== USAGE
|
28
|
+
|
31
29
|
Stickler is broken up into a few commandline programs.
|
32
30
|
|
33
31
|
.Command line programs
|
@@ -132,27 +130,27 @@ View which manual?
|
|
132
130
|
>
|
133
131
|
---------------------------------
|
134
132
|
|
135
|
-
|
136
|
-
|
133
|
+
== DEVELOPMENT
|
134
|
+
|
137
135
|
If you want to do development on stickler, I suggest using
|
138
136
|
https://rvm.beginrescueend.com/[RVM] and creating a gemset for stickler.
|
139
137
|
|
140
138
|
Then run 'rake how_to_contribute'
|
141
139
|
|
142
140
|
|
143
|
-
|
144
|
-
|
141
|
+
== CREDITS
|
142
|
+
|
145
143
|
* http://rubyforge.org/projects/rubygems/[The Rubygems Team]
|
146
144
|
|
147
145
|
|
148
|
-
|
149
|
-
|
146
|
+
== LICENSE
|
147
|
+
|
150
148
|
Copyright (C) 2008-2010 Jeremy Hinegardner
|
151
149
|
ISC License, See LICENSE for details
|
152
150
|
|
153
151
|
|
154
|
-
|
155
|
-
|
152
|
+
== APPENDIX
|
153
|
+
|
156
154
|
* http://github.com/copiousfreetime/stickler[Github Project]
|
157
155
|
* link:HISTORY.html[History]
|
158
156
|
* http://www.copiousfreetime.org/projects/stickler/
|
data/Rakefile
CHANGED
@@ -1,61 +1,27 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
ignore_file '.bnsignore'
|
25
|
-
history_file 'HISTORY.asciidoc'
|
26
|
-
|
27
|
-
spec.opts << "--color" << "--format documentation"
|
28
|
-
|
29
|
-
summary 'Stickler is a tool to organize and maintain an internal gem repository.'
|
30
|
-
description <<_
|
31
|
-
Stickler is a tool to organize and maintain an internal gem repository.
|
32
|
-
Primarily, you would want to use Stickler if:
|
1
|
+
# vim: syntax=ruby
|
2
|
+
load 'tasks/this.rb'
|
3
|
+
|
4
|
+
This.name = "stickler"
|
5
|
+
This.author = "Jeremy Hinegardner"
|
6
|
+
This.email = "jeremy@copiousfreetime.org"
|
7
|
+
This.homepage = "http://github.com/copiousfreetime/#{ This.name }"
|
8
|
+
|
9
|
+
|
10
|
+
This.ruby_gemspec do |spec|
|
11
|
+
spec.add_runtime_dependency( 'sinatra' , '~> 1.3.5' )
|
12
|
+
spec.add_runtime_dependency( 'addressable', '~> 2.3.3' )
|
13
|
+
spec.add_runtime_dependency( 'excon' , '~> 0.20.0' )
|
14
|
+
spec.add_runtime_dependency( 'trollop' , '~> 2.0' )
|
15
|
+
spec.add_runtime_dependency( 'logging' , '~> 1.8.1' )
|
16
|
+
|
17
|
+
# The Development Dependencies
|
18
|
+
spec.add_development_dependency( 'rake' , '~> 10.0.3' )
|
19
|
+
spec.add_development_dependency( 'rack-test' , '~> 0.6.2' )
|
20
|
+
spec.add_development_dependency( 'builder' , '~> 3.2.0' )
|
21
|
+
spec.add_development_dependency( 'rspec' , '~> 2.13.0' )
|
22
|
+
spec.add_development_dependency( 'rdoc' , '~> 4.0' )
|
23
|
+
spec.add_development_dependency( 'ronn' , '~> 0.7.3' )
|
33
24
|
|
34
|
-
1. You have proprietary gems that you want to have available via a gem server so
|
35
|
-
you may +gem install+ them.
|
36
|
-
2. You would like to have a local mirror of third party gems from either
|
37
|
-
http://rubygems.org or some other gem server.
|
38
|
-
3. You want both (1) and (2) in the same server.
|
39
|
-
_
|
40
|
-
|
41
|
-
# I'm explicitly controlling the version of bones.
|
42
|
-
|
43
|
-
|
44
|
-
depend_on 'sinatra' , '~> 1.3.2'
|
45
|
-
depend_on 'addressable', '~> 2.2.6'
|
46
|
-
depend_on 'excon' , '~> 0.9.5'
|
47
|
-
depend_on 'trollop' , '~> 1.16.2'
|
48
|
-
depend_on 'logging' , '~> 1.6.2'
|
49
|
-
|
50
|
-
depend_on 'rake' , '~> 0.9.2.2', :development => true
|
51
|
-
depend_on 'bones' , "~> #{USING_BONES_VERSION}", :development => true
|
52
|
-
depend_on 'rack-test' , '~> 0.6.1', :development => true
|
53
|
-
depend_on 'bones-extras', '~> 1.3.0', :development => true
|
54
|
-
depend_on 'builder' , '~> 3.0.0', :development => true
|
55
|
-
depend_on 'rspec' , '~> 2.8.0', :development => true
|
56
|
-
}
|
57
|
-
|
58
|
-
# Sorry Tim, I need to manage my own bones version
|
59
|
-
::Bones.config.gem._spec.dependencies.delete_if do |d|
|
60
|
-
d.name == 'bones' and d.requirement.to_s =~ /^>=/
|
61
25
|
end
|
26
|
+
|
27
|
+
load 'tasks/default.rake'
|
data/bin/stickler
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
require 'stickler'
|
4
4
|
require 'stickler/client'
|
5
5
|
|
6
|
-
SUB_COMMANDS = %w[ push yank mirror config list ].sort
|
6
|
+
SUB_COMMANDS = %w[ push yank mirror config list delete unyank ].sort
|
7
7
|
exec_name = File.basename( $0 )
|
8
8
|
|
9
9
|
#----------------------------------------------------------------------
|
@@ -19,11 +19,13 @@ Stickler server interaction
|
|
19
19
|
|
20
20
|
Examples:
|
21
21
|
#{exec_name} push ./my_gem-1.0.0.gem --server http://stickler.example.com/
|
22
|
-
#{exec_name} yank my_gem --version 1.0.0 --server http://stickler.example.com/
|
22
|
+
#{exec_name} yank my_gem --gem-version 1.0.0 --server http://stickler.example.com/
|
23
|
+
#{exec_name} unyank my_gem --gem-version 1.0.0 --server http://stickler.example.com/
|
23
24
|
#{exec_name} mirror third_party_gem --gem-version 0.4.2 --upstream http://rubygems.org/ --server http://stickler.example.com/
|
24
25
|
#{exec_name} mirror --help
|
25
26
|
#{exec_name} config --server http://stickler.example.com --upstream http://rubygems.org/
|
26
27
|
#{exec_name} list --server http://stickler.example.com
|
28
|
+
#{exec_name} delete my_gem --gem-version 1.2.3 --server #http://stickler.example.com/
|
27
29
|
|
28
30
|
Options:
|
29
31
|
_
|
@@ -35,7 +37,8 @@ end
|
|
35
37
|
# sub command processing
|
36
38
|
#----------------------------------------------------------------------
|
37
39
|
cmd = ARGV.shift
|
38
|
-
Trollop::die "
|
40
|
+
Trollop::die "No sub command given" unless cmd
|
41
|
+
Trollop::die "Unknown sub command #{cmd.inspect}" unless SUB_COMMANDS.include?( cmd )
|
39
42
|
|
40
43
|
|
41
44
|
case cmd
|
@@ -43,6 +46,10 @@ when "push"
|
|
43
46
|
::Stickler::Client::Push.new( ARGV ).run
|
44
47
|
when "yank"
|
45
48
|
::Stickler::Client::Yank.new( ARGV ).run
|
49
|
+
when "unyank"
|
50
|
+
::Stickler::Client::Unyank.new( ARGV ).run
|
51
|
+
when "delete"
|
52
|
+
::Stickler::Client::Delete.new( ARGV ).run
|
46
53
|
when "mirror"
|
47
54
|
::Stickler::Client::Mirror.new( ARGV ).run
|
48
55
|
when "config"
|
data/examples/gemcutter_repo.ru
CHANGED
@@ -10,8 +10,7 @@
|
|
10
10
|
#-----------------------------------------------------------------------
|
11
11
|
$:.unshift File.expand_path( File.join( File.dirname(__FILE__), "..", "lib" ) )
|
12
12
|
|
13
|
-
require 'stickler
|
14
|
-
require 'stickler/middleware/compression'
|
13
|
+
require 'stickler'
|
15
14
|
|
16
15
|
gem_dir = File.expand_path( "../spec/tmp", File.dirname( __FILE__ ) )
|
17
16
|
|
data/lib/stickler.rb
CHANGED
@@ -1,10 +1,14 @@
|
|
1
1
|
module Stickler
|
2
|
+
# The Current Version of the library
|
3
|
+
VERSION = "2.3.0"
|
2
4
|
end
|
5
|
+
require 'sinatra/base'
|
3
6
|
|
7
|
+
require 'stickler/logable'
|
4
8
|
require 'stickler/error'
|
5
9
|
require 'stickler/paths'
|
10
|
+
require 'stickler/spec_lite'
|
11
|
+
|
6
12
|
require 'stickler/repository'
|
7
13
|
require 'stickler/middleware'
|
8
|
-
require 'stickler/spec_lite'
|
9
|
-
require 'stickler/version'
|
10
14
|
require 'stickler/server'
|
data/lib/stickler/client.rb
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
require 'trollop'
|
2
|
-
require 'rubygems'
|
3
2
|
require 'stickler/client/config_file'
|
4
3
|
|
5
4
|
module Stickler
|
@@ -43,8 +42,10 @@ module Stickler
|
|
43
42
|
end
|
44
43
|
end
|
45
44
|
|
46
|
-
require 'stickler/client/push'
|
47
|
-
require 'stickler/client/yank'
|
48
|
-
require 'stickler/client/mirror'
|
49
45
|
require 'stickler/client/config'
|
46
|
+
require 'stickler/client/delete'
|
50
47
|
require 'stickler/client/list'
|
48
|
+
require 'stickler/client/mirror'
|
49
|
+
require 'stickler/client/push'
|
50
|
+
require 'stickler/client/unyank'
|
51
|
+
require 'stickler/client/yank'
|
@@ -0,0 +1,50 @@
|
|
1
|
+
module Stickler
|
2
|
+
class Client
|
3
|
+
class Delete < Stickler::Client
|
4
|
+
def self.banner
|
5
|
+
<<-_
|
6
|
+
Completely Remove a gem from the gemserver's index.
|
7
|
+
|
8
|
+
Usage: stickler delete [options] --gem-version x.y.z gem
|
9
|
+
|
10
|
+
Options:
|
11
|
+
_
|
12
|
+
end
|
13
|
+
|
14
|
+
def parser
|
15
|
+
unless @parser then
|
16
|
+
@parser = super
|
17
|
+
@parser.opt( :gem_version, "The version of the gem to delete (required)", :type => :string, :required => true )
|
18
|
+
@parser.opt( :platform, "The platform of the gem to delete ", :type => :string, :default => ::Gem::Platform::RUBY )
|
19
|
+
end
|
20
|
+
return @parser
|
21
|
+
end
|
22
|
+
|
23
|
+
def parse( argv )
|
24
|
+
gem_name = nil
|
25
|
+
opts = super( argv ) do |p|
|
26
|
+
raise Trollop::CommandlineError, "At least one gem is required to delete" if p.leftovers.empty?
|
27
|
+
gem_name = p.leftovers.shift
|
28
|
+
end
|
29
|
+
opts[:gem_name] = gem_name
|
30
|
+
return opts
|
31
|
+
end
|
32
|
+
|
33
|
+
def run
|
34
|
+
opts = parse( self.argv )
|
35
|
+
repo = remote_repo_for( opts )
|
36
|
+
spec = Stickler::SpecLite.new( opts[:gem_name], opts[:gem_version], opts[:platform] )
|
37
|
+
|
38
|
+
$stdout.write "Deleting gem #{spec.full_name} from #{repo.uri} : "
|
39
|
+
$stdout.flush
|
40
|
+
if spec = repo.delete( spec ) then
|
41
|
+
$stdout.puts "OK"
|
42
|
+
else
|
43
|
+
$stdout.puts "FAILURE"
|
44
|
+
end
|
45
|
+
rescue Stickler::Repository::Error => e
|
46
|
+
$stdout.puts "ERROR: #{e.message}"
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|