rdoc 4.3.0 → 5.0.0.beta1

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.

Files changed (248) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +13 -0
  3. data/.travis.yml +23 -0
  4. data/CONTRIBUTING.rdoc +4 -3
  5. data/Gemfile +3 -0
  6. data/History.rdoc +15 -4
  7. data/LEGAL.rdoc +2 -2
  8. data/README.rdoc +1 -0
  9. data/Rakefile +41 -79
  10. data/bin/console +7 -0
  11. data/bin/setup +6 -0
  12. data/{bin → exe}/rdoc +0 -0
  13. data/{bin → exe}/ri +0 -0
  14. data/lib/rdoc.rb +2 -1
  15. data/lib/rdoc/alias.rb +1 -0
  16. data/lib/rdoc/anon_class.rb +1 -0
  17. data/lib/rdoc/any_method.rb +1 -0
  18. data/lib/rdoc/attr.rb +1 -0
  19. data/lib/rdoc/class_module.rb +1 -0
  20. data/lib/rdoc/code_object.rb +1 -0
  21. data/lib/rdoc/code_objects.rb +1 -0
  22. data/lib/rdoc/comment.rb +1 -0
  23. data/lib/rdoc/constant.rb +1 -0
  24. data/lib/rdoc/context.rb +4 -1
  25. data/lib/rdoc/context/section.rb +7 -0
  26. data/lib/rdoc/cross_reference.rb +1 -0
  27. data/lib/rdoc/encoding.rb +14 -0
  28. data/lib/rdoc/erb_partial.rb +1 -0
  29. data/lib/rdoc/erbio.rb +1 -0
  30. data/lib/rdoc/extend.rb +1 -0
  31. data/lib/rdoc/generator.rb +1 -0
  32. data/lib/rdoc/generator/darkfish.rb +1 -0
  33. data/lib/rdoc/generator/json_index.rb +1 -0
  34. data/lib/rdoc/generator/markup.rb +1 -0
  35. data/lib/rdoc/generator/pot.rb +1 -0
  36. data/lib/rdoc/generator/pot/message_extractor.rb +1 -0
  37. data/lib/rdoc/generator/pot/po.rb +1 -0
  38. data/lib/rdoc/generator/pot/po_entry.rb +1 -0
  39. data/lib/rdoc/generator/ri.rb +1 -0
  40. data/lib/rdoc/generator/template/darkfish/_head.rhtml +2 -1
  41. data/lib/rdoc/generator/template/darkfish/css/fonts.css +6 -6
  42. data/lib/rdoc/generator/template/darkfish/js/darkfish.js +7 -7
  43. data/lib/rdoc/generator/template/json_index/js/searcher.js +1 -0
  44. data/lib/rdoc/ghost_method.rb +1 -0
  45. data/lib/rdoc/i18n.rb +1 -0
  46. data/lib/rdoc/i18n/locale.rb +1 -0
  47. data/lib/rdoc/i18n/text.rb +1 -0
  48. data/lib/rdoc/include.rb +1 -0
  49. data/lib/rdoc/known_classes.rb +1 -0
  50. data/lib/rdoc/markdown.kpeg +2 -6
  51. data/lib/rdoc/markdown.rb +2 -6
  52. data/lib/rdoc/markdown/entities.rb +1 -0
  53. data/lib/rdoc/markdown/{literals_1_9.kpeg → literals.kpeg} +0 -0
  54. data/lib/rdoc/markdown/{literals_1_9.rb → literals.rb} +1 -4
  55. data/lib/rdoc/markup.rb +1 -0
  56. data/lib/rdoc/markup/attr_changer.rb +1 -0
  57. data/lib/rdoc/markup/attr_span.rb +1 -0
  58. data/lib/rdoc/markup/attribute_manager.rb +1 -0
  59. data/lib/rdoc/markup/attributes.rb +1 -0
  60. data/lib/rdoc/markup/blank_line.rb +1 -0
  61. data/lib/rdoc/markup/block_quote.rb +1 -0
  62. data/lib/rdoc/markup/document.rb +1 -0
  63. data/lib/rdoc/markup/formatter.rb +1 -0
  64. data/lib/rdoc/markup/formatter_test_case.rb +1 -4
  65. data/lib/rdoc/markup/hard_break.rb +1 -0
  66. data/lib/rdoc/markup/heading.rb +1 -0
  67. data/lib/rdoc/markup/include.rb +1 -0
  68. data/lib/rdoc/markup/indented_paragraph.rb +1 -0
  69. data/lib/rdoc/markup/inline.rb +1 -0
  70. data/lib/rdoc/markup/list.rb +1 -0
  71. data/lib/rdoc/markup/list_item.rb +1 -0
  72. data/lib/rdoc/markup/paragraph.rb +1 -0
  73. data/lib/rdoc/markup/parser.rb +1 -0
  74. data/lib/rdoc/markup/pre_process.rb +1 -0
  75. data/lib/rdoc/markup/raw.rb +1 -0
  76. data/lib/rdoc/markup/rule.rb +1 -0
  77. data/lib/rdoc/markup/special.rb +1 -0
  78. data/lib/rdoc/markup/text_formatter_test_case.rb +1 -0
  79. data/lib/rdoc/markup/to_ansi.rb +1 -0
  80. data/lib/rdoc/markup/to_bs.rb +1 -0
  81. data/lib/rdoc/markup/to_html.rb +1 -0
  82. data/lib/rdoc/markup/to_html_crossref.rb +1 -0
  83. data/lib/rdoc/markup/to_html_snippet.rb +1 -0
  84. data/lib/rdoc/markup/to_joined_paragraph.rb +1 -0
  85. data/lib/rdoc/markup/to_label.rb +1 -0
  86. data/lib/rdoc/markup/to_markdown.rb +1 -0
  87. data/lib/rdoc/markup/to_rdoc.rb +1 -0
  88. data/lib/rdoc/markup/to_table_of_contents.rb +1 -0
  89. data/lib/rdoc/markup/to_test.rb +1 -0
  90. data/lib/rdoc/markup/to_tt_only.rb +1 -0
  91. data/lib/rdoc/markup/verbatim.rb +1 -0
  92. data/lib/rdoc/meta_method.rb +1 -0
  93. data/lib/rdoc/method_attr.rb +1 -0
  94. data/lib/rdoc/mixin.rb +1 -0
  95. data/lib/rdoc/normal_class.rb +1 -0
  96. data/lib/rdoc/normal_module.rb +1 -0
  97. data/lib/rdoc/options.rb +1 -0
  98. data/lib/rdoc/parser.rb +1 -0
  99. data/lib/rdoc/parser/c.rb +76 -33
  100. data/lib/rdoc/parser/changelog.rb +7 -1
  101. data/lib/rdoc/parser/markdown.rb +1 -0
  102. data/lib/rdoc/parser/rd.rb +1 -0
  103. data/lib/rdoc/parser/ruby.rb +1 -0
  104. data/lib/rdoc/parser/ruby_tools.rb +1 -0
  105. data/lib/rdoc/parser/simple.rb +1 -0
  106. data/lib/rdoc/parser/text.rb +1 -0
  107. data/lib/rdoc/rd.rb +1 -0
  108. data/lib/rdoc/rd/inline.rb +1 -0
  109. data/lib/rdoc/rdoc.rb +2 -1
  110. data/lib/rdoc/require.rb +1 -0
  111. data/lib/rdoc/ri.rb +1 -0
  112. data/lib/rdoc/ri/driver.rb +5 -19
  113. data/lib/rdoc/ri/formatter.rb +1 -0
  114. data/lib/rdoc/ri/paths.rb +1 -0
  115. data/lib/rdoc/ri/store.rb +1 -0
  116. data/lib/rdoc/ri/task.rb +72 -0
  117. data/lib/rdoc/ruby_lex.rb +11 -17
  118. data/lib/rdoc/ruby_token.rb +1 -0
  119. data/lib/rdoc/rubygems_hook.rb +1 -0
  120. data/lib/rdoc/servlet.rb +4 -3
  121. data/lib/rdoc/single_class.rb +1 -0
  122. data/lib/rdoc/stats.rb +1 -0
  123. data/lib/rdoc/stats/normal.rb +1 -0
  124. data/lib/rdoc/stats/quiet.rb +1 -0
  125. data/lib/rdoc/stats/verbose.rb +1 -0
  126. data/lib/rdoc/store.rb +3 -9
  127. data/lib/rdoc/task.rb +1 -0
  128. data/lib/rdoc/test_case.rb +1 -10
  129. data/lib/rdoc/text.rb +1 -0
  130. data/lib/rdoc/token_stream.rb +1 -0
  131. data/lib/rdoc/tom_doc.rb +1 -0
  132. data/lib/rdoc/top_level.rb +1 -0
  133. data/rdoc.gemspec +60 -0
  134. metadata +32 -155
  135. data/Manifest.txt +0 -309
  136. data/lib/rdoc/markdown/literals_1_8.kpeg +0 -18
  137. data/lib/rdoc/markdown/literals_1_8.rb +0 -416
  138. data/test/MarkdownTest_1.0.3/Amps and angle encoding.text +0 -21
  139. data/test/MarkdownTest_1.0.3/Auto links.text +0 -13
  140. data/test/MarkdownTest_1.0.3/Backslash escapes.text +0 -120
  141. data/test/MarkdownTest_1.0.3/Blockquotes with code blocks.text +0 -11
  142. data/test/MarkdownTest_1.0.3/Code Blocks.text +0 -14
  143. data/test/MarkdownTest_1.0.3/Code Spans.text +0 -6
  144. data/test/MarkdownTest_1.0.3/Hard-wrapped paragraphs with list-like lines.text +0 -8
  145. data/test/MarkdownTest_1.0.3/Horizontal rules.text +0 -67
  146. data/test/MarkdownTest_1.0.3/Inline HTML (Advanced).text +0 -15
  147. data/test/MarkdownTest_1.0.3/Inline HTML (Simple).text +0 -69
  148. data/test/MarkdownTest_1.0.3/Inline HTML comments.text +0 -13
  149. data/test/MarkdownTest_1.0.3/Links, inline style.text +0 -12
  150. data/test/MarkdownTest_1.0.3/Links, reference style.text +0 -71
  151. data/test/MarkdownTest_1.0.3/Links, shortcut references.text +0 -20
  152. data/test/MarkdownTest_1.0.3/Literal quotes in titles.text +0 -7
  153. data/test/MarkdownTest_1.0.3/Markdown Documentation - Basics.text +0 -306
  154. data/test/MarkdownTest_1.0.3/Markdown Documentation - Syntax.text +0 -888
  155. data/test/MarkdownTest_1.0.3/Nested blockquotes.text +0 -5
  156. data/test/MarkdownTest_1.0.3/Ordered and unordered lists.text +0 -131
  157. data/test/MarkdownTest_1.0.3/Strong and em together.text +0 -7
  158. data/test/MarkdownTest_1.0.3/Tabs.text +0 -21
  159. data/test/MarkdownTest_1.0.3/Tidyness.text +0 -5
  160. data/test/README +0 -1
  161. data/test/binary.dat +0 -0
  162. data/test/hidden.zip.txt +0 -1
  163. data/test/test.ja.largedoc +0 -3
  164. data/test/test.ja.rdoc +0 -10
  165. data/test/test.ja.txt +0 -8
  166. data/test/test.txt +0 -1
  167. data/test/test_rdoc_alias.rb +0 -13
  168. data/test/test_rdoc_any_method.rb +0 -460
  169. data/test/test_rdoc_attr.rb +0 -190
  170. data/test/test_rdoc_class_module.rb +0 -1492
  171. data/test/test_rdoc_code_object.rb +0 -450
  172. data/test/test_rdoc_comment.rb +0 -504
  173. data/test/test_rdoc_constant.rb +0 -181
  174. data/test/test_rdoc_context.rb +0 -901
  175. data/test/test_rdoc_context_section.rb +0 -130
  176. data/test/test_rdoc_cross_reference.rb +0 -192
  177. data/test/test_rdoc_encoding.rb +0 -227
  178. data/test/test_rdoc_extend.rb +0 -94
  179. data/test/test_rdoc_generator_darkfish.rb +0 -229
  180. data/test/test_rdoc_generator_json_index.rb +0 -324
  181. data/test/test_rdoc_generator_markup.rb +0 -59
  182. data/test/test_rdoc_generator_pot.rb +0 -91
  183. data/test/test_rdoc_generator_pot_po.rb +0 -51
  184. data/test/test_rdoc_generator_pot_po_entry.rb +0 -139
  185. data/test/test_rdoc_generator_ri.rb +0 -78
  186. data/test/test_rdoc_i18n_locale.rb +0 -73
  187. data/test/test_rdoc_i18n_text.rb +0 -123
  188. data/test/test_rdoc_include.rb +0 -108
  189. data/test/test_rdoc_markdown.rb +0 -980
  190. data/test/test_rdoc_markdown_test.rb +0 -1884
  191. data/test/test_rdoc_markup.rb +0 -95
  192. data/test/test_rdoc_markup_attribute_manager.rb +0 -364
  193. data/test/test_rdoc_markup_attributes.rb +0 -39
  194. data/test/test_rdoc_markup_document.rb +0 -207
  195. data/test/test_rdoc_markup_formatter.rb +0 -175
  196. data/test/test_rdoc_markup_hard_break.rb +0 -31
  197. data/test/test_rdoc_markup_heading.rb +0 -29
  198. data/test/test_rdoc_markup_include.rb +0 -19
  199. data/test/test_rdoc_markup_indented_paragraph.rb +0 -53
  200. data/test/test_rdoc_markup_paragraph.rb +0 -32
  201. data/test/test_rdoc_markup_parser.rb +0 -1680
  202. data/test/test_rdoc_markup_pre_process.rb +0 -473
  203. data/test/test_rdoc_markup_raw.rb +0 -22
  204. data/test/test_rdoc_markup_to_ansi.rb +0 -369
  205. data/test/test_rdoc_markup_to_bs.rb +0 -366
  206. data/test/test_rdoc_markup_to_html.rb +0 -662
  207. data/test/test_rdoc_markup_to_html_crossref.rb +0 -225
  208. data/test/test_rdoc_markup_to_html_snippet.rb +0 -711
  209. data/test/test_rdoc_markup_to_joined_paragraph.rb +0 -32
  210. data/test/test_rdoc_markup_to_label.rb +0 -112
  211. data/test/test_rdoc_markup_to_markdown.rb +0 -389
  212. data/test/test_rdoc_markup_to_rdoc.rb +0 -377
  213. data/test/test_rdoc_markup_to_table_of_contents.rb +0 -126
  214. data/test/test_rdoc_markup_to_tt_only.rb +0 -246
  215. data/test/test_rdoc_markup_verbatim.rb +0 -29
  216. data/test/test_rdoc_method_attr.rb +0 -193
  217. data/test/test_rdoc_normal_class.rb +0 -47
  218. data/test/test_rdoc_normal_module.rb +0 -42
  219. data/test/test_rdoc_options.rb +0 -766
  220. data/test/test_rdoc_parser.rb +0 -327
  221. data/test/test_rdoc_parser_c.rb +0 -1896
  222. data/test/test_rdoc_parser_changelog.rb +0 -315
  223. data/test/test_rdoc_parser_markdown.rb +0 -61
  224. data/test/test_rdoc_parser_rd.rb +0 -55
  225. data/test/test_rdoc_parser_ruby.rb +0 -3322
  226. data/test/test_rdoc_parser_simple.rb +0 -115
  227. data/test/test_rdoc_rd.rb +0 -30
  228. data/test/test_rdoc_rd_block_parser.rb +0 -535
  229. data/test/test_rdoc_rd_inline.rb +0 -63
  230. data/test/test_rdoc_rd_inline_parser.rb +0 -177
  231. data/test/test_rdoc_rdoc.rb +0 -455
  232. data/test/test_rdoc_require.rb +0 -25
  233. data/test/test_rdoc_ri_driver.rb +0 -1436
  234. data/test/test_rdoc_ri_paths.rb +0 -155
  235. data/test/test_rdoc_ruby_lex.rb +0 -421
  236. data/test/test_rdoc_ruby_token.rb +0 -19
  237. data/test/test_rdoc_rubygems_hook.rb +0 -251
  238. data/test/test_rdoc_servlet.rb +0 -534
  239. data/test/test_rdoc_single_class.rb +0 -20
  240. data/test/test_rdoc_stats.rb +0 -722
  241. data/test/test_rdoc_store.rb +0 -993
  242. data/test/test_rdoc_task.rb +0 -173
  243. data/test/test_rdoc_text.rb +0 -557
  244. data/test/test_rdoc_token_stream.rb +0 -42
  245. data/test/test_rdoc_tom_doc.rb +0 -520
  246. data/test/test_rdoc_top_level.rb +0 -287
  247. data/test/xref_data.rb +0 -76
  248. data/test/xref_test_case.rb +0 -67
