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
Class Method Summary
-
.new(absolute_name, relative_name = absolute_name) ⇒ TopLevel
constructor
Creates a new
TopLevel
for the file at #absolute_name.
Context - Inherited
.new | Creates an unnamed empty context with public current visibility. |
CodeObject - Inherited
.new | Creates a new CodeObject that will document itself and its children. |
Instance Attribute Summary
-
#absolute_name
rw
Absolute name of this file.
-
#file_stat
rw
This TopLevel's
File::Stat
struct. -
#parser
rw
The parser class that processed this file.
-
#relative_name
rw
Relative name of this file.
-
#classes_or_modules
readonly
All the classes or modules that were declared in this file.
-
#display? ⇒ Boolean
readonly
Only a
TopLevel
that contains text file) will be displayed. -
#text? ⇒ Boolean
readonly
Is this
TopLevel
from a text file instead of a source code file?
Context - Inherited
#block_params | Block params to be used in the next MethodAttr parsed under this context. |
#current_section | The current documentation section that new items will be added to. |
#current_section= | Sets the current documentation section of documentation. |
#params | Params to be used in the next MethodAttr parsed under this context. |
#temporary_section | Use this section for the next method, attribute or constant added. |
#unmatched_alias_lists | Hash |
#visibility | Current visibility of this context. |
#aliases | Class/module aliases. |
#attributes | All attr* methods. |
#constants | Constants defined. |
#constants_hash | Hash of registered constants. |
#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. |
#remove_from_documentation? | Should we remove this context from the documentation? |
#requires | Files this context requires. |
#ongoing_visibility= | Changes the visibility for new methods to |
CodeObject - Inherited
#comment | Our comment. |
#comment= | Replaces our comment with |
#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 CodeObject unless it has been turned off by :enddoc:. |
#done_documenting | Are we done documenting (ie, did we come across a :enddoc:)? |
#done_documenting= | Turns documentation on/off, and turns on/off |
#force_documentation | Force documentation of this CodeObject. |
#force_documentation= | Force the documentation of this object unless documentation has been turned off by :enddoc: |
#line | Line in |
#offset | Offset in |
#parent | Our parent CodeObject. |
#parent= | Sets the parent CodeObject. |
#section | The section this CodeObject is in. |
#section= | Set the section this CodeObject is in. |
#store | The Store for this object. |
#store= | Sets the |
#viewer | We are the model of the code, but we know that at some point we will be worked on by viewers. |
#display? | Should this CodeObject be displayed in output? |
#documented? | Does this object have a comment with content or is |
#file | Which file this code object was defined in. |
#ignored? | Has this class been ignored? |
#metadata | Hash of arbitrary metadata for this CodeObject. |
#received_nodoc | Did we ever receive a |
#suppressed? | Has this class been suppressed? |
#full_name= | Sets the full_name overriding any computed full name. |
Instance Method Summary
-
#==(other)
(also: #eql?)
An
TopLevel
is equal to another with the same relative_name. -
#add_alias(an_alias)
Adds
an_alias
toObject
instead ofself
. -
#add_constant(constant)
Adds
constant
toObject
instead ofself
. -
#add_include(include)
Adds
include
toObject
instead ofself
. -
#add_method(method)
Adds
method
toObject
instead 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
TopLevel
has 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
TopLevel
for use by ri. -
#name
Alias for #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
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_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 Attr entries matching the list of names in |
#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 Context::Section objects referenced in this context for use in a table of contents. |
#sections | Sections in this context. |
#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 TomDoc fashion (none, Public, Internal, Deprecated). |
#top_level | Return the |
#upgrade_to_class | Upgrades NormalModule |
CodeObject - Inherited
#each_parent | Yields each parent of this CodeObject. |
#file_name | File name where this CodeObject was found. |
#ignore | Use this to ignore a CodeObject and all its children until found again (#record_location is called). |
#options | The options instance from the store this CodeObject is attached to, or a default options instance if the CodeObject is not attached. |
#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 CodeObject and all its children until the next file it is seen in or documentation is discovered. |
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 Markup::ToHtmlCrossref formatter. |
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
#display? ⇒ Boolean
(readonly)
Only a TopLevel
that contains text file) will be displayed. See also CodeObject#display?
# File 'lib/rdoc/top_level.rb', line 121
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_accessor :parser
#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 58
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 67
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 76
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 85
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 94
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 104
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 111
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 159
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 62
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 138
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 145
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 152
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 160
def hash @relative_name.hash end
#http_url(prefix)
URL for this with a prefix
#last_modified
Time this file was last modified, if known
# File 'lib/rdoc/top_level.rb', line 185
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 192
def marshal_dump [ MARSHAL_VERSION, @relative_name, @parser, parse(@comment), ] end
#name
Alias for #base_name.
# File 'lib/rdoc/top_level.rb', line 115
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 218
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 229
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 239
def path http_url @store.rdoc.generator.file_dir end
#search_record
Search record used by Generator::JsonIndex