doc 0.4.1 → 0.5.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
- data/LICENSE.txt +1 -1
- data/README.markdown +1 -1
- data/doc.gemspec +4 -4
- data/lib/doc/base_task.rb +7 -12
- data/lib/doc/config_error.rb +1 -5
- data/lib/doc/configurator/gems.rb +2 -1
- data/lib/doc/configurator/rails.rb +25 -8
- data/lib/doc/configurator/ruby.rb +0 -2
- data/lib/doc/configurator/ruby/path_info.rb +1 -1
- data/lib/doc/configurator/ruby/source.rb +8 -8
- data/lib/doc/configurator/ruby/version_specifier.rb +6 -1
- data/lib/doc/merger.rb +1 -1
- metadata +82 -104
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: b3c67d282df1baec1c1b258b082bccca10b69c55
|
4
|
+
data.tar.gz: 57dec17e5ece6a3541f6db38df7ee41580c767e0
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 41e583d7077a19db63db7cb072e952722e13285d9b69df6f7034d30454c37f06e5d2f21727feeb000ff26df577527ff916fb8a8029c77ecb287a7440bb2f0ae3
|
7
|
+
data.tar.gz: f1db12160b470bdfaf09d29a9a23c554c513d0fb57881749104a74fa8a127fa997466ccbc8c128330b266217910921991d73991d9e0478377d2483eade4c0f3f
|
data/LICENSE.txt
CHANGED
data/README.markdown
CHANGED
data/doc.gemspec
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = 'doc'
|
5
|
-
s.version = '0.
|
5
|
+
s.version = '0.5.0'
|
6
6
|
s.summary = %q{Get all ruby documentation in one place}
|
7
7
|
s.description = %Q{Generate `Rakefile` with `docr` and get searchable documentation for ruby, rails, gems, plugins and all other ruby code in one place}
|
8
8
|
s.homepage = "http://github.com/toy/#{s.name}"
|
@@ -16,9 +16,9 @@ Gem::Specification.new do |s|
|
|
16
16
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
17
17
|
s.require_paths = %w[lib]
|
18
18
|
|
19
|
-
s.add_runtime_dependency 'sdoc', '~> 0.2
|
20
|
-
s.add_runtime_dependency 'fspath'
|
21
|
-
s.add_runtime_dependency 'progress', '~>
|
19
|
+
s.add_runtime_dependency 'sdoc', '~> 0.2'
|
20
|
+
s.add_runtime_dependency 'fspath', '~> 3.0'
|
21
|
+
s.add_runtime_dependency 'progress', '~> 3.0'
|
22
22
|
s.add_runtime_dependency 'net-ftp-list'
|
23
23
|
s.add_runtime_dependency 'rake'
|
24
24
|
end
|
data/lib/doc/base_task.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'digest/sha2'
|
2
2
|
require 'shellwords'
|
3
3
|
require 'sdoc'
|
4
|
+
require 'yaml'
|
4
5
|
|
5
6
|
module Doc
|
6
7
|
class BaseTask
|
@@ -25,11 +26,12 @@ module Doc
|
|
25
26
|
doc_dir / '.#{name}_state'
|
26
27
|
end
|
27
28
|
def #{name}_state_changed?
|
28
|
-
!#{name}_state_path.exist? ||
|
29
|
-
rescue
|
29
|
+
!#{name}_state_path.exist? || YAML.load(#{name}_state_path.read) != #{name}_state
|
30
|
+
rescue
|
31
|
+
true
|
30
32
|
end
|
31
33
|
def write_#{name}_state
|
32
|
-
#{name}_state_path.write(
|
34
|
+
#{name}_state_path.write(YAML.dump(#{name}_state))
|
33
35
|
end
|
34
36
|
RUBY
|
35
37
|
end
|
@@ -59,9 +61,10 @@ module Doc
|
|
59
61
|
def run(force = false)
|
60
62
|
if force || run?
|
61
63
|
if doc_dir.exist?
|
62
|
-
|
64
|
+
$stderr.puts %W[rm -r #{doc_dir}].shelljoin
|
63
65
|
doc_dir.rmtree
|
64
66
|
end
|
67
|
+
Progress.note = title
|
65
68
|
build
|
66
69
|
write_config_state
|
67
70
|
@state = control_files_exist? ? :succeeded : :failed
|
@@ -85,13 +88,5 @@ module Doc
|
|
85
88
|
def loaded_gem_version(gem)
|
86
89
|
Gem.loaded_specs[gem].version
|
87
90
|
end
|
88
|
-
|
89
|
-
def in_progress_message(message)
|
90
|
-
if Progress.running?
|
91
|
-
Progress.note = message
|
92
|
-
else
|
93
|
-
$stderr.puts message
|
94
|
-
end
|
95
|
-
end
|
96
91
|
end
|
97
92
|
end
|
data/lib/doc/config_error.rb
CHANGED
@@ -1,11 +1,7 @@
|
|
1
1
|
module Doc
|
2
2
|
class ConfigError < Exception
|
3
3
|
def initialize(object, message)
|
4
|
-
super("#{object.class.name}: #{message}")
|
5
|
-
if Exception === message
|
6
|
-
e.set_backtrace(message.backtrace)
|
7
|
-
end
|
8
|
-
end
|
4
|
+
super("#{object.class.name}: #{message}")
|
9
5
|
end
|
10
6
|
end
|
11
7
|
end
|
@@ -31,6 +31,7 @@ module Doc
|
|
31
31
|
def tasks
|
32
32
|
@specs.map do |spec|
|
33
33
|
main = spec.rdoc_options.each_cons(2).select{ |key, value| %w[--main -m].include?(key) }.map(&:last).first
|
34
|
+
next if spec.respond_to?(:default_gem?) && spec.default_gem?
|
34
35
|
Dir.chdir(spec.full_gem_path) do
|
35
36
|
file_list = FileList.new
|
36
37
|
file_list.include *spec.extra_rdoc_files
|
@@ -44,7 +45,7 @@ module Doc
|
|
44
45
|
:main => main,
|
45
46
|
})
|
46
47
|
end
|
47
|
-
end
|
48
|
+
end.compact
|
48
49
|
end
|
49
50
|
|
50
51
|
private
|
@@ -32,15 +32,12 @@ module Doc
|
|
32
32
|
|
33
33
|
private
|
34
34
|
|
35
|
-
def version_less_than_3?(version)
|
36
|
-
version.segments.first < 3
|
37
|
-
end
|
38
|
-
|
39
35
|
def paths_to_document_for_version(version)
|
40
|
-
code =
|
36
|
+
code = case version.segments.first
|
37
|
+
when 2
|
41
38
|
<<-RUBY
|
42
|
-
require 'rdoc/task'
|
43
39
|
gem 'rails', ARGV.first
|
40
|
+
require 'rdoc/task'
|
44
41
|
|
45
42
|
Rake::FileList.class_eval do
|
46
43
|
alias_method :original_include, :include
|
@@ -75,10 +72,10 @@ module Doc
|
|
75
72
|
|
76
73
|
load 'tasks/documentation.rake'
|
77
74
|
RUBY
|
78
|
-
|
75
|
+
when 3
|
79
76
|
<<-RUBY
|
80
|
-
require 'rdoc/task'
|
81
77
|
gem 'rails', ARGV.first
|
78
|
+
require 'rdoc/task'
|
82
79
|
|
83
80
|
class RDocTaskWithoutDescriptions < Rake::RDocTask
|
84
81
|
def initialize(name = :rdoc)
|
@@ -89,6 +86,26 @@ module Doc
|
|
89
86
|
|
90
87
|
load 'rails/tasks/documentation.rake'
|
91
88
|
RUBY
|
89
|
+
else
|
90
|
+
<<-RUBY
|
91
|
+
gem 'rails', ARGV.first
|
92
|
+
require 'rdoc/task'
|
93
|
+
require 'rails/api/task'
|
94
|
+
|
95
|
+
module Rails
|
96
|
+
module API
|
97
|
+
class InstalledTask < StableTask
|
98
|
+
def component_root_dir(component)
|
99
|
+
Gem::Specification.find_by_name(component).gem_dir
|
100
|
+
end
|
101
|
+
end
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
task = Rails::API::InstalledTask.new('rdoc')
|
106
|
+
task.configure_rdoc_files
|
107
|
+
puts task.rdoc_files
|
108
|
+
RUBY
|
92
109
|
end
|
93
110
|
args = %W[ruby -r rubygems -e #{code} -- #{version}]
|
94
111
|
IO.popen(args.shelljoin, &:readlines).map(&:strip)
|
@@ -9,7 +9,7 @@ module Doc
|
|
9
9
|
|
10
10
|
def self.for_path(path)
|
11
11
|
name = path.basename.to_s
|
12
|
-
if name =~ /^ruby-(\d+\.\d+\.\d
|
12
|
+
if name =~ /^ruby-(\d+\.\d+\.\d+(?:-p\d+)?)(?i:\.(tar\.(?:gz|bz2)|tgz|tbz|zip))?$/
|
13
13
|
extension = $2 ? $2.downcase : :dir
|
14
14
|
type = ({'tar.bz2' => 'tbz', 'tar.gz' => 'tgz'}[extension] || extension).to_sym
|
15
15
|
new(path, name, type, $1, $1.scan(/\d+/).map(&:to_i))
|
@@ -13,6 +13,7 @@ module Doc
|
|
13
13
|
version = VersionSpecifier.new(`#{binary} -e 'print "\#{RUBY_VERSION}-p\#{RUBY_PATCHLEVEL}"'`)
|
14
14
|
if $?.success?
|
15
15
|
if version.valid?
|
16
|
+
version = version.drop unless version < VersionSpecifier.new(2.1)
|
16
17
|
by_version(version, update)
|
17
18
|
else
|
18
19
|
raise "invalid version from `#{binary}`: #{version.to_s.inspect}"
|
@@ -44,7 +45,7 @@ module Doc
|
|
44
45
|
if path.basename.to_s =~ /^(.*)(?i:\.(tar\.(?:gz|bz2)|tgz|tbz|zip))$/
|
45
46
|
dir, extension = sources_dir / $1, $2.downcase
|
46
47
|
unless dir.exist?
|
47
|
-
|
48
|
+
FSPath.temp_dir 'ruby', sources_dir do |d|
|
48
49
|
begin
|
49
50
|
case extension
|
50
51
|
when 'tbz', 'tar.bz2'
|
@@ -55,7 +56,7 @@ module Doc
|
|
55
56
|
Command.run('unzip', '-q', path, '-d', d)
|
56
57
|
end
|
57
58
|
|
58
|
-
children =
|
59
|
+
children = d.children
|
59
60
|
if children.length == 1
|
60
61
|
children.first.rename(dir)
|
61
62
|
else
|
@@ -104,8 +105,7 @@ module Doc
|
|
104
105
|
end
|
105
106
|
|
106
107
|
def tempfile_for(dst)
|
107
|
-
|
108
|
-
path = FSPath(f.path)
|
108
|
+
FSPath.temp_file_path 'ruby', sources_dir do |path|
|
109
109
|
yield path
|
110
110
|
path.rename(dst)
|
111
111
|
end
|
@@ -122,8 +122,8 @@ module Doc
|
|
122
122
|
def tmpdir_for_latest_version_from_tag_list(command, regexp, version)
|
123
123
|
if tag_version = latest_version_from_tag_list(command, regexp, version)
|
124
124
|
unless path_for_version(tag_version)
|
125
|
-
|
126
|
-
tmp_dir =
|
125
|
+
FSPath.temp_dir 'ruby', sources_dir do |d|
|
126
|
+
tmp_dir = d / tag_version.dir_name
|
127
127
|
if yield(tmp_dir, tag_version)
|
128
128
|
tmp_dir.rename(sources_dir / tag_version.dir_name)
|
129
129
|
end
|
@@ -149,11 +149,11 @@ module Doc
|
|
149
149
|
FTP_HOST = 'ftp.ruby-lang.org'
|
150
150
|
SVN_TAGS_URL = 'http://svn.ruby-lang.org/repos/ruby/tags/'
|
151
151
|
SVN_TAG_LIST_COMMAND = "svn list --non-interactive #{SVN_TAGS_URL}"
|
152
|
-
SVN_TAG_REGEXP = /^(v\d+(?:_\d+){3})\/$/
|
152
|
+
SVN_TAG_REGEXP = /^(v\d+(?:_\d+){2,3})\/$/
|
153
153
|
GIT_BARE_URL = 'github.com/ruby/ruby'
|
154
154
|
GIT_URL = "git://#{GIT_BARE_URL}.git"
|
155
155
|
GIT_TAG_LIST_COMMAND = "git ls-remote -t #{GIT_URL}"
|
156
|
-
GIT_TAG_REGEXP = /^.*\t(refs\/tags\/v\d+(?:_\d+){3})$/
|
156
|
+
GIT_TAG_REGEXP = /^.*\t(refs\/tags\/v\d+(?:_\d+){2,3})$/
|
157
157
|
|
158
158
|
def download_version_via_ftp(version)
|
159
159
|
Net::FTP.open(FTP_HOST) do |ftp|
|
@@ -9,6 +9,10 @@ module Doc
|
|
9
9
|
@parts = str.scan(/\d+/).map(&:to_i)
|
10
10
|
end
|
11
11
|
|
12
|
+
def drop
|
13
|
+
self.class.new(parts.drop(1).join('.'))
|
14
|
+
end
|
15
|
+
|
12
16
|
def valid?
|
13
17
|
str =~ /^\d+\.\d+(?:\.\d+(?:-p\d+)?)?$/
|
14
18
|
end
|
@@ -18,7 +22,8 @@ module Doc
|
|
18
22
|
end
|
19
23
|
|
20
24
|
def dir_name
|
21
|
-
'ruby-%d.%d.%d-p%d'
|
25
|
+
fmt = 'ruby' + %w[-%d .%d .%d -p%d].take(parts.length).join('')
|
26
|
+
fmt % parts
|
22
27
|
end
|
23
28
|
|
24
29
|
include Comparable
|
data/lib/doc/merger.rb
CHANGED
metadata
CHANGED
@@ -1,105 +1,94 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: doc
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 4
|
9
|
-
- 1
|
10
|
-
version: 0.4.1
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.5.0
|
11
5
|
platform: ruby
|
12
|
-
authors:
|
6
|
+
authors:
|
13
7
|
- Ivan Kuchin
|
14
8
|
autorequire:
|
15
9
|
bindir: bin
|
16
10
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
- !ruby/object:Gem::Dependency
|
11
|
+
date: 2017-02-12 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
21
14
|
name: sdoc
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
- !ruby/object:Gem::Version
|
28
|
-
hash: 23
|
29
|
-
segments:
|
30
|
-
- 0
|
31
|
-
- 2
|
32
|
-
- 0
|
33
|
-
version: 0.2.0
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0.2'
|
34
20
|
type: :runtime
|
35
|
-
version_requirements: *id001
|
36
|
-
- !ruby/object:Gem::Dependency
|
37
|
-
name: fspath
|
38
21
|
prerelease: false
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0.2'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: fspath
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '3.0'
|
48
34
|
type: :runtime
|
49
|
-
version_requirements: *id002
|
50
|
-
- !ruby/object:Gem::Dependency
|
51
|
-
name: progress
|
52
35
|
prerelease: false
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '3.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: progress
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '3.0'
|
63
48
|
type: :runtime
|
64
|
-
version_requirements: *id003
|
65
|
-
- !ruby/object:Gem::Dependency
|
66
|
-
name: net-ftp-list
|
67
49
|
prerelease: false
|
68
|
-
|
69
|
-
|
70
|
-
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '3.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: net-ftp-list
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
71
59
|
- - ">="
|
72
|
-
- !ruby/object:Gem::Version
|
73
|
-
|
74
|
-
segments:
|
75
|
-
- 0
|
76
|
-
version: "0"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
77
62
|
type: :runtime
|
78
|
-
version_requirements: *id004
|
79
|
-
- !ruby/object:Gem::Dependency
|
80
|
-
name: rake
|
81
63
|
prerelease: false
|
82
|
-
|
83
|
-
|
84
|
-
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rake
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
85
73
|
- - ">="
|
86
|
-
- !ruby/object:Gem::Version
|
87
|
-
|
88
|
-
segments:
|
89
|
-
- 0
|
90
|
-
version: "0"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
91
76
|
type: :runtime
|
92
|
-
|
93
|
-
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
description: Generate `Rakefile` with `docr` and get searchable documentation for
|
84
|
+
ruby, rails, gems, plugins and all other ruby code in one place
|
94
85
|
email:
|
95
|
-
executables:
|
86
|
+
executables:
|
96
87
|
- docr
|
97
88
|
extensions: []
|
98
|
-
|
99
89
|
extra_rdoc_files: []
|
100
|
-
|
101
|
-
|
102
|
-
- .gitignore
|
90
|
+
files:
|
91
|
+
- ".gitignore"
|
103
92
|
- LICENSE.txt
|
104
93
|
- README.markdown
|
105
94
|
- TODO
|
@@ -128,38 +117,27 @@ files:
|
|
128
117
|
- lib/doc/tasks.rb
|
129
118
|
- vendor/stdlib-config.yaml
|
130
119
|
homepage: http://github.com/toy/doc
|
131
|
-
licenses:
|
120
|
+
licenses:
|
132
121
|
- MIT
|
122
|
+
metadata: {}
|
133
123
|
post_install_message:
|
134
124
|
rdoc_options: []
|
135
|
-
|
136
|
-
require_paths:
|
125
|
+
require_paths:
|
137
126
|
- lib
|
138
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
139
|
-
|
140
|
-
requirements:
|
127
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
141
129
|
- - ">="
|
142
|
-
- !ruby/object:Gem::Version
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
version: "0"
|
147
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
148
|
-
none: false
|
149
|
-
requirements:
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
132
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
133
|
+
requirements:
|
150
134
|
- - ">="
|
151
|
-
- !ruby/object:Gem::Version
|
152
|
-
|
153
|
-
segments:
|
154
|
-
- 0
|
155
|
-
version: "0"
|
135
|
+
- !ruby/object:Gem::Version
|
136
|
+
version: '0'
|
156
137
|
requirements: []
|
157
|
-
|
158
138
|
rubyforge_project: doc
|
159
|
-
rubygems_version:
|
139
|
+
rubygems_version: 2.6.10
|
160
140
|
signing_key:
|
161
|
-
specification_version:
|
141
|
+
specification_version: 4
|
162
142
|
summary: Get all ruby documentation in one place
|
163
143
|
test_files: []
|
164
|
-
|
165
|
-
has_rdoc:
|