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.

Public Class methods

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 ||= {}
100:       attr_accessor name
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

Public Instance methods

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


    # File code_objects.rb, line 72
72:     def remove_methods_etc
73:     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


    # File code_objects.rb, line 48
48:     def stop_doc
49:       @document_self = false
50:       @document_children = false
51:     end