Class | RDoc::CodeObject |
In: |
code_objects.rb
|
Parent: | Object |
We contain the common stuff for contexts (which are containers) and other elements (methods, attributes and so on)
comment | [R] | Access the code object‘s comment |
document_children | [R] | do we document ourselves and our children |
document_self | [R] | do we document ourselves? |
done_documenting | [RW] | are we done documenting (ie, did we come across a :enddoc:)? |
force_documentation | [RW] | Do we force documentation, even is we wouldn‘t normally show the entity |
parent | [RW] | |
section | [RW] | Which section are we in |
viewer | [RW] | We are the model of the code, but we know that at some point we will be worked on by viewers. By implementing the Viewable protocol, viewers can associated themselves with these objects. |
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 code_objects.rb, line 97 97: def CodeObject.attr_overridable(name, *aliases) 98: @overridables ||= {} 99: 100: attr_accessor name 101: 102: aliases.unshift name 103: aliases.each do |directive_name| 104: @overridables[directive_name.to_s] = name 105: end 106: end
# File code_objects.rb, line 75 75: def initialize 76: @document_self = true 77: @document_children = true 78: @force_documentation = false 79: @done_documenting = false 80: end
Update the comment, but don‘t overwrite a real comment with an empty one
# File code_objects.rb, line 87 87: def comment=(comment) 88: @comment = comment unless comment.empty? 89: end
# File code_objects.rb, line 57 57: def document_children=(val) 58: @document_children = val 59: if !val 60: remove_classes_and_modules 61: end 62: end
# File code_objects.rb, line 34 34: def document_self=(val) 35: @document_self = val 36: if !val 37: remove_methods_etc 38: end 39: end
Default callbacks to nothing, but this is overridden for classes and modules
# File code_objects.rb, line 69 69: def remove_classes_and_modules 70: end
set and cleared by :startdoc: and :enddoc:, this is used to toggle the capturing of documentation
# File code_objects.rb, line 43 43: def start_doc 44: @document_self = true 45: @document_children = true 46: end