In Files

  • rdoc/code_objects.rb

Files

Class/Module Index [+]

Quicksearch

RDoc::CodeObject

We contain the common stuff for contexts (which are containers) and other elements (methods, attributes and so on)

Attributes

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

attr_overridable(name, *aliases) click to toggle source

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 104
def self.attr_overridable(name, *aliases)
  @overridables ||= {}

  attr_accessor name

  aliases.unshift name
  aliases.each do |directive_name|
    @overridables[directive_name.to_s] = name
  end
end
            
new() click to toggle source
 
               # File rdoc/code_objects.rb, line 34
def initialize
  @document_self = true
  @document_children = true
  @force_documentation = false
  @done_documenting = false
end
            

Public Instance Methods

comment=(comment) click to toggle source

Update the comment, but don't overwrite a real comment with an empty one

 
               # File rdoc/code_objects.rb, line 94
def comment=(comment)
  @comment = comment unless comment.empty?
end
            
document_children=(val) click to toggle source
 
               # File rdoc/code_objects.rb, line 64
def document_children=(val)
  @document_children = val
  if !val
    remove_classes_and_modules
  end
end
            
document_self=(val) click to toggle source
 
               # File rdoc/code_objects.rb, line 41
def document_self=(val)
  @document_self = val
  if !val
    remove_methods_etc
  end
end
            
parent_file_name() click to toggle source
 
               # File rdoc/code_objects.rb, line 74
def parent_file_name
  @parent ? @parent.file_base_name : '(unknown)'
end
            
parent_name() click to toggle source
 
               # File rdoc/code_objects.rb, line 78
def parent_name
  @parent ? @parent.name : '(unknown)'
end
            
remove_classes_and_modules() click to toggle source

Default callbacks to nothing, but this is overridden for classes and modules

 
               # File rdoc/code_objects.rb, line 84
def remove_classes_and_modules
end
            
remove_methods_etc() click to toggle source
 
               # File rdoc/code_objects.rb, line 87
def remove_methods_etc
end
            
start_doc() click to toggle source

set and cleared by :startdoc: and :enddoc:, this is used to toggle the capturing of documentation

 
               # File rdoc/code_objects.rb, line 50
def start_doc
  @document_self = true
  @document_children = true
end
            
stop_doc() click to toggle source
 
               # File rdoc/code_objects.rb, line 55
def stop_doc
  @document_self = false
  @document_children = false
end