@@ -32,6 +32,36 @@ def teardown
3232 @tempfile2 . close
3333 end
3434
35+ def test_collect_first_comment
36+ p = util_parser <<-CONTENT
37+ # first
38+
39+ # second
40+ class C; end
41+ CONTENT
42+
43+ comment = p . collect_first_comment
44+
45+ assert_equal "# first\n " , comment
46+ end
47+
48+ def test_collect_first_comment_encoding
49+ skip "Encoding not implemented" unless Object . const_defined? :Encoding
50+
51+ @options . encoding = Encoding ::CP852
52+
53+ p = util_parser <<-CONTENT
54+ # first
55+
56+ # second
57+ class C; end
58+ CONTENT
59+
60+ comment = p . collect_first_comment
61+
62+ assert_equal Encoding ::CP852 , comment . encoding
63+ end
64+
3565 def test_extract_call_seq
3666 m = RDoc ::AnyMethod . new nil , 'm'
3767 p = util_parser ''
@@ -1439,6 +1469,28 @@ def test_parse_statements_class_nested
14391469 assert_equal 'my method' , bar . comment
14401470 end
14411471
1472+ def test_parse_statements_encoding
1473+ skip "Encoding not implemented" unless Object . const_defined? :Encoding
1474+ @options . encoding = Encoding ::CP852
1475+
1476+ content = <<-EOF
1477+ class Foo
1478+ ##
1479+ # this is my method
1480+ add_my_method :foo
1481+ end
1482+ EOF
1483+
1484+ util_parser content
1485+
1486+ @parser . parse_statements @top_level
1487+
1488+ foo = @top_level . classes . first . method_list . first
1489+ assert_equal 'foo' , foo . name
1490+ assert_equal 'this is my method' , foo . comment
1491+ assert_equal Encoding ::CP852 , foo . comment . encoding
1492+ end
1493+
14421494 def test_parse_statements_identifier_meta_method
14431495 content = <<-EOF
14441496class Foo
@@ -1450,7 +1502,7 @@ class Foo
14501502
14511503 util_parser content
14521504
1453- @parser . parse_statements @top_level , RDoc :: Parser :: Ruby :: NORMAL , nil , ''
1505+ @parser . parse_statements @top_level
14541506
14551507 foo = @top_level . classes . first . method_list . first
14561508 assert_equal 'foo' , foo . name
@@ -1466,7 +1518,7 @@ def foo() end
14661518
14671519 util_parser content
14681520
1469- @parser . parse_statements @top_level , RDoc :: Parser :: Ruby :: NORMAL , nil , ''
1521+ @parser . parse_statements @top_level
14701522
14711523 foo = @top_level . classes . first . method_list [ 0 ]
14721524 assert_equal 'foo' , foo . name
@@ -1499,7 +1551,7 @@ def foo()
14991551
15001552 util_parser content
15011553
1502- @parser . parse_statements @top_level , RDoc :: Parser :: Ruby :: NORMAL , nil , ''
1554+ @parser . parse_statements @top_level
15031555
15041556 foo = @top_level . classes . first . method_list [ 0 ]
15051557 assert_equal 'foo' , foo . name
@@ -1565,7 +1617,7 @@ class Foo
15651617
15661618 util_parser content
15671619
1568- @parser . parse_statements @top_level , RDoc :: Parser :: Ruby :: NORMAL , nil , ''
1620+ @parser . parse_statements @top_level
15691621
15701622 constants = @top_level . classes . first . constants
15711623
@@ -1612,7 +1664,7 @@ def test_parse_statements_identifier_attr
16121664
16131665 util_parser content
16141666
1615- @parser . parse_statements @top_level , RDoc :: Parser :: Ruby :: NORMAL , nil , ''
1667+ @parser . parse_statements @top_level
16161668
16171669 foo = @top_level . classes . first . attributes . first
16181670 assert_equal 'foo' , foo . name
@@ -1624,7 +1676,7 @@ def test_parse_statements_identifier_attr_accessor
16241676
16251677 util_parser content
16261678
1627- @parser . parse_statements @top_level , RDoc :: Parser :: Ruby :: NORMAL , nil , ''
1679+ @parser . parse_statements @top_level
16281680
16291681 foo = @top_level . classes . first . attributes . first
16301682 assert_equal 'foo' , foo . name
@@ -1636,7 +1688,7 @@ def test_parse_statements_identifier_include
16361688
16371689 util_parser content
16381690
1639- @parser . parse_statements @top_level , RDoc :: Parser :: Ruby :: NORMAL , nil , ''
1691+ @parser . parse_statements @top_level
16401692
16411693 foo = @top_level . classes . first
16421694 assert_equal 'Foo' , foo . name
@@ -1648,7 +1700,7 @@ def test_parse_statements_identifier_module_function
16481700
16491701 util_parser content
16501702
1651- @parser . parse_statements @top_level , RDoc :: Parser :: Ruby :: NORMAL , nil , ''
1703+ @parser . parse_statements @top_level
16521704
16531705 foo , s_foo = @top_level . modules . first . method_list
16541706 assert_equal 'foo' , foo . name , 'instance method name'
@@ -1665,7 +1717,7 @@ def test_parse_statements_identifier_private
16651717
16661718 util_parser content
16671719
1668- @parser . parse_statements @top_level , RDoc :: Parser :: Ruby :: NORMAL , nil , ''
1720+ @parser . parse_statements @top_level
16691721
16701722 foo = @top_level . classes . first . method_list . first
16711723 assert_equal 'foo' , foo . name
@@ -1677,7 +1729,7 @@ def test_parse_statements_identifier_require
16771729
16781730 util_parser content
16791731
1680- @parser . parse_statements @top_level , RDoc :: Parser :: Ruby :: NORMAL , nil , ''
1732+ @parser . parse_statements @top_level
16811733
16821734 assert_equal 1 , @top_level . requires . length
16831735 end
@@ -1695,7 +1747,7 @@ def b
16951747end
16961748 RUBY
16971749
1698- @parser . parse_statements @top_level , RDoc :: Parser :: Ruby :: NORMAL , nil , ''
1750+ @parser . parse_statements @top_level
16991751
17001752 c_a = @top_level . classes . first
17011753 assert_equal 'A' , c_a . full_name
@@ -1887,7 +1939,7 @@ class Baz
18871939 end
18881940 EOS
18891941
1890- @parser . parse_statements @top_level , RDoc :: Parser :: Ruby :: NORMAL , nil , ''
1942+ @parser . parse_statements @top_level
18911943
18921944 foo = @top_level . modules . first . modules . first
18931945 assert_equal 'Foo' , foo . name
0 commit comments