qrush-gemcutter 0.0.1 → 0.0.2
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/README.textile +4 -4
- data/lib/commands/downgrade.rb +3 -6
- data/lib/commands/push.rb +9 -7
- data/lib/commands/upgrade.rb +44 -7
- data/lib/rubygems_plugin.rb +2 -0
- metadata +3 -3
data/README.textile
CHANGED
@@ -32,14 +32,14 @@ h2. Next up
|
|
32
32
|
|
33
33
|
What's finished so far:
|
34
34
|
|
35
|
-
* Simple
|
35
|
+
* Simple site (list, push, update)
|
36
36
|
* Releasing/updating gems via @gem push@
|
37
|
+
* Project pages
|
38
|
+
* Authentication/accounts
|
39
|
+
* Gem server up and running
|
37
40
|
|
38
41
|
What's coming:
|
39
42
|
|
40
|
-
* Getting the gem server up and running with the index (and hopefully improving its speed)
|
41
|
-
* Project pages
|
42
|
-
* Authentication/accounts (moving to Rails to support this, probably)
|
43
43
|
* RubyForge migration for gem projects
|
44
44
|
* Fully fledged API documentation
|
45
45
|
* Search via the API and site
|
data/lib/commands/downgrade.rb
CHANGED
@@ -1,18 +1,15 @@
|
|
1
1
|
class Gem::Commands::DowngradeCommand < Gem::Command
|
2
|
-
DESCRIPTION = 'Return to using RubyForge as your primary gem source'
|
3
|
-
|
4
2
|
def description
|
5
|
-
|
3
|
+
'Return to using RubyForge as your primary gem source'
|
6
4
|
end
|
7
5
|
|
8
6
|
def initialize
|
9
|
-
super 'downgrade',
|
7
|
+
super 'downgrade', description
|
10
8
|
end
|
11
9
|
|
12
10
|
def execute
|
13
11
|
say "Your primary gem source is now gems.rubyforge.org"
|
14
|
-
Gem.sources.delete
|
15
|
-
Gem.sources << "http://gems.rubyforge.org"
|
12
|
+
Gem.sources.delete URL
|
16
13
|
Gem.configuration.write
|
17
14
|
end
|
18
15
|
end
|
data/lib/commands/push.rb
CHANGED
@@ -1,10 +1,10 @@
|
|
1
|
+
require 'yaml'
|
1
2
|
require 'net/http'
|
2
3
|
|
3
4
|
class Gem::Commands::PushCommand < Gem::Command
|
4
|
-
DESCRIPTION = 'Push a gem up to Gemcutter'
|
5
5
|
|
6
6
|
def description
|
7
|
-
|
7
|
+
'Push a gem up to Gemcutter'
|
8
8
|
end
|
9
9
|
|
10
10
|
def arguments
|
@@ -16,18 +16,20 @@ class Gem::Commands::PushCommand < Gem::Command
|
|
16
16
|
end
|
17
17
|
|
18
18
|
def initialize
|
19
|
-
super 'push',
|
19
|
+
super 'push', description
|
20
20
|
end
|
21
21
|
|
22
22
|
def execute
|
23
23
|
say "Pushing gem to Gemcutter..."
|
24
24
|
|
25
|
-
|
26
|
-
|
25
|
+
name = get_one_gem_name
|
26
|
+
site = ENV['TEST'] ? "local" : "org"
|
27
|
+
url = URI.parse("http://gemcutter.#{site}/gems")
|
28
|
+
|
27
29
|
request = Net::HTTP::Post.new(url.path)
|
28
|
-
request.body = File.open(
|
30
|
+
request.body = File.open(name).read
|
29
31
|
request.content_length = request.body.size
|
30
|
-
request.
|
32
|
+
request.initialize_http_header("HTTP_AUTHORIZATION" => Gem.configuration[:gemcutter_key])
|
31
33
|
|
32
34
|
response = Net::HTTP.new(url.host, url.port).start { |http| http.request(request) }
|
33
35
|
say response.body
|
data/lib/commands/upgrade.rb
CHANGED
@@ -1,20 +1,57 @@
|
|
1
|
-
class Gem::
|
2
|
-
|
1
|
+
class Gem::StreamUI
|
2
|
+
def ask_for_password(message)
|
3
|
+
system "stty -echo"
|
4
|
+
password = ask(message)
|
5
|
+
system "stty echo"
|
6
|
+
password
|
7
|
+
end
|
8
|
+
end
|
3
9
|
|
10
|
+
class Gem::Commands::UpgradeCommand < Gem::Command
|
4
11
|
def description
|
5
|
-
|
12
|
+
'Upgrade your gem source to Gemcutter'
|
13
|
+
end
|
14
|
+
|
15
|
+
def ask_for_password(message)
|
16
|
+
ui.ask_for_password(message)
|
6
17
|
end
|
7
18
|
|
8
19
|
def initialize
|
9
|
-
super 'upgrade',
|
20
|
+
super 'upgrade', description
|
10
21
|
end
|
11
22
|
|
12
23
|
def execute
|
13
|
-
|
14
|
-
|
15
|
-
|
24
|
+
add_source
|
25
|
+
sign_in
|
26
|
+
end
|
27
|
+
|
28
|
+
def add_source
|
29
|
+
if Gem.sources.include?(URL)
|
30
|
+
say "Gemcutter is already your primary gem source. Please use `gem downgrade` if you wish to no longer use Gemcutter."
|
31
|
+
else
|
32
|
+
say "Upgrading your primary gem source to gemcutter.org"
|
33
|
+
Gem.sources.unshift URL
|
34
|
+
Gem.configuration.write
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
def sign_in
|
39
|
+
say "Enter your Gemcutter credentials. Don't have an account yet? Create one at #{URL}/sign_up"
|
40
|
+
|
41
|
+
email = ask("Email: ")
|
42
|
+
password = ask_for_password("Password: ")
|
43
|
+
|
44
|
+
site = ENV['TEST'] ? "local" : "org"
|
45
|
+
url = URI.parse("http://gemcutter.#{site}/api_key")
|
46
|
+
|
47
|
+
request = Net::HTTP::Get.new(url.path)
|
48
|
+
request.basic_auth email, password
|
49
|
+
response = Net::HTTP.new(url.host, url.port).start { |http| http.request(request) }
|
50
|
+
|
51
|
+
Gem.configuration[:gemcutter_key] = response.body
|
16
52
|
Gem.configuration.write
|
17
53
|
end
|
54
|
+
|
18
55
|
end
|
19
56
|
|
20
57
|
Gem::CommandManager.instance.register_command :upgrade
|
data/lib/rubygems_plugin.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: qrush-gemcutter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nick Quaranto
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-06-04 00:00:00 -07:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|
@@ -48,7 +48,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
48
48
|
version:
|
49
49
|
requirements: []
|
50
50
|
|
51
|
-
rubyforge_project:
|
51
|
+
rubyforge_project: gemcutter
|
52
52
|
rubygems_version: 1.2.0
|
53
53
|
signing_key:
|
54
54
|
specification_version: 3
|