Class: RDoc::TopLevel
| Relationships & Source Files | |
| Super Chains via Extension / Inclusion / Inheritance | |
| Class Chain: 
          self,
           Context,CodeObject | |
| Instance Chain: | |
| Inherits: | RDoc::Context 
 | 
| Defined in: | lib/rdoc/top_level.rb, lib/rdoc/generator/markup.rb | 
Overview
A TopLevel context is a representation of the contents of a single file
Constant Summary
- 
    MARSHAL_VERSION =
    Internal use only
    
 # File 'lib/rdoc/top_level.rb', line 70
Text - Included
  MARKUP_FORMAT, TO_HTML_CHARACTERS
Context - Inherited
  
Class Method Summary
- 
    
      .new(absolute_name, relative_name = absolute_name)  ⇒ TopLevel 
    
    constructor
    Creates a new TopLevelfor the file at #absolute_name.
Context - Inherited
| .new | Creates an unnamed empty context with public current visibility. | 
CodeObject - Inherited
| .new | Creates a new  | 
Instance Attribute Summary
- 
    
      #absolute_name  
    
    rw
    Absolute name of this file. 
- 
    
      #classes_or_modules  
    
    readonly
    All the classes or modules that were declared in this file. 
- 
    
      #display?  ⇒ Boolean 
    
    readonly
    Only a TopLevelthat contains text file) will be displayed.
- 
    
      #file_stat  
    
    rw
    This TopLevel’s File::Statstruct.
- 
    
      #parser  
    
    rw
    The parser class that processed this file. 
- #parser=(val) rw
- 
    
      #relative_name  
    
    rw
    Relative name of this file. 
- 
    
      #text?  ⇒ Boolean 
    
    readonly
    Is this TopLevelfrom a text file instead of a source code file?
