rdoc 2.5.11 → 3.0
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/.document +1 -0
- data/History.txt +95 -0
- data/Manifest.txt +13 -4
- data/README.txt +9 -3
- data/Rakefile +1 -1
- data/lib/rdoc.rb +15 -298
- data/lib/rdoc/alias.rb +65 -16
- data/lib/rdoc/any_method.rb +27 -150
- data/lib/rdoc/attr.rb +36 -115
- data/lib/rdoc/class_module.rb +236 -22
- data/lib/rdoc/code_object.rb +76 -31
- data/lib/rdoc/constant.rb +32 -4
- data/lib/rdoc/context.rb +494 -222
- data/lib/rdoc/encoding.rb +79 -0
- data/lib/rdoc/erbio.rb +37 -0
- data/lib/rdoc/gauntlet.rb +9 -5
- data/lib/rdoc/generator.rb +33 -1
- data/lib/rdoc/generator/darkfish.rb +284 -375
- data/lib/rdoc/generator/markup.rb +72 -36
- data/lib/rdoc/generator/ri.rb +4 -4
- data/lib/rdoc/generator/template/darkfish/classpage.rhtml +267 -274
- data/lib/rdoc/generator/template/darkfish/filepage.rhtml +91 -91
- data/lib/rdoc/generator/template/darkfish/index.rhtml +45 -45
- data/lib/rdoc/generator/template/darkfish/rdoc.css +298 -298
- data/lib/rdoc/include.rb +40 -1
- data/lib/rdoc/known_classes.rb +1 -0
- data/lib/rdoc/markup.rb +467 -2
- data/lib/rdoc/markup/attribute_manager.rb +24 -6
- data/lib/rdoc/markup/blank_line.rb +11 -3
- data/lib/rdoc/markup/document.rb +6 -0
- data/lib/rdoc/markup/formatter.rb +10 -0
- data/lib/rdoc/markup/formatter_test_case.rb +339 -3
- data/lib/rdoc/markup/heading.rb +3 -0
- data/lib/rdoc/markup/inline.rb +11 -1
- data/lib/rdoc/markup/list.rb +3 -0
- data/lib/rdoc/markup/list_item.rb +3 -0
- data/lib/rdoc/markup/paragraph.rb +3 -0
- data/lib/rdoc/markup/parser.rb +191 -237
- data/lib/rdoc/markup/{preprocess.rb → pre_process.rb} +50 -29
- data/lib/rdoc/markup/raw.rb +4 -0
- data/lib/rdoc/markup/rule.rb +3 -0
- data/lib/rdoc/markup/text_formatter_test_case.rb +116 -0
- data/lib/rdoc/markup/to_ansi.rb +14 -2
- data/lib/rdoc/markup/to_bs.rb +8 -2
- data/lib/rdoc/markup/to_html.rb +84 -91
- data/lib/rdoc/markup/to_html_crossref.rb +77 -26
- data/lib/rdoc/markup/to_rdoc.rb +94 -49
- data/lib/rdoc/markup/to_test.rb +9 -1
- data/lib/rdoc/markup/verbatim.rb +6 -3
- data/lib/rdoc/method_attr.rb +353 -0
- data/lib/rdoc/normal_class.rb +11 -2
- data/lib/rdoc/normal_module.rb +0 -5
- data/lib/rdoc/options.rb +373 -82
- data/lib/rdoc/parser.rb +59 -23
- data/lib/rdoc/parser/c.rb +224 -86
- data/lib/rdoc/parser/ruby.rb +219 -111
- data/lib/rdoc/parser/ruby_tools.rb +4 -1
- data/lib/rdoc/parser/simple.rb +9 -4
- data/lib/rdoc/rdoc.rb +68 -28
- data/lib/rdoc/require.rb +21 -0
- data/lib/rdoc/ri/driver.rb +20 -10
- data/lib/rdoc/ri/paths.rb +2 -2
- data/lib/rdoc/ri/store.rb +22 -5
- data/lib/rdoc/ruby_lex.rb +11 -12
- data/lib/rdoc/ruby_token.rb +2 -2
- data/lib/rdoc/single_class.rb +2 -1
- data/lib/rdoc/stats.rb +202 -162
- data/lib/rdoc/stats/normal.rb +51 -0
- data/lib/rdoc/stats/quiet.rb +59 -0
- data/lib/rdoc/stats/verbose.rb +45 -0
- data/lib/rdoc/text.rb +133 -4
- data/lib/rdoc/{tokenstream.rb → token_stream.rb} +0 -2
- data/lib/rdoc/top_level.rb +230 -39
- data/test/test_attribute_manager.rb +58 -7
- data/test/test_rdoc_alias.rb +13 -0
- data/test/test_rdoc_any_method.rb +43 -2
- data/test/test_rdoc_attr.rb +15 -8
- data/test/test_rdoc_class_module.rb +133 -0
- data/test/test_rdoc_code_object.rb +62 -5
- data/test/test_rdoc_context.rb +72 -26
- data/test/test_rdoc_encoding.rb +145 -0
- data/test/test_rdoc_generator_darkfish.rb +119 -0
- data/test/test_rdoc_generator_ri.rb +22 -2
- data/test/test_rdoc_include.rb +79 -0
- data/test/test_rdoc_markup_attribute_manager.rb +4 -4
- data/test/test_rdoc_markup_parser.rb +134 -95
- data/test/test_rdoc_markup_pre_process.rb +7 -2
- data/test/test_rdoc_markup_to_ansi.rb +43 -153
- data/test/test_rdoc_markup_to_bs.rb +42 -156
- data/test/test_rdoc_markup_to_html.rb +130 -58
- data/test/test_rdoc_markup_to_html_crossref.rb +10 -10
- data/test/test_rdoc_markup_to_rdoc.rb +40 -151
- data/test/test_rdoc_method_attr.rb +122 -0
- data/test/test_rdoc_normal_class.rb +1 -1
- data/test/test_rdoc_normal_module.rb +6 -1
- data/test/test_rdoc_options.rb +237 -12
- data/test/test_rdoc_parser.rb +3 -22
- data/test/test_rdoc_parser_c.rb +203 -2
- data/test/test_rdoc_parser_ruby.rb +403 -89
- data/test/test_rdoc_parser_simple.rb +25 -1
- data/test/test_rdoc_rdoc.rb +44 -32
- data/test/test_rdoc_ri_driver.rb +29 -24
- data/test/test_rdoc_ri_store.rb +46 -3
- data/test/test_rdoc_task.rb +1 -1
- data/test/test_rdoc_text.rb +102 -8
- data/test/test_rdoc_top_level.rb +13 -4
- data/test/xref_data.rb +8 -0
- data/test/xref_test_case.rb +6 -0
- metadata +29 -19
- metadata.gz.sig +0 -0
- data/lib/rdoc/parser/perl.rb +0 -165
- data/test/test_rdoc_parser_perl.rb +0 -73
data/test/test_rdoc_include.rb
CHANGED
@@ -6,6 +6,7 @@ class TestRDocInclude < XrefTestCase
|
|
6
6
|
super
|
7
7
|
|
8
8
|
@inc = RDoc::Include.new 'M1', 'comment'
|
9
|
+
@inc.parent = @m1
|
9
10
|
end
|
10
11
|
|
11
12
|
def test_module
|
@@ -13,5 +14,83 @@ class TestRDocInclude < XrefTestCase
|
|
13
14
|
assert_equal 'Unknown', RDoc::Include.new('Unknown', 'comment').module
|
14
15
|
end
|
15
16
|
|
17
|
+
def test_module_extended
|
18
|
+
m1 = @xref_data.add_module RDoc::NormalModule, 'Mod1'
|
19
|
+
m1_m3 = m1.add_module RDoc::NormalModule, 'Mod3'
|
20
|
+
m1_m2 = m1.add_module RDoc::NormalModule, 'Mod2'
|
21
|
+
m1_m2_m3 = m1_m2.add_module RDoc::NormalModule, 'Mod3'
|
22
|
+
m1_m2_m3_m4 = m1_m2_m3.add_module RDoc::NormalModule, 'Mod4'
|
23
|
+
m1_m2_m4 = m1_m2.add_module RDoc::NormalModule, 'Mod4'
|
24
|
+
m1_m2_k0 = m1_m2.add_class RDoc::NormalClass, 'Klass0'
|
25
|
+
m1_m2_k0_m4 = m1_m2_k0.add_module RDoc::NormalModule, 'Mod4'
|
26
|
+
#m1_m2_k0_m4_m5 = m1_m2_k0_m4.add_module RDoc::NormalModule, 'Mod5'
|
27
|
+
m1_m2_k0_m4_m6 = m1_m2_k0_m4.add_module RDoc::NormalModule, 'Mod6'
|
28
|
+
m1_m2_k0_m5 = m1_m2_k0.add_module RDoc::NormalModule, 'Mod5'
|
29
|
+
|
30
|
+
i0_m4 = RDoc::Include.new 'Mod4', nil
|
31
|
+
i0_m5 = RDoc::Include.new 'Mod5', nil
|
32
|
+
i0_m6 = RDoc::Include.new 'Mod6', nil
|
33
|
+
i0_m1 = RDoc::Include.new 'Mod1', nil
|
34
|
+
i0_m2 = RDoc::Include.new 'Mod2', nil
|
35
|
+
i0_m3 = RDoc::Include.new 'Mod3', nil
|
36
|
+
|
37
|
+
m1_m2_k0.add_include i0_m4
|
38
|
+
m1_m2_k0.add_include i0_m5
|
39
|
+
m1_m2_k0.add_include i0_m6
|
40
|
+
m1_m2_k0.add_include i0_m1
|
41
|
+
m1_m2_k0.add_include i0_m2
|
42
|
+
m1_m2_k0.add_include i0_m3
|
43
|
+
|
44
|
+
assert_equal [i0_m4, i0_m5, i0_m6, i0_m1, i0_m2, i0_m3], m1_m2_k0.includes
|
45
|
+
assert_equal [m1_m2_m3, m1_m2, m1, m1_m2_k0_m4_m6, m1_m2_k0_m5,
|
46
|
+
m1_m2_k0_m4, 'Object'], m1_m2_k0.ancestors
|
47
|
+
|
48
|
+
m1_k1 = m1.add_class RDoc::NormalClass, 'Klass1'
|
49
|
+
|
50
|
+
i1_m1 = RDoc::Include.new 'Mod1', nil
|
51
|
+
i1_m2 = RDoc::Include.new 'Mod2', nil
|
52
|
+
i1_m3 = RDoc::Include.new 'Mod3', nil
|
53
|
+
i1_m4 = RDoc::Include.new 'Mod4', nil
|
54
|
+
i1_k0_m4 = RDoc::Include.new 'Klass0::Mod4', nil
|
55
|
+
|
56
|
+
m1_k1.add_include i1_m1
|
57
|
+
m1_k1.add_include i1_m2
|
58
|
+
m1_k1.add_include i1_m3
|
59
|
+
m1_k1.add_include i1_m4
|
60
|
+
m1_k1.add_include i1_k0_m4
|
61
|
+
|
62
|
+
assert_equal [i1_m1, i1_m2, i1_m3, i1_m4, i1_k0_m4], m1_k1.includes
|
63
|
+
assert_equal [m1_m2_k0_m4, m1_m2_m3_m4, m1_m2_m3, m1_m2, m1, 'Object'],
|
64
|
+
m1_k1.ancestors
|
65
|
+
|
66
|
+
m1_k2 = m1.add_class RDoc::NormalClass, 'Klass2'
|
67
|
+
|
68
|
+
i2_m1 = RDoc::Include.new 'Mod1', nil
|
69
|
+
i2_m2 = RDoc::Include.new 'Mod2', nil
|
70
|
+
i2_m3 = RDoc::Include.new 'Mod3', nil
|
71
|
+
i2_k0_m4 = RDoc::Include.new 'Klass0::Mod4', nil
|
72
|
+
|
73
|
+
m1_k2.add_include i2_m1
|
74
|
+
m1_k2.add_include i2_m3
|
75
|
+
m1_k2.add_include i2_m2
|
76
|
+
m1_k2.add_include i2_k0_m4
|
77
|
+
|
78
|
+
assert_equal [i2_m1, i2_m3, i2_m2, i2_k0_m4], m1_k2.includes
|
79
|
+
assert_equal [m1_m2_k0_m4, m1_m2, m1_m3, m1, 'Object'], m1_k2.ancestors
|
80
|
+
|
81
|
+
m1_k3 = m1.add_class RDoc::NormalClass, 'Klass3'
|
82
|
+
|
83
|
+
i3_m1 = RDoc::Include.new 'Mod1', nil
|
84
|
+
i3_m2 = RDoc::Include.new 'Mod2', nil
|
85
|
+
i3_m4 = RDoc::Include.new 'Mod4', nil
|
86
|
+
|
87
|
+
m1_k3.add_include i3_m1
|
88
|
+
m1_k3.add_include i3_m2
|
89
|
+
m1_k3.add_include i3_m4
|
90
|
+
|
91
|
+
assert_equal [i3_m1, i3_m2, i3_m4], m1_k3.includes
|
92
|
+
assert_equal [m1_m2_m4, m1_m2, m1, 'Object'], m1_k3.ancestors
|
93
|
+
end
|
94
|
+
|
16
95
|
end
|
17
96
|
|
@@ -1,9 +1,9 @@
|
|
1
|
-
require
|
2
|
-
require
|
1
|
+
require 'rubygems'
|
2
|
+
require 'minitest/autorun'
|
3
3
|
require 'rdoc'
|
4
4
|
require 'rdoc/markup'
|
5
|
-
require
|
6
|
-
require
|
5
|
+
require 'rdoc/markup/inline'
|
6
|
+
require 'rdoc/markup/to_html_crossref'
|
7
7
|
|
8
8
|
class TestRDocMarkupAttributeManager < MiniTest::Unit::TestCase
|
9
9
|
|
@@ -1,8 +1,9 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
|
1
3
|
require 'pp'
|
2
4
|
require 'rubygems'
|
3
5
|
require 'minitest/autorun'
|
4
6
|
require 'rdoc/markup'
|
5
|
-
require 'rdoc/markup/to_test'
|
6
7
|
|
7
8
|
class TestRDocMarkupParser < MiniTest::Unit::TestCase
|
8
9
|
|
@@ -53,6 +54,19 @@ class TestRDocMarkupParser < MiniTest::Unit::TestCase
|
|
53
54
|
assert_equal expected, @RMP.parse(str).parts
|
54
55
|
end
|
55
56
|
|
57
|
+
def test_parse_bullet_utf_8
|
58
|
+
str = <<-STR
|
59
|
+
* 新しい機能
|
60
|
+
STR
|
61
|
+
|
62
|
+
expected = [
|
63
|
+
@RM::List.new(:BULLET, *[
|
64
|
+
@RM::ListItem.new(nil,
|
65
|
+
@RM::Paragraph.new('新しい機能'))])]
|
66
|
+
|
67
|
+
assert_equal expected, @RMP.parse(str).parts
|
68
|
+
end
|
69
|
+
|
56
70
|
def test_parse_bullet_verbatim_heading
|
57
71
|
str = <<-STR
|
58
72
|
* l1
|
@@ -65,7 +79,7 @@ class TestRDocMarkupParser < MiniTest::Unit::TestCase
|
|
65
79
|
@RM::List.new(:BULLET, *[
|
66
80
|
@RM::ListItem.new(nil,
|
67
81
|
@RM::Paragraph.new('l1'),
|
68
|
-
@RM::Verbatim.new(
|
82
|
+
@RM::Verbatim.new("v\n"))]),
|
69
83
|
@RM::Heading.new(1, 'H')]
|
70
84
|
|
71
85
|
assert_equal expected, @RMP.parse(str).parts
|
@@ -183,8 +197,7 @@ the time
|
|
183
197
|
@RM::List.new(:BULLET, *[
|
184
198
|
@RM::ListItem.new(nil,
|
185
199
|
@RM::Paragraph.new('l1.1', 'text'),
|
186
|
-
@RM::Verbatim.new(
|
187
|
-
' ', 'code', "\n"),
|
200
|
+
@RM::Verbatim.new("code\n", " code\n"),
|
188
201
|
@RM::Paragraph.new('text'))])),
|
189
202
|
@RM::ListItem.new(nil,
|
190
203
|
@RM::Paragraph.new('l2'))])]
|
@@ -400,6 +413,68 @@ A. l4
|
|
400
413
|
assert_equal expected, @RMP.parse(str).parts
|
401
414
|
end
|
402
415
|
|
416
|
+
def test_parse_lalpha_utf_8
|
417
|
+
str = <<-STR
|
418
|
+
a. 新しい機能
|
419
|
+
STR
|
420
|
+
|
421
|
+
expected = [
|
422
|
+
@RM::List.new(:LALPHA, *[
|
423
|
+
@RM::ListItem.new(nil,
|
424
|
+
@RM::Paragraph.new('新しい機能'))])]
|
425
|
+
|
426
|
+
assert_equal expected, @RMP.parse(str).parts
|
427
|
+
end
|
428
|
+
|
429
|
+
def test_parse_list_list_1
|
430
|
+
str = <<-STR
|
431
|
+
10. para 1
|
432
|
+
|
433
|
+
[label 1]
|
434
|
+
para 1.1
|
435
|
+
|
436
|
+
code
|
437
|
+
|
438
|
+
para 1.2
|
439
|
+
STR
|
440
|
+
|
441
|
+
expected = [
|
442
|
+
@RM::List.new(:NUMBER, *[
|
443
|
+
@RM::ListItem.new(nil, *[
|
444
|
+
@RM::Paragraph.new('para 1'),
|
445
|
+
@RM::BlankLine.new,
|
446
|
+
@RM::List.new(:LABEL, *[
|
447
|
+
@RM::ListItem.new('label 1', *[
|
448
|
+
@RM::Paragraph.new('para 1.1'),
|
449
|
+
@RM::BlankLine.new,
|
450
|
+
@RM::Verbatim.new("code\n"),
|
451
|
+
@RM::Paragraph.new('para 1.2')])])])])]
|
452
|
+
|
453
|
+
assert_equal expected, @RMP.parse(str).parts
|
454
|
+
end
|
455
|
+
|
456
|
+
def test_parse_list_list_2
|
457
|
+
str = <<-STR
|
458
|
+
6. para
|
459
|
+
|
460
|
+
label 1:: text 1
|
461
|
+
label 2:: text 2
|
462
|
+
STR
|
463
|
+
|
464
|
+
expected = [
|
465
|
+
@RM::List.new(:NUMBER, *[
|
466
|
+
@RM::ListItem.new(nil, *[
|
467
|
+
@RM::Paragraph.new('para'),
|
468
|
+
@RM::BlankLine.new,
|
469
|
+
@RM::List.new(:NOTE, *[
|
470
|
+
@RM::ListItem.new('label 1',
|
471
|
+
@RM::Paragraph.new('text 1')),
|
472
|
+
@RM::ListItem.new('label 2',
|
473
|
+
@RM::Paragraph.new('text 2'))])])])]
|
474
|
+
|
475
|
+
assert_equal expected, @RMP.parse(str).parts
|
476
|
+
end
|
477
|
+
|
403
478
|
def test_parse_list_verbatim
|
404
479
|
str = <<-STR
|
405
480
|
* one
|
@@ -412,8 +487,7 @@ A. l4
|
|
412
487
|
@RM::List.new(:BULLET, *[
|
413
488
|
@RM::ListItem.new(nil,
|
414
489
|
@RM::Paragraph.new('one'),
|
415
|
-
@RM::Verbatim.new(
|
416
|
-
' ', 'verb2', "\n")),
|
490
|
+
@RM::Verbatim.new("verb1\n", "verb2\n")),
|
417
491
|
@RM::ListItem.new(nil,
|
418
492
|
@RM::Paragraph.new('two'))])]
|
419
493
|
|
@@ -545,7 +619,7 @@ for all good men
|
|
545
619
|
|
546
620
|
expected = [
|
547
621
|
@RM::Paragraph.new('now is the time'),
|
548
|
-
@RM::Verbatim.new(
|
622
|
+
@RM::Verbatim.new("code _line_ here\n"),
|
549
623
|
@RM::Paragraph.new('for all good men'),
|
550
624
|
]
|
551
625
|
assert_equal expected, @RMP.parse(str).parts
|
@@ -567,6 +641,12 @@ B. l2
|
|
567
641
|
assert_equal expected, @RMP.parse(str).parts
|
568
642
|
end
|
569
643
|
|
644
|
+
def test_parse_trailing_cr
|
645
|
+
expected = [ @RM::Paragraph.new('Text') ]
|
646
|
+
# FIXME hangs the parser:
|
647
|
+
assert_equal expected, @RMP.parse("Text\r").parts
|
648
|
+
end
|
649
|
+
|
570
650
|
def test_parse_verbatim
|
571
651
|
str = <<-STR
|
572
652
|
now is
|
@@ -576,7 +656,7 @@ the time
|
|
576
656
|
|
577
657
|
expected = [
|
578
658
|
@RM::Paragraph.new('now is'),
|
579
|
-
@RM::Verbatim.new(
|
659
|
+
@RM::Verbatim.new("code\n"),
|
580
660
|
@RM::Paragraph.new('the time'),
|
581
661
|
]
|
582
662
|
|
@@ -589,7 +669,7 @@ the time
|
|
589
669
|
STR
|
590
670
|
|
591
671
|
expected = [
|
592
|
-
@RM::Verbatim.new(
|
672
|
+
@RM::Verbatim.new("* blah\n")]
|
593
673
|
|
594
674
|
assert_equal expected, @RMP.parse(str).parts
|
595
675
|
end
|
@@ -600,7 +680,7 @@ the time
|
|
600
680
|
STR
|
601
681
|
|
602
682
|
expected = [
|
603
|
-
@RM::Verbatim.new(
|
683
|
+
@RM::Verbatim.new("- blah\n")]
|
604
684
|
|
605
685
|
assert_equal expected, @RMP.parse(str).parts
|
606
686
|
end
|
@@ -618,9 +698,7 @@ the time
|
|
618
698
|
|
619
699
|
expected = [
|
620
700
|
@RM::Paragraph.new('now is'),
|
621
|
-
@RM::Verbatim.new(
|
622
|
-
"\n",
|
623
|
-
' ', 'code1', "\n"),
|
701
|
+
@RM::Verbatim.new("code\n", "\n", "code1\n"),
|
624
702
|
@RM::Paragraph.new('the time'),
|
625
703
|
]
|
626
704
|
|
@@ -635,7 +713,7 @@ text
|
|
635
713
|
|
636
714
|
expected = [
|
637
715
|
@RM::Paragraph.new('text'),
|
638
|
-
@RM::Verbatim.new(
|
716
|
+
@RM::Verbatim.new("=== heading three\n")]
|
639
717
|
|
640
718
|
assert_equal expected, @RMP.parse(str).parts
|
641
719
|
end
|
@@ -645,7 +723,7 @@ text
|
|
645
723
|
|
646
724
|
expected = [
|
647
725
|
@RM::Paragraph.new('text'),
|
648
|
-
@RM::Verbatim.new(
|
726
|
+
@RM::Verbatim.new("code\n"),
|
649
727
|
@RM::Heading.new(3, 'heading three')]
|
650
728
|
|
651
729
|
assert_equal expected, @RMP.parse(str).parts
|
@@ -657,7 +735,7 @@ text
|
|
657
735
|
STR
|
658
736
|
|
659
737
|
expected = [
|
660
|
-
@RM::Verbatim.new(
|
738
|
+
@RM::Verbatim.new("[blah] blah\n")]
|
661
739
|
|
662
740
|
assert_equal expected, @RMP.parse(str).parts
|
663
741
|
end
|
@@ -668,7 +746,7 @@ text
|
|
668
746
|
STR
|
669
747
|
|
670
748
|
expected = [
|
671
|
-
@RM::Verbatim.new(
|
749
|
+
@RM::Verbatim.new("b. blah\n")]
|
672
750
|
|
673
751
|
assert_equal expected, @RMP.parse(str).parts
|
674
752
|
end
|
@@ -682,8 +760,7 @@ text
|
|
682
760
|
|
683
761
|
expected = [
|
684
762
|
@RM::Paragraph.new('text'),
|
685
|
-
@RM::Verbatim.new(
|
686
|
-
' ', '===', ' ', 'heading three', "\n")]
|
763
|
+
@RM::Verbatim.new("code\n", "=== heading three\n")]
|
687
764
|
|
688
765
|
assert_equal expected, @RMP.parse(str).parts
|
689
766
|
end
|
@@ -699,9 +776,7 @@ the time
|
|
699
776
|
|
700
777
|
expected = [
|
701
778
|
@RM::Paragraph.new('now is'),
|
702
|
-
@RM::Verbatim.new(
|
703
|
-
"\n",
|
704
|
-
' ', 'code1', "\n"),
|
779
|
+
@RM::Verbatim.new("code\n", "\n", "code1\n"),
|
705
780
|
@RM::Paragraph.new('the time'),
|
706
781
|
]
|
707
782
|
|
@@ -721,11 +796,7 @@ the time
|
|
721
796
|
|
722
797
|
expected = [
|
723
798
|
@RM::Paragraph.new('now is'),
|
724
|
-
@RM::Verbatim.new(
|
725
|
-
"\n",
|
726
|
-
' ', 'code1', "\n",
|
727
|
-
"\n",
|
728
|
-
' ', 'code2', "\n"),
|
799
|
+
@RM::Verbatim.new("code\n", "\n", "code1\n", "\n", "code2\n"),
|
729
800
|
@RM::Paragraph.new('the time'),
|
730
801
|
]
|
731
802
|
|
@@ -742,8 +813,7 @@ the time
|
|
742
813
|
|
743
814
|
expected = [
|
744
815
|
@RM::Paragraph.new('now is'),
|
745
|
-
@RM::Verbatim.new(
|
746
|
-
' ', 'code1', "\n"),
|
816
|
+
@RM::Verbatim.new("code\n", "code1\n"),
|
747
817
|
@RM::Paragraph.new('the time'),
|
748
818
|
]
|
749
819
|
|
@@ -760,8 +830,8 @@ for all good men
|
|
760
830
|
|
761
831
|
expected = [
|
762
832
|
@RM::Paragraph.new('now is the time'),
|
763
|
-
@RM::Verbatim.new(
|
764
|
-
|
833
|
+
@RM::Verbatim.new(" code\n",
|
834
|
+
"more code\n"),
|
765
835
|
@RM::Paragraph.new('for all good men'),
|
766
836
|
]
|
767
837
|
|
@@ -774,7 +844,7 @@ for all good men
|
|
774
844
|
STR
|
775
845
|
|
776
846
|
expected = [
|
777
|
-
@RM::Verbatim.new(
|
847
|
+
@RM::Verbatim.new("blah:: blah\n")]
|
778
848
|
|
779
849
|
assert_equal expected, @RMP.parse(str).parts
|
780
850
|
end
|
@@ -785,7 +855,7 @@ for all good men
|
|
785
855
|
STR
|
786
856
|
|
787
857
|
expected = [
|
788
|
-
@RM::Verbatim.new(
|
858
|
+
@RM::Verbatim.new("2. blah\n")]
|
789
859
|
|
790
860
|
assert_equal expected, @RMP.parse(str).parts
|
791
861
|
end
|
@@ -801,8 +871,8 @@ text
|
|
801
871
|
expected = [
|
802
872
|
@RM::Paragraph.new('text'),
|
803
873
|
@RM::BlankLine.new,
|
804
|
-
@RM::Verbatim.new(
|
805
|
-
|
874
|
+
@RM::Verbatim.new("--- lib/blah.rb.orig\n",
|
875
|
+
"+++ lib/blah.rb\n")]
|
806
876
|
|
807
877
|
assert_equal expected, @RMP.parse(str).parts
|
808
878
|
end
|
@@ -817,7 +887,7 @@ text
|
|
817
887
|
expected = [
|
818
888
|
@RM::Paragraph.new('text'),
|
819
889
|
@RM::BlankLine.new,
|
820
|
-
@RM::Verbatim.new(
|
890
|
+
@RM::Verbatim.new("---")]
|
821
891
|
|
822
892
|
assert_equal expected, @RMP.parse(str).parts
|
823
893
|
end
|
@@ -834,9 +904,9 @@ the time
|
|
834
904
|
|
835
905
|
expected = [
|
836
906
|
@RM::Paragraph.new('now is'),
|
837
|
-
@RM::Verbatim.new(
|
907
|
+
@RM::Verbatim.new("code\n",
|
838
908
|
"\n",
|
839
|
-
|
909
|
+
"code1\n"),
|
840
910
|
@RM::Paragraph.new('the time'),
|
841
911
|
]
|
842
912
|
|
@@ -849,7 +919,7 @@ the time
|
|
849
919
|
STR
|
850
920
|
|
851
921
|
expected = [
|
852
|
-
@RM::Verbatim.new(
|
922
|
+
@RM::Verbatim.new("B. blah\n")]
|
853
923
|
|
854
924
|
assert_equal expected, @RMP.parse(str).parts
|
855
925
|
end
|
@@ -862,58 +932,57 @@ the time
|
|
862
932
|
assert_equal expected, @RMP.parse('hello').parts
|
863
933
|
|
864
934
|
expected = [
|
865
|
-
@RM::Verbatim.new('
|
935
|
+
@RM::Verbatim.new('hello '),
|
866
936
|
]
|
867
937
|
|
868
|
-
assert_equal expected, @RMP.parse('
|
938
|
+
assert_equal expected, @RMP.parse(' hello ').parts
|
869
939
|
|
870
940
|
expected = [
|
871
|
-
@RM::Verbatim.new('
|
941
|
+
@RM::Verbatim.new('hello '),
|
872
942
|
]
|
873
943
|
|
874
|
-
assert_equal expected, @RMP.parse(
|
944
|
+
assert_equal expected, @RMP.parse(' hello ').parts
|
875
945
|
|
876
946
|
expected = [
|
877
947
|
@RM::Paragraph.new('1'),
|
878
|
-
@RM::Verbatim.new(
|
879
|
-
' ', '3'),
|
948
|
+
@RM::Verbatim.new("2\n", ' 3'),
|
880
949
|
]
|
881
950
|
|
882
951
|
assert_equal expected, @RMP.parse("1\n 2\n 3").parts
|
883
952
|
|
884
953
|
expected = [
|
885
|
-
@RM::Verbatim.new(
|
886
|
-
|
887
|
-
|
954
|
+
@RM::Verbatim.new("1\n",
|
955
|
+
" 2\n",
|
956
|
+
" 3"),
|
888
957
|
]
|
889
958
|
|
890
959
|
assert_equal expected, @RMP.parse(" 1\n 2\n 3").parts
|
891
960
|
|
892
961
|
expected = [
|
893
962
|
@RM::Paragraph.new('1'),
|
894
|
-
@RM::Verbatim.new(
|
895
|
-
|
963
|
+
@RM::Verbatim.new("2\n",
|
964
|
+
" 3\n"),
|
896
965
|
@RM::Paragraph.new('1'),
|
897
|
-
@RM::Verbatim.new('
|
966
|
+
@RM::Verbatim.new('2'),
|
898
967
|
]
|
899
968
|
|
900
969
|
assert_equal expected, @RMP.parse("1\n 2\n 3\n1\n 2").parts
|
901
970
|
|
902
971
|
expected = [
|
903
|
-
@RM::Verbatim.new(
|
904
|
-
|
905
|
-
|
906
|
-
|
907
|
-
'
|
972
|
+
@RM::Verbatim.new("1\n",
|
973
|
+
" 2\n",
|
974
|
+
" 3\n",
|
975
|
+
"1\n",
|
976
|
+
' 2'),
|
908
977
|
]
|
909
978
|
|
910
979
|
assert_equal expected, @RMP.parse(" 1\n 2\n 3\n 1\n 2").parts
|
911
980
|
|
912
981
|
expected = [
|
913
|
-
@RM::Verbatim.new(
|
914
|
-
|
982
|
+
@RM::Verbatim.new("1\n",
|
983
|
+
" 2\n",
|
915
984
|
"\n",
|
916
|
-
'
|
985
|
+
' 3'),
|
917
986
|
]
|
918
987
|
|
919
988
|
assert_equal expected, @RMP.parse(" 1\n 2\n\n 3").parts
|
@@ -954,7 +1023,6 @@ the time
|
|
954
1023
|
|
955
1024
|
expected = [
|
956
1025
|
[:BULLET, '*', 0, 0],
|
957
|
-
[:SPACE, 2, 0, 0],
|
958
1026
|
[:TEXT, 'l1', 2, 0],
|
959
1027
|
[:NEWLINE, "\n", 4, 0],
|
960
1028
|
]
|
@@ -970,12 +1038,9 @@ the time
|
|
970
1038
|
|
971
1039
|
expected = [
|
972
1040
|
[:BULLET, '*', 0, 0],
|
973
|
-
[:SPACE, 2, 0, 0],
|
974
1041
|
[:TEXT, 'l1', 2, 0],
|
975
1042
|
[:NEWLINE, "\n", 4, 0],
|
976
|
-
[:INDENT, 2, 0, 1],
|
977
1043
|
[:BULLET, '*', 2, 1],
|
978
|
-
[:SPACE, 2, 2, 1],
|
979
1044
|
[:TEXT, 'l1.1', 4, 1],
|
980
1045
|
[:NEWLINE, "\n", 8, 1],
|
981
1046
|
]
|
@@ -1041,11 +1106,9 @@ the time
|
|
1041
1106
|
|
1042
1107
|
expected = [
|
1043
1108
|
[:LABEL, 'cat', 0, 0],
|
1044
|
-
[:SPACE, 6, 0, 0],
|
1045
1109
|
[:TEXT, 'l1', 6, 0],
|
1046
1110
|
[:NEWLINE, "\n", 8, 0],
|
1047
1111
|
[:LABEL, 'dog', 0, 1],
|
1048
|
-
[:SPACE, 6, 0, 1],
|
1049
1112
|
[:TEXT, 'l1.1', 6, 1],
|
1050
1113
|
[:NEWLINE, "\n", 10, 1],
|
1051
1114
|
]
|
@@ -1061,11 +1124,8 @@ the time
|
|
1061
1124
|
|
1062
1125
|
expected = [
|
1063
1126
|
[:LABEL, 'label', 0, 0],
|
1064
|
-
[:SPACE, 7, 0, 0],
|
1065
1127
|
[:NEWLINE, "\n", 7, 0],
|
1066
|
-
[:INDENT, 2, 0, 1],
|
1067
1128
|
[:NOTE, 'note', 2, 1],
|
1068
|
-
[:SPACE, 6, 2, 1],
|
1069
1129
|
[:NEWLINE, "\n", 8, 1],
|
1070
1130
|
]
|
1071
1131
|
|
@@ -1080,11 +1140,9 @@ b. l1.1
|
|
1080
1140
|
|
1081
1141
|
expected = [
|
1082
1142
|
[:LALPHA, 'a', 0, 0],
|
1083
|
-
[:SPACE, 3, 0, 0],
|
1084
1143
|
[:TEXT, 'l1', 3, 0],
|
1085
1144
|
[:NEWLINE, "\n", 5, 0],
|
1086
1145
|
[:LALPHA, 'b', 0, 1],
|
1087
|
-
[:SPACE, 3, 0, 1],
|
1088
1146
|
[:TEXT, 'l1.1', 3, 1],
|
1089
1147
|
[:NEWLINE, "\n", 7, 1],
|
1090
1148
|
]
|
@@ -1100,11 +1158,9 @@ dog:: l1.1
|
|
1100
1158
|
|
1101
1159
|
expected = [
|
1102
1160
|
[:NOTE, 'cat', 0, 0],
|
1103
|
-
[:SPACE, 6, 0, 0],
|
1104
1161
|
[:TEXT, 'l1', 6, 0],
|
1105
1162
|
[:NEWLINE, "\n", 8, 0],
|
1106
1163
|
[:NOTE, 'dog', 0, 1],
|
1107
|
-
[:SPACE, 6, 0, 1],
|
1108
1164
|
[:TEXT, 'l1.1', 6, 1],
|
1109
1165
|
[:NEWLINE, "\n", 10, 1],
|
1110
1166
|
]
|
@@ -1120,10 +1176,8 @@ dog::
|
|
1120
1176
|
|
1121
1177
|
expected = [
|
1122
1178
|
[:NOTE, 'cat', 0, 0],
|
1123
|
-
[:SPACE, 5, 0, 0],
|
1124
1179
|
[:NEWLINE, "\n", 5, 0],
|
1125
1180
|
[:NOTE, 'dog', 0, 1],
|
1126
|
-
[:SPACE, 5, 0, 1],
|
1127
1181
|
[:NEWLINE, "\n", 5, 1],
|
1128
1182
|
]
|
1129
1183
|
|
@@ -1151,11 +1205,9 @@ Cat::Dog
|
|
1151
1205
|
|
1152
1206
|
expected = [
|
1153
1207
|
[:NUMBER, '1', 0, 0],
|
1154
|
-
[:SPACE, 3, 0, 0],
|
1155
1208
|
[:TEXT, 'l1', 3, 0],
|
1156
1209
|
[:NEWLINE, "\n", 5, 0],
|
1157
1210
|
[:NUMBER, '2', 0, 1],
|
1158
|
-
[:SPACE, 3, 0, 1],
|
1159
1211
|
[:TEXT, 'l1.1', 3, 1],
|
1160
1212
|
[:NEWLINE, "\n", 7, 1],
|
1161
1213
|
]
|
@@ -1173,20 +1225,16 @@ Cat::Dog
|
|
1173
1225
|
|
1174
1226
|
expected = [
|
1175
1227
|
[:NUMBER, "1", 0, 0],
|
1176
|
-
[:SPACE, 3, 0, 0],
|
1177
1228
|
[:TEXT, "blah blah blah", 3, 0],
|
1178
1229
|
[:NEWLINE, "\n", 17, 0],
|
1179
1230
|
|
1180
|
-
[:INDENT, 3, 0, 1],
|
1181
1231
|
[:TEXT, "l.", 3, 1],
|
1182
1232
|
[:NEWLINE, "\n", 5, 1],
|
1183
1233
|
|
1184
1234
|
[:NUMBER, "2", 0, 2],
|
1185
|
-
[:SPACE, 3, 0, 2],
|
1186
1235
|
[:TEXT, "blah blah blah blah", 3, 2],
|
1187
1236
|
[:NEWLINE, "\n", 22, 2],
|
1188
1237
|
|
1189
|
-
[:INDENT, 3, 0, 3],
|
1190
1238
|
[:TEXT, "d.", 3, 3],
|
1191
1239
|
[:NEWLINE, "\n", 5, 3]
|
1192
1240
|
]
|
@@ -1204,24 +1252,18 @@ Cat::Dog
|
|
1204
1252
|
|
1205
1253
|
expected = [
|
1206
1254
|
[:NUMBER, "1", 0, 0],
|
1207
|
-
[:SPACE, 3, 0, 0],
|
1208
1255
|
[:TEXT, "blah blah blah", 3, 0],
|
1209
1256
|
[:NEWLINE, "\n", 17, 0],
|
1210
1257
|
|
1211
|
-
[:INDENT, 3, 0, 1],
|
1212
1258
|
[:LALPHA, "l", 3, 1],
|
1213
|
-
[:SPACE, 4, 3, 1],
|
1214
1259
|
[:TEXT, "more stuff", 7, 1],
|
1215
1260
|
[:NEWLINE, "\n", 17, 1],
|
1216
1261
|
|
1217
1262
|
[:NUMBER, "2", 0, 2],
|
1218
|
-
[:SPACE, 3, 0, 2],
|
1219
1263
|
[:TEXT, "blah blah blah blah", 3, 2],
|
1220
1264
|
[:NEWLINE, "\n", 22, 2],
|
1221
1265
|
|
1222
|
-
[:INDENT, 3, 0, 3],
|
1223
1266
|
[:LALPHA, "d", 3, 3],
|
1224
|
-
[:SPACE, 3, 3, 3],
|
1225
1267
|
[:TEXT, "other stuff", 6, 3],
|
1226
1268
|
[:NEWLINE, "\n", 17, 3]
|
1227
1269
|
]
|
@@ -1252,14 +1294,14 @@ for all
|
|
1252
1294
|
|
1253
1295
|
def test_tokenize_rule
|
1254
1296
|
str = <<-STR
|
1255
|
-
---
|
1297
|
+
---
|
1256
1298
|
|
1257
1299
|
--- blah ---
|
1258
1300
|
STR
|
1259
1301
|
|
1260
1302
|
expected = [
|
1261
1303
|
[:RULE, 1, 0, 0],
|
1262
|
-
[:NEWLINE, "\n",
|
1304
|
+
[:NEWLINE, "\n", 3, 0],
|
1263
1305
|
[:NEWLINE, "\n", 0, 1],
|
1264
1306
|
[:TEXT, "--- blah ---", 0, 2],
|
1265
1307
|
[:NEWLINE, "\n", 12, 2],
|
@@ -1276,11 +1318,9 @@ B. l1.1
|
|
1276
1318
|
|
1277
1319
|
expected = [
|
1278
1320
|
[:UALPHA, 'A', 0, 0],
|
1279
|
-
[:SPACE, 3, 0, 0],
|
1280
1321
|
[:TEXT, 'l1', 3, 0],
|
1281
1322
|
[:NEWLINE, "\n", 5, 0],
|
1282
1323
|
[:UALPHA, 'B', 0, 1],
|
1283
|
-
[:SPACE, 3, 0, 1],
|
1284
1324
|
[:TEXT, 'l1.1', 3, 1],
|
1285
1325
|
[:NEWLINE, "\n", 7, 1],
|
1286
1326
|
]
|
@@ -1299,7 +1339,6 @@ Example heading:
|
|
1299
1339
|
[:TEXT, 'Example heading:', 0, 0],
|
1300
1340
|
[:NEWLINE, "\n", 16, 0],
|
1301
1341
|
[:NEWLINE, "\n", 0, 1],
|
1302
|
-
[:INDENT, 3, 0, 2],
|
1303
1342
|
[:HEADER, 3, 3, 2],
|
1304
1343
|
[:TEXT, 'heading three', 7, 2],
|
1305
1344
|
[:NEWLINE, "\n", 20, 2],
|
@@ -1310,17 +1349,17 @@ Example heading:
|
|
1310
1349
|
|
1311
1350
|
# HACK move to Verbatim test case
|
1312
1351
|
def test_verbatim_normalize
|
1313
|
-
v = @RM::Verbatim.new
|
1352
|
+
v = @RM::Verbatim.new "foo\n", "\n", "\n", "bar\n"
|
1314
1353
|
|
1315
1354
|
v.normalize
|
1316
1355
|
|
1317
|
-
assert_equal [
|
1356
|
+
assert_equal ["foo\n", "\n", "bar\n"], v.parts
|
1318
1357
|
|
1319
|
-
v = @RM::Verbatim.new
|
1358
|
+
v = @RM::Verbatim.new "foo\n", "\n"
|
1320
1359
|
|
1321
1360
|
v.normalize
|
1322
1361
|
|
1323
|
-
assert_equal [
|
1362
|
+
assert_equal ["foo\n"], v.parts
|
1324
1363
|
end
|
1325
1364
|
|
1326
1365
|
def test_unget
|