rdoc 6.3.4.1 → 8.0.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.
Files changed (205) hide show
  1. checksums.yaml +4 -4
  2. data/CONTRIBUTING.md +195 -0
  3. data/History.rdoc +65 -63
  4. data/LEGAL.rdoc +7 -1
  5. data/LICENSE.rdoc +6 -0
  6. data/README.md +236 -0
  7. data/RI.md +842 -0
  8. data/TODO.rdoc +8 -7
  9. data/doc/markup_reference/markdown.md +659 -0
  10. data/doc/markup_reference/rdoc.rdoc +1169 -0
  11. data/exe/rdoc +0 -1
  12. data/lib/rdoc/{alias.rb → code_object/alias.rb} +4 -18
  13. data/lib/rdoc/{any_method.rb → code_object/any_method.rb} +50 -24
  14. data/lib/rdoc/{attr.rb → code_object/attr.rb} +16 -14
  15. data/lib/rdoc/{class_module.rb → code_object/class_module.rb} +225 -58
  16. data/lib/rdoc/{constant.rb → code_object/constant.rb} +44 -10
  17. data/lib/rdoc/code_object/context/section.rb +182 -0
  18. data/lib/rdoc/{context.rb → code_object/context.rb} +78 -106
  19. data/lib/rdoc/{extend.rb → code_object/extend.rb} +0 -1
  20. data/lib/rdoc/{include.rb → code_object/include.rb} +0 -1
  21. data/lib/rdoc/{method_attr.rb → code_object/method_attr.rb} +46 -48
  22. data/lib/rdoc/{mixin.rb → code_object/mixin.rb} +6 -4
  23. data/lib/rdoc/{normal_class.rb → code_object/normal_class.rb} +2 -3
  24. data/lib/rdoc/{normal_module.rb → code_object/normal_module.rb} +2 -3
  25. data/lib/rdoc/{require.rb → code_object/require.rb} +1 -2
  26. data/lib/rdoc/{single_class.rb → code_object/single_class.rb} +5 -1
  27. data/lib/rdoc/{top_level.rb → code_object/top_level.rb} +60 -63
  28. data/lib/rdoc/code_object.rb +11 -39
  29. data/lib/rdoc/code_objects.rb +1 -2
  30. data/lib/rdoc/comment.rb +202 -99
  31. data/lib/rdoc/cross_reference.rb +75 -62
  32. data/lib/rdoc/encoding.rb +8 -24
  33. data/lib/rdoc/erb_partial.rb +1 -2
  34. data/lib/rdoc/erbio.rb +3 -8
  35. data/lib/rdoc/generator/aliki.rb +200 -0
  36. data/lib/rdoc/generator/darkfish.rb +156 -122
  37. data/lib/rdoc/generator/json_index.rb +8 -24
  38. data/lib/rdoc/generator/markup.rb +70 -34
  39. data/lib/rdoc/generator/pot/message_extractor.rb +7 -7
  40. data/lib/rdoc/generator/pot/po.rb +1 -1
  41. data/lib/rdoc/generator/pot/po_entry.rb +8 -8
  42. data/lib/rdoc/generator/pot.rb +1 -5
  43. data/lib/rdoc/generator/ri.rb +1 -2
  44. data/lib/rdoc/generator/template/aliki/DESIGN.md +536 -0
  45. data/lib/rdoc/generator/template/aliki/_aside_toc.rhtml +8 -0
  46. data/lib/rdoc/generator/template/aliki/_footer.rhtml +23 -0
  47. data/lib/rdoc/generator/template/aliki/_head.rhtml +163 -0
  48. data/lib/rdoc/generator/template/aliki/_header.rhtml +56 -0
  49. data/lib/rdoc/generator/template/aliki/_icons.rhtml +208 -0
  50. data/lib/rdoc/generator/template/aliki/_sidebar_ancestors.rhtml +16 -0
  51. data/lib/rdoc/generator/template/aliki/_sidebar_classes.rhtml +15 -0
  52. data/lib/rdoc/generator/template/aliki/_sidebar_extends.rhtml +27 -0
  53. data/lib/rdoc/generator/template/aliki/_sidebar_includes.rhtml +27 -0
  54. data/lib/rdoc/generator/template/aliki/_sidebar_installed.rhtml +16 -0
  55. data/lib/rdoc/generator/template/aliki/_sidebar_methods.rhtml +41 -0
  56. data/lib/rdoc/generator/template/aliki/_sidebar_pages.rhtml +67 -0
  57. data/lib/rdoc/generator/template/aliki/_sidebar_search.rhtml +15 -0
  58. data/lib/rdoc/generator/template/aliki/_sidebar_sections.rhtml +21 -0
  59. data/lib/rdoc/generator/template/aliki/_sidebar_toggle.rhtml +3 -0
  60. data/lib/rdoc/generator/template/aliki/class.rhtml +230 -0
  61. data/lib/rdoc/generator/template/aliki/css/rdoc.css +2181 -0
  62. data/lib/rdoc/generator/template/aliki/index.rhtml +22 -0
  63. data/lib/rdoc/generator/template/aliki/js/aliki.js +513 -0
  64. data/lib/rdoc/generator/template/aliki/js/bash_highlighter.js +167 -0
  65. data/lib/rdoc/generator/template/aliki/js/c_highlighter.js +299 -0
  66. data/lib/rdoc/generator/template/aliki/js/search_controller.js +129 -0
  67. data/lib/rdoc/generator/template/aliki/js/search_navigation.js +105 -0
  68. data/lib/rdoc/generator/template/aliki/js/search_ranker.js +239 -0
  69. data/lib/rdoc/generator/template/aliki/js/theme-toggle.js +112 -0
  70. data/lib/rdoc/generator/template/aliki/page.rhtml +18 -0
  71. data/lib/rdoc/generator/template/aliki/servlet_not_found.rhtml +14 -0
  72. data/lib/rdoc/generator/template/aliki/servlet_root.rhtml +65 -0
  73. data/lib/rdoc/generator/template/darkfish/_footer.rhtml +3 -3
  74. data/lib/rdoc/generator/template/darkfish/_head.rhtml +35 -14
  75. data/lib/rdoc/generator/template/darkfish/_sidebar_classes.rhtml +1 -5
  76. data/lib/rdoc/generator/template/darkfish/_sidebar_extends.rhtml +11 -9
  77. data/lib/rdoc/generator/template/darkfish/_sidebar_includes.rhtml +11 -9
  78. data/lib/rdoc/generator/template/darkfish/_sidebar_installed.rhtml +7 -6
  79. data/lib/rdoc/generator/template/darkfish/_sidebar_methods.rhtml +20 -11
  80. data/lib/rdoc/generator/template/darkfish/_sidebar_pages.rhtml +25 -5
  81. data/lib/rdoc/generator/template/darkfish/_sidebar_parent.rhtml +4 -9
  82. data/lib/rdoc/generator/template/darkfish/_sidebar_search.rhtml +2 -1
  83. data/lib/rdoc/generator/template/darkfish/_sidebar_sections.rhtml +4 -4
  84. data/lib/rdoc/generator/template/darkfish/_sidebar_table_of_contents.rhtml +28 -7
  85. data/lib/rdoc/generator/template/darkfish/_sidebar_toggle.rhtml +3 -0
  86. data/lib/rdoc/generator/template/darkfish/class.rhtml +138 -90
  87. data/lib/rdoc/generator/template/darkfish/css/rdoc.css +420 -358
  88. data/lib/rdoc/generator/template/darkfish/fonts/SourceCodePro-Bold.ttf +0 -0
  89. data/lib/rdoc/generator/template/darkfish/fonts/SourceCodePro-Regular.ttf +0 -0
  90. data/lib/rdoc/generator/template/darkfish/index.rhtml +14 -12
  91. data/lib/rdoc/generator/template/darkfish/js/darkfish.js +59 -3
  92. data/lib/rdoc/generator/template/darkfish/js/search.js +15 -5
  93. data/lib/rdoc/generator/template/darkfish/page.rhtml +7 -6
  94. data/lib/rdoc/generator/template/darkfish/servlet_not_found.rhtml +12 -9
  95. data/lib/rdoc/generator/template/darkfish/servlet_root.rhtml +24 -21
  96. data/lib/rdoc/generator/template/darkfish/table_of_contents.rhtml +35 -21
  97. data/lib/rdoc/generator/template/json_index/js/navigation.js +8 -8
  98. data/lib/rdoc/generator/template/json_index/js/searcher.js +48 -6
  99. data/lib/rdoc/generator.rb +6 -5
  100. data/lib/rdoc/i18n/text.rb +3 -3
  101. data/lib/rdoc/i18n.rb +1 -1
  102. data/lib/rdoc/known_classes.rb +5 -4
  103. data/lib/rdoc/markdown/entities.rb +0 -1
  104. data/lib/rdoc/markdown/literals.kpeg +0 -2
  105. data/lib/rdoc/markdown/literals.rb +0 -1
  106. data/lib/rdoc/markdown.kpeg +140 -62
  107. data/lib/rdoc/markdown.rb +1015 -873
  108. data/lib/rdoc/markup/blank_line.rb +25 -24
  109. data/lib/rdoc/markup/block_quote.rb +1 -2
  110. data/lib/rdoc/markup/document.rb +10 -11
  111. data/lib/rdoc/markup/element.rb +21 -0
  112. data/lib/rdoc/markup/formatter.rb +134 -115
  113. data/lib/rdoc/markup/hard_break.rb +30 -28
  114. data/lib/rdoc/markup/heading.rb +163 -72
  115. data/lib/rdoc/markup/include.rb +3 -4
  116. data/lib/rdoc/markup/indented_paragraph.rb +4 -5
  117. data/lib/rdoc/markup/inline_parser.rb +312 -0
  118. data/lib/rdoc/markup/list.rb +6 -7
  119. data/lib/rdoc/markup/list_item.rb +6 -7
  120. data/lib/rdoc/markup/paragraph.rb +2 -3
  121. data/lib/rdoc/markup/parser.rb +29 -19
  122. data/lib/rdoc/markup/pre_process.rb +39 -18
  123. data/lib/rdoc/markup/raw.rb +52 -56
  124. data/lib/rdoc/markup/rule.rb +2 -3
  125. data/lib/rdoc/markup/table.rb +49 -32
  126. data/lib/rdoc/markup/to_ansi.rb +58 -8
  127. data/lib/rdoc/markup/to_bs.rb +47 -38
  128. data/lib/rdoc/markup/to_html.rb +343 -105
  129. data/lib/rdoc/markup/to_html_crossref.rb +143 -58
  130. data/lib/rdoc/markup/to_html_snippet.rb +78 -76
  131. data/lib/rdoc/markup/to_joined_paragraph.rb +3 -9
  132. data/lib/rdoc/markup/to_label.rb +34 -25
  133. data/lib/rdoc/markup/to_markdown.rb +74 -51
  134. data/lib/rdoc/markup/to_rdoc.rb +141 -82
  135. data/lib/rdoc/markup/to_table_of_contents.rb +4 -5
  136. data/lib/rdoc/markup/to_test.rb +10 -3
  137. data/lib/rdoc/markup/to_tt_only.rb +17 -31
  138. data/lib/rdoc/markup/verbatim.rb +5 -6
  139. data/lib/rdoc/markup.rb +59 -707
  140. data/lib/rdoc/options.rb +228 -101
  141. data/lib/rdoc/parser/c.rb +186 -184
  142. data/lib/rdoc/parser/changelog.rb +57 -13
  143. data/lib/rdoc/parser/markdown.rb +0 -2
  144. data/lib/rdoc/parser/rbs.rb +275 -0
  145. data/lib/rdoc/parser/rd.rb +0 -1
  146. data/lib/rdoc/parser/ruby.rb +963 -2024
  147. data/lib/rdoc/parser/ruby_colorizer.rb +253 -0
  148. data/lib/rdoc/parser/simple.rb +6 -23
  149. data/lib/rdoc/parser/text.rb +0 -1
  150. data/lib/rdoc/parser.rb +35 -14
  151. data/lib/rdoc/rbs_helper.rb +186 -0
  152. data/lib/rdoc/rd/block_parser.rb +659 -11
  153. data/lib/rdoc/rd/block_parser.ry +13 -9
  154. data/lib/rdoc/rd/inline.rb +4 -5
  155. data/lib/rdoc/rd/inline_parser.rb +646 -2
  156. data/lib/rdoc/rd.rb +4 -5
  157. data/lib/rdoc/rdoc.rb +234 -90
  158. data/lib/rdoc/ri/driver.rb +172 -172
  159. data/lib/rdoc/ri/paths.rb +3 -3
  160. data/lib/rdoc/{servlet.rb → ri/servlet.rb} +28 -27
  161. data/lib/rdoc/ri/store.rb +0 -1
  162. data/lib/rdoc/ri/task.rb +3 -3
  163. data/lib/rdoc/ri.rb +5 -5
  164. data/lib/rdoc/rubygems_hook.rb +106 -25
  165. data/lib/rdoc/server.rb +460 -0
  166. data/lib/rdoc/stats/normal.rb +1 -1
  167. data/lib/rdoc/stats/quiet.rb +1 -2
  168. data/lib/rdoc/stats/verbose.rb +3 -5
  169. data/lib/rdoc/stats.rb +158 -136
  170. data/lib/rdoc/store.rb +267 -48
  171. data/lib/rdoc/task.rb +54 -28
  172. data/lib/rdoc/text.rb +60 -120
  173. data/lib/rdoc/token_stream.rb +30 -45
  174. data/lib/rdoc/tom_doc.rb +9 -15
  175. data/lib/rdoc/version.rb +3 -1
  176. data/lib/rdoc.rb +90 -52
  177. data/lib/rubygems_plugin.rb +14 -0
  178. data/man/ri.1 +2 -0
  179. data/rdoc-logo.svg +43 -0
  180. data/rdoc.gemspec +25 -200
  181. metadata +120 -53
  182. data/CONTRIBUTING.rdoc +0 -220
  183. data/ExampleMarkdown.md +0 -37
  184. data/ExampleRDoc.rdoc +0 -208
  185. data/Gemfile +0 -12
  186. data/README.rdoc +0 -129
  187. data/RI.rdoc +0 -57
  188. data/Rakefile +0 -101
  189. data/bin/console +0 -7
  190. data/bin/setup +0 -6
  191. data/lib/rdoc/anon_class.rb +0 -11
  192. data/lib/rdoc/context/section.rb +0 -232
  193. data/lib/rdoc/generator/template/darkfish/.document +0 -0
  194. data/lib/rdoc/generator/template/darkfish/_sidebar_VCS_info.rhtml +0 -19
  195. data/lib/rdoc/generator/template/darkfish/_sidebar_in_files.rhtml +0 -9
  196. data/lib/rdoc/generator/template/json_index/.document +0 -1
  197. data/lib/rdoc/ghost_method.rb +0 -7
  198. data/lib/rdoc/markup/attr_changer.rb +0 -23
  199. data/lib/rdoc/markup/attr_span.rb +0 -36
  200. data/lib/rdoc/markup/attribute_manager.rb +0 -409
  201. data/lib/rdoc/markup/attributes.rb +0 -71
  202. data/lib/rdoc/markup/regexp_handling.rb +0 -41
  203. data/lib/rdoc/meta_method.rb +0 -7
  204. data/lib/rdoc/parser/ripper_state_lex.rb +0 -590
  205. data/lib/rdoc/parser/ruby_tools.rb +0 -167
