rdoc 5.1.0 → 6.3.1
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.
- checksums.yaml +5 -5
- data/CONTRIBUTING.rdoc +4 -4
- data/Gemfile +9 -0
- data/History.rdoc +4 -4
- data/README.rdoc +5 -6
- data/Rakefile +35 -67
- data/lib/rdoc/alias.rb +1 -1
- data/lib/rdoc/anon_class.rb +1 -1
- data/lib/rdoc/any_method.rb +59 -15
- data/lib/rdoc/attr.rb +1 -1
- data/lib/rdoc/class_module.rb +5 -3
- data/lib/rdoc/code_object.rb +2 -9
- data/lib/rdoc/code_objects.rb +1 -1
- data/lib/rdoc/comment.rb +32 -11
- data/lib/rdoc/constant.rb +3 -3
- data/lib/rdoc/context/section.rb +1 -14
- data/lib/rdoc/context.rb +63 -20
- data/lib/rdoc/cross_reference.rb +33 -15
- data/lib/rdoc/encoding.rb +58 -30
- data/lib/rdoc/erb_partial.rb +2 -2
- data/lib/rdoc/erbio.rb +8 -4
- data/lib/rdoc/extend.rb +1 -1
- data/lib/rdoc/generator/darkfish.rb +60 -29
- data/lib/rdoc/generator/json_index.rb +6 -3
- data/lib/rdoc/generator/markup.rb +3 -13
- data/lib/rdoc/generator/pot/message_extractor.rb +1 -1
- data/lib/rdoc/generator/pot/po.rb +3 -3
- data/lib/rdoc/generator/pot/po_entry.rb +11 -11
- data/lib/rdoc/generator/pot.rb +4 -4
- data/lib/rdoc/generator/ri.rb +1 -1
- data/lib/rdoc/generator/template/darkfish/_footer.rhtml +2 -2
- data/lib/rdoc/generator/template/darkfish/_head.rhtml +9 -7
- data/lib/rdoc/generator/template/darkfish/_sidebar_VCS_info.rhtml +2 -2
- data/lib/rdoc/generator/template/darkfish/_sidebar_classes.rhtml +2 -2
- data/lib/rdoc/generator/template/darkfish/_sidebar_extends.rhtml +7 -7
- data/lib/rdoc/generator/template/darkfish/_sidebar_in_files.rhtml +2 -2
- data/lib/rdoc/generator/template/darkfish/_sidebar_includes.rhtml +7 -7
- data/lib/rdoc/generator/template/darkfish/_sidebar_installed.rhtml +6 -6
- data/lib/rdoc/generator/template/darkfish/_sidebar_methods.rhtml +5 -5
- data/lib/rdoc/generator/template/darkfish/_sidebar_pages.rhtml +5 -5
- data/lib/rdoc/generator/template/darkfish/_sidebar_parent.rhtml +5 -5
- data/lib/rdoc/generator/template/darkfish/_sidebar_sections.rhtml +4 -4
- data/lib/rdoc/generator/template/darkfish/_sidebar_table_of_contents.rhtml +4 -4
- data/lib/rdoc/generator/template/darkfish/class.rhtml +45 -47
- data/lib/rdoc/generator/template/darkfish/css/rdoc.css +55 -6
- data/lib/rdoc/generator/template/darkfish/index.rhtml +3 -4
- data/lib/rdoc/generator/template/darkfish/js/darkfish.js +22 -99
- data/lib/rdoc/generator/template/darkfish/js/search.js +32 -31
- data/lib/rdoc/generator/template/darkfish/servlet_root.rhtml +15 -16
- data/lib/rdoc/generator/template/darkfish/table_of_contents.rhtml +16 -16
- data/lib/rdoc/generator/template/json_index/js/navigation.js +4 -41
- data/lib/rdoc/generator/template/json_index/js/searcher.js +6 -6
- data/lib/rdoc/generator.rb +1 -1
- data/lib/rdoc/ghost_method.rb +1 -1
- data/lib/rdoc/i18n/locale.rb +1 -1
- data/lib/rdoc/i18n/text.rb +5 -5
- data/lib/rdoc/i18n.rb +3 -3
- data/lib/rdoc/include.rb +1 -1
- data/lib/rdoc/known_classes.rb +1 -1
- data/lib/rdoc/markdown/entities.rb +1 -1
- data/lib/rdoc/markdown/literals.kpeg +1 -0
- data/lib/rdoc/markdown/literals.rb +19 -7
- data/lib/rdoc/markdown.kpeg +92 -44
- data/lib/rdoc/markdown.rb +1171 -610
- data/lib/rdoc/markup/attr_changer.rb +1 -1
- data/lib/rdoc/markup/attr_span.rb +9 -3
- data/lib/rdoc/markup/attribute_manager.rb +115 -50
- data/lib/rdoc/markup/attributes.rb +7 -7
- data/lib/rdoc/markup/blank_line.rb +1 -1
- data/lib/rdoc/markup/block_quote.rb +1 -1
- data/lib/rdoc/markup/document.rb +1 -1
- data/lib/rdoc/markup/formatter.rb +25 -24
- data/lib/rdoc/markup/hard_break.rb +1 -1
- data/lib/rdoc/markup/heading.rb +4 -4
- data/lib/rdoc/markup/include.rb +1 -1
- data/lib/rdoc/markup/indented_paragraph.rb +1 -1
- data/lib/rdoc/markup/list.rb +1 -1
- data/lib/rdoc/markup/list_item.rb +1 -1
- data/lib/rdoc/markup/paragraph.rb +1 -1
- data/lib/rdoc/markup/parser.rb +79 -47
- data/lib/rdoc/markup/pre_process.rb +11 -6
- data/lib/rdoc/markup/raw.rb +1 -1
- data/lib/rdoc/markup/regexp_handling.rb +41 -0
- data/lib/rdoc/markup/rule.rb +1 -1
- data/lib/rdoc/markup/to_ansi.rb +1 -1
- data/lib/rdoc/markup/to_bs.rb +4 -4
- data/lib/rdoc/markup/to_html.rb +68 -26
- data/lib/rdoc/markup/to_html_crossref.rb +41 -26
- data/lib/rdoc/markup/to_html_snippet.rb +10 -10
- data/lib/rdoc/markup/to_joined_paragraph.rb +7 -32
- data/lib/rdoc/markup/to_label.rb +10 -10
- data/lib/rdoc/markup/to_markdown.rb +9 -9
- data/lib/rdoc/markup/to_rdoc.rb +35 -7
- data/lib/rdoc/markup/to_table_of_contents.rb +2 -1
- data/lib/rdoc/markup/to_test.rb +1 -1
- data/lib/rdoc/markup/to_tt_only.rb +3 -3
- data/lib/rdoc/markup/verbatim.rb +1 -1
- data/lib/rdoc/markup.rb +14 -17
- data/lib/rdoc/meta_method.rb +1 -1
- data/lib/rdoc/method_attr.rb +2 -2
- data/lib/rdoc/mixin.rb +1 -1
- data/lib/rdoc/normal_class.rb +3 -3
- data/lib/rdoc/normal_module.rb +1 -1
- data/lib/rdoc/options.rb +79 -21
- data/lib/rdoc/parser/c.rb +147 -194
- data/lib/rdoc/parser/changelog.rb +150 -19
- data/lib/rdoc/parser/markdown.rb +1 -1
- data/lib/rdoc/parser/rd.rb +1 -1
- data/lib/rdoc/parser/ripper_state_lex.rb +590 -0
- data/lib/rdoc/parser/ruby.rb +632 -466
- data/lib/rdoc/parser/ruby_tools.rb +33 -34
- data/lib/rdoc/parser/simple.rb +3 -3
- data/lib/rdoc/parser/text.rb +1 -1
- data/lib/rdoc/parser.rb +9 -34
- data/lib/rdoc/rd/block_parser.rb +47 -46
- data/lib/rdoc/rd/block_parser.ry +2 -2
- data/lib/rdoc/rd/inline.rb +5 -5
- data/lib/rdoc/rd/inline_parser.rb +139 -138
- data/lib/rdoc/rd/inline_parser.ry +1 -1
- data/lib/rdoc/rd.rb +1 -1
- data/lib/rdoc/rdoc.rb +54 -41
- data/lib/rdoc/require.rb +1 -1
- data/lib/rdoc/ri/driver.rb +132 -42
- data/lib/rdoc/ri/formatter.rb +1 -1
- data/lib/rdoc/ri/paths.rb +4 -18
- data/lib/rdoc/ri/store.rb +1 -1
- data/lib/rdoc/ri/task.rb +2 -2
- data/lib/rdoc/ri.rb +1 -1
- data/lib/rdoc/rubygems_hook.rb +3 -3
- data/lib/rdoc/servlet.rb +21 -12
- data/lib/rdoc/single_class.rb +1 -1
- data/lib/rdoc/stats/normal.rb +24 -18
- data/lib/rdoc/stats/quiet.rb +1 -1
- data/lib/rdoc/stats/verbose.rb +1 -1
- data/lib/rdoc/stats.rb +1 -1
- data/lib/rdoc/store.rb +38 -27
- data/lib/rdoc/task.rb +2 -2
- data/lib/rdoc/text.rb +16 -21
- data/lib/rdoc/token_stream.rb +56 -33
- data/lib/rdoc/tom_doc.rb +17 -12
- data/lib/rdoc/top_level.rb +9 -3
- data/lib/rdoc/version.rb +8 -0
- data/lib/rdoc.rb +24 -10
- data/man/ri.1 +247 -0
- data/rdoc.gemspec +206 -15
- metadata +15 -64
- data/.document +0 -5
- data/.gitignore +0 -13
- data/.travis.yml +0 -24
- data/lib/gauntlet_rdoc.rb +0 -82
- data/lib/rdoc/generator/template/darkfish/js/jquery.js +0 -4
- data/lib/rdoc/markup/formatter_test_case.rb +0 -764
- data/lib/rdoc/markup/inline.rb +0 -2
- data/lib/rdoc/markup/special.rb +0 -41
- data/lib/rdoc/markup/text_formatter_test_case.rb +0 -115
- data/lib/rdoc/ruby_lex.rb +0 -1367
- data/lib/rdoc/ruby_token.rb +0 -461
- data/lib/rdoc/test_case.rb +0 -204
data/lib/rdoc/store.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# frozen_string_literal:
|
1
|
+
# frozen_string_literal: true
|
2
2
|
require 'fileutils'
|
3
3
|
|
4
4
|
##
|
@@ -116,6 +116,11 @@ class RDoc::Store
|
|
116
116
|
|
117
117
|
attr_accessor :encoding
|
118
118
|
|
119
|
+
##
|
120
|
+
# The lazy constants alias will be discovered in passing
|
121
|
+
|
122
|
+
attr_reader :unmatched_constant_alias
|
123
|
+
|
119
124
|
##
|
120
125
|
# Creates a new Store of +type+ that will load or save to +path+
|
121
126
|
|
@@ -143,6 +148,7 @@ class RDoc::Store
|
|
143
148
|
@classes_hash = {}
|
144
149
|
@modules_hash = {}
|
145
150
|
@files_hash = {}
|
151
|
+
@text_files_hash = {}
|
146
152
|
|
147
153
|
@c_enclosure_classes = {}
|
148
154
|
@c_enclosure_names = {}
|
@@ -152,6 +158,8 @@ class RDoc::Store
|
|
152
158
|
|
153
159
|
@unique_classes = nil
|
154
160
|
@unique_modules = nil
|
161
|
+
|
162
|
+
@unmatched_constant_alias = {}
|
155
163
|
end
|
156
164
|
|
157
165
|
##
|
@@ -177,16 +185,24 @@ class RDoc::Store
|
|
177
185
|
# Adds the file with +name+ as an RDoc::TopLevel to the store. Returns the
|
178
186
|
# created RDoc::TopLevel.
|
179
187
|
|
180
|
-
def add_file absolute_name, relative_name
|
188
|
+
def add_file absolute_name, relative_name: absolute_name, parser: nil
|
181
189
|
unless top_level = @files_hash[relative_name] then
|
182
190
|
top_level = RDoc::TopLevel.new absolute_name, relative_name
|
191
|
+
top_level.parser = parser if parser
|
183
192
|
top_level.store = self
|
184
193
|
@files_hash[relative_name] = top_level
|
194
|
+
@text_files_hash[relative_name] = top_level if top_level.text?
|
185
195
|
end
|
186
196
|
|
187
197
|
top_level
|
188
198
|
end
|
189
199
|
|
200
|
+
def update_parser_of_file(absolute_name, parser)
|
201
|
+
if top_level = @files_hash[absolute_name] then
|
202
|
+
@text_files_hash[absolute_name] = top_level if top_level.text?
|
203
|
+
end
|
204
|
+
end
|
205
|
+
|
190
206
|
##
|
191
207
|
# Returns all classes discovered by RDoc
|
192
208
|
|
@@ -421,8 +437,8 @@ class RDoc::Store
|
|
421
437
|
# +file_name+
|
422
438
|
|
423
439
|
def find_text_page file_name
|
424
|
-
@
|
425
|
-
file.
|
440
|
+
@text_files_hash.each_value.find do |file|
|
441
|
+
file.full_name == file_name
|
426
442
|
end
|
427
443
|
end
|
428
444
|
|
@@ -466,7 +482,7 @@ class RDoc::Store
|
|
466
482
|
when :gem then
|
467
483
|
parent = File.expand_path '..', @path
|
468
484
|
"gem #{File.basename parent}"
|
469
|
-
when :home then
|
485
|
+
when :home then RDoc.home
|
470
486
|
when :site then 'ruby site'
|
471
487
|
when :system then 'ruby core'
|
472
488
|
else @path
|
@@ -530,6 +546,7 @@ class RDoc::Store
|
|
530
546
|
@cache[:pages].each do |page_name|
|
531
547
|
page = load_page page_name
|
532
548
|
@files_hash[page_name] = page
|
549
|
+
@text_files_hash[page_name] = page if page.text?
|
533
550
|
end
|
534
551
|
end
|
535
552
|
|
@@ -539,7 +556,7 @@ class RDoc::Store
|
|
539
556
|
def load_cache
|
540
557
|
#orig_enc = @encoding
|
541
558
|
|
542
|
-
open cache_path, 'rb' do |io|
|
559
|
+
File.open cache_path, 'rb' do |io|
|
543
560
|
@cache = Marshal.load io.read
|
544
561
|
end
|
545
562
|
|
@@ -585,6 +602,8 @@ class RDoc::Store
|
|
585
602
|
case obj
|
586
603
|
when RDoc::NormalClass then
|
587
604
|
@classes_hash[klass_name] = obj
|
605
|
+
when RDoc::SingleClass then
|
606
|
+
@classes_hash[klass_name] = obj
|
588
607
|
when RDoc::NormalModule then
|
589
608
|
@modules_hash[klass_name] = obj
|
590
609
|
end
|
@@ -596,7 +615,7 @@ class RDoc::Store
|
|
596
615
|
def load_class_data klass_name
|
597
616
|
file = class_file klass_name
|
598
617
|
|
599
|
-
open file, 'rb' do |io|
|
618
|
+
File.open file, 'rb' do |io|
|
600
619
|
Marshal.load io.read
|
601
620
|
end
|
602
621
|
rescue Errno::ENOENT => e
|
@@ -611,7 +630,7 @@ class RDoc::Store
|
|
611
630
|
def load_method klass_name, method_name
|
612
631
|
file = method_file klass_name, method_name
|
613
632
|
|
614
|
-
open file, 'rb' do |io|
|
633
|
+
File.open file, 'rb' do |io|
|
615
634
|
obj = Marshal.load io.read
|
616
635
|
obj.store = self
|
617
636
|
obj.parent =
|
@@ -631,7 +650,7 @@ class RDoc::Store
|
|
631
650
|
def load_page page_name
|
632
651
|
file = page_file page_name
|
633
652
|
|
634
|
-
open file, 'rb' do |io|
|
653
|
+
File.open file, 'rb' do |io|
|
635
654
|
obj = Marshal.load io.read
|
636
655
|
obj.store = self
|
637
656
|
obj
|
@@ -703,8 +722,8 @@ class RDoc::Store
|
|
703
722
|
# Returns the RDoc::TopLevel that is a text file and has the given +name+
|
704
723
|
|
705
724
|
def page name
|
706
|
-
@
|
707
|
-
file.
|
725
|
+
@text_files_hash.each_value.find do |file|
|
726
|
+
file.page_name == name or file.base_name == name
|
708
727
|
end
|
709
728
|
end
|
710
729
|
|
@@ -776,10 +795,8 @@ class RDoc::Store
|
|
776
795
|
|
777
796
|
return if @dry_run
|
778
797
|
|
779
|
-
|
780
|
-
|
781
|
-
open cache_path, 'wb' do |io|
|
782
|
-
io.write marshal
|
798
|
+
File.open cache_path, 'wb' do |io|
|
799
|
+
Marshal.dump @cache, io
|
783
800
|
end
|
784
801
|
end
|
785
802
|
|
@@ -852,10 +869,8 @@ class RDoc::Store
|
|
852
869
|
|
853
870
|
FileUtils.rm_f to_delete
|
854
871
|
|
855
|
-
|
856
|
-
|
857
|
-
open path, 'wb' do |io|
|
858
|
-
io.write marshal
|
872
|
+
File.open path, 'wb' do |io|
|
873
|
+
Marshal.dump klass, io
|
859
874
|
end
|
860
875
|
end
|
861
876
|
|
@@ -877,10 +892,8 @@ class RDoc::Store
|
|
877
892
|
|
878
893
|
return if @dry_run
|
879
894
|
|
880
|
-
|
881
|
-
|
882
|
-
open method_file(full_name, method.full_name), 'wb' do |io|
|
883
|
-
io.write marshal
|
895
|
+
File.open method_file(full_name, method.full_name), 'wb' do |io|
|
896
|
+
Marshal.dump method, io
|
884
897
|
end
|
885
898
|
end
|
886
899
|
|
@@ -899,10 +912,8 @@ class RDoc::Store
|
|
899
912
|
|
900
913
|
return if @dry_run
|
901
914
|
|
902
|
-
|
903
|
-
|
904
|
-
open path, 'wb' do |io|
|
905
|
-
io.write marshal
|
915
|
+
File.open path, 'wb' do |io|
|
916
|
+
Marshal.dump page, io
|
906
917
|
end
|
907
918
|
end
|
908
919
|
|
data/lib/rdoc/task.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# frozen_string_literal:
|
1
|
+
# frozen_string_literal: true
|
2
2
|
#--
|
3
3
|
# Copyright (c) 2003, 2004 Jim Weirich, 2009 Eric Hodel
|
4
4
|
#
|
@@ -128,7 +128,7 @@ class RDoc::Task < Rake::TaskLib
|
|
128
128
|
attr_accessor :template
|
129
129
|
|
130
130
|
##
|
131
|
-
# Name of format generator (<tt>--format
|
131
|
+
# Name of format generator (<tt>--format</tt>) used by rdoc. (defaults to
|
132
132
|
# rdoc's default)
|
133
133
|
|
134
134
|
attr_accessor :generator
|
data/lib/rdoc/text.rb
CHANGED
@@ -1,26 +1,17 @@
|
|
1
|
-
#
|
2
|
-
# frozen_string_literal: false
|
1
|
+
# frozen_string_literal: true
|
3
2
|
|
4
3
|
##
|
5
4
|
# For RDoc::Text#to_html
|
6
5
|
|
7
6
|
require 'strscan'
|
8
7
|
|
9
|
-
##
|
10
|
-
# For RDoc::Text#snippet
|
11
|
-
|
12
|
-
begin
|
13
|
-
gem 'json'
|
14
|
-
rescue NameError => e # --disable-gems
|
15
|
-
raise unless e.name == :gem
|
16
|
-
rescue Gem::LoadError
|
17
|
-
end
|
18
|
-
|
19
8
|
##
|
20
9
|
# Methods for manipulating comment text
|
21
10
|
|
22
11
|
module RDoc::Text
|
23
12
|
|
13
|
+
attr_accessor :language
|
14
|
+
|
24
15
|
##
|
25
16
|
# Maps markup formats to classes that can parse them. If the format is
|
26
17
|
# unknown, "rdoc" format is used.
|
@@ -71,7 +62,7 @@ module RDoc::Text
|
|
71
62
|
text.each_line do |line|
|
72
63
|
nil while line.gsub!(/(?:\G|\r)((?:.{8})*?)([^\t\r\n]{0,7})\t/) do
|
73
64
|
r = "#{$1}#{$2}#{' ' * (8 - $2.size)}"
|
74
|
-
r.
|
65
|
+
r = RDoc::Encoding.change_encoding r, text.encoding
|
75
66
|
r
|
76
67
|
end
|
77
68
|
|
@@ -93,7 +84,7 @@ module RDoc::Text
|
|
93
84
|
end
|
94
85
|
|
95
86
|
empty = ''
|
96
|
-
empty.
|
87
|
+
empty = RDoc::Encoding.change_encoding empty, text.encoding
|
97
88
|
|
98
89
|
text.gsub(/^ {0,#{indent}}/, empty)
|
99
90
|
end
|
@@ -122,8 +113,12 @@ module RDoc::Text
|
|
122
113
|
def normalize_comment text
|
123
114
|
return text if text.empty?
|
124
115
|
|
125
|
-
|
126
|
-
|
116
|
+
case language
|
117
|
+
when :ruby
|
118
|
+
text = strip_hashes text
|
119
|
+
when :c
|
120
|
+
text = strip_stars text
|
121
|
+
end
|
127
122
|
text = expand_tabs text
|
128
123
|
text = flush_left text
|
129
124
|
text = strip_newlines text
|
@@ -160,7 +155,7 @@ module RDoc::Text
|
|
160
155
|
return text if text =~ /^(?>\s*)[^\#]/
|
161
156
|
|
162
157
|
empty = ''
|
163
|
-
empty.
|
158
|
+
empty = RDoc::Encoding.change_encoding empty, text.encoding
|
164
159
|
|
165
160
|
text.gsub(/^\s*(#+)/) { $1.tr '#', ' ' }.gsub(/^\s+$/, empty)
|
166
161
|
end
|
@@ -180,17 +175,17 @@ module RDoc::Text
|
|
180
175
|
|
181
176
|
encoding = text.encoding
|
182
177
|
|
183
|
-
text = text.gsub %r%Document-method:\s+[\w
|
178
|
+
text = text.gsub %r%Document-method:\s+[\w:.#=!?|^&<>~+\-/*\%@`\[\]]+%, ''
|
184
179
|
|
185
180
|
space = ' '
|
186
|
-
space.
|
181
|
+
space = RDoc::Encoding.change_encoding space, encoding if encoding
|
187
182
|
|
188
183
|
text.sub! %r%/\*+% do space * $&.length end
|
189
184
|
text.sub! %r%\*+/% do space * $&.length end
|
190
185
|
text.gsub! %r%^[ \t]*\*%m do space * $&.length end
|
191
186
|
|
192
187
|
empty = ''
|
193
|
-
empty.
|
188
|
+
empty = RDoc::Encoding.change_encoding empty, encoding if encoding
|
194
189
|
text.gsub(/^\s+$/, empty)
|
195
190
|
end
|
196
191
|
|
@@ -199,7 +194,7 @@ module RDoc::Text
|
|
199
194
|
# trademark symbols in +text+ to properly encoded characters.
|
200
195
|
|
201
196
|
def to_html text
|
202
|
-
html = ''.encode text.encoding
|
197
|
+
html = (''.encode text.encoding).dup
|
203
198
|
|
204
199
|
encoded = RDoc::Text::TO_HTML_CHARACTERS[text.encoding]
|
205
200
|
|
data/lib/rdoc/token_stream.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# frozen_string_literal:
|
1
|
+
# frozen_string_literal: true
|
2
2
|
##
|
3
3
|
# A TokenStream is a list of tokens, gathered during the parse of some entity
|
4
4
|
# (say a method). Entities populate these streams by being registered with the
|
@@ -10,43 +10,61 @@ module RDoc::TokenStream
|
|
10
10
|
|
11
11
|
##
|
12
12
|
# Converts +token_stream+ to HTML wrapping various tokens with
|
13
|
-
# <tt><span></tt> elements.
|
14
|
-
# with the given class names
|
15
|
-
#
|
16
|
-
# TkCONSTANT :: 'ruby-constant'
|
17
|
-
# TkKW :: 'ruby-keyword'
|
18
|
-
# TkIVAR :: 'ruby-ivar'
|
19
|
-
# TkOp :: 'ruby-operator'
|
20
|
-
# TkId :: 'ruby-identifier'
|
21
|
-
# TkNode :: 'ruby-node'
|
22
|
-
# TkCOMMENT :: 'ruby-comment'
|
23
|
-
# TkREGEXP :: 'ruby-regexp'
|
24
|
-
# TkSTRING :: 'ruby-string'
|
25
|
-
# TkVal :: 'ruby-value'
|
26
|
-
#
|
27
|
-
# Other token types are not wrapped in spans.
|
13
|
+
# <tt><span></tt> elements. Some tokens types are wrapped in spans
|
14
|
+
# with the given class names. Other token types are not wrapped in spans.
|
28
15
|
|
29
16
|
def self.to_html token_stream
|
17
|
+
starting_title = false
|
18
|
+
|
30
19
|
token_stream.map do |t|
|
31
20
|
next unless t
|
32
21
|
|
33
|
-
style = case t
|
34
|
-
when
|
35
|
-
when
|
36
|
-
when
|
37
|
-
when
|
38
|
-
when
|
39
|
-
when
|
40
|
-
|
41
|
-
when
|
42
|
-
when
|
43
|
-
when
|
22
|
+
style = case t[:kind]
|
23
|
+
when :on_const then 'ruby-constant'
|
24
|
+
when :on_kw then 'ruby-keyword'
|
25
|
+
when :on_ivar then 'ruby-ivar'
|
26
|
+
when :on_cvar then 'ruby-identifier'
|
27
|
+
when :on_gvar then 'ruby-identifier'
|
28
|
+
when '=' != t[:text] && :on_op
|
29
|
+
then 'ruby-operator'
|
30
|
+
when :on_tlambda then 'ruby-operator'
|
31
|
+
when :on_ident then 'ruby-identifier'
|
32
|
+
when :on_label then 'ruby-value'
|
33
|
+
when :on_backref, :on_dstring
|
34
|
+
then 'ruby-node'
|
35
|
+
when :on_comment then 'ruby-comment'
|
36
|
+
when :on_embdoc then 'ruby-comment'
|
37
|
+
when :on_regexp then 'ruby-regexp'
|
38
|
+
when :on_tstring then 'ruby-string'
|
39
|
+
when :on_int, :on_float,
|
40
|
+
:on_rational, :on_imaginary,
|
41
|
+
:on_heredoc,
|
42
|
+
:on_symbol, :on_CHAR then 'ruby-value'
|
43
|
+
when :on_heredoc_beg, :on_heredoc_end
|
44
|
+
then 'ruby-identifier'
|
44
45
|
end
|
45
46
|
|
46
|
-
|
47
|
+
comment_with_nl = false
|
48
|
+
if :on_comment == t[:kind] or :on_embdoc == t[:kind] or :on_heredoc_end == t[:kind]
|
49
|
+
comment_with_nl = true if "\n" == t[:text][-1]
|
50
|
+
text = t[:text].rstrip
|
51
|
+
else
|
52
|
+
text = t[:text]
|
53
|
+
end
|
54
|
+
|
55
|
+
if :on_ident == t[:kind] && starting_title
|
56
|
+
starting_title = false
|
57
|
+
style = 'ruby-identifier ruby-title'
|
58
|
+
end
|
59
|
+
|
60
|
+
if :on_kw == t[:kind] and 'def' == t[:text]
|
61
|
+
starting_title = true
|
62
|
+
end
|
63
|
+
|
64
|
+
text = CGI.escapeHTML text
|
47
65
|
|
48
66
|
if style then
|
49
|
-
"<span class=\"#{style}\">#{text}</span
|
67
|
+
"<span class=\"#{style}\">#{text}</span>#{"\n" if comment_with_nl}"
|
50
68
|
else
|
51
69
|
text
|
52
70
|
end
|
@@ -56,11 +74,16 @@ module RDoc::TokenStream
|
|
56
74
|
##
|
57
75
|
# Adds +tokens+ to the collected tokens
|
58
76
|
|
59
|
-
def add_tokens(
|
60
|
-
|
77
|
+
def add_tokens(tokens)
|
78
|
+
@token_stream.concat(tokens)
|
61
79
|
end
|
62
80
|
|
63
|
-
|
81
|
+
##
|
82
|
+
# Adds one +token+ to the collected tokens
|
83
|
+
|
84
|
+
def add_token(token)
|
85
|
+
@token_stream.push(token)
|
86
|
+
end
|
64
87
|
|
65
88
|
##
|
66
89
|
# Starts collecting tokens
|
@@ -89,7 +112,7 @@ module RDoc::TokenStream
|
|
89
112
|
# Returns a string representation of the token stream
|
90
113
|
|
91
114
|
def tokens_to_s
|
92
|
-
token_stream.compact.map { |token| token
|
115
|
+
token_stream.compact.map { |token| token[:text] }.join ''
|
93
116
|
end
|
94
117
|
|
95
118
|
end
|
data/lib/rdoc/tom_doc.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# frozen_string_literal:
|
1
|
+
# frozen_string_literal: true
|
2
2
|
# :markup: tomdoc
|
3
3
|
|
4
4
|
# A parser for TomDoc based on TomDoc 1.0.0-rc1 (02adef9b5a)
|
@@ -180,12 +180,19 @@ class RDoc::TomDoc < RDoc::Markup::Parser
|
|
180
180
|
|
181
181
|
case type
|
182
182
|
when :TEXT then
|
183
|
-
@section = 'Returns' if data =~ /\
|
183
|
+
@section = 'Returns' if data =~ /\A(Returns|Raises)/
|
184
184
|
|
185
185
|
paragraph << data
|
186
186
|
when :NEWLINE then
|
187
187
|
if :TEXT == peek_token[0] then
|
188
|
-
|
188
|
+
# Lines beginning with 'Raises' in the Returns section should not be
|
189
|
+
# treated as multiline text
|
190
|
+
if 'Returns' == @section and
|
191
|
+
peek_token[1].start_with?('Raises') then
|
192
|
+
break
|
193
|
+
else
|
194
|
+
paragraph << ' '
|
195
|
+
end
|
189
196
|
else
|
190
197
|
break
|
191
198
|
end
|
@@ -222,7 +229,7 @@ class RDoc::TomDoc < RDoc::Markup::Parser
|
|
222
229
|
# Returns self.
|
223
230
|
|
224
231
|
def tokenize text
|
225
|
-
text.sub
|
232
|
+
text = text.sub(/\A(Public|Internal|Deprecated):\s+/, '')
|
226
233
|
|
227
234
|
setup_scanner text
|
228
235
|
|
@@ -235,19 +242,18 @@ class RDoc::TomDoc < RDoc::Markup::Parser
|
|
235
242
|
|
236
243
|
@tokens << case
|
237
244
|
when @s.scan(/\r?\n/) then
|
238
|
-
token = [:NEWLINE, @s.matched, *
|
239
|
-
@
|
240
|
-
@line += 1
|
245
|
+
token = [:NEWLINE, @s.matched, *pos]
|
246
|
+
@s.newline!
|
241
247
|
token
|
242
248
|
when @s.scan(/(Examples|Signature)$/) then
|
243
|
-
@tokens << [:HEADER, 3, *
|
249
|
+
@tokens << [:HEADER, 3, *pos]
|
244
250
|
|
245
|
-
[:TEXT, @s[1], *
|
251
|
+
[:TEXT, @s[1], *pos]
|
246
252
|
when @s.scan(/([:\w][\w\[\]]*)[ ]+- /) then
|
247
|
-
[:NOTE, @s[1], *
|
253
|
+
[:NOTE, @s[1], *pos]
|
248
254
|
else
|
249
255
|
@s.scan(/.*/)
|
250
|
-
[:TEXT, @s.matched.sub(/\r$/, ''), *
|
256
|
+
[:TEXT, @s.matched.sub(/\r$/, ''), *pos]
|
251
257
|
end
|
252
258
|
end
|
253
259
|
|
@@ -255,4 +261,3 @@ class RDoc::TomDoc < RDoc::Markup::Parser
|
|
255
261
|
end
|
256
262
|
|
257
263
|
end
|
258
|
-
|
data/lib/rdoc/top_level.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# frozen_string_literal:
|
1
|
+
# frozen_string_literal: true
|
2
2
|
##
|
3
3
|
# A TopLevel context is a representation of the contents of a single file
|
4
4
|
|
@@ -33,7 +33,7 @@ class RDoc::TopLevel < RDoc::Context
|
|
33
33
|
##
|
34
34
|
# The parser class that processed this file
|
35
35
|
|
36
|
-
|
36
|
+
attr_reader :parser
|
37
37
|
|
38
38
|
##
|
39
39
|
# Creates a new TopLevel for the file at +absolute_name+. If documentation
|
@@ -52,6 +52,12 @@ class RDoc::TopLevel < RDoc::Context
|
|
52
52
|
@classes_or_modules = []
|
53
53
|
end
|
54
54
|
|
55
|
+
def parser=(val)
|
56
|
+
@parser = val
|
57
|
+
@store.update_parser_of_file(absolute_name, val) if @store
|
58
|
+
@parser
|
59
|
+
end
|
60
|
+
|
55
61
|
##
|
56
62
|
# An RDoc::TopLevel is equal to another with the same relative_name
|
57
63
|
|
@@ -272,7 +278,7 @@ class RDoc::TopLevel < RDoc::Context
|
|
272
278
|
# Is this TopLevel from a text file instead of a source code file?
|
273
279
|
|
274
280
|
def text?
|
275
|
-
@parser and @parser.
|
281
|
+
@parser and @parser.include? RDoc::Parser::Text
|
276
282
|
end
|
277
283
|
|
278
284
|
def to_s # :nodoc:
|
data/lib/rdoc/version.rb
ADDED
data/lib/rdoc.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# frozen_string_literal:
|
1
|
+
# frozen_string_literal: true
|
2
2
|
$DEBUG_RDOC = nil
|
3
3
|
|
4
4
|
# :main: README.rdoc
|
@@ -62,10 +62,7 @@ module RDoc
|
|
62
62
|
|
63
63
|
class Error < RuntimeError; end
|
64
64
|
|
65
|
-
|
66
|
-
# RDoc version you are using
|
67
|
-
|
68
|
-
VERSION = '5.1.0'
|
65
|
+
require 'rdoc/version'
|
69
66
|
|
70
67
|
##
|
71
68
|
# Method visibilities
|
@@ -123,9 +120,28 @@ module RDoc
|
|
123
120
|
end
|
124
121
|
end
|
125
122
|
|
126
|
-
|
123
|
+
def self.home
|
124
|
+
rdoc_dir = begin
|
125
|
+
File.expand_path('~/.rdoc')
|
126
|
+
rescue ArgumentError
|
127
|
+
end
|
128
|
+
|
129
|
+
if File.directory?(rdoc_dir)
|
130
|
+
rdoc_dir
|
131
|
+
else
|
132
|
+
begin
|
133
|
+
# XDG
|
134
|
+
xdg_data_home = ENV["XDG_DATA_HOME"] || File.join(File.expand_path("~"), '.local', 'share')
|
135
|
+
unless File.exist?(xdg_data_home)
|
136
|
+
FileUtils.mkdir_p xdg_data_home
|
137
|
+
end
|
138
|
+
File.join xdg_data_home, "rdoc"
|
139
|
+
rescue Errno::EACCES
|
140
|
+
end
|
141
|
+
end
|
142
|
+
end
|
127
143
|
|
128
|
-
autoload :
|
144
|
+
autoload :RDoc, 'rdoc/rdoc'
|
129
145
|
|
130
146
|
autoload :CrossReference, 'rdoc/cross_reference'
|
131
147
|
autoload :ERBIO, 'rdoc/erbio'
|
@@ -148,13 +164,11 @@ module RDoc
|
|
148
164
|
|
149
165
|
autoload :KNOWN_CLASSES, 'rdoc/known_classes'
|
150
166
|
|
151
|
-
autoload :RubyLex, 'rdoc/ruby_lex'
|
152
|
-
autoload :RubyToken, 'rdoc/ruby_token'
|
153
167
|
autoload :TokenStream, 'rdoc/token_stream'
|
154
168
|
|
155
169
|
autoload :Comment, 'rdoc/comment'
|
156
170
|
|
157
|
-
|
171
|
+
require 'rdoc/i18n'
|
158
172
|
|
159
173
|
# code objects
|
160
174
|
#
|