rubyforge 1.0.3 → 1.0.4
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +22 -16
- data/README.txt +1 -1
- data/Rakefile +9 -17
- data/bin/rubyforge +2 -1
- data/lib/rubyforge.rb +12 -7
- data/lib/rubyforge/client.rb +8 -1
- data/test/test_rubyforge.rb +10 -0
- metadata +19 -5
data/History.txt
CHANGED
@@ -1,57 +1,63 @@
|
|
1
|
-
|
1
|
+
=== 1.0.4 / 2009-07-21
|
2
2
|
|
3
|
-
|
3
|
+
* Uses the passed in proxy, if provided. (Thanks sdabet, RF #24071).
|
4
|
+
* Update group_id pattern for scraping project configs you are only a member of.
|
5
|
+
* Update regexp used to validate login page to be less restrictive.
|
6
|
+
* Fixed --help to not require an argument.
|
7
|
+
* add --force flag for login command to ignore previous cookie. (or use logout)
|
8
|
+
|
9
|
+
=== 1.0.3 / 2009-02-26
|
4
10
|
|
5
11
|
* Fixed nil error in our Net::HTTP patches.
|
6
12
|
* Removed password from warning if the login possibly failed.
|
7
13
|
|
8
|
-
=== 1.0.2 / 2009-01-05
|
14
|
+
=== 1.0.2 / 2009-01-05
|
9
15
|
|
10
16
|
* All webby commands now login automatically.
|
11
17
|
* Login now no-ops if it already has a session cookie.
|
12
18
|
* Added logout command.
|
13
19
|
* Much more of the config is self-repairing, but still not bulletproof yet.
|
14
20
|
|
15
|
-
=== 1.0.1 / 2008-10-22
|
21
|
+
=== 1.0.1 / 2008-10-22
|
16
22
|
|
17
23
|
* Fixed multipart form upload so it isn't url escaping the data. DOH.
|
18
24
|
* Affects release_notes and release_changes, but never reported for 5 months.
|
19
25
|
|
20
|
-
=== 1.0.0 / 2008-05-20
|
26
|
+
=== 1.0.0 / 2008-05-20
|
21
27
|
|
22
28
|
* Removed HTTPAccess2, thanks to Aaron Patterson. Even tho he's whiny.
|
23
29
|
* Changed initialize/configure to make testing scream. 100x faster.
|
24
30
|
|
25
|
-
=== 0.4.5 / 2008-03-11
|
31
|
+
=== 0.4.5 / 2008-03-11
|
26
32
|
|
27
33
|
* Update for Ruby 1.9.0.
|
28
34
|
* Updated History, Rakefile, and Readme for new hoe abilities.
|
29
35
|
* Added config backup/restore rake tasks (for testing).
|
30
36
|
|
31
|
-
=== 0.4.4 / 2007-08-13
|
37
|
+
=== 0.4.4 / 2007-08-13
|
32
38
|
|
33
39
|
* New type_id values will merge with extant data. (self-repairing data is Good)
|
34
40
|
* Scrape processor_ids, merging in with extant data.
|
35
41
|
* Default to "Other" if a file's type is unrecognized.
|
36
42
|
|
37
|
-
=== 0.4.3 / 2007-07-23
|
43
|
+
=== 0.4.3 / 2007-07-23
|
38
44
|
|
39
45
|
* Set mode on .rubyforge directory to 700.
|
40
46
|
* Fix fetching of user id when user has no releases.
|
41
47
|
|
42
|
-
=== 0.4.2 / 2007-05-21
|
48
|
+
=== 0.4.2 / 2007-05-21
|
43
49
|
|
44
50
|
* Fix for windoze users (spaces in path).
|
45
51
|
* Added check for extant release.
|
46
52
|
* Added default hash for first-time releases.
|
47
53
|
|
48
|
-
=== 0.4.1 / 2007-03-08
|
54
|
+
=== 0.4.1 / 2007-03-08
|
49
55
|
|
50
56
|
* Verify that login succeeded and warn against if not (prolly should raise).
|
51
57
|
* Print a friendly error if you have the wrong package id.
|
52
58
|
* Handle upload error in add_release a bit better.
|
53
59
|
|
54
|
-
=== 0.4.0 / 2007-01-09
|
60
|
+
=== 0.4.0 / 2007-01-09
|
55
61
|
|
56
62
|
* config.yml split and moved to user-config.yml (up to the user to do).
|
57
63
|
* auto-config.yml now generated via config command.
|
@@ -62,17 +68,17 @@
|
|
62
68
|
* scrape_config no longer takes a user param. Use opts to specify.
|
63
69
|
* scrape_project, add_project, add/remove_release now save automatically.
|
64
70
|
|
65
|
-
=== 0.3.2 / 2006-11-29
|
71
|
+
=== 0.3.2 / 2006-11-29
|
66
72
|
|
67
73
|
* Fixed file uploads for windows.
|
68
74
|
* Correctly scrape releases with funky characters.
|
69
75
|
|
70
|
-
=== 0.3.1 / 2006-10-24
|
76
|
+
=== 0.3.1 / 2006-10-24
|
71
77
|
|
72
78
|
* Added SSL login.
|
73
79
|
* Added yet more debugging output if $DEBUG.
|
74
80
|
|
75
|
-
=== 0.3.0 / 2006-09-30
|
81
|
+
=== 0.3.0 / 2006-09-30
|
76
82
|
|
77
83
|
* Added more debugging output if $DEBUG
|
78
84
|
* Added news posting.
|
@@ -80,11 +86,11 @@
|
|
80
86
|
* add_release now returns release_id
|
81
87
|
* Fixed config scraper to include '-' in names.
|
82
88
|
|
83
|
-
=== 0.2.1 / 2006-09-14
|
89
|
+
=== 0.2.1 / 2006-09-14
|
84
90
|
|
85
91
|
* Gemspec was too loose about packaging. Now using manifest.
|
86
92
|
|
87
|
-
=== 0.2.0 / 2006-09-13
|
93
|
+
=== 0.2.0 / 2006-09-13
|
88
94
|
|
89
95
|
* Split original script into script and library.
|
90
96
|
* Added tests for library.
|
data/README.txt
CHANGED
@@ -35,7 +35,7 @@ A script which automates a limited set of rubyforge operations.
|
|
35
35
|
|
36
36
|
(The MIT License)
|
37
37
|
|
38
|
-
Copyright (c)
|
38
|
+
Copyright (c) Ryan Davis, Eric Hodel, Ara T Howard.
|
39
39
|
|
40
40
|
Permission is hereby granted, free of charge, to any person obtaining
|
41
41
|
a copy of this software and associated documentation files (the
|
data/Rakefile
CHANGED
@@ -1,28 +1,20 @@
|
|
1
1
|
# -*- ruby -*-
|
2
2
|
|
3
|
-
|
4
|
-
require '
|
5
|
-
|
6
|
-
begin
|
7
|
-
require 'hoe'
|
8
|
-
rescue LoadError
|
9
|
-
abort "ERROR: This Rakefile is only useful with hoe installed.
|
10
|
-
If you're trying to install the rubyforge library,
|
11
|
-
please install it via rubygems."
|
12
|
-
end
|
3
|
+
require 'rubygems'
|
4
|
+
require 'hoe'
|
13
5
|
|
14
6
|
abort "you _must_ install this gem to release it" if
|
15
7
|
ENV['VERSION'] && ENV['VERSION'] != RubyForge::VERSION
|
16
8
|
|
17
|
-
Hoe.
|
18
|
-
|
19
|
-
|
9
|
+
Hoe.spec "rubyforge" do
|
10
|
+
developer 'Ryan Davis', 'ryand-ruby@zenspider.com'
|
11
|
+
developer 'Eric Hodel', 'drbrain@segment7.net'
|
12
|
+
developer 'Ara T Howard', 'ara.t.howard@gmail.com'
|
20
13
|
|
21
|
-
|
22
|
-
rubyforge.developer('Eric Hodel', 'drbrain@segment7.net')
|
23
|
-
rubyforge.developer('Ara T Howard', 'ara.t.howard@gmail.com')
|
14
|
+
multiruby_skip << "rubinius"
|
24
15
|
|
25
|
-
|
16
|
+
self.rubyforge_name = "codeforpeople"
|
17
|
+
self.need_tar = false
|
26
18
|
end
|
27
19
|
|
28
20
|
task :backup do
|
data/bin/rubyforge
CHANGED
@@ -136,7 +136,8 @@ EOL
|
|
136
136
|
mode = ARGV.shift
|
137
137
|
|
138
138
|
opts = GetoptLong::new(
|
139
|
-
[ "--help" , "-h" , GetoptLong::
|
139
|
+
[ "--help" , "-h" , GetoptLong::NO_ARGUMENT ],
|
140
|
+
[ "--force" , "-F" , GetoptLong::NO_ARGUMENT ],
|
140
141
|
[ "--username" , "-u" , GetoptLong::REQUIRED_ARGUMENT ],
|
141
142
|
[ "--password" , "-p" , GetoptLong::REQUIRED_ARGUMENT ],
|
142
143
|
[ "--cookie_jar" , "-C" , GetoptLong::REQUIRED_ARGUMENT ],
|
data/lib/rubyforge.rb
CHANGED
@@ -11,7 +11,7 @@ $TESTING = false unless defined? $TESTING
|
|
11
11
|
class RubyForge
|
12
12
|
|
13
13
|
# :stopdoc:
|
14
|
-
VERSION = '1.0.
|
14
|
+
VERSION = '1.0.4'
|
15
15
|
HOME = ENV["HOME"] || ENV["HOMEPATH"] || File::expand_path("~")
|
16
16
|
RUBYFORGE_D = File::join HOME, ".rubyforge"
|
17
17
|
CONFIG_F = File::join RUBYFORGE_D, "user-config.yml"
|
@@ -61,6 +61,10 @@ class RubyForge
|
|
61
61
|
self
|
62
62
|
end
|
63
63
|
|
64
|
+
def force
|
65
|
+
@userconfig['force']
|
66
|
+
end
|
67
|
+
|
64
68
|
def cookie_store
|
65
69
|
client.cookie_store
|
66
70
|
end
|
@@ -120,7 +124,8 @@ class RubyForge
|
|
120
124
|
|
121
125
|
unless data["group_ids"].has_key? project then
|
122
126
|
html = URI.parse("http://rubyforge.org/projects/#{project}/index.html").read
|
123
|
-
group_id = html[/(frs|tracker|mail)
|
127
|
+
group_id = html[%r/(memberlist.php|frs|tracker|mail)\/?\?group_id=\d+/][%r/\d+/].to_i
|
128
|
+
|
124
129
|
data["group_ids"][project] = group_id
|
125
130
|
end
|
126
131
|
|
@@ -169,7 +174,7 @@ class RubyForge
|
|
169
174
|
end
|
170
175
|
|
171
176
|
def login
|
172
|
-
return if cookie_store['rubyforge.org']['session_ser'] rescue false
|
177
|
+
return if(!force and cookie_store['rubyforge.org']['session_ser']) rescue false
|
173
178
|
|
174
179
|
page = self.uri + "/account/login.php"
|
175
180
|
page.scheme = 'https'
|
@@ -187,7 +192,7 @@ class RubyForge
|
|
187
192
|
|
188
193
|
response = run page, form
|
189
194
|
|
190
|
-
re = %r/personal\s+page
|
195
|
+
re = %r/personal\s+page/iom
|
191
196
|
unless response =~ re
|
192
197
|
warn("%s:%d: warning: potentially failed login using %s" %
|
193
198
|
[__FILE__, __LINE__, username]) unless $TESTING
|
@@ -336,8 +341,8 @@ class RubyForge
|
|
336
341
|
# package_id, and release_id
|
337
342
|
#
|
338
343
|
# example :
|
339
|
-
# add_file("codeforpeople
|
340
|
-
# add_file("codeforpeople
|
344
|
+
# add_file("codeforpeople", "traits", "0.8.0", "traits-0.8.0.gem")
|
345
|
+
# add_file("codeforpeople", "traits", "0.8.0", "traits-0.8.0.tgz")
|
341
346
|
# add_file(1024, 1242, "0.8.0", "traits-0.8.0.gem")
|
342
347
|
|
343
348
|
def add_file(group_name, package_name, release_name, userfile)
|
@@ -436,7 +441,7 @@ __END__
|
|
436
441
|
# map your group names to their rubyforge ids
|
437
442
|
#
|
438
443
|
group_ids :
|
439
|
-
codeforpeople
|
444
|
+
codeforpeople : 1024
|
440
445
|
#
|
441
446
|
# map your package names to their rubyforge ids
|
442
447
|
#
|
data/lib/rubyforge/client.rb
CHANGED
@@ -33,7 +33,14 @@ class RubyForge
|
|
33
33
|
@debug_dev = nil
|
34
34
|
@ssl_verify_mode = OpenSSL::SSL::VERIFY_NONE
|
35
35
|
@cookie_manager = CookieManager.new
|
36
|
-
|
36
|
+
if proxy
|
37
|
+
begin
|
38
|
+
proxy_uri = URI.parse(proxy)
|
39
|
+
@agent_class = Net::HTTP::Proxy(proxy_uri.host,proxy_uri.port)
|
40
|
+
rescue URI::InvalidURIError
|
41
|
+
end
|
42
|
+
end
|
43
|
+
@agent_class ||= Net::HTTP
|
37
44
|
end
|
38
45
|
|
39
46
|
def cookie_store
|
data/test/test_rubyforge.rb
CHANGED
@@ -68,6 +68,16 @@ class TestRubyForge < Test::Unit::TestCase
|
|
68
68
|
# end
|
69
69
|
end
|
70
70
|
|
71
|
+
def test_new_with_proxy_uses_a_proxy_class
|
72
|
+
client = RubyForge::Client.new('http://localhost:8808/')
|
73
|
+
assert client.agent_class.proxy_class?, 'agent class should be a proxy'
|
74
|
+
end
|
75
|
+
|
76
|
+
def test_new_with_bad_proxy_uses_normal_http
|
77
|
+
client = RubyForge::Client.new('asdfkjhalksdfjh')
|
78
|
+
assert !client.agent_class.proxy_class?, 'agent class should not be a proxy'
|
79
|
+
end
|
80
|
+
|
71
81
|
def test_initialize_bad
|
72
82
|
@cookie_path = File.join(Dir.tmpdir, "cookie.#{$$}.dat")
|
73
83
|
File.open(@cookie_path, 'w') {} # touch
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubyforge
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Davis
|
@@ -11,11 +11,23 @@ autorequire:
|
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
13
|
|
14
|
-
date: 2009-
|
14
|
+
date: 2009-07-21 00:00:00 -07:00
|
15
15
|
default_executable:
|
16
16
|
dependencies: []
|
17
17
|
|
18
|
-
description:
|
18
|
+
description: |-
|
19
|
+
A script which automates a limited set of rubyforge operations.
|
20
|
+
|
21
|
+
* Run 'rubyforge help' for complete usage.
|
22
|
+
* Setup: For first time users AND upgrades to 0.4.0:
|
23
|
+
* rubyforge setup (deletes your username and password, so run sparingly!)
|
24
|
+
* edit ~/.rubyforge/user-config.yml
|
25
|
+
* rubyforge config
|
26
|
+
* For all rubyforge upgrades, run 'rubyforge config' to ensure you have latest.
|
27
|
+
* Don't forget to login! logging in will store a cookie in your
|
28
|
+
.rubyforge directory which expires after a time. always run the
|
29
|
+
login command before any operation that requires authentication,
|
30
|
+
such as uploading a package.
|
19
31
|
email:
|
20
32
|
- ryand-ruby@zenspider.com
|
21
33
|
- drbrain@segment7.net
|
@@ -42,6 +54,8 @@ files:
|
|
42
54
|
- test/test_rubyforge_cookie_manager.rb
|
43
55
|
has_rdoc: true
|
44
56
|
homepage: http://codeforpeople.rubyforge.org/rubyforge/
|
57
|
+
licenses: []
|
58
|
+
|
45
59
|
post_install_message:
|
46
60
|
rdoc_options:
|
47
61
|
- --main
|
@@ -63,9 +77,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
63
77
|
requirements: []
|
64
78
|
|
65
79
|
rubyforge_project: codeforpeople
|
66
|
-
rubygems_version: 1.3.
|
80
|
+
rubygems_version: 1.3.4
|
67
81
|
signing_key:
|
68
|
-
specification_version:
|
82
|
+
specification_version: 3
|
69
83
|
summary: A script which automates a limited set of rubyforge operations
|
70
84
|
test_files:
|
71
85
|
- test/test_rubyforge.rb
|