@@ -58,7 +58,7 @@ def init_link_notation_regexp_handlings
58
58
# Creates a link to the reference +name+ if the name exists. If +text+ is
59
59
# given it is used as the link text, otherwise +name+ is used.
60
60
61
- def cross_reference name , text = nil , code = true
61
+ def cross_reference name , text = nil , code = true , rdoc_ref : false
62
62
lookup = name
63
63
64
64
name = name [ 1 ..-1 ] unless @show_hash if name [ 0 , 1 ] == '#'
@@ -70,7 +70,7 @@ def cross_reference name, text = nil, code = true
70
70
text ||= name
71
71
end
72
72
73
- link lookup , text , code
73
+ link lookup , text , code , rdoc_ref : rdoc_ref
74
74
end
75
75
76
76
##
@@ -92,17 +92,22 @@ def handle_regexp_CROSSREF(target)
92
92
return name if name =~ /\A [a-z]*\z /
93
93
end
94
94
95
- cross_reference name
95
+ cross_reference name , rdoc_ref : false
96
96
end
97
97
98
98
##
99
99
# Handles <tt>rdoc-ref:</tt> scheme links and allows RDoc::Markup::ToHtml to
100
100
# handle other schemes.
101
101
102
102
def handle_regexp_HYPERLINK target
103
- return cross_reference $' if target . text =~ / \A rdoc-ref:/
103
+ url = target . text
104
104
105
- super
105
+ case url
106
+ when /\A rdoc-ref:/
107
+ cross_reference $', rdoc_ref : true
108
+ else
109
+ super
110
+ end
106
111
end
107
112
108
113
##
@@ -117,8 +122,8 @@ def handle_regexp_RDOCLINK target
117
122
url = target . text
118
123
119
124
case url
120
- when /\A rdoc-ref:/ then
121
- cross_reference $'
125
+ when /\A rdoc-ref:/
126
+ cross_reference $', rdoc_ref : true
122
127
else
123
128
super
124
129
end
@@ -129,16 +134,18 @@ def handle_regexp_RDOCLINK target
129
134
# RDoc::Markup::ToHtml to handle other schemes.
130
135
131
136
def gen_url url , text
132
- return super unless url =~ /\A rdoc-ref:/
133
-
134
- name = $'
135
- cross_reference name , text , name == text
137
+ if url =~ /\A rdoc-ref:/
138
+ name = $'
139
+ cross_reference name , text , name == text , rdoc_ref : true
140
+ else
141
+ super
142
+ end
136
143
end
137
144
138
145
##
139
146
# Creates an HTML link to +name+ with the given +text+.
140
147
141
- def link name , text , code = true
148
+ def link name , text , code = true , rdoc_ref : false
142
149
if !( name . end_with? ( '+@' , '-@' ) ) and name =~ /(.*[^#:])?@/
143
150
name = $1
144
151
label = $'
@@ -148,6 +155,9 @@ def link name, text, code = true
148
155
149
156
case ref
150
157
when String then
158
+ if rdoc_ref && @options . warn_missing_rdoc_ref
159
+ puts "#{ @from_path } : `rdoc-ref:#{ name } ` can't be resolved for `#{ text } `"
160
+ end
151
161
ref
152
162
else
153
163
path = ref ? ref . as_href ( @from_path ) : +""
0 commit comments