method
handle_class_module
v1_9_2_180 -
Show latest stable
- Class:
RDoc::Parser::C
handle_class_module(var_name, type, class_name, parent, in_module)public
No documentation available.
# File lib/rdoc/parser/c.rb, line 475
def handle_class_module(var_name, type, class_name, parent, in_module)
parent_name = @known_classes[parent] || parent
if in_module then
enclosure = @classes[in_module] || @@enclosure_classes[in_module]
if enclosure.nil? and enclosure = @known_classes[in_module] then
type = /^rb_m/ =~ in_module ? "module" : "class"
handle_class_module in_module, type, enclosure, nil, nil
enclosure = @classes[in_module]
end
unless enclosure then
warn "Enclosing class/module '#{in_module}' for #{type} #{class_name} not known"
return
end
else
enclosure = @top_level
end
if type == "class" then
full_name = if RDoc::ClassModule === enclosure then
enclosure.full_name + "::#{class_name}"
else
class_name
end
if @content =~ %{Document-class:\s+#{full_name}\s*<\s+([:,\w]+)} then
parent_name = $1
end
cm = enclosure.add_class RDoc::NormalClass, class_name, parent_name
@stats.add_class cm
else
cm = enclosure.add_module RDoc::NormalModule, class_name
@stats.add_module cm
end
cm.record_location enclosure.top_level
find_class_comment cm.full_name, cm
@classes[var_name] = cm
@@enclosure_classes[var_name] = cm
@known_classes[var_name] = cm.full_name
end