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