@@ -1,155 +0,0 @@
1
- require 'rdoc/test_case'
2
-
3
- class TestRDocRIPaths < RDoc::TestCase
4
-
5
- def setup
6
- super
7
-
8
- @orig_gem_path = Gem.path
9
-
10
- @tempdir = File.join Dir.tmpdir, "test_rdoc_ri_paths_#{$$}"
11
- Gem.use_paths @tempdir
12
- Gem.ensure_gem_subdirectories @tempdir
13
-
14
- specs = [
15
- @rake_10 = Gem::Specification.new('rake', '10.0.1'),
16
- @rdoc_4_0 = Gem::Specification.new('rdoc', '4.0'),
17
- @rdoc_3_12 = Gem::Specification.new('rdoc', '3.12'),
18
- @nodoc = Gem::Specification.new('nodoc', '1.0'),
19
- ]
20
-
21
- specs.each do |spec|
22
- spec.loaded_from = spec.spec_file
23
-
24
- open spec.spec_file, 'w' do |file|
25
- file.write spec.to_ruby_for_cache
26
- end
27
-
28
- FileUtils.mkdir_p File.join(spec.doc_dir, 'ri') unless
29
- spec.name == 'nodoc'
30
- end
31
-
32
- Gem::Specification.reset
33
- Gem::Specification.all = specs
34
- end
35
-
36
- def teardown
37
- super
38
-
39
- Gem.use_paths(*@orig_gem_path)
40
- Gem::Specification.reset
41
- FileUtils.rm_rf @tempdir
42
- end
43
-
44
- def test_class_each
45
- enum = RDoc::RI::Paths.each true, true, true, :all
46
-
47
- path = enum.map { |dir,| dir }
48
-
49
- assert_equal RDoc::RI::Paths.system_dir, path.shift
50
- assert_equal RDoc::RI::Paths.site_dir, path.shift
51
- assert_equal RDoc::RI::Paths.home_dir, path.shift
52
- assert_equal File.join(@nodoc.doc_dir, 'ri'), path.shift
53
- assert_equal File.join(@rake_10.doc_dir, 'ri'), path.shift
54
- assert_equal File.join(@rdoc_4_0.doc_dir, 'ri'), path.shift
55
- assert_equal File.join(@rdoc_3_12.doc_dir, 'ri'), path.shift
56
- assert_empty path
57
- end
58
-
59
- def test_class_gemdirs_latest
60
- Dir.chdir @tempdir do
61
- gemdirs = RDoc::RI::Paths.gemdirs :latest
62
-
63
- expected = [
64
- File.join(@rake_10.doc_dir, 'ri'),
65
- File.join(@rdoc_4_0.doc_dir, 'ri'),
66
- ]
67
-
68
- assert_equal expected, gemdirs
69
- end
70
- end
71
-
72
- def test_class_gemdirs_legacy
73
- Dir.chdir @tempdir do
74
- gemdirs = RDoc::RI::Paths.gemdirs true
75
-
76
- expected = [
77
- File.join(@rake_10.doc_dir, 'ri'),
78
- File.join(@rdoc_4_0.doc_dir, 'ri'),
79
- ]
80
-
81
- assert_equal expected, gemdirs
82
- end
83
- end
84
-
85
- def test_class_gemdirs_all
86
- Dir.chdir @tempdir do
87
- gemdirs = RDoc::RI::Paths.gemdirs :all
88
-
89
- expected = [
90
- File.join(@nodoc.doc_dir, 'ri'),
91
- File.join(@rake_10.doc_dir, 'ri'),
92
- File.join(@rdoc_4_0.doc_dir, 'ri'),
93
- File.join(@rdoc_3_12.doc_dir, 'ri'),
94
- ]
95
-
96
- assert_equal expected, gemdirs
97
- end
98
- end
99
-
100
- def test_class_gem_dir
101
- dir = RDoc::RI::Paths.gem_dir 'rake', '10.0.1'
102
-
103
- expected = File.join @rake_10.doc_dir, 'ri'
104
-
105
- assert_equal expected, dir
106
- end
107
-
108
- def test_class_home_dir
109
- dir = RDoc::RI::Paths.home_dir
110
-
111
- assert_equal RDoc::RI::Paths::HOMEDIR, dir
112
- end
113
-
114
- def test_class_path_nonexistent
115
- temp_dir do |dir|
116
- nonexistent = File.join dir, 'nonexistent'
117
- dir = RDoc::RI::Paths.path true, true, true, true, nonexistent
118
-
119
- refute_includes dir, nonexistent
120
- end
121
- end
122
-
123
- def test_class_raw_path
124
- path = RDoc::RI::Paths.raw_path true, true, true, true
125
-
126
- assert_equal RDoc::RI::Paths.system_dir, path.shift
127
- assert_equal RDoc::RI::Paths.site_dir, path.shift
128
- assert_equal RDoc::RI::Paths.home_dir, path.shift
129
- assert_equal File.join(@rake_10.doc_dir, 'ri'), path.shift
130
- end
131
-
132
- def test_class_raw_path_extra_dirs
133
- path = RDoc::RI::Paths.raw_path true, true, true, true, '/nonexistent'
134
-
135
- assert_equal '/nonexistent', path.shift
136
- assert_equal RDoc::RI::Paths.system_dir, path.shift
137
- assert_equal RDoc::RI::Paths.site_dir, path.shift
138
- assert_equal RDoc::RI::Paths.home_dir, path.shift
139
- assert_equal File.join(@rake_10.doc_dir, 'ri'), path.shift
140
- end
141
-
142
- def test_class_site_dir
143
- dir = RDoc::RI::Paths.site_dir
144
-
145
- assert_equal File.join(RDoc::RI::Paths::BASE, 'site'), dir
146
- end
147
-
148
- def test_class_system_dir
149
- dir = RDoc::RI::Paths.system_dir
150
-
151
- assert_equal File.join(RDoc::RI::Paths::BASE, 'system'), dir
152
- end
153
-
154
- end
155
-
@@ -1,421 +0,0 @@
1
- # coding: UTF-8
2
-
3
- require 'rdoc/test_case'
4
-
5
- class TestRDocRubyLex < RDoc::TestCase
6
-
7
- def setup
8
- @TK = RDoc::RubyToken
9
- end
10
-
11
- def test_class_tokenize
12
- tokens = RDoc::RubyLex.tokenize "def x() end", nil
13
-
14
- expected = [
15
- @TK::TkDEF .new( 0, 1, 0, "def"),
16
- @TK::TkSPACE .new( 3, 1, 3, " "),
17
- @TK::TkIDENTIFIER.new( 4, 1, 4, "x"),
18
- @TK::TkLPAREN .new( 5, 1, 5, "("),
19
- @TK::TkRPAREN .new( 6, 1, 6, ")"),
20
- @TK::TkSPACE .new( 7, 1, 7, " "),
21
- @TK::TkEND .new( 8, 1, 8, "end"),
22
- @TK::TkNL .new(11, 1, 11, "\n"),
23
- ]
24
-
25
- assert_equal expected, tokens
26
- end
27
-
28
- def test_class_tokenize___END__
29
- tokens = RDoc::RubyLex.tokenize '__END__', nil
30
-
31
- expected = [
32
- @TK::TkEND_OF_SCRIPT.new(0, 1, 0, '__END__'),
33
- @TK::TkNL .new(7, 1, 7, "\n"),
34
- ]
35
-
36
- assert_equal expected, tokens
37
- end
38
-
39
- def test_class_tokenize_character_literal
40
- tokens = RDoc::RubyLex.tokenize "?\\", nil
41
-
42
- expected = [
43
- @TK::TkCHAR.new( 0, 1, 0, "?\\"),
44
- @TK::TkNL .new( 2, 1, 2, "\n"),
45
- ]
46
-
47
- assert_equal expected, tokens
48
- end
49
-
50
- def test_class_tokenize_def_heredoc
51
- tokens = RDoc::RubyLex.tokenize <<-'RUBY', nil
52
- def x
53
- <<E
54
- Line 1
55
- Line 2
56
- E
57
- end
58
- RUBY
59
-
60
- expected = [
61
- @TK::TkDEF .new( 0, 1, 0, 'def'),
62
- @TK::TkSPACE .new( 3, 1, 3, ' '),
63
- @TK::TkIDENTIFIER.new( 4, 1, 4, 'x'),
64
- @TK::TkNL .new( 5, 1, 5, "\n"),
65
- @TK::TkSPACE .new( 6, 2, 0, ' '),
66
- @TK::TkHEREDOC .new( 8, 2, 2,
67
- %Q{<<E\nLine 1\nLine 2\nE}),
68
- @TK::TkNL .new(27, 5, 28, "\n"),
69
- @TK::TkEND .new(28, 6, 0, 'end'),
70
- @TK::TkNL .new(31, 6, 28, "\n"),
71
- ]
72
-
73
- assert_equal expected, tokens
74
- end
75
-
76
- def test_class_tokenize_hash_symbol
77
- tokens = RDoc::RubyLex.tokenize '{ class:"foo" }', nil
78
-
79
- expected = [
80
- @TK::TkLBRACE .new( 0, 1, 0, '{'),
81
- @TK::TkSPACE .new( 1, 1, 1, ' '),
82
- @TK::TkIDENTIFIER.new( 2, 1, 2, 'class'),
83
- @TK::TkSYMBEG .new( 7, 1, 7, ':'),
84
- @TK::TkSTRING .new( 8, 1, 8, '"foo"'),
85
- @TK::TkSPACE .new(13, 1, 13, ' '),
86
- @TK::TkRBRACE .new(14, 1, 14, '}'),
87
- @TK::TkNL .new(15, 1, 15, "\n"),
88
- ]
89
-
90
- assert_equal expected, tokens
91
- end
92
-
93
- def test_class_tokenize_heredoc_CR_NL
94
- tokens = RDoc::RubyLex.tokenize <<-RUBY, nil
95
- string = <<-STRING\r
96
- Line 1\r
97
- Line 2\r
98
- STRING\r
99
- RUBY
100
-
101
- expected = [
102
- @TK::TkIDENTIFIER.new( 0, 1, 0, 'string'),
103
- @TK::TkSPACE .new( 6, 1, 6, ' '),
104
- @TK::TkASSIGN .new( 7, 1, 7, '='),
105
- @TK::TkSPACE .new( 8, 1, 8, ' '),
106
- @TK::TkHEREDOC .new( 9, 1, 9,
107
- %Q{<<-STRING\nLine 1\nLine 2\n STRING}),
108
- @TK::TkSPACE .new(44, 4, 45, "\r"),
109
- @TK::TkNL .new(45, 4, 46, "\n"),
110
- ]
111
-
112
- assert_equal expected, tokens
113
- end
114
-
115
- def test_class_tokenize_heredoc_call
116
- tokens = RDoc::RubyLex.tokenize <<-'RUBY', nil
117
- string = <<-STRING.chomp
118
- Line 1
119
- Line 2
120
- STRING
121
- RUBY
122
-
123
- expected = [
124
- @TK::TkIDENTIFIER.new( 0, 1, 0, 'string'),
125
- @TK::TkSPACE .new( 6, 1, 6, ' '),
126
- @TK::TkASSIGN .new( 7, 1, 7, '='),
127
- @TK::TkSPACE .new( 8, 1, 8, ' '),
128
- @TK::TkSTRING .new( 9, 1, 9, %Q{"Line 1\nLine 2\n"}),
129
- @TK::TkDOT .new(41, 4, 42, '.'),
130
- @TK::TkIDENTIFIER.new(42, 4, 43, 'chomp'),
131
- @TK::TkNL .new(47, 4, 48, "\n"),
132
- ]
133
-
134
- assert_equal expected, tokens
135
- end
136
-
137
- def test_class_tokenize_heredoc_indent
138
- tokens = RDoc::RubyLex.tokenize <<-'RUBY', nil
139
- string = <<-STRING
140
- Line 1
141
- Line 2
142
- STRING
143
- RUBY
144
-
145
- expected = [
146
- @TK::TkIDENTIFIER.new( 0, 1, 0, 'string'),
147
- @TK::TkSPACE .new( 6, 1, 6, ' '),
148
- @TK::TkASSIGN .new( 7, 1, 7, '='),
149
- @TK::TkSPACE .new( 8, 1, 8, ' '),
150
- @TK::TkHEREDOC .new( 9, 1, 9,
151
- %Q{<<-STRING\nLine 1\nLine 2\n STRING}),
152
- @TK::TkNL .new(41, 4, 42, "\n"),
153
- ]
154
-
155
- assert_equal expected, tokens
156
- end
157
-
158
- def test_class_tokenize_heredoc_missing_end
159
- e = assert_raises RDoc::RubyLex::Error do
160
- RDoc::RubyLex.tokenize <<-'RUBY', nil
161
- >> string1 = <<-TXT
162
- >" That's swell
163
- >" TXT
164
- RUBY
165
- end
166
-
167
- assert_equal 'Missing terminating TXT for string', e.message
168
- end
169
-
170
- def test_class_tokenize_heredoc_percent_N
171
- tokens = RDoc::RubyLex.tokenize <<-'RUBY', nil
172
- a b <<-U
173
- %N
174
- U
175
- RUBY
176
-
177
- expected = [
178
- @TK::TkIDENTIFIER.new( 0, 1, 0, 'a'),
179
- @TK::TkSPACE .new( 1, 1, 1, ' '),
180
- @TK::TkIDENTIFIER.new( 2, 1, 2, 'b'),
181
- @TK::TkSPACE .new( 3, 1, 3, ' '),
182
- @TK::TkHEREDOC .new( 4, 1, 4, %Q{<<-U\n%N\nU}),
183
- @TK::TkNL .new(13, 3, 14, "\n"),
184
- ]
185
-
186
- assert_equal expected, tokens
187
- end
188
-
189
- def test_class_tokenize_identifier_high_unicode
190
- tokens = RDoc::RubyLex.tokenize '𝖒', nil
191
-
192
- expected = @TK::TkIDENTIFIER.new(0, 1, 0, '𝖒')
193
-
194
- assert_equal expected, tokens.first
195
- end
196
-
197
- def test_class_tokenize_percent_1
198
- tokens = RDoc::RubyLex.tokenize 'v%10==10', nil
199
-
200
- expected = [
201
- @TK::TkIDENTIFIER.new(0, 1, 0, 'v'),
202
- @TK::TkMOD.new( 1, 1, 1, '%'),
203
- @TK::TkINTEGER.new( 2, 1, 2, '10'),
204
- @TK::TkEQ.new( 4, 1, 4, '=='),
205
- @TK::TkINTEGER.new( 6, 1, 6, '10'),
206
- @TK::TkNL.new( 8, 1, 8, "\n"),
207
- ]
208
-
209
- assert_equal expected, tokens
210
- end
211
-
212
- def test_class_tokenize_percent_r
213
- tokens = RDoc::RubyLex.tokenize '%r[hi]', nil
214
-
215
- expected = [
216
- @TK::TkREGEXP.new( 0, 1, 0, '%r[hi]'),
217
- @TK::TkNL .new( 6, 1, 6, "\n"),
218
- ]
219
-
220
- assert_equal expected, tokens
221
- end
222
-
223
- def test_class_tokenize_percent_w
224
- tokens = RDoc::RubyLex.tokenize '%w[hi]', nil
225
-
226
- expected = [
227
- @TK::TkDSTRING.new( 0, 1, 0, '%w[hi]'),
228
- @TK::TkNL .new( 6, 1, 6, "\n"),
229
- ]
230
-
231
- assert_equal expected, tokens
232
- end
233
-
234
- def test_class_tokenize_percent_w_quote
235
- tokens = RDoc::RubyLex.tokenize '%w"hi"', nil
236
-
237
- expected = [
238
- @TK::TkDSTRING.new( 0, 1, 0, '%w"hi"'),
239
- @TK::TkNL .new( 6, 1, 6, "\n"),
240
- ]
241
-
242
- assert_equal expected, tokens
243
- end
244
-
245
- def test_class_tokenize_regexp
246
- tokens = RDoc::RubyLex.tokenize "/hay/", nil
247
-
248
- expected = [
249
- @TK::TkREGEXP.new( 0, 1, 0, "/hay/"),
250
- @TK::TkNL .new( 5, 1, 5, "\n"),
251
- ]
252
-
253
- assert_equal expected, tokens
254
- end
255
-
256
- def test_class_tokenize_regexp_options
257
- tokens = RDoc::RubyLex.tokenize "/hAY/i", nil
258
-
259
- expected = [
260
- @TK::TkREGEXP.new( 0, 1, 0, "/hAY/i"),
261
- @TK::TkNL .new( 6, 1, 6, "\n"),
262
- ]
263
-
264
- assert_equal expected, tokens
265
-
266
- tokens = RDoc::RubyLex.tokenize "/hAY/ix", nil
267
-
268
- expected = [
269
- @TK::TkREGEXP.new( 0, 1, 0, "/hAY/ix"),
270
- @TK::TkNL .new( 7, 1, 7, "\n"),
271
- ]
272
-
273
- assert_equal expected, tokens
274
- end
275
-
276
- def test_class_tokenize_regexp_backref
277
- tokens = RDoc::RubyLex.tokenize "/[csh](..) [csh]\\1 in/", nil
278
-
279
- expected = [
280
- @TK::TkREGEXP.new( 0, 1, 0, "/[csh](..) [csh]\\1 in/"),
281
- @TK::TkNL .new(22, 1, 22, "\n"),
282
- ]
283
-
284
- assert_equal expected, tokens
285
- end
286
-
287
- def test_class_tokenize_regexp_escape
288
- tokens = RDoc::RubyLex.tokenize "/\\//", nil
289
-
290
- expected = [
291
- @TK::TkREGEXP.new( 0, 1, 0, "/\\//"),
292
- @TK::TkNL .new( 4, 1, 4, "\n"),
293
- ]
294
-
295
- assert_equal expected, tokens
296
- end
297
-
298
- def test_class_tokenize_string
299
- tokens = RDoc::RubyLex.tokenize "'hi'", nil
300
-
301
- expected = [
302
- @TK::TkSTRING.new( 0, 1, 0, "'hi'"),
303
- @TK::TkNL .new( 4, 1, 4, "\n"),
304
- ]
305
-
306
- assert_equal expected, tokens
307
- end
308
-
309
- def test_class_tokenize_string_escape
310
- tokens = RDoc::RubyLex.tokenize '"\\n"', nil
311
- assert_equal @TK::TkSTRING.new( 0, 1, 0, "\"\\n\""), tokens.first
312
-
313
- tokens = RDoc::RubyLex.tokenize '"\\r"', nil
314
- assert_equal @TK::TkSTRING.new( 0, 1, 0, "\"\\r\""), tokens.first
315
-
316
- tokens = RDoc::RubyLex.tokenize '"\\f"', nil
317
- assert_equal @TK::TkSTRING.new( 0, 1, 0, "\"\\f\""), tokens.first
318
-
319
- tokens = RDoc::RubyLex.tokenize '"\\\\"', nil
320
- assert_equal @TK::TkSTRING.new( 0, 1, 0, "\"\\\\\""), tokens.first
321
-
322
- tokens = RDoc::RubyLex.tokenize '"\\t"', nil
323
- assert_equal @TK::TkSTRING.new( 0, 1, 0, "\"\\t\""), tokens.first
324
-
325
- tokens = RDoc::RubyLex.tokenize '"\\v"', nil
326
- assert_equal @TK::TkSTRING.new( 0, 1, 0, "\"\\v\""), tokens.first
327
-
328
- tokens = RDoc::RubyLex.tokenize '"\\a"', nil
329
- assert_equal @TK::TkSTRING.new( 0, 1, 0, "\"\\a\""), tokens.first
330
-
331
- tokens = RDoc::RubyLex.tokenize '"\\e"', nil
332
- assert_equal @TK::TkSTRING.new( 0, 1, 0, "\"\\e\""), tokens.first
333
-
334
- tokens = RDoc::RubyLex.tokenize '"\\b"', nil
335
- assert_equal @TK::TkSTRING.new( 0, 1, 0, "\"\\b\""), tokens.first
336
-
337
- tokens = RDoc::RubyLex.tokenize '"\\s"', nil
338
- assert_equal @TK::TkSTRING.new( 0, 1, 0, "\"\\s\""), tokens.first
339
-
340
- tokens = RDoc::RubyLex.tokenize '"\\d"', nil
341
- assert_equal @TK::TkSTRING.new( 0, 1, 0, "\"\\d\""), tokens.first
342
-
343
- end
344
-
345
- def test_class_tokenize_string_escape_control
346
- tokens = RDoc::RubyLex.tokenize '"\\C-a"', nil
347
- assert_equal @TK::TkSTRING.new( 0, 1, 0, "\"\\C-a\""), tokens.first
348
-
349
- tokens = RDoc::RubyLex.tokenize '"\\c\\a"', nil
350
- assert_equal @TK::TkSTRING.new( 0, 1, 0, "\"\\c\\a\""), tokens.first
351
-
352
- tokens = RDoc::RubyLex.tokenize '"\\C-\\M-a"', nil
353
- assert_equal @TK::TkSTRING.new( 0, 1, 0, "\"\\C-\\M-a\""), tokens.first
354
- end
355
-
356
- def test_class_tokenize_string_escape_meta
357
- tokens = RDoc::RubyLex.tokenize '"\\M-a"', nil
358
- assert_equal @TK::TkSTRING.new( 0, 1, 0, "\"\\M-a\""), tokens.first
359
-
360
- tokens = RDoc::RubyLex.tokenize '"\\M-\\C-a"', nil
361
- assert_equal @TK::TkSTRING.new( 0, 1, 0, "\"\\M-\\C-a\""), tokens.first
362
- end
363
-
364
- def test_class_tokenize_string_escape_hexadecimal
365
- tokens = RDoc::RubyLex.tokenize '"\\x0"', nil
366
- assert_equal @TK::TkSTRING.new( 0, 1, 0, "\"\\x0\""), tokens.first
367
-
368
- tokens = RDoc::RubyLex.tokenize '"\\x00"', nil
369
- assert_equal @TK::TkSTRING.new( 0, 1, 0, "\"\\x00\""), tokens.first
370
-
371
- tokens = RDoc::RubyLex.tokenize '"\\x000"', nil
372
- assert_equal @TK::TkSTRING.new( 0, 1, 0, "\"\\x000\""), tokens.first
373
- end
374
-
375
- def test_class_tokenize_string_escape_octal
376
- tokens = RDoc::RubyLex.tokenize '"\\0"', nil
377
- assert_equal @TK::TkSTRING.new( 0, 1, 0, "\"\\0\""), tokens.first
378
-
379
- tokens = RDoc::RubyLex.tokenize '"\\00"', nil
380
- assert_equal @TK::TkSTRING.new( 0, 1, 0, "\"\\00\""), tokens.first
381
-
382
- tokens = RDoc::RubyLex.tokenize '"\\000"', nil
383
- assert_equal @TK::TkSTRING.new( 0, 1, 0, "\"\\000\""), tokens.first
384
- end
385
-
386
- def test_class_tokenize_symbol
387
- tokens = RDoc::RubyLex.tokenize 'scope module: :v1', nil
388
-
389
- expected = [
390
- @TK::TkIDENTIFIER.new( 0, 1, 0, 'scope'),
391
- @TK::TkSPACE .new( 5, 1, 5, ' '),
392
- @TK::TkIDENTIFIER.new( 6, 1, 6, 'module'),
393
- @TK::TkCOLON .new(12, 1, 12, ':'),
394
- @TK::TkSPACE .new(13, 1, 13, ' '),
395
- @TK::TkSYMBEG .new(14, 1, 14, ':'),
396
- @TK::TkIDENTIFIER.new(15, 1, 15, 'v1'),
397
- @TK::TkNL .new(17, 1, 17, "\n"),
398
- ]
399
-
400
- assert_equal expected, tokens
401
- end
402
-
403
- def test_unary_minus
404
- ruby_lex = RDoc::RubyLex.new("-1", nil)
405
- assert_equal("-1", ruby_lex.token.value)
406
-
407
- ruby_lex = RDoc::RubyLex.new("a[-2]", nil)
408
- 2.times { ruby_lex.token } # skip "a" and "["
409
- assert_equal("-2", ruby_lex.token.value)
410
-
411
- ruby_lex = RDoc::RubyLex.new("a[0..-12]", nil)
412
- 4.times { ruby_lex.token } # skip "a", "[", "0", and ".."
413
- assert_equal("-12", ruby_lex.token.value)
414
-
415
- ruby_lex = RDoc::RubyLex.new("0+-0.1", nil)
416
- 2.times { ruby_lex.token } # skip "0" and "+"
417
- assert_equal("-0.1", ruby_lex.token.value)
418
- end
419
-
420
- end
421
-