sdoc_all 1.0.1 → 1.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/README.rdoc +8 -0
- data/VERSION.yml +1 -1
- data/lib/sdoc_all/parts/ruby.rb +36 -8
- data/sdoc_all.gemspec +2 -2
- metadata +2 -2
data/README.rdoc
CHANGED
@@ -43,6 +43,14 @@ carefully watch indent - 4 spaces for options
|
|
43
43
|
ruby 1.8.6 source will be downloaded for you from ftp.ruby-lang.org and placed in folder sources
|
44
44
|
- ruby: 1.8.6
|
45
45
|
|
46
|
+
to auto detect ruby version pass `ruby binary` instead of version (this binary will be asked to execute <tt>print "#{RUBY_VERSION}-p#{RUBY_PATCHLEVEL}"</tt>)
|
47
|
+
- ruby: `ruby`
|
48
|
+
or
|
49
|
+
- ruby: `/usr/bin/ruby`
|
50
|
+
or
|
51
|
+
- ruby: `/usr/bin/env ruby`
|
52
|
+
…
|
53
|
+
|
46
54
|
if you don't want updates use this
|
47
55
|
- ruby:
|
48
56
|
version: 1.8.6
|
data/VERSION.yml
CHANGED
@@ -1 +1 @@
|
|
1
|
-
[1, 0,
|
1
|
+
[1, 0, 2]
|
data/lib/sdoc_all/parts/ruby.rb
CHANGED
@@ -9,16 +9,26 @@ class SdocAll
|
|
9
9
|
|
10
10
|
@config = {
|
11
11
|
:update => raw_config.delete(:update) != false,
|
12
|
-
:version => raw_config.delete(:version),
|
12
|
+
:version => raw_config.delete(:version).to_s,
|
13
13
|
:index => raw_config.delete(:index),
|
14
14
|
:stdlib => raw_config.delete(:stdlib),
|
15
15
|
}
|
16
16
|
|
17
|
-
|
18
|
-
unless version.present?
|
17
|
+
unless config[:version].present?
|
19
18
|
raise ConfigError.new("specify version of ruby (place archive to 'sources' directory or it will be download from ftp://ftp.ruby-lang.org/)")
|
20
19
|
end
|
21
|
-
|
20
|
+
|
21
|
+
if binary = config[:version][/^`(.*)`$/, 1]
|
22
|
+
version = `#{binary} -e 'print "\#{RUBY_VERSION}-p\#{RUBY_PATCHLEVEL}"'`
|
23
|
+
if $?.success? && version[/^\d+\.\d+\.\d+-p\d+$/]
|
24
|
+
config[:version] = version
|
25
|
+
puts "binary `#{binary}` is of version #{version}"
|
26
|
+
else
|
27
|
+
raise ConfigError.new("binary `#{binary}` failed or does not seem to be ruby binary as version returned is #{version.inspect}")
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
self.class.find_or_download_matching_archive(config[:version])
|
22
32
|
|
23
33
|
if config[:index]
|
24
34
|
index = Pathname(config[:index])
|
@@ -172,16 +182,34 @@ class SdocAll
|
|
172
182
|
|
173
183
|
def download_matching_archive(version)
|
174
184
|
Net::FTP.open('ftp.ruby-lang.org') do |ftp|
|
175
|
-
remote_path = '/pub/ruby'
|
185
|
+
remote_path = Pathname('/pub/ruby')
|
176
186
|
ftp.debug_mode = true
|
177
187
|
ftp.passive = true
|
178
188
|
ftp.login
|
179
189
|
ftp.chdir(remote_path)
|
180
|
-
paths = ftp.list('ruby-*.tar.bz2').map{ |line| "#{remote_path}/#{line.split.last}" }
|
181
190
|
|
182
|
-
|
191
|
+
tar = nil
|
192
|
+
|
193
|
+
dirs, files = [], []
|
194
|
+
ftp.list('*').map do |line|
|
195
|
+
full_path = remote_path + line.split.last
|
196
|
+
(line.starts_with?('d') ? dirs : files) << full_path
|
197
|
+
end
|
198
|
+
|
199
|
+
tar_bz2_matcher = /(^|\/)ruby-.*\.tar\.bz2$/
|
200
|
+
|
201
|
+
unless tar = last_matching_ruby_archive(version, files.grep(tar_bz2_matcher)) || last_matching_ruby_archive(version, files)
|
202
|
+
dirs = dirs.sort_by{ |dir| s = dir.basename.to_s; v = s.to_f; [v, s] }.reverse.
|
203
|
+
select{ |dir| dir.basename.to_s[/^\d/] && dir.basename.to_s.starts_with?(version[0, 3]) }
|
204
|
+
dirs.each do |dir|
|
205
|
+
files = ftp.nlst(dir)
|
206
|
+
break if tar = last_matching_ruby_archive(version, files.grep(tar_bz2_matcher)) || last_matching_ruby_archive(version, files)
|
207
|
+
end
|
208
|
+
end
|
209
|
+
|
210
|
+
if tar
|
183
211
|
dest = sources_path.parent + tar.name
|
184
|
-
unless
|
212
|
+
unless dest.exist? && dest.size == ftp.size(tar.path)
|
185
213
|
ftp.getbinaryfile(tar.path, dest)
|
186
214
|
end
|
187
215
|
end
|
data/sdoc_all.gemspec
CHANGED
@@ -2,11 +2,11 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{sdoc_all}
|
5
|
-
s.version = "1.0.
|
5
|
+
s.version = "1.0.2"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["toy"]
|
9
|
-
s.date = %q{2009-08-
|
9
|
+
s.date = %q{2009-08-25}
|
10
10
|
s.default_executable = %q{sdoc-all}
|
11
11
|
s.description = %q{Command line tool to get documentation for ruby, rails, gems and plugins in one place}
|
12
12
|
s.email = %q{ivan@workisfun.ru}
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sdoc_all
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- toy
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-08-
|
12
|
+
date: 2009-08-25 00:00:00 +04:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|