We contain the common stuff for contexts (which are containers) and other elements (methods, attributes and so on)
There's a wee trick we pull. Comment blocks can have directives that override the stuff we extract during the parse. So, we have a special class method, ::attr_overridable, that lets code objects list those directives. Wehn a comment is assigned, we then extract out any matching directives and update our object
# File rdoc/code_objects.rb, line 97
def CodeObject.attr_overridable(name, *aliases)
@overridables ||= {}
attr_accessor name
aliases.unshift name
aliases.each do |directive_name|
@overridables[directive_name.to_s] = name
end
end
Update the comment, but don't overwrite a real comment with an empty one
# File rdoc/code_objects.rb, line 87
def comment=(comment)
@comment = comment unless comment.empty?
end
# File rdoc/code_objects.rb, line 57
def document_children=(val)
@document_children = val
if !val
remove_classes_and_modules
end
end
# File rdoc/code_objects.rb, line 34
def document_self=(val)
@document_self = val
if !val
remove_methods_etc
end
end
Default callbacks to nothing, but this is overridden for classes and modules
# File rdoc/code_objects.rb, line 69
def remove_classes_and_modules
end
# File rdoc/code_objects.rb, line 72
def remove_methods_etc
end
Access the code object's comment