| 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