@@ -7,7 +7,7 @@ class RDoc::Markup::ToAnsi < RDoc::Markup::ToRdoc
7
7
  ##
8
8
  # Creates a new ToAnsi visitor that is ready to output vibrant ANSI color!
9
9
 
10
- def initialize markup = nil
10
+ def initialize
11
11
  super
12
12
 
13
13
  @headings.clear
@@ -19,16 +19,63 @@ class RDoc::Markup::ToAnsi < RDoc::Markup::ToRdoc
19
19
  ##
20
20
  # Maps attributes to ANSI sequences
21
21
 
22
- def init_tags
23
- add_tag :BOLD, "\e[1m", "\e[m"
24
- add_tag :TT, "\e[7m", "\e[m"
25
- add_tag :EM, "\e[4m", "\e[m"
22
+ ANSI_STYLE_CODES_ON = {
23
+ BOLD: 1,
24
+ TT: 7,
25
+ EM: 4,
26
+ STRIKE: 9
27
+ }
28
+
29
+ ANSI_STYLE_CODES_OFF = {
30
+ BOLD: 22,
31
+ TT: 27,
32
+ EM: 24,
33
+ STRIKE: 29
34
+ }
35
+
36
+ # Apply the given attributes by emitting ANSI sequences.
37
+ # Emitting attribute changes are deferred until new text is added and applied in batch.
38
+ # This method computes the necessary ANSI codes to transition from the
39
+ # current set of applied attributes to the new set of +attributes+.
40
+
41
+ def apply_attributes(attributes)
42
+ before = @applied_attributes
43
+ after = attributes.sort
44
+ return if before == after
45
+
46
+ if after.empty?
47
+ emit_inline("\e[m")
48
+ elsif !before.empty? && before.size > (before & after).size + 1
49
+ codes = after.map {|attr| ANSI_STYLE_CODES_ON[attr] }.compact
50
+ emit_inline("\e[#{[0, *codes].join(';')}m")
51
+ else
52
+ off_codes = (before - after).map {|attr| ANSI_STYLE_CODES_OFF[attr] }.compact
53
+ on_codes = (after - before).map {|attr| ANSI_STYLE_CODES_ON[attr] }.compact
54
+ emit_inline("\e[#{(off_codes + on_codes).join(';')}m")
55
+ end
56
+ @applied_attributes = attributes
57
+ end
58
+
59
+ def add_text(text)
60
+ attrs = @attributes.keys
61
+ if @applied_attributes != attrs
62
+ apply_attributes(attrs)
63
+ end
64
+ emit_inline(text)
65
+ end
66
+
67
+ def handle_inline(text)
68
+ @applied_attributes = []
69
+ res = super
70
+ res << "\e[m" unless @applied_attributes.empty?
71
+ @applied_attributes = []
72
+ res
26
73
  end
