Extended maintenance of Ruby versions 1.8.7 and 1.9.2 ended on July 31, 2014. Read more
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