gauntlet 2.0.2 → 2.1.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.
- checksums.yaml +7 -0
- checksums.yaml.gz.sig +1 -0
- data.tar.gz.sig +0 -0
- data/.gemtest +0 -0
- data/History.txt +14 -0
- data/README.txt +5 -3
- data/Rakefile +0 -2
- data/lib/gauntlet.rb +18 -24
- metadata +85 -104
- metadata.gz.sig +0 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 7d5fadcfb3c0ac0befed72b11ffbdd953ecf5dc0
|
4
|
+
data.tar.gz: d5d94a3e366c3d4a5ce7ee262a354e213dbd3b8c
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: b449947eb19d175d9c2c3a5fba74d2c21f8f3e5a128b1e5dbe824926564ee6f59850be3f639b74802696e86055bd4d6c97d438510af01db7cab4af53feb4ff8b
|
7
|
+
data.tar.gz: 11248bd06b9b3360151587b9e7eb0326bbb72abd92297e3084d1e0f510efb8b3d6dfcce962afd4d07c50fe8e17edfdc1310588ba5aec3220b3893d5d8092e26e
|
checksums.yaml.gz.sig
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
���"����9YA���� 9�̒�
|
data.tar.gz.sig
CHANGED
Binary file
|
data/.gemtest
ADDED
File without changes
|
data/History.txt
CHANGED
@@ -1,3 +1,17 @@
|
|
1
|
+
=== 2.1.0 / 2014-08-28
|
2
|
+
|
3
|
+
* 1 minor enhancement:
|
4
|
+
|
5
|
+
* Updated for newer versions of rubygems.
|
6
|
+
|
7
|
+
* 5 bug fixes:
|
8
|
+
|
9
|
+
* Fixed 1.9/2.0 warnings.
|
10
|
+
* Fixed redirect URIs.
|
11
|
+
* Fixed system call to chmod to use quotes on full_name.
|
12
|
+
* Handle more exceptions (SSLError, Persistent errors, etc)
|
13
|
+
* Removed dead rubyforge setting in Rakefile
|
14
|
+
|
1
15
|
=== 2.0.2 / 2013-06-28
|
2
16
|
|
3
17
|
* 1 bug fix:
|
data/README.txt
CHANGED
@@ -19,18 +19,20 @@ gems and storing off the data.
|
|
19
19
|
== SYNOPSIS:
|
20
20
|
|
21
21
|
require 'gauntlet'
|
22
|
-
|
22
|
+
|
23
23
|
class MyGauntlet < Gauntlet
|
24
24
|
def run name
|
25
25
|
data[name] = Dir["**/*.rb"]
|
26
26
|
self.dirty = true
|
27
27
|
end
|
28
28
|
end
|
29
|
-
|
29
|
+
|
30
30
|
filter = ARGV.shift
|
31
31
|
filter = Regexp.new filter if filter
|
32
|
-
|
32
|
+
|
33
33
|
gauntlet = MyGauntlet.new
|
34
|
+
gauntlet.source_index
|
35
|
+
gauntlet.update_gem_tarballs
|
34
36
|
gauntlet.run_the_gauntlet filter
|
35
37
|
|
36
38
|
== REQUIREMENTS:
|
data/Rakefile
CHANGED
data/lib/gauntlet.rb
CHANGED
@@ -10,7 +10,7 @@ $F ||= false
|
|
10
10
|
Thread.abort_on_exception = true
|
11
11
|
|
12
12
|
class Gauntlet
|
13
|
-
VERSION = '2.0
|
13
|
+
VERSION = '2.1.0'
|
14
14
|
GEMURL = URI.parse 'http://gems.rubyforge.org'
|
15
15
|
GEMDIR = File.expand_path "~/.gauntlet"
|
16
16
|
DATADIR = File.expand_path "~/.gauntlet/data"
|
@@ -52,17 +52,11 @@ class Gauntlet
|
|
52
52
|
end
|
53
53
|
|
54
54
|
def latest_gems
|
55
|
-
Gem::SpecFetcher.new.
|
56
|
-
|
57
|
-
gems.map { |
|
58
|
-
gem_name =
|
59
|
-
|
60
|
-
[name, version].join '-'
|
61
|
-
else
|
62
|
-
[name, version, platform].join '-'
|
63
|
-
end
|
64
|
-
|
65
|
-
[gem_name, File.join(base_url, "/gems/#{gem_name}.gem")]
|
55
|
+
list, _ = Gem::SpecFetcher.new.available_specs(:latest)
|
56
|
+
list.map { |source, gems|
|
57
|
+
gems.map { |tuple|
|
58
|
+
gem_name = File.basename(tuple.spec_name, '.gemspec')
|
59
|
+
[gem_name, source.uri.merge("/gems/#{gem_name}.gem")]
|
66
60
|
}
|
67
61
|
}.flatten(1)
|
68
62
|
end
|
@@ -78,7 +72,7 @@ class Gauntlet
|
|
78
72
|
gems = Dir["*.gem"]
|
79
73
|
tgzs = Dir["*.tgz"]
|
80
74
|
|
81
|
-
old = tgzs - latest.map { |(full_name,
|
75
|
+
old = tgzs - latest.map { |(full_name, _url)| "#{full_name}.tgz" }
|
82
76
|
unless old.empty? then
|
83
77
|
warn "deleting #{old.size} tgzs"
|
84
78
|
old.each do |tgz|
|
@@ -91,15 +85,15 @@ class Gauntlet
|
|
91
85
|
tgz_names = tgzs.map { |tgz| File.basename tgz, '.tgz' }
|
92
86
|
to_convert = gem_names - tgz_names
|
93
87
|
|
94
|
-
seen_tgzs = Hash[
|
88
|
+
seen_tgzs = Hash[tgzs.map { |name| [name, true] }]
|
95
89
|
|
96
90
|
warn "adding #{to_convert.size} unconverted gems" unless to_convert.empty?
|
97
91
|
|
98
92
|
conversions.push to_convert.shift until to_convert.empty? # LAME
|
99
93
|
|
100
94
|
downloads = Queue.new
|
101
|
-
latest = latest.sort_by { |(full_name,
|
102
|
-
latest.reject! { |(full_name,
|
95
|
+
latest = latest.sort_by { |(full_name, _url)| full_name.downcase }
|
96
|
+
latest.reject! { |(full_name, _url)| seen_tgzs["#{full_name}.tgz"] }
|
103
97
|
|
104
98
|
downloads.push(latest.shift) until latest.empty? # LAME
|
105
99
|
|
@@ -116,7 +110,7 @@ class Gauntlet
|
|
116
110
|
system "gem spec -l cache/#{gem_name} > #{full_name}/gemspec"
|
117
111
|
end
|
118
112
|
|
119
|
-
system ["chmod -R u+rwX #{full_name}",
|
113
|
+
system ["chmod -R u+rwX \"#{full_name}\"",
|
120
114
|
"tar zmcf #{tgz_name} -- #{full_name}",
|
121
115
|
"rm -rf -- #{full_name} #{gem_name}"].join(" && ")
|
122
116
|
end
|
@@ -124,9 +118,7 @@ class Gauntlet
|
|
124
118
|
|
125
119
|
warn "fetching #{downloads.size} gems"
|
126
120
|
|
127
|
-
http
|
128
|
-
|
129
|
-
workers downloads do |full_name, url|
|
121
|
+
workers downloads do |http, (full_name, url)|
|
130
122
|
gem_name = "#{full_name}.gem"
|
131
123
|
|
132
124
|
unless gems.include? gem_name then
|
@@ -134,7 +126,7 @@ class Gauntlet
|
|
134
126
|
begin
|
135
127
|
warn "downloading #{full_name}"
|
136
128
|
while limit > 0 do
|
137
|
-
http.request
|
129
|
+
http.request url do |response|
|
138
130
|
case response
|
139
131
|
when Net::HTTPSuccess
|
140
132
|
File.open gem_name, "wb" do |f|
|
@@ -144,7 +136,7 @@ class Gauntlet
|
|
144
136
|
end
|
145
137
|
limit = 0 # kinda lame.
|
146
138
|
when Net::HTTPRedirection
|
147
|
-
url = response['location']
|
139
|
+
url = URI.parse(response['location'])
|
148
140
|
limit -= 1
|
149
141
|
else
|
150
142
|
warn " #{full_name} got #{response.code}. skipping."
|
@@ -152,7 +144,7 @@ class Gauntlet
|
|
152
144
|
end
|
153
145
|
end
|
154
146
|
end
|
155
|
-
rescue SocketError, Net::HTTP::Persistent::Error => e
|
147
|
+
rescue SocketError, OpenSSL::SSL::SSLError, Net::HTTP::Persistent::Error => e
|
156
148
|
warn " #{full_name} raised #{e.message}. skipping."
|
157
149
|
end
|
158
150
|
end
|
@@ -174,9 +166,11 @@ class Gauntlet
|
|
174
166
|
threads = []
|
175
167
|
count.times do
|
176
168
|
threads << Thread.new do
|
169
|
+
http = Net::HTTP::Persistent.new
|
170
|
+
|
177
171
|
until tasks.empty? do
|
178
172
|
task = tasks.shift
|
179
|
-
yield task
|
173
|
+
yield http, task
|
180
174
|
end
|
181
175
|
end
|
182
176
|
end
|
metadata
CHANGED
@@ -1,24 +1,18 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: gauntlet
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
6
|
-
segments:
|
7
|
-
- 2
|
8
|
-
- 0
|
9
|
-
- 2
|
10
|
-
version: 2.0.2
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 2.1.0
|
11
5
|
platform: ruby
|
12
|
-
authors:
|
6
|
+
authors:
|
13
7
|
- Ryan Davis
|
14
8
|
autorequire:
|
15
9
|
bindir: bin
|
16
|
-
cert_chain:
|
10
|
+
cert_chain:
|
17
11
|
- |
|
18
12
|
-----BEGIN CERTIFICATE-----
|
19
|
-
|
13
|
+
MIIDPjCCAiagAwIBAgIBATANBgkqhkiG9w0BAQUFADBFMRMwEQYDVQQDDApyeWFu
|
20
14
|
ZC1ydWJ5MRkwFwYKCZImiZPyLGQBGRYJemVuc3BpZGVyMRMwEQYKCZImiZPyLGQB
|
21
|
-
|
15
|
+
GRYDY29tMB4XDTEzMDkxNjIzMDQxMloXDTE0MDkxNjIzMDQxMlowRTETMBEGA1UE
|
22
16
|
AwwKcnlhbmQtcnVieTEZMBcGCgmSJomT8ixkARkWCXplbnNwaWRlcjETMBEGCgmS
|
23
17
|
JomT8ixkARkWA2NvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALda
|
24
18
|
b9DCgK+627gPJkB6XfjZ1itoOQvpqH1EXScSaba9/S2VF22VYQbXU1xQXL/WzCkx
|
@@ -28,91 +22,85 @@ cert_chain:
|
|
28
22
|
qhtV7HJxNKuPj/JFH0D2cswvzznE/a5FOYO68g+YCuFi5L8wZuuM8zzdwjrWHqSV
|
29
23
|
gBEfoTEGr7Zii72cx+sCAwEAAaM5MDcwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAw
|
30
24
|
HQYDVR0OBBYEFEfFe9md/r/tj/Wmwpy+MI8d9k/hMA0GCSqGSIb3DQEBBQUAA4IB
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
25
|
+
AQCFZ7JTzoy1gcG4d8A6dmOJy7ygtO5MFpRIz8HuKCF5566nOvpy7aHhDDzFmQuu
|
26
|
+
FX3zDU6ghx5cQIueDhf2SGOncyBmmJRRYawm3wI0o1MeN6LZJ/3cRaOTjSFy6+S6
|
27
|
+
zqDmHBp8fVA2TGJtO0BLNkbGVrBJjh0UPmSoGzWlRhEVnYC33TpDAbNA+u39UrQI
|
28
|
+
ynwhNN7YbnmSR7+JU2cUjBFv2iPBO+TGuWC+9L2zn3NHjuc6tnmSYipA9y8Hv+As
|
29
|
+
Y4evBVezr3SjXz08vPqRO5YRdO3zfeMT8gBjRqZjWJGMZ2lD4XNfrs7eky74CyZw
|
30
|
+
xx3n58i0lQkBE1EpKE0lFu/y
|
37
31
|
-----END CERTIFICATE-----
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
- !ruby/object:Gem::Dependency
|
32
|
+
date: 2014-08-28 00:00:00.000000000 Z
|
33
|
+
dependencies:
|
34
|
+
- !ruby/object:Gem::Dependency
|
42
35
|
name: net-http-persistent
|
43
|
-
|
44
|
-
|
45
|
-
none: false
|
46
|
-
requirements:
|
36
|
+
requirement: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
47
38
|
- - ~>
|
48
|
-
- !ruby/object:Gem::Version
|
49
|
-
hash: 5
|
50
|
-
segments:
|
51
|
-
- 1
|
52
|
-
- 4
|
53
|
-
- 1
|
39
|
+
- !ruby/object:Gem::Version
|
54
40
|
version: 1.4.1
|
55
41
|
type: :runtime
|
56
|
-
version_requirements: *id001
|
57
|
-
- !ruby/object:Gem::Dependency
|
58
|
-
name: minitest
|
59
42
|
prerelease: false
|
60
|
-
|
61
|
-
|
62
|
-
requirements:
|
43
|
+
version_requirements: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
63
45
|
- - ~>
|
64
|
-
- !ruby/object:Gem::Version
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 1.4.1
|
48
|
+
- !ruby/object:Gem::Dependency
|
49
|
+
name: minitest
|
50
|
+
requirement: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ~>
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '5.4'
|
70
55
|
type: :development
|
71
|
-
version_requirements: *id002
|
72
|
-
- !ruby/object:Gem::Dependency
|
73
|
-
name: rdoc
|
74
56
|
prerelease: false
|
75
|
-
|
76
|
-
|
77
|
-
|
57
|
+
version_requirements: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '5.4'
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: rdoc
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
78
66
|
- - ~>
|
79
|
-
- !ruby/object:Gem::Version
|
80
|
-
|
81
|
-
segments:
|
82
|
-
- 4
|
83
|
-
- 0
|
84
|
-
version: "4.0"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '4.0'
|
85
69
|
type: :development
|
86
|
-
version_requirements: *id003
|
87
|
-
- !ruby/object:Gem::Dependency
|
88
|
-
name: hoe
|
89
70
|
prerelease: false
|
90
|
-
|
91
|
-
|
92
|
-
|
71
|
+
version_requirements: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ~>
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '4.0'
|
76
|
+
- !ruby/object:Gem::Dependency
|
77
|
+
name: hoe
|
78
|
+
requirement: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
93
80
|
- - ~>
|
94
|
-
- !ruby/object:Gem::Version
|
95
|
-
|
96
|
-
segments:
|
97
|
-
- 3
|
98
|
-
- 6
|
99
|
-
version: "3.6"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '3.12'
|
100
83
|
type: :development
|
101
|
-
|
84
|
+
prerelease: false
|
85
|
+
version_requirements: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ~>
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '3.12'
|
102
90
|
description: |-
|
103
91
|
Gauntlet is a pluggable means of running code against all the latest
|
104
92
|
gems and storing off the data.
|
105
|
-
email:
|
93
|
+
email:
|
106
94
|
- ryand-ruby@zenspider.com
|
107
|
-
executables:
|
95
|
+
executables:
|
108
96
|
- gauntlet
|
109
97
|
extensions: []
|
110
|
-
|
111
|
-
extra_rdoc_files:
|
98
|
+
extra_rdoc_files:
|
112
99
|
- History.txt
|
113
100
|
- Manifest.txt
|
114
101
|
- README.txt
|
115
|
-
files:
|
102
|
+
files:
|
103
|
+
- .gemtest
|
116
104
|
- History.txt
|
117
105
|
- Manifest.txt
|
118
106
|
- README.txt
|
@@ -122,38 +110,31 @@ files:
|
|
122
110
|
- lib/gauntlet_grep.rb
|
123
111
|
- test/test_gauntlet.rb
|
124
112
|
homepage: https://github.com/seattlerb/gauntlet
|
125
|
-
licenses:
|
126
|
-
|
113
|
+
licenses:
|
114
|
+
- MIT
|
115
|
+
metadata: {}
|
127
116
|
post_install_message:
|
128
|
-
rdoc_options:
|
117
|
+
rdoc_options:
|
129
118
|
- --main
|
130
119
|
- README.txt
|
131
|
-
require_paths:
|
120
|
+
require_paths:
|
132
121
|
- lib
|
133
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
none: false
|
144
|
-
requirements:
|
145
|
-
- - ">="
|
146
|
-
- !ruby/object:Gem::Version
|
147
|
-
hash: 3
|
148
|
-
segments:
|
149
|
-
- 0
|
150
|
-
version: "0"
|
122
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
123
|
+
requirements:
|
124
|
+
- - '>='
|
125
|
+
- !ruby/object:Gem::Version
|
126
|
+
version: '0'
|
127
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - '>='
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
151
132
|
requirements: []
|
152
|
-
|
153
|
-
|
154
|
-
rubygems_version: 1.8.25
|
133
|
+
rubyforge_project:
|
134
|
+
rubygems_version: 2.2.1
|
155
135
|
signing_key:
|
156
|
-
specification_version:
|
157
|
-
summary: Gauntlet is a pluggable means of running code against all the latest gems
|
158
|
-
|
159
|
-
|
136
|
+
specification_version: 4
|
137
|
+
summary: Gauntlet is a pluggable means of running code against all the latest gems
|
138
|
+
and storing off the data.
|
139
|
+
test_files:
|
140
|
+
- test/test_gauntlet.rb
|
metadata.gz.sig
CHANGED
Binary file
|