27
74
 
28
75
  ##
29
76
  # Overrides indent width to ensure output lines up correctly.
30
77
 
31
- def accept_list_item_end list_item
78
+ def accept_list_item_end(list_item)
32
79
  width = case @list_type.last
33
80
  when :BULLET then
34
81
  2
@@ -52,7 +99,7 @@ class RDoc::Markup::ToAnsi < RDoc::Markup::ToRdoc
52
99
  ##
53
100
  # Adds coloring to note and label list items
54
101
 
55
- def accept_list_item_start list_item
102
+ def accept_list_item_start(list_item)
56
103
  bullet = case @list_type.last
57
104
  when :BULLET then
58
105
  '*'
@@ -81,6 +128,10 @@ class RDoc::Markup::ToAnsi < RDoc::Markup::ToRdoc
81
128
  end
82
129
  end
83
130
 
131
+ def calculate_text_width(text)
132
+ text.gsub(/\e\[[\d;]*m/, '').size
133
+ end
134
+
84
135
  ##
85
136
  # Starts accepting with a reset screen
86
137
 
@@ -91,4 +142,3 @@ class RDoc::Markup::ToAnsi < RDoc::Markup::ToRdoc
91
142
  end
92
143
 
93
144
  end
94
-
@@ -10,27 +10,42 @@ class RDoc::Markup::ToBs < RDoc::Markup::ToRdoc
10
10
  ##
11
11
  # Returns a new ToBs that is ready for hot backspace action!
12
12
 
13
- def initialize markup = nil
13
+ def initialize
14
14
  super
15
15
 
16
16
  @in_b = false
17
17
  @in_em = false
18
18
  end
19
19
 
20
- ##
21
- # Sets a flag that is picked up by #annotate to do the right thing in
22
- # #convert_string
20
+ def handle_inline(text)
21
+ initial_style = []
22
+ initial_style << :BOLD if @in_b
23
+ initial_style << :EM if @in_em
24
+ super(text, initial_style)
25
+ end
23
26
 
24
- def init_tags
25
- add_tag :BOLD, '+b', '-b'
26
- add_tag :EM, '+_', '-_'
27
- add_tag :TT, '' , '' # we need in_tt information maintained
27
+ def add_text(text)
28
+ attrs = @attributes.keys
29
+ if attrs.include? :BOLD
30
+ styled = +''
31
+ text.chars.each do |c|
32
+ styled << "#{c}\b#{c}"
33
+ end
34
+ text = styled
35
+ elsif attrs.include? :EM
36
+ styled = +''
37
+ text.chars.each do |c|
38
+ styled << "_\b#{c}"
39
+ end
40
+ text = styled
41
+ end
42
+ emit_inline(text)
28
43
  end
29
44
 
30
45
  ##
31
46
  # Makes heading text bold.
32
47
 
33
- def accept_heading heading
48
+ def accept_heading(heading)
34
49
  use_prefix or @res << ' ' * @indent
35
50
  @res << @headings[heading.level][0]
36
51
  @in_b = true
@@ -41,37 +56,31 @@ class RDoc::Markup::ToBs < RDoc::Markup::ToRdoc
41
56
  end
42
57
 
43
58
  ##
44
- # Turns on or off regexp handling for +convert_string+
45
-
46
- def annotate tag
47
- case tag
48
- when '+b' then @in_b = true
49
- when '-b' then @in_b = false
50
- when '+_' then @in_em = true
51
- when '-_' then @in_em = false
59
+ # Prepares the visitor for consuming +list_item+
60
+
61
+ def accept_list_item_start(list_item)
62
+ type = @list_type.last
63
+
64
+ case type
65
+ when :NOTE, :LABEL then
66
+ bullets = Array(list_item.label).map do |label|
67
+ attributes(label).strip
68
+ end.join "\n"
69
+
70
+ bullets << ":\n" unless bullets.empty?
71
+
72
+ @prefix = ' ' * @indent
73
+ @indent += 2
74
+ @prefix << bullets + (' ' * @indent)
75
+ else
76
+ bullet = type == :BULLET ? '*' : @list_index.last.to_s + '.'
77
+ @prefix = (' ' * @indent) + bullet.ljust(bullet.length + 1)
78
+ width = bullet.length + 1
79
+ @indent += width
52
80
  end
53
- ''
54
- end
55
-
56
- ##
57
- # Calls convert_string on the result of convert_regexp_handling
58
-
59
- def convert_regexp_handling target
60
- convert_string super
61
81
  end
62
82
 
63
- ##
64
- # Adds bold or underline mixed with backspaces
65
-
66
- def convert_string string
67
- return string unless @in_b or @in_em
68
- chars = if @in_b then
69
- string.chars.map do |char| "#{char}\b#{char}" end
70
- elsif @in_em then
71
- string.chars.map do |char| "_\b#{char}" end
72
- end
73
-
74
- chars.join
83
+ def calculate_text_width(text)
84
+ text.gsub(/_\x08/, '').gsub(/\x08./, '').size
75
85
  end
76
-
77
86
  end