Skip to content

Commit c642102

Browse files
authored
Merge pull request #632 from TheSmartnik/improve_cross_reference_regex
Allow `#+`, `#-`, `#`' to be cross referenced
2 parents 9c93b31 + 0e65554 commit c642102

File tree

7 files changed

+24
-14
lines changed

7 files changed

+24
-14
lines changed

lib/rdoc/cross_reference.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ class RDoc::CrossReference
1919
#
2020
# See CLASS_REGEXP_STR
2121

22-
METHOD_REGEXP_STR = '([a-z]\w*[!?=]?|%|===|\[\]=?|<<|>>)(?:\([\w.+*/=<>-]*\))?'
22+
METHOD_REGEXP_STR = '([a-z]\w*[!?=]?|%|===|\[\]=?|<<|>>|-|\+|\*)(?:\([\w.+*/=<>-]*\))?'
2323

2424
##
2525
# Regular expressions matching text that should potentially have

test/test_rdoc_any_method.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ def test_marshal_load_aliased_method_with_nil_singleton
165165
end
166166

167167
def test_marshal_load_class_method
168-
class_method = Marshal.load Marshal.dump(@c1.method_list.first)
168+
class_method = Marshal.load Marshal.dump(@c1.find_class_method_named 'm')
169169

170170
assert_equal 'C1::m', class_method.full_name
171171
assert_equal 'C1', class_method.parent_name
@@ -174,7 +174,7 @@ def test_marshal_load_class_method
174174
end
175175

176176
def test_marshal_load_instance_method
177-
instance_method = Marshal.load Marshal.dump(@c1.method_list.last)
177+
instance_method = Marshal.load Marshal.dump(@c1.find_instance_method_named 'm')
178178

179179
assert_equal 'C1#m', instance_method.full_name
180180
assert_equal 'C1', instance_method.parent_name

test/test_rdoc_class_module.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@ def test_docuent_self_or_methods
9191

9292
assert @c1.document_self_or_methods
9393

94+
@c1_plus.document_self = false
9495
@c1_m.document_self = false
9596

9697
assert @c1.document_self_or_methods

test/test_rdoc_context.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -660,7 +660,7 @@ def test_methods_by_type
660660
'instance' => {
661661
:private => [],
662662
:protected => [],
663-
:public => [@c1_m],
663+
:public => [@c1_plus, @c1_m],
664664
},
665665
'class' => {
666666
:private => [],

test/test_rdoc_cross_reference.rb

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -107,18 +107,24 @@ def test_resolve_file
107107
end
108108

109109
def test_resolve_method
110-
assert_ref @c1__m, 'm'
111-
assert_ref @c1_m, '#m'
112-
assert_ref @c1__m, '::m'
113-
114-
assert_ref @c1_m, 'C1#m'
115-
assert_ref @c1__m, 'C1.m'
116-
assert_ref @c1__m, 'C1::m'
110+
assert_ref @c1__m, 'm'
111+
assert_ref @c1__m, '::m'
112+
assert_ref @c1_m, '#m'
113+
assert_ref @c1_plus, '#+'
114+
115+
assert_ref @c1_m, 'C1#m'
116+
assert_ref @c1_plus, 'C1#+'
117+
assert_ref @c1__m, 'C1.m'
118+
assert_ref @c1__m, 'C1::m'
117119

118120
assert_ref @c1_m, 'C1#m'
119121
assert_ref @c1_m, 'C1#m()'
120122
assert_ref @c1_m, 'C1#m(*)'
121123

124+
assert_ref @c1_plus, 'C1#+'
125+
assert_ref @c1_plus, 'C1#+()'
126+
assert_ref @c1_plus, 'C1#+(*)'
127+
122128
assert_ref @c1__m, 'C1.m'
123129
assert_ref @c1__m, 'C1.m()'
124130
assert_ref @c1__m, 'C1.m(*)'

test/xref_data.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ def self.m
2020
def m foo
2121
end
2222
23+
def +
24+
end
2325
end
2426
2527
class C2

test/xref_test_case.rb

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,10 @@ def generator.file_dir() nil end
3131
@rdoc.options = @options
3232
@rdoc.generator = generator
3333

34-
@c1 = @xref_data.find_module_named 'C1'
35-
@c1_m = @c1.method_list.last # C1#m
36-
@c1__m = @c1.method_list.first # C1::m
34+
@c1 = @xref_data.find_module_named 'C1'
35+
@c1__m = @c1.find_class_method_named 'm' # C1::m
36+
@c1_m = @c1.find_instance_method_named 'm' # C1#m
37+
@c1_plus = @c1.find_instance_method_named '+'
3738

3839
@c2 = @xref_data.find_module_named 'C2'
3940
@c2_a = @c2.method_list.last

0 commit comments

Comments
 (0)