- #diagram rw Internal use only
Context - Inherited
| #aliases | Class/module aliases. | 
| #attributes | All attr* methods. | 
| #block_params | Block params to be used in the next  | 
| #constants | Constants defined. | 
| #constants_hash | Hash of registered constants. | 
| #current_line_visibility= | Current visibility of this line. | 
| #current_section | The current documentation section that new items will be added to. | 
| #current_section= | Sets the current documentation section of documentation. | 
| #extends | Modules this context is extended with. | 
| #external_aliases | Aliases that could not be resolved. | 
| #fully_documented? | Does this context and its methods and constants all have documentation? | 
| #in_files | Files this context is found in. | 
| #includes | Modules this context includes. | 
| #method_list | Methods defined in this context. | 
| #methods_hash | Hash of registered methods. | 
| #name | Name of this class excluding namespace. | 
| #ongoing_visibility= | Changes the visibility for new methods to  | 
| #params | Params to be used in the next  | 
| #remove_from_documentation? | Should we remove this context from the documentation? | 
| #requires | Files this context requires. | 
| #temporary_section | Use this section for the next method, attribute or constant added. | 
| #unmatched_alias_lists | Hash  | 
| #visibility | Current visibility of this context. | 
CodeObject - Inherited
| #comment | Our comment. | 
| #comment= | Replaces our comment with  | 
| #display? | Should this  | 
| #document_children | Do we document our children? | 
| #document_children= | Enables or disables documentation of this CodeObject’s children unless it has been turned off by :enddoc: | 
| #document_self | Do we document ourselves? | 
| #document_self= | Enables or disables documentation of this  | 
| #documented? | Does this object have a comment with content or is  | 
| #done_documenting | Are we done documenting (ie, did we come across a :enddoc:)? | 
| #done_documenting= | Turns documentation on/off, and turns on/off  | 
| #file | Which file this code object was defined in. | 
| #force_documentation | Force documentation of this  | 
| #force_documentation= | Force the documentation of this object unless documentation has been turned off by :enddoc: | 
| #full_name= | Sets the full_name overriding any computed full name. | 
| #ignored? | Has this class been ignored? | 
| #line | Line in  | 
| #metadata | Hash of arbitrary metadata for this  | 
| #parent | Our parent  | 
| #parent= | Sets the parent  | 
| #received_nodoc | Did we ever receive a  | 
| #section | The section this  | 
| #section= | Set the section this  | 
| #store | The  | 
| #store= | Sets the  | 
| #suppressed? | Has this class been suppressed? | 
| #viewer | We are the model of the code, but we know that at some point we will be worked on by viewers. | 
Instance Method Summary
- 
    
      #==(other)  
      (also: #eql?)
    
    An TopLevelis equal to another with the same relative_name.
- 
    
      #add_alias(an_alias)  
    
    Adds an_aliastoObjectinstead ofself.
- 
    
      #add_constant(constant)  
    
    Adds constanttoObjectinstead ofself.
- 
    
      #add_include(include)  
    
    Adds includetoObjectinstead ofself.
- 
    
      #add_method(method)  
    
    Adds methodtoObjectinstead ofself.
- 
    
      #add_to_classes_or_modules(mod)  
    
    Adds class or module mod.
- 
    
      #base_name  
      (also: #name)
    
    Base name of this file. 
- 
    
      #cvs_url  
    
    Returns a URL for this source file on some web repository. 
- #eql?(other)
- #find_class_or_module(name)
- 
    
      #find_local_symbol(symbol)  
    
    Finds a class or module named symbol
- 
    
      #find_module_named(name)  
    
    Finds a module or class with #name 
- 
    
      #full_name  
    
    Returns the relative name of this file. 
- 
    
      #hash  
    
    An TopLevelhas the same hash as another with the same relative_name.
- 
    
      #http_url(prefix)  
    
    URL for this with a prefix
- 
    
      #last_modified  
    
    Time this file was last modified, if known. 
- 
    
      #marshal_dump  
    
    Dumps this TopLevelfor use by ri.
- 
    
      #name  
    
    Aliasfor #base_name.
- 
    
      #object_class  
    
    Returns the NormalClass“Object”, creating it if not found.
- 
    
      #page_name  
    
    Base name of this file without the extension. 
- 
    
      #path  
    
    Path to this file for use with HTML generator output. 
- 
    
      #search_record  
    
    Search record used by Generator::JsonIndex
- #inspect Internal use only
- 
    
      #marshal_load(array)  
    
    Internal use only
    Loads this TopLevelfromarray.
- #pretty_print(q) Internal use only
- #to_s Internal use only
Context - Inherited
| #<=> | Contexts are sorted by full_name. | 
| #add | Adds an item of type  | 
| #add_alias | Adds  | 
| #add_attribute | Adds  | 
| #add_class | Adds a class named  | 
| #add_class_or_module | Adds the class or module  | 
| #add_constant | Adds  | 
| #add_extend | Adds extension module  | 
| #add_include | Adds included module  | 
| #add_method | Adds  | 
| #add_module | Adds a module named #name. | 
| #add_module_alias | Adds an alias from  | 
| #add_module_by_normal_module | Adds a module by  | 
| #add_require | Adds  | 
| #add_section | Returns a section with  | 
| #add_to | Adds  | 
| #any_content | Is there any content? | 
| #child_name | Creates the full name for a child with #name | 
| #class_attributes | Class attributes. | 
| #class_method_list | Class methods. | 
| #classes | Array of classes in this context. | 
| #classes_and_modules | All classes and modules in this namespace. | 
| #classes_hash | Hash of classes keyed by class name. | 
| #defined_in? | Is part of this thing was defined in  | 
| #each_attribute | Iterator for attributes. | 
| #each_classmodule | Iterator for classes and modules. | 
| #each_constant | Iterator for constants. | 
| #each_extend | Iterator for extension modules. | 
| #each_include | Iterator for included modules. | 
| #each_method | Iterator for methods. | 
| #each_section | Iterator for each section’s contents sorted by title. | 
| #find_attribute | Finds an attribute #name with singleton value  | 
| #find_attribute_named | Finds an attribute with #name in this context. | 
| #find_class_method_named | Finds a class method with #name in this context. | 
| #find_constant_named | Finds a constant with #name in this context. | 
| #find_enclosing_module_named | Find a module at a higher scope. | 
| #find_external_alias | Finds an external alias #name with singleton value  | 
| #find_external_alias_named | Finds an external alias with #name in this context. | 
| #find_file_named | Finds a file with #name in this context. | 
| #find_instance_method_named | Finds an instance method with #name in this context. | 
| #find_local_symbol | Finds a method, constant, attribute, external alias, module or file named  | 
| #find_method | Finds a method named #name with singleton value  | 
| #find_method_named | Finds a instance or module method with #name in this context. | 
| #find_module_named | Find a module with #name using ruby’s scoping rules. | 
| #find_symbol | Look up  | 
| #find_symbol_module | Look up a module named  | 
| #full_name | The full name for this context. | 
| #http_url | URL for this with a  | 
| #initialize_methods_etc | Sets the defaults for methods and so-forth. | 
| #instance_attributes | Instance attributes. | 
| #instance_method_list | Instance methods. | 
| #methods_by_type | Breaks method_list into a nested hash by type ( | 
| #methods_matching | Yields AnyMethod and  | 
| #modules | Array of modules in this context. | 
| #modules_hash | Hash of modules keyed by module name. | 
| #name_for_path | Name to use to generate the url. | 
| #record_location | Record  | 
| #remove_invisible | Removes methods and attributes with a visibility less than  | 
| #resolve_aliases | Tries to resolve unmatched aliases when a method or attribute has just been added. | 
| #section_contents | Returns  | 
| #sections | Sections in this context. | 
| #set_constant_visibility_for | Given an array  | 
| #set_current_section | Sets the current section to a section with  | 
| #set_visibility_for | Given an array  | 
| #sort_sections | Sorts sections alphabetically (default) or in  | 
| #top_level | Return the  | 
| #upgrade_to_class | Upgrades NormalModule  | 
| #display, | |
| #each_ancestor | Iterator for ancestors for duck-typing. | 
| #remove_invisible_in | Only called when min_visibility ==  | 
| #sections_hash, #to_s | |
CodeObject - Inherited
| #each_parent | Yields each parent of this  | 
| #file_name | File name where this  | 
| #ignore | Use this to ignore a  | 
| #options | The options instance from the store this  | 
| #parent_file_name | File name of our parent. | 
| #parent_name | Name of our parent. | 
| #record_location | Records the  | 
| #start_doc | Enable capture of documentation unless documentation has been turned off by :enddoc: | 
| #stop_doc | Disable capture of documentation. | 
| #suppress | Use this to suppress a  | 
| #initialize_visibility | Initializes state for visibility of this  | 
Generator::Markup - Included
| #aref_to | Generates a relative URL from this object’s path to  | 
| #as_href | Generates a relative URL from  | 
| #cvs_url | Build a webcvs URL starting for the given  | 
| #description | Handy wrapper for marking up this object’s comment. | 
| #formatter | Creates an  | 
Text - Included
| #expand_tabs | Expands tab characters in  | 
| #flush_left | Flush  | 
| #markup | Convert a string in markup format into HTML. | 
| #normalize_comment | Strips hashes, expands tabs then flushes  | 
| #parse | Normalizes  | 
| #snippet | The first  | 
| #strip_hashes | Strips leading # characters from  | 
| #strip_newlines | Strips leading and trailing n characters from  | 
| #strip_stars | Strips /* */ style comments. | 
| #to_html | Converts ampersand, dashes, ellipsis, quotes, copyright and registered trademark symbols in  | 
| #wrap | Wraps  | 
Constructor Details
    .new(absolute_name, relative_name = absolute_name)  ⇒ TopLevel 
  
Creates a new TopLevel for the file at #absolute_name.  If documentation is being generated outside the source dir #relative_name is relative to the source directory.
# File 'lib/rdoc/top_level.rb', line 43
def initialize absolute_name, relative_name = absolute_name super() @name = nil @absolute_name = absolute_name @relative_name = relative_name @file_stat = File.stat(absolute_name) rescue nil # HACK for testing @diagram = nil @parser = nil @classes_or_modules = [] end
Instance Attribute Details
#absolute_name (rw)
Absolute name of this file
# File 'lib/rdoc/top_level.rb', line 22
attr_accessor :absolute_name
#classes_or_modules (readonly)
All the classes or modules that were declared in this file. These are assigned to either #classes_hash or #modules_hash once we know what they really are.
# File 'lib/rdoc/top_level.rb', line 29
attr_reader :classes_or_modules
#diagram (rw)
# File 'lib/rdoc/top_level.rb', line 31
attr_accessor :diagram # :nodoc:
    #display?  ⇒ Boolean  (readonly)
  
Only a TopLevel that contains text file) will be displayed.  See also CodeObject#display?
# File 'lib/rdoc/top_level.rb', line 127
def display? text? and super end
#file_stat (rw)
This TopLevel’s File::Stat struct
# File 'lib/rdoc/top_level.rb', line 12
attr_accessor :file_stat
#parser (rw)
The parser class that processed this file
# File 'lib/rdoc/top_level.rb', line 36
attr_reader :parser
#parser=(val) (rw)
[ GitHub ]# File 'lib/rdoc/top_level.rb', line 55
def parser=(val) @parser = val @store.update_parser_of_file(absolute_name, val) if @store @parser end
#relative_name (rw)
Relative name of this file
# File 'lib/rdoc/top_level.rb', line 17
attr_accessor :relative_name
    #text?  ⇒ Boolean  (readonly)
  
Is this TopLevel from a text file instead of a source code file?
Instance Method Details
#==(other) Also known as: #eql?
An TopLevel is equal to another with the same relative_name
# File 'lib/rdoc/top_level.rb', line 64
def == other self.class === other and @relative_name == other.relative_name end
#add_alias(an_alias)
Adds an_alias to Object instead of self.
# File 'lib/rdoc/top_level.rb', line 73
def add_alias(an_alias) object_class.record_location self return an_alias unless @document_self object_class.add_alias an_alias end
#add_constant(constant)
Adds constant to Object instead of self.
# File 'lib/rdoc/top_level.rb', line 82
def add_constant constant object_class.record_location self return constant unless @document_self object_class.add_constant constant end
#add_include(include)
Adds include to Object instead of self.
# File 'lib/rdoc/top_level.rb', line 91
def add_include(include) object_class.record_location self return include unless @document_self object_class.add_include include end
#add_method(method)
Adds method to Object instead of self.
# File 'lib/rdoc/top_level.rb', line 100
def add_method(method) object_class.record_location self return method unless @document_self object_class.add_method method end
#add_to_classes_or_modules(mod)
Adds class or module mod. Used in the building phase by the Ruby parser.
# File 'lib/rdoc/top_level.rb', line 110
def add_to_classes_or_modules mod @classes_or_modules << mod end
#base_name Also known as: #name
Base name of this file
# File 'lib/rdoc/top_level.rb', line 117
def base_name File.basename @relative_name end
#cvs_url
Returns a URL for this source file on some web repository. Use the -W command line option to set.
# File 'lib/rdoc/generator/markup.rb', line 149
def cvs_url url = @store.rdoc..webcvs if /%s/ =~ url then url % @relative_name else url + @relative_name end end
#eql?(other)
[ GitHub ]# File 'lib/rdoc/top_level.rb', line 68
alias eql? ==
#find_class_or_module(name)
See #find_class_or_module
#find_local_symbol(symbol)
Finds a class or module named symbol
# File 'lib/rdoc/top_level.rb', line 144
def find_local_symbol(symbol) find_class_or_module(symbol) || super end
#find_module_named(name)
Finds a module or class with #name
# File 'lib/rdoc/top_level.rb', line 151
def find_module_named(name) find_class_or_module(name) end
#full_name
Returns the relative name of this file
# File 'lib/rdoc/top_level.rb', line 158
def full_name @relative_name end
#hash
An TopLevel has the same hash as another with the same relative_name
# File 'lib/rdoc/top_level.rb', line 166
def hash @relative_name.hash end
#http_url(prefix)
URL for this with a prefix
#inspect
# File 'lib/rdoc/top_level.rb', line 179
def inspect # :nodoc: "#<%s:0x%x %p modules: %p classes: %p>" % [ self.class, object_id, base_name, @modules.map { |n,m| m }, @classes.map { |n,c| c } ] end
#last_modified
Time this file was last modified, if known
# File 'lib/rdoc/top_level.rb', line 191
def last_modified @file_stat ? file_stat.mtime : nil end
#marshal_dump
Dumps this TopLevel for use by ri.  See also #marshal_load
# File 'lib/rdoc/top_level.rb', line 198
def marshal_dump [ MARSHAL_VERSION, @relative_name, @parser, parse(@comment), ] end
#marshal_load(array)
Loads this TopLevel from array.
# File 'lib/rdoc/top_level.rb', line 210
def marshal_load array # :nodoc: initialize array[1] @parser = array[2] @comment = array[3] @file_stat = nil end
#name
Alias for #base_name.
# File 'lib/rdoc/top_level.rb', line 121
alias name base_name
#object_class
Returns the NormalClass “Object”, creating it if not found.
Records self as a location in “Object”.
# File 'lib/rdoc/top_level.rb', line 224
def object_class @object_class ||= begin oc = @store.find_class_named('Object') || add_class(RDoc::NormalClass, 'Object') oc.record_location self oc end end
#page_name
Base name of this file without the extension
# File 'lib/rdoc/top_level.rb', line 235
def page_name basename = File.basename @relative_name basename =~ /\.(rb|rdoc|txt|md)$/i $` || basename end
#path
Path to this file for use with HTML generator output.
# File 'lib/rdoc/top_level.rb', line 245
def path http_url @store.rdoc.generator.file_dir end
#pretty_print(q)
#search_record
Search record used by Generator::JsonIndex
#to_s
# File 'lib/rdoc/top_level.rb', line 284
def to_s # :nodoc: "file #{full_name}" end