rdoc 2.4.3 → 2.5
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of rdoc might be problematic. Click here for more details.
- data.tar.gz.sig +0 -0
- data/.autotest +3 -1
- data/History.txt +68 -0
- data/LICENSE.txt +57 -0
- data/Manifest.txt +37 -19
- data/README.txt +2 -12
- data/Rakefile +12 -12
- data/bin/rdoc +4 -4
- data/lib/rdoc.rb +32 -9
- data/lib/rdoc/alias.rb +2 -2
- data/lib/rdoc/any_method.rb +108 -16
- data/lib/rdoc/attr.rb +87 -1
- data/lib/rdoc/class_module.rb +131 -5
- data/lib/rdoc/code_object.rb +28 -5
- data/lib/rdoc/constant.rb +22 -0
- data/lib/rdoc/context.rb +80 -37
- data/lib/rdoc/gauntlet.rb +48 -0
- data/lib/rdoc/generator/darkfish.rb +25 -23
- data/lib/rdoc/generator/markup.rb +6 -29
- data/lib/rdoc/generator/ri.rb +39 -189
- data/lib/rdoc/generator/template/darkfish/classpage.rhtml +17 -1
- data/lib/rdoc/generator/template/darkfish/filepage.rhtml +10 -0
- data/lib/rdoc/generator/template/darkfish/images/brick.png +0 -0
- data/lib/rdoc/generator/template/darkfish/images/brick_link.png +0 -0
- data/lib/rdoc/generator/template/darkfish/images/bullet_black.png +0 -0
- data/lib/rdoc/generator/template/darkfish/images/bullet_toggle_minus.png +0 -0
- data/lib/rdoc/generator/template/darkfish/images/bullet_toggle_plus.png +0 -0
- data/lib/rdoc/generator/template/darkfish/images/date.png +0 -0
- data/lib/rdoc/generator/template/darkfish/images/find.png +0 -0
- data/lib/rdoc/generator/template/darkfish/images/package.png +0 -0
- data/lib/rdoc/generator/template/darkfish/images/page_green.png +0 -0
- data/lib/rdoc/generator/template/darkfish/images/page_white_text.png +0 -0
- data/lib/rdoc/generator/template/darkfish/images/page_white_width.png +0 -0
- data/lib/rdoc/generator/template/darkfish/images/plugin.png +0 -0
- data/lib/rdoc/generator/template/darkfish/images/ruby.png +0 -0
- data/lib/rdoc/generator/template/darkfish/images/tag_green.png +0 -0
- data/lib/rdoc/generator/template/darkfish/images/wrench.png +0 -0
- data/lib/rdoc/generator/template/darkfish/images/wrench_orange.png +0 -0
- data/lib/rdoc/generator/template/darkfish/images/zoom.png +0 -0
- data/lib/rdoc/generator/template/darkfish/index.rhtml +2 -2
- data/lib/rdoc/generator/template/darkfish/rdoc.css +38 -33
- data/lib/rdoc/include.rb +22 -0
- data/lib/rdoc/markup.rb +10 -262
- data/lib/rdoc/markup/attribute_manager.rb +57 -50
- data/lib/rdoc/markup/blank_line.rb +19 -0
- data/lib/rdoc/markup/document.rb +72 -0
- data/lib/rdoc/markup/formatter.rb +118 -0
- data/lib/rdoc/markup/formatter_test_case.rb +341 -0
- data/lib/rdoc/markup/heading.rb +17 -0
- data/lib/rdoc/markup/inline.rb +6 -5
- data/lib/rdoc/markup/list.rb +78 -0
- data/lib/rdoc/markup/list_item.rb +83 -0
- data/lib/rdoc/markup/paragraph.rb +66 -0
- data/lib/rdoc/markup/parser.rb +528 -0
- data/lib/rdoc/markup/rule.rb +17 -0
- data/lib/rdoc/markup/to_ansi.rb +72 -0
- data/lib/rdoc/markup/to_bs.rb +74 -0
- data/lib/rdoc/markup/to_html.rb +106 -172
- data/lib/rdoc/markup/to_html_crossref.rb +10 -4
- data/lib/rdoc/markup/to_rdoc.rb +243 -0
- data/lib/rdoc/markup/to_test.rb +27 -16
- data/lib/rdoc/markup/verbatim.rb +42 -0
- data/lib/rdoc/normal_class.rb +38 -1
- data/lib/rdoc/normal_module.rb +38 -8
- data/lib/rdoc/options.rb +39 -151
- data/lib/rdoc/parser.rb +36 -18
- data/lib/rdoc/parser/c.rb +102 -109
- data/lib/rdoc/parser/ruby.rb +359 -1662
- data/lib/rdoc/parser/ruby_tools.rb +157 -0
- data/lib/rdoc/parser/simple.rb +0 -2
- data/lib/rdoc/rdoc.rb +142 -82
- data/lib/rdoc/ri.rb +10 -0
- data/lib/rdoc/ri/driver.rb +674 -444
- data/lib/rdoc/ri/formatter.rb +2 -651
- data/lib/rdoc/ri/paths.rb +70 -45
- data/lib/rdoc/ri/store.rb +248 -0
- data/lib/rdoc/ruby_lex.rb +1284 -0
- data/lib/rdoc/ruby_token.rb +416 -0
- data/lib/rdoc/single_class.rb +5 -0
- data/lib/rdoc/stats.rb +152 -83
- data/lib/rdoc/task.rb +27 -49
- data/lib/rdoc/text.rb +130 -0
- data/lib/rdoc/tokenstream.rb +28 -9
- data/lib/rdoc/top_level.rb +49 -43
- data/test/hidden.zip.txt +1 -0
- data/test/test_attribute_manager.rb +9 -16
- data/test/test_rdoc_any_method.rb +23 -0
- data/test/test_rdoc_attr.rb +40 -0
- data/test/test_rdoc_class_module.rb +100 -0
- data/test/test_rdoc_code_object.rb +18 -2
- data/test/test_rdoc_context.rb +41 -0
- data/test/test_rdoc_generator_ri.rb +56 -0
- data/test/test_rdoc_markup.rb +21 -610
- data/test/test_rdoc_markup_attribute_manager.rb +14 -17
- data/test/test_rdoc_markup_document.rb +51 -0
- data/test/test_rdoc_markup_paragraph.rb +27 -0
- data/test/test_rdoc_markup_parser.rb +1327 -0
- data/test/test_rdoc_markup_to_ansi.rb +426 -0
- data/test/test_rdoc_markup_to_bs.rb +443 -0
- data/test/test_rdoc_markup_to_html.rb +183 -18
- data/test/test_rdoc_markup_to_html_crossref.rb +1 -3
- data/test/test_rdoc_markup_to_rdoc.rb +426 -0
- data/test/test_rdoc_normal_class.rb +17 -0
- data/test/test_rdoc_normal_module.rb +6 -6
- data/test/test_rdoc_options.rb +41 -0
- data/test/test_rdoc_parser.rb +66 -13
- data/test/test_rdoc_parser_c.rb +93 -38
- data/test/test_rdoc_parser_perl.rb +2 -3
- data/test/test_rdoc_parser_ruby.rb +291 -28
- data/test/test_rdoc_parser_simple.rb +48 -0
- data/test/test_rdoc_rdoc.rb +66 -0
- data/test/test_rdoc_ri_driver.rb +752 -38
- data/test/test_rdoc_ri_paths.rb +39 -0
- data/test/test_rdoc_ri_store.rb +309 -0
- data/test/test_rdoc_text.rb +157 -0
- data/test/test_rdoc_top_level.rb +35 -9
- data/test/xref_data.rb +9 -1
- data/test/xref_test_case.rb +8 -3
- metadata +110 -38
- metadata.gz.sig +0 -0
- data/lib/rdoc/cache.rb +0 -41
- data/lib/rdoc/diagram.rb +0 -340
- data/lib/rdoc/dot.rb +0 -249
- data/lib/rdoc/markup/fragments.rb +0 -377
- data/lib/rdoc/markup/lines.rb +0 -156
- data/lib/rdoc/markup/to_flow.rb +0 -211
- data/lib/rdoc/markup/to_latex.rb +0 -328
- data/lib/rdoc/markup/to_texinfo.rb +0 -73
- data/lib/rdoc/ri/cache.rb +0 -187
- data/lib/rdoc/ri/descriptions.rb +0 -156
- data/lib/rdoc/ri/display.rb +0 -340
- data/lib/rdoc/ri/reader.rb +0 -106
- data/lib/rdoc/ri/util.rb +0 -79
- data/lib/rdoc/ri/writer.rb +0 -68
- data/test/test_rdoc_ri_attribute_formatter.rb +0 -44
- data/test/test_rdoc_ri_default_display.rb +0 -302
- data/test/test_rdoc_ri_formatter.rb +0 -320
- data/test/test_rdoc_ri_html_formatter.rb +0 -141
- data/test/test_rdoc_ri_overstrike_formatter.rb +0 -71
data/lib/rdoc/ri/reader.rb
DELETED
@@ -1,106 +0,0 @@
|
|
1
|
-
require 'rdoc/ri'
|
2
|
-
require 'rdoc/ri/descriptions'
|
3
|
-
require 'rdoc/ri/writer'
|
4
|
-
require 'rdoc/markup/to_flow'
|
5
|
-
|
6
|
-
class RDoc::RI::Reader
|
7
|
-
|
8
|
-
def initialize(ri_cache)
|
9
|
-
@cache = ri_cache
|
10
|
-
end
|
11
|
-
|
12
|
-
def top_level_namespace
|
13
|
-
[ @cache.toplevel ]
|
14
|
-
end
|
15
|
-
|
16
|
-
def lookup_namespace_in(target, namespaces)
|
17
|
-
result = []
|
18
|
-
for n in namespaces
|
19
|
-
result.concat(n.contained_modules_matching(target))
|
20
|
-
end
|
21
|
-
result
|
22
|
-
end
|
23
|
-
|
24
|
-
def find_class_by_name(full_name)
|
25
|
-
names = full_name.split(/::/)
|
26
|
-
ns = @cache.toplevel
|
27
|
-
for name in names
|
28
|
-
ns = ns.contained_class_named(name)
|
29
|
-
return nil if ns.nil?
|
30
|
-
end
|
31
|
-
get_class(ns)
|
32
|
-
end
|
33
|
-
|
34
|
-
def find_methods(name, is_class_method, namespaces)
|
35
|
-
result = []
|
36
|
-
namespaces.each do |ns|
|
37
|
-
result.concat ns.methods_matching(name, is_class_method)
|
38
|
-
end
|
39
|
-
result
|
40
|
-
end
|
41
|
-
|
42
|
-
##
|
43
|
-
# Return the MethodDescription for a given MethodEntry by deserializing the
|
44
|
-
# YAML
|
45
|
-
|
46
|
-
def get_method(method_entry)
|
47
|
-
path = method_entry.path_name
|
48
|
-
File.open(path) { |f| RDoc::RI::Description.deserialize(f) }
|
49
|
-
end
|
50
|
-
|
51
|
-
##
|
52
|
-
# Return a class description
|
53
|
-
|
54
|
-
def get_class(class_entry)
|
55
|
-
result = nil
|
56
|
-
for path in class_entry.path_names
|
57
|
-
path = RDoc::RI::Writer.class_desc_path(path, class_entry)
|
58
|
-
desc = File.open(path) {|f| RDoc::RI::Description.deserialize(f) }
|
59
|
-
if result
|
60
|
-
result.merge_in(desc)
|
61
|
-
else
|
62
|
-
result = desc
|
63
|
-
end
|
64
|
-
end
|
65
|
-
result
|
66
|
-
end
|
67
|
-
|
68
|
-
##
|
69
|
-
# Return the names of all classes and modules
|
70
|
-
|
71
|
-
def full_class_names
|
72
|
-
res = []
|
73
|
-
find_classes_in(res, @cache.toplevel)
|
74
|
-
end
|
75
|
-
|
76
|
-
##
|
77
|
-
# Return a list of all classes, modules, and methods
|
78
|
-
|
79
|
-
def all_names
|
80
|
-
res = []
|
81
|
-
find_names_in(res, @cache.toplevel)
|
82
|
-
end
|
83
|
-
|
84
|
-
private
|
85
|
-
|
86
|
-
def find_classes_in(res, klass)
|
87
|
-
classes = klass.classes_and_modules
|
88
|
-
for c in classes
|
89
|
-
res << c.full_name
|
90
|
-
find_classes_in(res, c)
|
91
|
-
end
|
92
|
-
res
|
93
|
-
end
|
94
|
-
|
95
|
-
def find_names_in(res, klass)
|
96
|
-
classes = klass.classes_and_modules
|
97
|
-
for c in classes
|
98
|
-
res << c.full_name
|
99
|
-
res.concat c.all_method_names
|
100
|
-
find_names_in(res, c)
|
101
|
-
end
|
102
|
-
res
|
103
|
-
end
|
104
|
-
|
105
|
-
end
|
106
|
-
|
data/lib/rdoc/ri/util.rb
DELETED
@@ -1,79 +0,0 @@
|
|
1
|
-
require 'rdoc/ri'
|
2
|
-
|
3
|
-
##
|
4
|
-
# Break argument into its constituent class or module names, an
|
5
|
-
# optional method type, and a method name
|
6
|
-
|
7
|
-
class RDoc::RI::NameDescriptor
|
8
|
-
|
9
|
-
attr_reader :class_names
|
10
|
-
attr_reader :method_name
|
11
|
-
|
12
|
-
##
|
13
|
-
# true and false have the obvious meaning. nil means we don't care
|
14
|
-
|
15
|
-
attr_reader :is_class_method
|
16
|
-
|
17
|
-
##
|
18
|
-
# +arg+ may be
|
19
|
-
#
|
20
|
-
# 1. A class or module name (optionally qualified with other class or module
|
21
|
-
# names (Kernel, File::Stat etc)
|
22
|
-
# 2. A method name
|
23
|
-
# 3. A method name qualified by a optionally fully qualified class or module
|
24
|
-
# name
|
25
|
-
#
|
26
|
-
# We're fairly casual about delimiters: folks can say Kernel::puts,
|
27
|
-
# Kernel.puts, or Kernel\#puts for example. There's one exception: if you
|
28
|
-
# say IO::read, we look for a class method, but if you say IO.read, we look
|
29
|
-
# for an instance method
|
30
|
-
|
31
|
-
def initialize(arg)
|
32
|
-
@class_names = []
|
33
|
-
separator = nil
|
34
|
-
|
35
|
-
tokens = arg.split(/(\.|::|#)/)
|
36
|
-
|
37
|
-
# Skip leading '::', '#' or '.', but remember it might
|
38
|
-
# be a method name qualifier
|
39
|
-
separator = tokens.shift if tokens[0] =~ /^(\.|::|#)/
|
40
|
-
|
41
|
-
# Skip leading '::', but remember we potentially have an inst
|
42
|
-
|
43
|
-
# leading stuff must be class names
|
44
|
-
|
45
|
-
while tokens[0] =~ /^[A-Z]/
|
46
|
-
@class_names << tokens.shift
|
47
|
-
unless tokens.empty?
|
48
|
-
separator = tokens.shift
|
49
|
-
break unless separator == "::"
|
50
|
-
end
|
51
|
-
end
|
52
|
-
|
53
|
-
# Now must have a single token, the method name, or an empty array
|
54
|
-
unless tokens.empty?
|
55
|
-
@method_name = tokens.shift
|
56
|
-
# We may now have a trailing !, ?, or = to roll into
|
57
|
-
# the method name
|
58
|
-
if !tokens.empty? && tokens[0] =~ /^[!?=]$/
|
59
|
-
@method_name << tokens.shift
|
60
|
-
end
|
61
|
-
|
62
|
-
if @method_name =~ /::|\.|#/ or !tokens.empty?
|
63
|
-
raise RDoc::RI::Error.new("Bad argument: #{arg}")
|
64
|
-
end
|
65
|
-
if separator && separator != '.'
|
66
|
-
@is_class_method = separator == "::"
|
67
|
-
end
|
68
|
-
end
|
69
|
-
end
|
70
|
-
|
71
|
-
# Return the full class name (with '::' between the components) or "" if
|
72
|
-
# there's no class name
|
73
|
-
|
74
|
-
def full_class_name
|
75
|
-
@class_names.join("::")
|
76
|
-
end
|
77
|
-
|
78
|
-
end
|
79
|
-
|
data/lib/rdoc/ri/writer.rb
DELETED
@@ -1,68 +0,0 @@
|
|
1
|
-
require 'fileutils'
|
2
|
-
require 'rdoc/ri'
|
3
|
-
|
4
|
-
class RDoc::RI::Writer
|
5
|
-
|
6
|
-
def self.class_desc_path(dir, class_desc)
|
7
|
-
File.join(dir, "cdesc-" + class_desc.name + ".yaml")
|
8
|
-
end
|
9
|
-
|
10
|
-
##
|
11
|
-
# Convert a name from internal form (containing punctuation) to an external
|
12
|
-
# form (where punctuation is replaced by %xx)
|
13
|
-
|
14
|
-
def self.internal_to_external(name)
|
15
|
-
if ''.respond_to? :ord then
|
16
|
-
name.gsub(/\W/) { "%%%02x" % $&[0].ord }
|
17
|
-
else
|
18
|
-
name.gsub(/\W/) { "%%%02x" % $&[0] }
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
##
|
23
|
-
# And the reverse operation
|
24
|
-
|
25
|
-
def self.external_to_internal(name)
|
26
|
-
name.gsub(/%([0-9a-f]{2,2})/) { $1.to_i(16).chr }
|
27
|
-
end
|
28
|
-
|
29
|
-
def initialize(base_dir)
|
30
|
-
@base_dir = base_dir
|
31
|
-
end
|
32
|
-
|
33
|
-
def remove_class(class_desc)
|
34
|
-
FileUtils.rm_rf(path_to_dir(class_desc.full_name))
|
35
|
-
end
|
36
|
-
|
37
|
-
def add_class(class_desc)
|
38
|
-
dir = path_to_dir(class_desc.full_name)
|
39
|
-
FileUtils.mkdir_p(dir)
|
40
|
-
class_file_name = self.class.class_desc_path(dir, class_desc)
|
41
|
-
File.open(class_file_name, "w") do |f|
|
42
|
-
f.write(class_desc.serialize)
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
def add_method(class_desc, method_desc)
|
47
|
-
dir = path_to_dir(class_desc.full_name)
|
48
|
-
file_name = self.class.internal_to_external(method_desc.name)
|
49
|
-
meth_file_name = File.join(dir, file_name)
|
50
|
-
if method_desc.is_singleton
|
51
|
-
meth_file_name += "-c.yaml"
|
52
|
-
else
|
53
|
-
meth_file_name += "-i.yaml"
|
54
|
-
end
|
55
|
-
|
56
|
-
File.open(meth_file_name, "w") do |f|
|
57
|
-
f.write(method_desc.serialize)
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
private
|
62
|
-
|
63
|
-
def path_to_dir(class_name)
|
64
|
-
File.join(@base_dir, *class_name.split('::'))
|
65
|
-
end
|
66
|
-
|
67
|
-
end
|
68
|
-
|
@@ -1,44 +0,0 @@
|
|
1
|
-
require 'stringio'
|
2
|
-
require 'rubygems'
|
3
|
-
require 'minitest/unit'
|
4
|
-
require 'rdoc/ri/formatter'
|
5
|
-
|
6
|
-
class TestRDocRIAttributeFormatter < MiniTest::Unit::TestCase
|
7
|
-
|
8
|
-
def setup
|
9
|
-
@output = StringIO.new
|
10
|
-
@width = 78
|
11
|
-
@indent = ' '
|
12
|
-
|
13
|
-
@f = RDoc::RI::AttributeFormatter.new @output, @width, @indent
|
14
|
-
end
|
15
|
-
|
16
|
-
def test_wrap_empty
|
17
|
-
@f.wrap ''
|
18
|
-
assert_equal '', @output.string
|
19
|
-
end
|
20
|
-
|
21
|
-
def test_wrap_long
|
22
|
-
@f.wrap 'a ' * (@width / 2)
|
23
|
-
assert_equal " a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a \n a \n",
|
24
|
-
@output.string
|
25
|
-
end
|
26
|
-
|
27
|
-
def test_wrap_markup
|
28
|
-
@f.wrap 'a <tt>b</tt> c'
|
29
|
-
assert_equal " a b c\n", @output.string
|
30
|
-
end
|
31
|
-
|
32
|
-
def test_wrap_nil
|
33
|
-
@f.wrap nil
|
34
|
-
assert_equal '', @output.string
|
35
|
-
end
|
36
|
-
|
37
|
-
def test_wrap_short
|
38
|
-
@f.wrap 'a b c'
|
39
|
-
assert_equal " a b c\n", @output.string
|
40
|
-
end
|
41
|
-
|
42
|
-
end
|
43
|
-
|
44
|
-
MiniTest::Unit.autorun
|
@@ -1,302 +0,0 @@
|
|
1
|
-
require 'stringio'
|
2
|
-
require 'rubygems'
|
3
|
-
require 'minitest/unit'
|
4
|
-
require 'rdoc/ri/formatter'
|
5
|
-
require 'rdoc/ri/display'
|
6
|
-
require 'rdoc/ri/driver'
|
7
|
-
|
8
|
-
class TestRDocRiDefaultDisplay < MiniTest::Unit::TestCase
|
9
|
-
|
10
|
-
def setup
|
11
|
-
@output = StringIO.new
|
12
|
-
@width = 78
|
13
|
-
@indent = ' '
|
14
|
-
|
15
|
-
@dd = RDoc::RI::DefaultDisplay.new RDoc::RI::Formatter, @width, true,
|
16
|
-
@output
|
17
|
-
|
18
|
-
@some_method = h \
|
19
|
-
'aliases' => [{'name' => 'some_method_alias'}],
|
20
|
-
'block_params' => 'block_param',
|
21
|
-
'comment' => [RDoc::Markup::Flow::P.new('some comment')],
|
22
|
-
'full_name' => 'SomeClass#some_method',
|
23
|
-
'is_singleton' => false,
|
24
|
-
'name' => 'some_method',
|
25
|
-
'params' => '(arg1, arg2) {|block_param| ...}',
|
26
|
-
'source_path' => '/nonexistent',
|
27
|
-
'visibility' => 'public'
|
28
|
-
end
|
29
|
-
|
30
|
-
def test_display_class_info
|
31
|
-
klass = h \
|
32
|
-
'attributes' => [
|
33
|
-
{ 'name' => 'attribute', 'rw' => 'RW',
|
34
|
-
'comment' => [RDoc::Markup::Flow::P.new('attribute comment')] },
|
35
|
-
{ 'name' => 'attribute_no_comment', 'rw' => 'RW',
|
36
|
-
'comment' => nil },
|
37
|
-
],
|
38
|
-
'class_methods' => [
|
39
|
-
{ 'name' => 'class_method' },
|
40
|
-
],
|
41
|
-
'class_method_extensions' => [
|
42
|
-
{ 'name' => 'class_method_extension' },
|
43
|
-
],
|
44
|
-
'comment' => [RDoc::Markup::Flow::P.new('SomeClass comment')],
|
45
|
-
'constants' => [
|
46
|
-
{ 'name' => 'CONSTANT', 'value' => '"value1"',
|
47
|
-
'comment' => [RDoc::Markup::Flow::P.new('CONSTANT value')] },
|
48
|
-
{ 'name' => 'CONSTANT_NOCOMMENT', 'value' => '"value2"',
|
49
|
-
'comment' => nil },
|
50
|
-
],
|
51
|
-
'display_name' => 'Class',
|
52
|
-
'full_name' => 'SomeClass',
|
53
|
-
'includes' => [],
|
54
|
-
'instance_methods' => [
|
55
|
-
{ 'name' => 'instance_method' },
|
56
|
-
{ 'name' => 'instance_method2' },
|
57
|
-
],
|
58
|
-
'instance_method_extensions' => [
|
59
|
-
{ 'name' => 'instance_method_extension' },
|
60
|
-
],
|
61
|
-
'superclass' => 'Object'
|
62
|
-
|
63
|
-
@dd.display_class_info klass
|
64
|
-
|
65
|
-
expected = <<-EOF
|
66
|
-
---------------------------------------------------- Class: SomeClass < Object
|
67
|
-
SomeClass comment
|
68
|
-
|
69
|
-
------------------------------------------------------------------------------
|
70
|
-
|
71
|
-
|
72
|
-
Constants:
|
73
|
-
----------
|
74
|
-
|
75
|
-
CONSTANT = "value1"
|
76
|
-
CONSTANT value
|
77
|
-
|
78
|
-
CONSTANT_NOCOMMENT = "value2"
|
79
|
-
|
80
|
-
|
81
|
-
Attributes:
|
82
|
-
-----------
|
83
|
-
|
84
|
-
attribute (RW):
|
85
|
-
attribute comment
|
86
|
-
|
87
|
-
attribute_no_comment (RW)
|
88
|
-
|
89
|
-
|
90
|
-
Class methods:
|
91
|
-
--------------
|
92
|
-
|
93
|
-
class_method
|
94
|
-
|
95
|
-
|
96
|
-
Class method extensions:
|
97
|
-
------------------------
|
98
|
-
|
99
|
-
class_method_extension
|
100
|
-
|
101
|
-
|
102
|
-
Instance methods:
|
103
|
-
-----------------
|
104
|
-
|
105
|
-
instance_method, instance_method2
|
106
|
-
|
107
|
-
|
108
|
-
Instance method extensions:
|
109
|
-
---------------------------
|
110
|
-
|
111
|
-
instance_method_extension
|
112
|
-
EOF
|
113
|
-
|
114
|
-
assert_equal expected, @output.string
|
115
|
-
end
|
116
|
-
|
117
|
-
def test_display_flow
|
118
|
-
flow = [RDoc::Markup::Flow::P.new('flow')]
|
119
|
-
|
120
|
-
@dd.display_flow flow
|
121
|
-
|
122
|
-
assert_equal " flow\n\n", @output.string
|
123
|
-
end
|
124
|
-
|
125
|
-
def test_display_flow_empty
|
126
|
-
@dd.display_flow []
|
127
|
-
|
128
|
-
assert_equal " [no description]\n", @output.string
|
129
|
-
end
|
130
|
-
|
131
|
-
def test_display_flow_nil
|
132
|
-
@dd.display_flow nil
|
133
|
-
|
134
|
-
assert_equal " [no description]\n", @output.string
|
135
|
-
end
|
136
|
-
|
137
|
-
def test_display_method_info
|
138
|
-
@dd.display_method_info @some_method
|
139
|
-
|
140
|
-
expected = <<-EOF
|
141
|
-
-------------------------------------------------------- SomeClass#some_method
|
142
|
-
some_method(arg1, arg2) {|block_param| ...}
|
143
|
-
|
144
|
-
From /nonexistent
|
145
|
-
------------------------------------------------------------------------------
|
146
|
-
some comment
|
147
|
-
|
148
|
-
|
149
|
-
(also known as some_method_alias)
|
150
|
-
EOF
|
151
|
-
|
152
|
-
assert_equal expected, @output.string
|
153
|
-
end
|
154
|
-
|
155
|
-
def test_display_method_info_singleton
|
156
|
-
method = RDoc::RI::Driver::OpenStructHash.new.update \
|
157
|
-
'aliases' => [],
|
158
|
-
'block_params' => nil,
|
159
|
-
'comment' => nil,
|
160
|
-
'full_name' => 'SomeClass::some_method',
|
161
|
-
'is_singleton' => true,
|
162
|
-
'name' => 'some_method',
|
163
|
-
'params' => '(arg1, arg2)',
|
164
|
-
'visibility' => 'public'
|
165
|
-
|
166
|
-
@dd.display_method_info method
|
167
|
-
|
168
|
-
expected = <<-EOF
|
169
|
-
------------------------------------------------------- SomeClass::some_method
|
170
|
-
SomeClass::some_method(arg1, arg2)
|
171
|
-
|
172
|
-
From
|
173
|
-
------------------------------------------------------------------------------
|
174
|
-
[no description]
|
175
|
-
EOF
|
176
|
-
|
177
|
-
assert_equal expected, @output.string
|
178
|
-
end
|
179
|
-
|
180
|
-
def test_display_method_list
|
181
|
-
methods = [
|
182
|
-
RDoc::RI::Driver::OpenStructHash.new.update(
|
183
|
-
"aliases" => [],
|
184
|
-
"block_params" => nil,
|
185
|
-
"comment" => nil,
|
186
|
-
"full_name" => "SomeClass#some_method",
|
187
|
-
"is_singleton" => false,
|
188
|
-
"name" => "some_method",
|
189
|
-
"params" => "()",
|
190
|
-
"visibility" => "public"
|
191
|
-
),
|
192
|
-
RDoc::RI::Driver::OpenStructHash.new.update(
|
193
|
-
"aliases" => [],
|
194
|
-
"block_params" => nil,
|
195
|
-
"comment" => nil,
|
196
|
-
"full_name" => "SomeClass#some_other_method",
|
197
|
-
"is_singleton" => false,
|
198
|
-
"name" => "some_other_method",
|
199
|
-
"params" => "()",
|
200
|
-
"visibility" => "public"
|
201
|
-
),
|
202
|
-
]
|
203
|
-
|
204
|
-
@dd.display_method_list methods
|
205
|
-
|
206
|
-
expected = <<-EOF
|
207
|
-
More than one method matched your request. You can refine your search by
|
208
|
-
asking for information on one of:
|
209
|
-
|
210
|
-
SomeClass#some_method []
|
211
|
-
SomeClass#some_other_method []
|
212
|
-
EOF
|
213
|
-
|
214
|
-
assert_equal expected, @output.string
|
215
|
-
end
|
216
|
-
|
217
|
-
def test_display_params
|
218
|
-
@dd.display_params @some_method
|
219
|
-
|
220
|
-
expected = <<-EOF
|
221
|
-
some_method(arg1, arg2) {|block_param| ...}
|
222
|
-
|
223
|
-
From /nonexistent
|
224
|
-
EOF
|
225
|
-
|
226
|
-
assert_equal expected, @output.string
|
227
|
-
end
|
228
|
-
|
229
|
-
def test_display_params_multiple
|
230
|
-
@some_method['params'] = <<-EOF
|
231
|
-
some_method(index)
|
232
|
-
some_method(start, length)
|
233
|
-
EOF
|
234
|
-
|
235
|
-
@dd.display_params @some_method
|
236
|
-
|
237
|
-
expected = <<-EOF
|
238
|
-
some_method(index)
|
239
|
-
some_method(start, length)
|
240
|
-
|
241
|
-
From /nonexistent
|
242
|
-
EOF
|
243
|
-
|
244
|
-
assert_equal expected, @output.string
|
245
|
-
end
|
246
|
-
|
247
|
-
def test_display_params_singleton
|
248
|
-
@some_method['is_singleton'] = true
|
249
|
-
@some_method['full_name'] = 'SomeClass::some_method'
|
250
|
-
|
251
|
-
@dd.display_params @some_method
|
252
|
-
|
253
|
-
expected = <<-EOF
|
254
|
-
SomeClass::some_method(arg1, arg2) {|block_param| ...}
|
255
|
-
|
256
|
-
From /nonexistent
|
257
|
-
EOF
|
258
|
-
|
259
|
-
assert_equal expected, @output.string
|
260
|
-
end
|
261
|
-
|
262
|
-
def test_list_known_classes
|
263
|
-
klasses = %w[SomeClass SomeModule]
|
264
|
-
|
265
|
-
@dd.list_known_classes klasses
|
266
|
-
|
267
|
-
expected = <<-EOF
|
268
|
-
---------------------------------------------------- Known classes and modules
|
269
|
-
|
270
|
-
SomeClass
|
271
|
-
SomeModule
|
272
|
-
EOF
|
273
|
-
|
274
|
-
assert_equal expected, @output.string
|
275
|
-
end
|
276
|
-
|
277
|
-
def test_list_known_classes_empty
|
278
|
-
@dd.list_known_classes []
|
279
|
-
|
280
|
-
expected = <<-EOF
|
281
|
-
No ri data found
|
282
|
-
|
283
|
-
If you've installed Ruby yourself, you need to generate documentation using:
|
284
|
-
|
285
|
-
make install-doc
|
286
|
-
|
287
|
-
from the same place you ran `make` to build ruby.
|
288
|
-
|
289
|
-
If you installed Ruby from a packaging system, then you may need to
|
290
|
-
install an additional package, or ask the packager to enable ri generation.
|
291
|
-
EOF
|
292
|
-
|
293
|
-
assert_equal expected, @output.string
|
294
|
-
end
|
295
|
-
|
296
|
-
def h(hash)
|
297
|
-
RDoc::RI::Driver::OpenStructHash.convert hash
|
298
|
-
end
|
299
|
-
|
300
|
-
end
|
301
|
-
|
302
|
-
MiniTest::Unit.autorun
|