rdoc 7.2.0 → 8.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 +4 -4
- data/CONTRIBUTING.md +4 -7
- data/LICENSE.rdoc +4 -0
- data/README.md +43 -2
- data/RI.md +75 -75
- data/doc/markup_reference/markdown.md +104 -3
- data/exe/rdoc +2 -2
- data/lib/rdoc/code_object/alias.rb +70 -74
- data/lib/rdoc/code_object/any_method.rb +305 -298
- data/lib/rdoc/code_object/attr.rb +150 -143
- data/lib/rdoc/code_object/class_module.rb +801 -765
- data/lib/rdoc/code_object/constant.rb +178 -150
- data/lib/rdoc/code_object/context/section.rb +133 -160
- data/lib/rdoc/code_object/context.rb +925 -952
- data/lib/rdoc/code_object/extend.rb +7 -5
- data/lib/rdoc/code_object/include.rb +7 -5
- data/lib/rdoc/code_object/method_attr.rb +325 -324
- data/lib/rdoc/code_object/mixin.rb +97 -95
- data/lib/rdoc/code_object/normal_class.rb +77 -78
- data/lib/rdoc/code_object/normal_module.rb +61 -59
- data/lib/rdoc/code_object/require.rb +23 -39
- data/lib/rdoc/code_object/single_class.rb +21 -19
- data/lib/rdoc/code_object/top_level.rb +212 -213
- data/lib/rdoc/code_object.rb +305 -305
- data/lib/rdoc/comment.rb +274 -337
- data/lib/rdoc/cross_reference.rb +194 -212
- data/lib/rdoc/encoding.rb +105 -103
- data/lib/rdoc/erb_partial.rb +13 -11
- data/lib/rdoc/erbio.rb +29 -27
- data/lib/rdoc/generator/aliki.rb +165 -140
- data/lib/rdoc/generator/darkfish.rb +647 -631
- data/lib/rdoc/generator/json_index.rb +233 -229
- data/lib/rdoc/generator/markup.rb +165 -122
- data/lib/rdoc/generator/pot/message_extractor.rb +57 -51
- data/lib/rdoc/generator/pot/po.rb +52 -51
- data/lib/rdoc/generator/pot/po_entry.rb +138 -132
- data/lib/rdoc/generator/pot.rb +85 -81
- data/lib/rdoc/generator/ri.rb +23 -19
- data/lib/rdoc/generator/template/aliki/DESIGN.md +538 -0
- data/lib/rdoc/generator/template/aliki/_aside_toc.rhtml +1 -1
- data/lib/rdoc/generator/template/aliki/_footer.rhtml +1 -1
- data/lib/rdoc/generator/template/aliki/_head.rhtml +11 -11
- data/lib/rdoc/generator/template/aliki/_header.rhtml +29 -44
- data/lib/rdoc/generator/template/aliki/_sidebar_extends.rhtml +8 -6
- data/lib/rdoc/generator/template/aliki/_sidebar_includes.rhtml +8 -6
- data/lib/rdoc/generator/template/aliki/_sidebar_installed.rhtml +1 -1
- data/lib/rdoc/generator/template/aliki/_sidebar_pages.rhtml +2 -2
- data/lib/rdoc/generator/template/aliki/_sidebar_search.rhtml +4 -4
- data/lib/rdoc/generator/template/aliki/_sidebar_sections.rhtml +1 -1
- data/lib/rdoc/generator/template/aliki/_sidebar_toggle.rhtml +1 -1
- data/lib/rdoc/generator/template/aliki/class.rhtml +56 -46
- data/lib/rdoc/generator/template/aliki/css/rdoc.css +538 -283
- data/lib/rdoc/generator/template/aliki/index.rhtml +1 -1
- data/lib/rdoc/generator/template/aliki/js/aliki.js +80 -102
- data/lib/rdoc/generator/template/aliki/page.rhtml +1 -1
- data/lib/rdoc/generator/template/aliki/servlet_not_found.rhtml +1 -1
- data/lib/rdoc/generator/template/aliki/servlet_root.rhtml +2 -2
- data/lib/rdoc/generator/template/darkfish/_footer.rhtml +1 -1
- data/lib/rdoc/generator/template/darkfish/_sidebar_extends.rhtml +8 -6
- data/lib/rdoc/generator/template/darkfish/_sidebar_includes.rhtml +8 -6
- data/lib/rdoc/generator/template/darkfish/_sidebar_installed.rhtml +1 -1
- data/lib/rdoc/generator/template/darkfish/_sidebar_pages.rhtml +1 -1
- data/lib/rdoc/generator/template/darkfish/_sidebar_sections.rhtml +1 -1
- data/lib/rdoc/generator/template/darkfish/_sidebar_table_of_contents.rhtml +5 -5
- data/lib/rdoc/generator/template/darkfish/class.rhtml +18 -21
- data/lib/rdoc/generator/template/darkfish/css/rdoc.css +0 -1
- data/lib/rdoc/generator/template/darkfish/table_of_contents.rhtml +3 -3
- data/lib/rdoc/generator.rb +48 -46
- data/lib/rdoc/i18n/locale.rb +99 -95
- data/lib/rdoc/i18n/text.rb +109 -105
- data/lib/rdoc/i18n.rb +7 -5
- data/lib/rdoc/markdown/byte_runtime.rb +80 -0
- data/lib/rdoc/markdown.kpeg +30 -21
- data/lib/rdoc/markdown.rb +329 -151
- data/lib/rdoc/markup/block_quote.rb +12 -8
- data/lib/rdoc/markup/document.rb +127 -123
- data/lib/rdoc/markup/formatter.rb +215 -221
- data/lib/rdoc/markup/heading.rb +1 -4
- data/lib/rdoc/markup/include.rb +33 -29
- data/lib/rdoc/markup/indented_paragraph.rb +37 -33
- data/lib/rdoc/markup/inline_parser.rb +281 -277
- data/lib/rdoc/markup/list.rb +80 -88
- data/lib/rdoc/markup/list_item.rb +73 -85
- data/lib/rdoc/markup/paragraph.rb +23 -19
- data/lib/rdoc/markup/parser.rb +501 -497
- data/lib/rdoc/markup/pre_process.rb +284 -305
- data/lib/rdoc/markup/raw.rb +2 -2
- data/lib/rdoc/markup/rule.rb +16 -12
- data/lib/rdoc/markup/to_ansi.rb +143 -139
- data/lib/rdoc/markup/to_bs.rb +72 -68
- data/lib/rdoc/markup/to_html.rb +600 -493
- data/lib/rdoc/markup/to_html_crossref.rb +221 -191
- data/lib/rdoc/markup/to_html_snippet.rb +232 -227
- data/lib/rdoc/markup/to_joined_paragraph.rb +40 -41
- data/lib/rdoc/markup/to_label.rb +63 -59
- data/lib/rdoc/markup/to_markdown.rb +212 -208
- data/lib/rdoc/markup/to_rdoc.rb +336 -332
- data/lib/rdoc/markup/to_table_of_contents.rb +66 -62
- data/lib/rdoc/markup/to_test.rb +60 -56
- data/lib/rdoc/markup/to_tt_only.rb +83 -86
- data/lib/rdoc/markup/verbatim.rb +62 -58
- data/lib/rdoc/markup.rb +198 -196
- data/lib/rdoc/options.rb +1063 -1076
- data/lib/rdoc/parser/c.rb +1039 -1036
- data/lib/rdoc/parser/changelog.rb +319 -315
- data/lib/rdoc/parser/markdown.rb +17 -13
- data/lib/rdoc/parser/rbs.rb +279 -0
- data/lib/rdoc/parser/rd.rb +17 -13
- data/lib/rdoc/parser/ruby.rb +1231 -2222
- data/lib/rdoc/parser/ruby_colorizer.rb +303 -0
- data/lib/rdoc/parser/simple.rb +31 -27
- data/lib/rdoc/parser/text.rb +12 -8
- data/lib/rdoc/parser.rb +230 -221
- data/lib/rdoc/rbs_helper.rb +186 -0
- data/lib/rdoc/rd/inline.rb +57 -53
- data/lib/rdoc/rd.rb +90 -88
- data/lib/rdoc/rdoc.rb +547 -366
- data/lib/rdoc/ri/driver.rb +1141 -1130
- data/lib/rdoc/ri/formatter.rb +7 -3
- data/lib/rdoc/ri/paths.rb +140 -136
- data/lib/rdoc/ri/servlet.rb +456 -0
- data/lib/rdoc/ri/store.rb +4 -2
- data/lib/rdoc/ri/task.rb +55 -51
- data/lib/rdoc/ri.rb +14 -11
- data/lib/rdoc/rubygems_hook.rb +194 -192
- data/lib/rdoc/server.rb +462 -0
- data/lib/rdoc/stats/normal.rb +46 -42
- data/lib/rdoc/stats/quiet.rb +39 -35
- data/lib/rdoc/stats/verbose.rb +35 -31
- data/lib/rdoc/stats.rb +363 -338
- data/lib/rdoc/store.rb +919 -725
- data/lib/rdoc/task.rb +260 -255
- data/lib/rdoc/text.rb +130 -245
- data/lib/rdoc/token_stream.rb +101 -115
- data/lib/rdoc/tom_doc.rb +203 -201
- data/lib/rdoc/version.rb +1 -1
- data/lib/rdoc.rb +35 -7
- data/lib/rubygems_plugin.rb +2 -11
- data/rdoc-logo.svg +43 -0
- data/rdoc.gemspec +6 -4
- metadata +36 -20
- data/lib/rdoc/code_object/anon_class.rb +0 -10
- data/lib/rdoc/code_object/ghost_method.rb +0 -6
- data/lib/rdoc/code_object/meta_method.rb +0 -6
- data/lib/rdoc/markdown/literals.kpeg +0 -21
- data/lib/rdoc/markdown/literals.rb +0 -454
- data/lib/rdoc/parser/prism_ruby.rb +0 -1112
- data/lib/rdoc/parser/ripper_state_lex.rb +0 -302
- data/lib/rdoc/parser/ruby_tools.rb +0 -163
- data/lib/rdoc/servlet.rb +0 -452
data/lib/rdoc/erb_partial.rb
CHANGED
|
@@ -1,18 +1,20 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
#
|
|
2
|
+
module RDoc
|
|
3
|
+
##
|
|
4
|
+
# Allows an ERB template to be rendered in the context (binding) of an
|
|
5
|
+
# existing ERB template evaluation.
|
|
5
6
|
|
|
6
|
-
class
|
|
7
|
+
class ERBPartial < ERB
|
|
7
8
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
##
|
|
10
|
+
# Overrides +compiler+ startup to set the +eoutvar+ to an empty string only
|
|
11
|
+
# if it isn't already set.
|
|
11
12
|
|
|
12
|
-
|
|
13
|
-
|
|
13
|
+
def set_eoutvar(compiler, eoutvar = '_erbout')
|
|
14
|
+
super
|
|
14
15
|
|
|
15
|
-
|
|
16
|
-
|
|
16
|
+
compiler.pre_cmd = ["#{eoutvar} ||= +''"]
|
|
17
|
+
end
|
|
17
18
|
|
|
19
|
+
end
|
|
18
20
|
end
|
data/lib/rdoc/erbio.rb
CHANGED
|
@@ -1,37 +1,39 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
require 'erb'
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
#
|
|
7
|
-
#
|
|
8
|
-
#
|
|
9
|
-
#
|
|
10
|
-
#
|
|
11
|
-
#
|
|
12
|
-
#
|
|
13
|
-
#
|
|
14
|
-
#
|
|
15
|
-
#
|
|
16
|
-
#
|
|
4
|
+
module RDoc
|
|
5
|
+
##
|
|
6
|
+
# A subclass of ERB that writes directly to an IO. Credit to Aaron Patterson
|
|
7
|
+
# and Masatoshi SEKI.
|
|
8
|
+
#
|
|
9
|
+
# To use:
|
|
10
|
+
#
|
|
11
|
+
# erbio = RDoc::ERBIO.new '<%= "hello world" %>', nil, nil
|
|
12
|
+
#
|
|
13
|
+
# File.open 'hello.txt', 'w' do |io|
|
|
14
|
+
# erbio.result binding
|
|
15
|
+
# end
|
|
16
|
+
#
|
|
17
|
+
# Note that binding must enclose the io you wish to output on.
|
|
17
18
|
|
|
18
|
-
class
|
|
19
|
+
class ERBIO < ERB
|
|
19
20
|
|
|
20
|
-
|
|
21
|
-
|
|
21
|
+
##
|
|
22
|
+
# Defaults +eoutvar+ to 'io', otherwise is identical to ERB's initialize
|
|
22
23
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
def initialize(str, trim_mode: nil, eoutvar: 'io')
|
|
25
|
+
super(str, trim_mode: trim_mode, eoutvar: eoutvar)
|
|
26
|
+
end
|
|
26
27
|
|
|
27
|
-
|
|
28
|
-
|
|
28
|
+
##
|
|
29
|
+
# Instructs +compiler+ how to write to +io_variable+
|
|
29
30
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
31
|
+
def set_eoutvar(compiler, io_variable)
|
|
32
|
+
compiler.put_cmd = "#{io_variable}.write"
|
|
33
|
+
compiler.insert_cmd = "#{io_variable}.write"
|
|
34
|
+
compiler.pre_cmd = []
|
|
35
|
+
compiler.post_cmd = []
|
|
36
|
+
end
|
|
36
37
|
|
|
38
|
+
end
|
|
37
39
|
end
|
data/lib/rdoc/generator/aliki.rb
CHANGED
|
@@ -2,182 +2,207 @@
|
|
|
2
2
|
|
|
3
3
|
require 'uri'
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
#
|
|
9
|
-
#
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
5
|
+
module RDoc
|
|
6
|
+
module Generator
|
|
7
|
+
##
|
|
8
|
+
# Aliki theme for RDoc documentation
|
|
9
|
+
#
|
|
10
|
+
# Author: Stan Lo
|
|
11
|
+
#
|
|
12
|
+
|
|
13
|
+
class Aliki < Generator::Darkfish
|
|
14
|
+
DESCRIPTION = 'HTML generator, written by Stan Lo'
|
|
15
|
+
|
|
16
|
+
RDoc.add_generator self
|
|
17
|
+
|
|
18
|
+
def initialize(store, options)
|
|
19
|
+
super
|
|
20
|
+
aliki_template_dir = File.expand_path(File.join(__dir__, 'template', 'aliki'))
|
|
21
|
+
@template_dir = Pathname.new(aliki_template_dir)
|
|
22
|
+
end
|
|
19
23
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
24
|
+
##
|
|
25
|
+
# Generate documentation. Overrides Darkfish to use Aliki's own search index
|
|
26
|
+
# instead of the JsonIndex generator.
|
|
23
27
|
|
|
24
|
-
|
|
25
|
-
|
|
28
|
+
def generate
|
|
29
|
+
setup
|
|
26
30
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
31
|
+
write_style_sheet
|
|
32
|
+
generate_index
|
|
33
|
+
generate_class_files
|
|
34
|
+
generate_file_files
|
|
35
|
+
generate_table_of_contents
|
|
36
|
+
write_search_index
|
|
33
37
|
|
|
34
|
-
|
|
38
|
+
copy_static
|
|
35
39
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
+
rescue => e
|
|
41
|
+
debug_msg "%s: %s\n %s" % [
|
|
42
|
+
e.class.name, e.message, e.backtrace.join("\n ")
|
|
43
|
+
]
|
|
40
44
|
|
|
41
|
-
|
|
42
|
-
|
|
45
|
+
raise
|
|
46
|
+
end
|
|
43
47
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
+
##
|
|
49
|
+
# Copy only the static assets required by the Aliki theme. Unlike Darkfish we
|
|
50
|
+
# don't ship embedded fonts or image sprites, so limit the asset list to keep
|
|
51
|
+
# generated documentation lightweight.
|
|
48
52
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
53
|
+
def write_style_sheet
|
|
54
|
+
debug_msg "Copying Aliki static files"
|
|
55
|
+
options = { verbose: $DEBUG_RDOC, noop: @dry_run }
|
|
52
56
|
|
|
53
|
-
|
|
57
|
+
install_rdoc_static_file @template_dir + 'css/rdoc.css', "./css/rdoc.css", options
|
|
54
58
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
59
|
+
unless @options.template_stylesheets.empty?
|
|
60
|
+
FileUtils.cp @options.template_stylesheets, '.', **options
|
|
61
|
+
end
|
|
58
62
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
63
|
+
Dir[(@template_dir + 'js/**/*').to_s].each do |path|
|
|
64
|
+
next if File.directory?(path)
|
|
65
|
+
next if File.basename(path).start_with?('.')
|
|
62
66
|
|
|
63
|
-
|
|
67
|
+
dst = Pathname.new(path).relative_path_from(@template_dir)
|
|
64
68
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
69
|
+
install_rdoc_static_file @template_dir + path, dst, options
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
##
|
|
74
|
+
# Build a search index array for Aliki's searcher.
|
|
75
|
+
|
|
76
|
+
def build_search_index
|
|
77
|
+
setup
|
|
78
|
+
|
|
79
|
+
index = []
|
|
68
80
|
|
|
69
|
-
|
|
70
|
-
|
|
81
|
+
@classes.each do |klass|
|
|
82
|
+
next unless klass.display?
|
|
71
83
|
|
|
72
|
-
|
|
73
|
-
setup
|
|
84
|
+
index << build_class_module_entry(klass)
|
|
74
85
|
|
|
75
|
-
|
|
86
|
+
klass.constants.each do |const|
|
|
87
|
+
next unless const.display?
|
|
76
88
|
|
|
77
|
-
|
|
78
|
-
|
|
89
|
+
index << build_constant_entry(const, klass)
|
|
90
|
+
end
|
|
91
|
+
end
|
|
79
92
|
|
|
80
|
-
|
|
93
|
+
@methods.each do |method|
|
|
94
|
+
next unless method.display?
|
|
81
95
|
|
|
82
|
-
|
|
83
|
-
|
|
96
|
+
index << build_method_entry(method)
|
|
97
|
+
end
|
|
84
98
|
|
|
85
|
-
index
|
|
99
|
+
index
|
|
86
100
|
end
|
|
87
|
-
end
|
|
88
101
|
|
|
89
|
-
|
|
90
|
-
|
|
102
|
+
##
|
|
103
|
+
# Write the search index as a JavaScript file
|
|
104
|
+
# Format: var search_data = { index: [...] }
|
|
105
|
+
#
|
|
106
|
+
# We still write to a .js instead of a .json because loading a JSON file triggers CORS check in browsers.
|
|
107
|
+
# And if we simply inspect the generated pages using file://, which is often the case due to lack of the server mode,
|
|
108
|
+
# the JSON file will be blocked by the browser.
|
|
91
109
|
|
|
92
|
-
|
|
93
|
-
|
|
110
|
+
def write_search_index
|
|
111
|
+
debug_msg "Writing Aliki search index"
|
|
94
112
|
|
|
95
|
-
|
|
96
|
-
end
|
|
113
|
+
index = build_search_index
|
|
97
114
|
|
|
98
|
-
|
|
99
|
-
# Write the search index as a JavaScript file
|
|
100
|
-
# Format: var search_data = { index: [...] }
|
|
101
|
-
#
|
|
102
|
-
# We still write to a .js instead of a .json because loading a JSON file triggers CORS check in browsers.
|
|
103
|
-
# And if we simply inspect the generated pages using file://, which is often the case due to lack of the server mode,
|
|
104
|
-
# the JSON file will be blocked by the browser.
|
|
115
|
+
FileUtils.mkdir_p 'js' unless @dry_run
|
|
105
116
|
|
|
106
|
-
|
|
107
|
-
|
|
117
|
+
search_index_path = 'js/search_data.js'
|
|
118
|
+
return if @dry_run
|
|
108
119
|
|
|
109
|
-
|
|
120
|
+
data = { index: index }
|
|
121
|
+
File.write search_index_path, "var search_data = #{JSON.generate(data)};"
|
|
122
|
+
end
|
|
110
123
|
|
|
111
|
-
|
|
124
|
+
##
|
|
125
|
+
# Returns the type signature of +method_attr+ as HTML with linked type names.
|
|
126
|
+
# Returns nil if no type signature is present.
|
|
112
127
|
|
|
113
|
-
|
|
114
|
-
|
|
128
|
+
def type_signature_html(method_attr, from_path)
|
|
129
|
+
lines = method_attr.type_signature_lines || @store.rbs_signature_for(method_attr)
|
|
130
|
+
return unless lines
|
|
115
131
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
132
|
+
RbsHelper.signature_to_html(
|
|
133
|
+
lines,
|
|
134
|
+
lookup: @store.type_name_lookup,
|
|
135
|
+
from_path: from_path
|
|
136
|
+
)
|
|
137
|
+
end
|
|
119
138
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
139
|
+
##
|
|
140
|
+
# Resolves a URL for use in templates. Absolute URLs are returned unchanged.
|
|
141
|
+
# Relative URLs are prefixed with rel_prefix to ensure they resolve correctly from any page.
|
|
142
|
+
|
|
143
|
+
def resolve_url(rel_prefix, url)
|
|
144
|
+
uri = URI.parse(url)
|
|
145
|
+
if uri.absolute?
|
|
146
|
+
url
|
|
147
|
+
else
|
|
148
|
+
"#{rel_prefix}/#{url}"
|
|
149
|
+
end
|
|
150
|
+
rescue URI::InvalidURIError
|
|
151
|
+
"#{rel_prefix}/#{url}"
|
|
152
|
+
end
|
|
123
153
|
|
|
124
|
-
|
|
125
|
-
uri = URI.parse(url)
|
|
126
|
-
if uri.absolute?
|
|
127
|
-
url
|
|
128
|
-
else
|
|
129
|
-
"#{rel_prefix}/#{url}"
|
|
130
|
-
end
|
|
131
|
-
rescue URI::InvalidURIError
|
|
132
|
-
"#{rel_prefix}/#{url}"
|
|
133
|
-
end
|
|
154
|
+
private
|
|
134
155
|
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
type = case klass
|
|
139
|
-
when RDoc::NormalClass then 'class'
|
|
140
|
-
when RDoc::NormalModule then 'module'
|
|
141
|
-
else 'class'
|
|
142
|
-
end
|
|
143
|
-
|
|
144
|
-
entry = {
|
|
145
|
-
name: klass.name,
|
|
146
|
-
full_name: klass.full_name,
|
|
147
|
-
type: type,
|
|
148
|
-
path: klass.path
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
snippet = klass.search_snippet
|
|
152
|
-
entry[:snippet] = snippet unless snippet.empty?
|
|
153
|
-
entry
|
|
154
|
-
end
|
|
156
|
+
def template_encoding
|
|
157
|
+
::Encoding::UTF_8
|
|
158
|
+
end
|
|
155
159
|
|
|
156
|
-
|
|
157
|
-
|
|
160
|
+
def build_class_module_entry(klass)
|
|
161
|
+
type = case klass
|
|
162
|
+
when NormalClass then 'class'
|
|
163
|
+
when NormalModule then 'module'
|
|
164
|
+
else 'class'
|
|
165
|
+
end
|
|
166
|
+
|
|
167
|
+
entry = {
|
|
168
|
+
name: klass.name,
|
|
169
|
+
full_name: klass.full_name,
|
|
170
|
+
type: type,
|
|
171
|
+
path: klass.path
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
snippet = klass.search_snippet
|
|
175
|
+
entry[:snippet] = snippet unless snippet.empty?
|
|
176
|
+
entry
|
|
177
|
+
end
|
|
158
178
|
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
full_name: method.full_name,
|
|
162
|
-
type: type,
|
|
163
|
-
path: method.path
|
|
164
|
-
}
|
|
179
|
+
def build_method_entry(method)
|
|
180
|
+
type = method.singleton ? 'class_method' : 'instance_method'
|
|
165
181
|
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
182
|
+
entry = {
|
|
183
|
+
name: method.name,
|
|
184
|
+
full_name: method.full_name,
|
|
185
|
+
type: type,
|
|
186
|
+
path: method.path
|
|
187
|
+
}
|
|
170
188
|
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
189
|
+
snippet = method.search_snippet
|
|
190
|
+
entry[:snippet] = snippet unless snippet.empty?
|
|
191
|
+
entry
|
|
192
|
+
end
|
|
193
|
+
|
|
194
|
+
def build_constant_entry(const, parent)
|
|
195
|
+
entry = {
|
|
196
|
+
name: const.name,
|
|
197
|
+
full_name: "#{parent.full_name}::#{const.name}",
|
|
198
|
+
type: 'constant',
|
|
199
|
+
path: parent.path
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
snippet = const.search_snippet
|
|
203
|
+
entry[:snippet] = snippet unless snippet.empty?
|
|
204
|
+
entry
|
|
205
|
+
end
|
|
206
|
+
end
|
|
182
207
|
end
|
|
183
208
|
end
|